1 / 34

Yijun Yu 1 Julio C. S. P. Leite 2 John Mylopoulos 1

合久必分,分久必合 L ong union must separate, long separation must unite Discovering aspects from requirements goal models. Yijun Yu 1 Julio C. S. P. Leite 2 John Mylopoulos 1. Identify Aspects Early on in the Software Development Process. Our Result:. Our Goal:.

Download Presentation

Yijun Yu 1 Julio C. S. P. Leite 2 John Mylopoulos 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 合久必分,分久必合Long union must separate, long separation must uniteDiscovering aspects from requirements goal models Yijun Yu1Julio C. S. P. Leite2 John Mylopoulos1

  2. Identify Aspects Early on in the Software Development Process Our Result: Our Goal: Aspects can be discovered during goal oriented requirements analysis

  3. Overview • Early Requirements in AOP paradigm 1.1 Design Principles in AOP 1.2 Requirements Goal Models • Aspect discovery through construction of a V-graph (goals, softgoals, and tasks) • A case study: Media Shop+osCommerce • Summary

  4. 1. Principles1.1 Increase Fan-in, aka. DRY • “Whenever possible, we wish to maximize fan-in during the design process. Fan-in is the raison d’être (grounds for existence) of modularity. Each instance of multiple fan-in means that some duplicate code has been avoided.” (Yourdon, Constantine,Structured Design p. 172, 1979) • The DRY principle: Don’t Repeat Yourself[A. Hunt, and D. Thomas. Pragmatic Programmer. Addison Wesley,1999. in (Martin Fowler, Avoid Repetition, IEEE Software, Jan/Feb 2001 pp.97—99.)]

  5. C C C C C C C Aspect C DRY IOC

  6. SCAN FIND: AT LINE 5 VALUE: AT LINE7 SCAN: AT LINE 15 MOVE UNTIL: AT LINE 8 REMOVALL: AT LINE 2 Yourdon & Constantine, SD, pg.168 MOVE UNTIL VALUE FIND REMOVALL STRINGCOMP

  7. Stan Wagon’s bike My square-wheel bike, on permanent display at Macalester College. This construction, believe it or not, earned me an entry in "Ripley's Believe It or Not"; beats standing in a block of ice for three days or growing three-foot long fingernails. -- http://www.stanwagon.com Stan Wagon (wagon@macalester.edu), Prof. of Mathematics and Computer Science, Macalester College, St. Paul, Minnesota

  8. The Weaver MOVE UNTIL VALUE SCAN FIND REMOVALL FIND: AT LINE 5 VALUE: AT LINE7 SCAN: AT LINE 15 MOVE UNTIL: AT LINE 8 REMOVALL: AT LINE 2 STRINGCOMP Yourdon & Constantine, SD, pg.168

  9. pointcut AspectJ The DRIVER aspect aspect Logging { pointcut NeedLogging(): call(void FIND()) ||call(void MOVEUNTIL()) || call(void REMOVALL) || call(void SCAN() || call(void VALUE()); after() returning: NeedLogging() { STRINGCOMP(); } } The GROUND The WAGON advice

  10. 1.2 Requirements Goal Models • A goal model is an intentional model • A goal can be decomposed into AND or OR subgoals • A goal model has both hard and soft goals • A hard goal can be either satisfied or denied • A soft goal is partially satisfied => satisficed • Soft goal uses HELP (+), HURT (-), MAKE (++) or BREAK (--) correlations to show partial satisfaction (satisfice) from a set of subgoals

  11. 1.2.1 Hard goal model

  12. 1.2.2 Soft goal model

  13. T ++: MAKE Goal:Contact a Friend Goal:Email a Friend Goal:Mail a Friend Goal:Call a Friend ++: MAKE OR +: HELP --: BREAK T T T AND T T Text Editor SMTP Goal-Oriented Requirements Analysis FS: Fully satisfied PS: Partially satisfied UN: UnknownPD: Partially denied FD: Fully denied CF: Conflict T: satisfied F: denied U: unknown CF Get Reliable Reply

  14. T Goal:Contact a Friend Goal:Email a Friend Goal:Mail a Friend Goal:Call a Friend ++: MAKE OR +: HELP --: BREAK T F F AND T T Text Editor SMTP FS: Fully satisficed PS: Partially satisficed UN: UnknownPD: Partially denied FD: Fully denied CF: Conflict T: satisfied F: denied U: unknown FS Get Reliable Reply ++: MAKE

  15. V-graph In order to reason about interplay of functional and non-functional requirements, we create a particular type of goal model, called V-graph

  16. V Goal Task correlation Softgoal contribution contribution

  17. 2. The Process • Start from root-level goals and soft goals, correlate and decompose them into a V-graph • A goal analysis based on the label propagation algorithm is used to check for: • Conflicts • Inconsistencies • Denial of any goal or soft goals • After resolving the problems, a proper V-graph is obtained • Then we list the candidate aspects from the V-graph

  18. list objectives correlate decompose resolve conflict softgoals goals correlation decompose tasks decompose listaspects aspects root goal softgoals softgoals softgoals softgoals goals ? No tasks Yes No conflict No ? Yes No ? Consistent Yes Satisfied & satisficed V model softgoals goals tasks

  19. Medi@Shop adapted from literature: Castro, Kolp, Mylopoulos, Towardsrequirements-driven information systems engineering: the Tropos project, Journal of Information Systems, 2002. Can we find aspects from early requirements? osCommerce studied from an LAMP (Linux, Apache, MySQL, PHP) Open-Source project: (http://www.oscommerce.com) Do they manifest in the developed software? 3. A Case Study

  20. osCommerce (version 2.2m2)

  21. Candidate aspects in the codeClone detection (by Semantic Design,Inc)

  22. list objectives correlate decompose resolve conflict softgoals goals correlation decompose tasks decompose listaspects aspects root goal softgoals softgoals softgoals softgoals goals ? No tasks Yes No conflict No ? Yes No ? Consistent Yes Satisfied & satisficed V model softgoals goals tasks

  23. Correlate initial goals and softgoals T0 T1

  24. T PS T FS T FS T FS T2 Inconsistent decomposition FS FS T FS FS T1

  25. T FS T FS T T FS FS T3 Resolving inconsistency T PS T FS T T FS FS T2

  26. Further decomposition T3 T4

  27. Further… T5

  28. T6

  29. T FS T T T T T T7 Resolving Conflicts T CF T T T T T T6

  30. Result candidate aspects

  31. Goal Aspects goal aspect Responsiveness[transaction] { pointcut transaction(): Preparing[cart,product]) || CheckingOut[cart, product, account, stock]); required () by: transaction() { SessionCookie[transaction](); } }; • AspectJ-like syntax • Allow weaving the operationalized tasks with goals specified in the pointcut

  32. pointcuts goals aspects weaving functiontasks advicetasks aspects 4. SUMMARY Separatingaspects goals softgoals tasks V graph Goal aspects

  33. 5. On-going and future work 1. On Implementations: • Weaving the goal aspects • AspectPHP: adapting the Zend PHP interpretator • AspecT*: testing NFR in the weaved code 2. Another case study: CORBA 3. Extensions • From V-graph to agent-oriented frameworks such as i* and KAOS • reuse of goal aspects

More Related