Title: ????,????%20Long%20union%20must%20separate,%20long%20separation%20must%20unite%20%20Discovering%20aspects%20from%20requirements%20goal%20models
1????,????Long union must separate, long
separation must unite Discovering aspects from
requirements goal models
- Yijun Yu1Julio C. S. P. Leite2
- John Mylopoulos1
2Identify Aspects Early on in the Software
Development Process
Our Result
Aspects can be discovered during goal oriented
requirements analysis
3Overview
- 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 ShoposCommerce
- Summary
41. 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 Dont Repeat YourselfA.
Hunt, and D. Thomas. Pragmatic Programmer.
Addison Wesley,1999. in (Martin Fowler, Avoid
Repetition, IEEE Software, Jan/Feb 2001
pp.9799.)
5DRY
IOC
6MOVE UNTIL
VALUE
FIND
REMOVALL
STRINGCOMP
7Stan Wagons 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_at_macalester.edu), Prof. of
Mathematics and Computer Science, Macalester
College, St. Paul, Minnesota
8(No Transcript)
9AspectJ
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
101.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 gt satisficed
- Soft goal uses HELP (), HURT (-), MAKE () or
BREAK (--) correlations to show partial
satisfaction (satisfice) from a set of subgoals
111.2.1 Hard goal model
121.2.2 Soft goal model
13Goal-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
14FS 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
15V-graph
- In order to reason about interplay of functional
and non-functional requirements, we create a
particular type of goal model, called V-graph
16V
correlation
Softgoal
contribution
contribution
172. 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
18list objectives
root goal
softgoals
softgoals
softgoals
softgoals
goals
?
No
tasks
Yes
No conflict
No
?
Yes
No
?
Consistent
Yes
Satisfied satisficed
V model
softgoals
goals
tasks
193. A Case Study
- Medi_at_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?
20osCommerce (version 2.2m2)
21(No Transcript)
22Candidate aspects in the codeClone detection (by
Semantic Design,Inc)
LOC clones Code description Need refactoring?
1 319 require(path . file) No
1 260 echo expression No
559 2 class email No
2 292 define (variable, value) No
76 2 class mime No
4 67 messageStack-gtadd (error) Yes (NFR)
15 15 Postal code zone check Yes (FR)
22 10 require(application_top.php)SSL check Yes (FR/NFR)
3 64 Set HTML head CHARSET Yes (NFR)
23list objectives
root goal
softgoals
softgoals
softgoals
softgoals
goals
?
No
tasks
Yes
No conflict
No
?
Yes
No
?
Consistent
Yes
Satisfied satisficed
V model
softgoals
goals
tasks
24Correlate initial goals and softgoals
T1
T0
25Inconsistent decomposition
FS
FS
T
FS
FS
T1
26Resolving inconsistency
T
PS
T
FS
T
T
FS
FS
T2
27Further decomposition
T3 T4
28Further
T5
29T6
30Resolving Conflicts
T
CF
T
T
T
T
T
T6
31Result candidate aspects
32Goal Aspects
- goal aspect Responsivenesstransaction
- pointcut transaction() Preparingcart,product
) - CheckingOutcart, product, account,
stock) - required () by transaction()
- SessionCookietransaction()
-
-
- AspectJ-like syntax
- Allow weaving the operationalized tasks with
goals specified in the pointcut
334. SUMMARY
Separatingaspects
goals
softgoals
tasks
V graph
Goal aspects
345. 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