Download presentation
Presentation is loading. Please wait.
Published byDiana Lambert Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.