27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

should be verified for the possibility of deriving a new<br />

use case;<br />

o Guideline 12.1: A new use case will be generated<br />

if a step represents an activity that requires several<br />

steps to be concluded;<br />

o<br />

o<br />

Guideline 12.2: If the new use case was derived<br />

from a mandatory step, then it must be related to<br />

the original use case through the “include”<br />

relationship;<br />

Guideline 12.3: If the new use case was derived<br />

from an optional step, then it must be related to the<br />

original use case through the “extend”<br />

relationship.<br />

Applying Step 3 to the MobileMedia example, we obtained<br />

the description for the “Add Photo” use case (Table II).<br />

TABLE II.<br />

Use Case 1: Add Photo<br />

CHARACTERISTIC INFORMATION<br />

Primary Actor: User<br />

Feature: Add Photo<br />

Scope: MobileMedia<br />

Pre-condition: -<br />

Success Condition: Photo added to album<br />

PRIMARY SCENARIO<br />

“ADD PHOTO” USE CASE DESCRIPTION<br />

ID User Action System Response<br />

1 Select “Add Photo” option [Add<br />

Photo]<br />

2 Select album [Album]<br />

3 Provide path of photo [Path]<br />

4 Select photo to be added [Photo]<br />

5 - Photo is automatically<br />

saved<br />

[Save<br />

Automatically]<br />

5 Choose for photo [Name] [Save by<br />

User]<br />

Photo is saved with the<br />

chosen name<br />

6 - List of photos is updated<br />

SECONDARY SCENARIOS<br />

RELATED INFORMATION<br />

Non-functional requirements: Integrity [Photo], Accuracy [Path], Quickness<br />

[Storage]<br />

G. Use Case Scenarios Refinement<br />

As it can be observed in Table II, the use case description<br />

generated by the guidelines proposed in the previous activity is<br />

not complete. The system response for some actions is missing,<br />

as well as the secondary scenarios (exceptional and alternative<br />

scenarios). This occurs because i* models are not meant for<br />

modeling behavior or exceptions. Therefore, this activity is<br />

required to complement the use case description.<br />

The scenarios obtained on the previous activity may be<br />

succinct or written on a very high level; it will depend on the<br />

level of refinement achieved in the SR model. Hence, it is<br />

suggested to refine scenario descriptions until they reach the<br />

desired detail level. Due to the lack of space, the refined use<br />

case description for our running example will not be presented.<br />

At the end of this activity, the requirements phase of the<br />

Domain Engineering process is concluded.<br />

H. Product Configuration<br />

This activity is a ctually a su b-process of the Application<br />

Engineering process. It will be executed every time a new<br />

product of the SPL has to be derived. This sub-process is an<br />

adaptation of Lima’s Application Engineering process [11] and<br />

its three activities are described as follows:<br />

1) Choice of Specific Configuration<br />

In this activity, the client chooses the goals to be satisfied<br />

by the new product. There are two heuristics to guide the<br />

configuration:<br />

<br />

<br />

H1: All intentional elements with [1..1] cardinality<br />

must be present in the product configuration model, if<br />

their parent elements have been selected. Elements<br />

with [0..1] cardinality might be present depending on<br />

the stakeholders choices;<br />

H2: Sub-elements of means-end relationships will be<br />

present in the configuration model depending on the<br />

stakeholders choices, but obeying the relationship<br />

cardinality (if it exists);<br />

Depending on the choices made by the client, there may be<br />

more than one possible product configuration, called<br />

alternatives. The SR model of each alternative will be analyzed<br />

in the next activity. In our running example, there are two<br />

alternatives: one with “Save Automatically” task (A1) and<br />

another with “Save by User” task (A2).<br />

2) Prioritization of Variants<br />

In this activity, the alternatives previously obtained are<br />

ranked based on the priority the client gave to the softgoals<br />

present in the SR model. The priority given to a softgoal must<br />

in the interval [0,10]. For each alternative, we have to take into<br />

account the number of positive and negative contributions from<br />

the elements of the SR model to the softgoals, considering also<br />

the degree (e.g.: help, hurt) of each contribution. The formula<br />

to calculate the priority of each variant will not be presented in<br />

this paper due to the lack of space.<br />

The alternative with the highest priority value represents the<br />

most suitable configuration for the client’s desires. For our<br />

example, if the softgoal “Quickness [Storage]” receives the<br />

highest priority, the priority value for A1 will be 7,5 and for A2<br />

will be -7,5. Therefore, the alternative with “Save<br />

Automatically” feature is the most suitable for the client.<br />

3) Product Artifacts Configuration<br />

The purpose of this activity is the derivation of the artifacts<br />

for a specific product of the SPL. First, the configuration model<br />

is generated by eliminating, from the FM, all features that are<br />

not related to elements in the SR model of the chosen<br />

alternative. Then, all cardinality indications must be removed<br />

from the SR model, thus the i* model of the product is<br />

obtained. Finally, only use cases that are related to selected<br />

features will be present on the product’s artifacts. The scenario<br />

655

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!