340 likes | 446 Views
合久必分,分久必合 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:.
E N D
合久必分,分久必合Long union must separate, long separation must uniteDiscovering aspects from requirements goal models Yijun Yu1Julio C. S. P. Leite2 John Mylopoulos1
Identify Aspects Early on in the Software Development Process Our Result: Our Goal: Aspects can be discovered during goal oriented requirements analysis
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
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.)]
C C C C C C C Aspect C DRY IOC
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
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
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
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
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
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
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
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
V Goal Task correlation Softgoal contribution contribution
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
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
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
Candidate aspects in the codeClone detection (by Semantic Design,Inc)
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
T PS T FS T FS T FS T2 Inconsistent decomposition FS FS T FS FS T1
T FS T FS T T FS FS T3 Resolving inconsistency T PS T FS T T FS FS T2
Further decomposition T3 T4
Further… T5
T FS T T T T T T7 Resolving Conflicts T CF T T T T T T6
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
pointcuts goals aspects weaving functiontasks advicetasks aspects 4. SUMMARY Separatingaspects goals softgoals tasks V graph Goal aspects
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