Page 128 -
P. 128

AGENT-ORIENTED  INFORMATION  SYSTEMS  ANALYSIS  AND  DESIGN     113
                    Figure 7.11  A Plan Diagram for Checkout

                                                      Checkout

                         Press checkout button [checkout button activated] / shoppingCart.checkout()
                                     [Mandatory fields filled]
                                        /verifyCC()        [CC# valid]  Press confirm button
                                Fields         Credit Card  / confirm()?  /confirm()  Item
                               Checking         Checking                          Registering
                                                         [Not confirmed]
                                     [i=5]                  / cancel()   [foreach    Items
                      [[Not all mandatory  [[CC# not valid]  [i=3]       selected item]  Registered
                      fields filled] ^ [i<5]]  ^ [i<3]]
                                   Fields Updated   Updated
                                Fields            CC#            Stock Records   Final Amounts
                               Updating         Correcting  [foreach  Updating    Calculating
                                                      registered item]  Records updated  Amounts
                                     succeeded/ shoppingcart.logout()                 calculated
                                                                   [new customer]
                                         Displaying               Customer Profile
                                          Report
                               succeeded          [report asked]  profile  Updating
                           / shoppingCart.logout()  / initializeReport()  updated  [Already registered]
                          pass / orderProcessor.  fail /shoppingCart.logout()  any [[Cancel button pressed] OR
                                processOrder(this)                     [timeout>90 sec]] / shoppingCart.initialize()



                    RELATED WORK

                    The most important feature of the Tropos methodology is that it aspires to span the overall software
                    development process, from early requirements to implementation. Figure 7.12 shows graphically
                    the relative coverage of the software development process by Tropos and other methodologies,
                    including KAOS (Dardenne, van Lamsweerde, and Fickas, 1993), Gaia (Wooldridge, Jennings,
                    and Kinny, 2000), AAII (Kinny, Georgeff, and Rao, 1996), MaSE (Deloach, Wood, and Sparkman
                    2001), and AUML (Bauer, Muller, and Odell, 2001). Other agent-oriented software development
                    methodologies have been proposed as well (see, e.g., Brazier et al., 1997; Ciancarini and Wool-
                    dridge, 2001; Wooldridge, Ciancarini, and Weiss, 2002).
                      While Tropos covers all software development phases, at the same time it is well integrated with
                    other existing work. Thus, for early and late requirements analysis, it adapts ideas from requirements
                    engineering, and in particular Eric Yu’s i* methodology (Yu, 1995). During design phases, UML
                    (Booch, Rumbaugh, and Jacobson, 1999) and AUML (Bauer, Muller, and Odell, 2001) concepts
                    are used to model and analyze static and dynamic aspects of a software system design.
                      The Tropos metamodel presented in Bresciani and colleagues (2004) has been developed
                    in the same spirit as the UML metamodel for class diagrams. A comparison between the two
                    metamodels readily points out fundamental differences between the primitive concepts ad-
                    opted by the two modeling frameworks. This contrast also defines the key difference between
                    object-oriented and agent-oriented development methodologies. Agents (and actor diagrams)
                    cannot be thought of as specializations of objects (and class diagrams), as argued elsewhere.
                    The Tropos modeling framework supports the process of modeling and analyzing social and
                    intentional settings. UML was designed to support modeling and analysis of static and dy-
                    namic settings. In that sense, the two approaches (a) give designers very different concepts
   123   124   125   126   127   128   129   130   131   132   133