Presentation is loading. Please wait.

Presentation is loading. Please wait.

合久必分,分久必合 Long union must separate, long separation must unite Discovering aspects from requirements goal models Yijun Yu 1 Julio C. S. P. Leite 2 John.

Similar presentations


Presentation on theme: "合久必分,分久必合 Long union must separate, long separation must unite Discovering aspects from requirements goal models Yijun Yu 1 Julio C. S. P. Leite 2 John."— Presentation transcript:

1 合久必分,分久必合 Long 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

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

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

4 4 1. Principles 1.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 5 CCC C C C C Aspect C IOC DRY

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

7 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.stanwago n.com http://www.stanwago n.com Stan Wagon (wagon@macalester.e du), Prof. of Mathematics and Computer Science, Macalester College, St. Paul, Minnesota (wagon@macalester.e du)

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

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

10 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 11 1.2.1 Hard goal model

12 12 1.2.2 Soft goal model

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

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

15 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 16 Goal Task Softgoal contribution correlation V

17 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 18 Consistent tasks goals soft goals goals soft goals tasks root goal soft goals list objectives No conflict goals soft goals tasks list aspects V model aspects Satisfied & satisficed correlation decompose soft goals correlate decompose resolve conflict decompose

19 19 3. A Case Study Medi@Shop adapted from literature: Castro, Kolp, Mylopoulos, Towards requirements-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?http://www.oscommerce.com

20 20 osCommerce (version 2.2m2)

21 21

22 22 Candidate aspects in the code Clone detection (by Semantic Design,Inc) LOC#clonesCode descriptionNeed refactoring? 1319require($path. $file);No 1260echo $expression;No 5592class email;No 2292define ($variable, $value);No 762class mime;No 467messageStack->add ($error);Yes (NFR) 15 Postal code zone checkYes (FR) 2210require(application_top.php); SSL check Yes (FR/NFR) 364Set HTML head CHARSETYes (NFR)

23 23 Consistent tasks goals soft goals goals soft goals tasks root goal soft goals list objectives No conflict goals soft goals tasks list aspects V model aspects Satisfied & satisficed correlation decompose soft goals correlate decompose resolve conflict decompose

24 24 Correlate initial goals and softgoals T1T0

25 25 Inconsistent decomposition T1 T2

26 26 T3 Resolving inconsistency T2

27 27 Further decomposition T3 T4

28 28 Further… T5

29 29 T6

30 30 T7 Resolving Conflicts T6

31 31 Result candidate aspects

32 32 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

33 33 aspects goals softgoals tasks Separating aspects V graph pointcuts aspects advice tasks function tasks goals weaving Goal aspects 4. SUMMARY

34 34 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


Download ppt "合久必分,分久必合 Long union must separate, long separation must unite Discovering aspects from requirements goal models Yijun Yu 1 Julio C. S. P. Leite 2 John."

Similar presentations


Ads by Google