Upload
shana-nash
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
1
IntroductionIntroduction
Next week Paper:Next week Paper:
How do software architects consider non-functional requirements: An exploratory study
Ameller, D. ; Software Eng. for Inf. Syst. Group, Univ. Politec. de Catalunya, Barcelona, Spain ; Ayala, C. ;
Cabot, J. ; Franch, X.
Requirements Engineering Conference (RE), 2012 20th IEEE International
Trial
This Trial contends that managers, across all functions, choose those solutions which yield short term upswings yet do not necessarily deliver the best long term results. Specifically,
managers within the technology sector are less likely to adopt projects which generate long term gain if the short term results incur high costs, lower profit margins and impact managerial
incentive pay.
Team 1: This is true and explain why very few experienced solutions are not implemented by industries
Team 2: This is not true hence there are other aspects driving companies not to adopt these solutions
2
3
What are Non-Functional Requirements ?What are Non-Functional Requirements ?What are Non-Functional Requirements ?What are Non-Functional Requirements ?
• NFRs are also known as Quality Requirements [Chung 93] [Boehm 96].
• Unlike Functional Requirements, Non-Functional requirements states constraints to the system as well as particular behavior that the system must have.
• Non-Functional Requirements are always together with a Functional Requirement [EAGLE 95][Chung 00].
4
NFRs are important for the success of the system !!
NFRs are important for the success of the system !!
Non-Functional Requirements examples
• Time to Market
• Reliability
• Security
• Modularity
• Portability
• Size
• Safety
• Testability
• Mobility
• Standard compliant
• Robustness
• Complexity
• Learnability
• Adaptability• Architectural integrity• Cost• Configurability• Efficiency• Maintainability• Flexibility• Profitability• Performance• Usability• Understandability• Risk• Resilience• Reusability
5
Why bother with Non-Functional Requirements
6
A Recent Press Release
WASHINGTON (AP, Jan 17th 2002) -- Microsoft's chairman, Bill Gates, is steering his software empire onto a new strategic heading, putting security and privacy ahead of new capabilities [new functionality] in the company's products.
In an e-mail to employees obtained by The Associated Press, Gates refers to the new philosophy as "Trustworthy Computing" and says his highest priority is to ensure that computer users continued to venture safely across an increasingly Internet-connected world.
7
The London Ambulance System was deactivated just after its deployment because, among other reasons, many non-functional requirements were neglected during the system development
e.g. reliability (vehicles location), cost (emphasis on the best price), usability (poor control of information on the screen), performance (the system did what was supposed to do but he performance was unacceptable), [Finkelstein 96] [Breitman et all 99].
Another case neglecting non-functional requirements (NFRs)
8
Nowadays, the market demands more and more non-functional
aspects to be implemented in information systems besides its
functionality.
Works [Dardene 93] [Mylopoulos 92] [Chung 95] have shown
that complex conceptual models must deal with non-functional
aspects.
This Non-Functional aspects should be dealt within the
process of Non-Functional Requirements (NFR) definition.
Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?
9
Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?
Errors due to omission of NFRs or to not properly dealing with them are among the most expensive type and most difficult to correct [Mylopoulos 92] [Ebert 97] [Cysneiros 99].
Many works point out that early-phase Requirements Engineering should address organizational and Non-Functional Requirements, while later-phase focus on completeness, consistency and automated verification of
requirements [Yu 97].
10
Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?Why Non-Functional Requirements ?
Interdependencies between NFRs must be identified and dealt with.
For Example :
A Clinical Analysis Lab information system has the following Functional Requirement.
• The system must have a file containing all the clients to be used by the Marketing Division.
Together with this Functional Requirements we have the following NFR:
• This file must be complete enough to allow the Marketing Division to prospect new clients.
But an NFR associated with the Client’s attendance states:
• Patient’s admission must last less then 4 minutes.
11
• Suppose we are dealing with a Clinical Analysis Laboratory software system.
• There will be a Functional Requirement:• “The System must provide a data entry to input the results of tests
into patient’s report”
• Associated to this Requirement one may find the following Security NFR:• “Depending on the result of a test only the supervisor will be
allowed to input this value to the patient’s report”
Functional x Non-Functional RequirementFunctional x Non-Functional RequirementFunctional x Non-Functional RequirementFunctional x Non-Functional Requirement
12
Eliciting is not Enough
• Integrating NFRs into data models can help to get software deployed faster and with lower development costs [Cysneiros 99].
13
A New StrategyA New Strategy
• We propose a strategy to deal with NFR since the early stages of software development
• The first part presents some heuristics to elicit NFR and a systematic way to search for interdependencies
Uses the Language Extended Lexicon (LEL) [Leite 93] as an anchor for the definition of the non-functional model
• The second part presents some heuristics to integrate NFRs into conceptual models
Also uses the LEL as an anchor to build the functional model Extends the scenario model [Leite 97], the class, sequence and collaboration
diagrams [Rumbaugh 99] to deal with NFR
14
The Proposed Strategy
15
LELLEL
NFRGraphNFR
Graph
ScenariosScenarios
New Episodes,Resources and
Actors
New Episodes,Resources and
Actors
Class Diagram
Class Diagram
New Classes,Operations and
Attributes
New Classes,Operations and
Attributes
SequenceDiagramSequenceDiagram
CollaborationDiagram
CollaborationDiagram
NFR and its impacts
NFR and its impacts
Functional ViewFunctional View
Non-Functional View Non-Functional View
Use CasesUse Cases
New Actors
and Use Cases
New Actors
and Use Cases
New Classes,and messagesNew Classes,and messages
16
Building the Non-Functional ViewBuilding the Non-Functional View
LELKnowledge
Base onNFRs
Primary NFRLELSymbol
LEL withNFRs
NFRGraph
Interdependencies
Changes due to ConflictResolution
1 2 3
Introduce NFRsin the LEL
Represent NFR
Knowledge on the Problem
Identify and SolveConflicts
Client
New NotionsNew Behavioral ResponsesNew Symbols
Positive and Negative InfluencesConflictsDesign Decisions
17
NFR TaxonomyNFR Taxonomy
• A NFR can be classified as:• Dynamic NFR
Are those that deal with more abstract concepts and frequently demands an action to be
• Static NRR This type of NFR always demands some information to be
used, usually in a persistent way
18
Language Extended Lexicon (LEL)Language Extended Lexicon (LEL)
• Aims to register the vocabulary used in the UofD• It is based on a system of symbols composed of Notions
and Behavioural Responses• Notions specify the meaning of the symbol (denotation)• Behavioural Responses register the results driven from the
symbol utilization (connotation)• Its construction is based on the minimum vocabulary and
circularity principles
19
LEL – Proposed ExtensionLEL – Proposed Extension
• We now register Primary NFR in the notion of the symbols• We register the fact that a notion or a behavioural response
is stated for satisfying an NFR from another symbol (eventually from the same symbol)
• We can now show what notions and behavioural responses are necessary to satisfy an NFR
20
Building the Non-Functional ViewBuilding the Non-Functional View
LELKnowledge
Base onNFRs
Primary NFRLELSymbol
LEL withNFRs
NFRGraph
Interdependencies
Changes due to ConflictResolution
1 2 3
Add NFRsto the LEL
Represent NFR
Knowledge on the Problem
Identify and SolveConflicts
Client
New NotionsNew Behavioral ResponsesNew Symbols
Positive and Negative InfluencesConflictsDesign Decisions
21
Add NFRs to the LELAdd NFRs to the LEL
• To each symbol of the LEL :– Check if any NFR may be necessary in this symbol. The
Knowledge Base may be used to help it.
– If it is true, represent it in the Notion
– Evaluate the possible consequences in this symbol and in other symbols due to NFR satisfaction
– Establish a dependency link between these notion and behavioural Reponses to this NFR
22
ExampleExample
What NFR is Needed ?
23
24
Building the Non-Functional ViewBuilding the Non-Functional View
LELKnowledge
Base onNFRs
Primary NFRLELSymbol
LEL withNFRs
NFRGraph
Interdependencies
Changes due to ConflictResolution
1 2 3
Add NFRs to the LEL
Represent NFR
Knowledge on the Problem
Identify and SolveConflicts
Client
New NotionsNew Behavioral ResponsesNew Symbols
Positive and Negative InfluencesConflictsDesign Decisions
25
Represent NFRRepresent NFR
• We use the NFR Framework• NFR are represented using a graph structure very similar to the
And/Or trees used in problem solving• NFR are faced as softgoals that might be decomposed into more
refined subgoals until we get the subgoals that will represent how this NFR will be operationalized (its operationalizations)
• One system can have (usually does) n graphs Satisfice
• NFR are rarely 100% satisfied X
Satisfy • Some proposed extensions
Always use a symbol of the LEL to represent an NFR Topic Represent above the graph the actor(s) responsible for the
knowledge represented in the graph Introduces the concept of Dynamic and Static Operationalizations
26
S Safety [Room]
Safety [Room. Light scene. Current light scene >= Safe Illumination]
Safety [Malfunction of OLS. All CLG set on]
Safety [Room. Malfunction]
S Safety
[Light Scene. Safe Illumination=14 Lux]
S
S
S
S S Safety
[Malfunction.Malfunction of OLS ]
Safety [Malfunction. Motion Detector]
S Safety [Malfunction. User. Get informed]
S Safety [Room.
Control Panel]
Safety [Located Near the Door]
S
S Safety [Malfunction. FM Get informed]
Facility Manager Actor who was the source of the KnowledgeActor who was the source of the Knowledge
Topic has to be a symbol of the LELTopic has to be a symbol of the LEL
Dynamic Operationalization
Dynamic Operationalization
Static Operationalization
Static Operationalization
S = SatisficedP = PartiallyD = Denied
S = SatisficedP = PartiallyD = Denied
27
How to Create a GraphHow to Create a Graph
Safety [Room]
28
SSafety[Room]
A First DecompositionA First Decomposition
Safety [Room. Light scene.
Safety[Room. Malfunction] S S
S Safety[Room.
Control Panel]
29
Second decomposition
SSafety[Room]
Safety [Room. Light scene.
Safety[Room. Malfunction] S S
S
Safe Illumination]
S Safety
[Light Scene. Safe Illumination=14 Lux]
S S Safety
[Malfunction.Malfunction of OLS ]
Safety [Malfunction. Motion Detector]
Safety [Located Near the Door]
S
S Safety [Malfunction. FM Get informed]
Safety [Room. Control Panel]
30
S Safety [Room]
Safety [Room. Light scene. Current light scene >= Safe Illumination]
Safety [Malfunction of OLS. All CLG set on]
Safety [Room. Malfunction]
S Safety
[Light Scene. Safe Illumination=14 Lux]
S
S
S
S S Safety
[Malfunction.Malfunction of OLS ]
Safety [Malfunction. Motion Detector]
S Safety [Malfunction. User. Get informed]
S Safety [Room.
Control Panel]
Safety [Located Near the Door]
S
S Safety [Malfunction. FM Get informed]
Facility Manager
Final VersionFinal Version
31
Building the Non-Functional ViewBuilding the Non-Functional View
LALKnowledge
Base onNFRs
Primary NFRLELSymbol
LEL withNFRs
NFRGraph
Interdependencies
Changes due to ConflictResolution
1 2 3
Add NFRsto the LEL
Represent NFR
Knowledge on the Problem
Identify and SolveConflicts
Client
New NotionsNew Behavioral ResponsesNew Symbols
Positive and Negative InfluencesConflictsDesign Decisions
32
Identify and Solve ConflictsIdentify and Solve Conflicts
1. Compare graphs with the same type (ex: Performance)
2. Using the Knowledge Base (But not limited to) compare graphs with conflicting types (Ex: Security and Performance or Usability)
3. Pair wise graphs
For each of the above heuristics:– Register positive and negative interdependencies
– Try to solve possible conflicts (negative interdependencies)
33
Example Example
POp. Restriction[ Patient’s Report]
PTime Restrictions[ Print Patient’s Report]
Manager of the Medical Bureau
D Claim [As soon as al the resultsare ready and reviewed the reportmust be printed]
P Time restrictions[LIS. Eletronicaly Signs Patient’s Report]
STime restrictions[ Medical Bureau . . Eletronicaly Signs Patient’s Report]
STime restrictions[LIS. Printing queue for Patient’s Report]
STime restrictions[ Medical Bureau . . Eletronical Signature]
S
Reliability[ Eletronicaly sign Patient’s Report]S
Reliability[test]
S Reliability[Range to be Eletronicaly signed]
S-
Reliability[LIS . signs if all results are within range]
Manager of the Processing Area
PTime Restrictions[Results Ready]
P PTime Restrictions[Results to Inspect]
Time Restrictions[ Admitted Tests]
34
Using Catalogues – Another Alternative
Softgoal
Operationalization
Claim
Contribution Link
Correlation Link
35
36
Traceability[ Who entered results]
S
Traceability[ Changes]
S
Traceability[ Test Results]S
Traceability[ When results Changed]
STraceability[What Results]S
STraceability[ Store Identification of ALL Who entered results]
S Traceability[ Store Date and time of ALL result changes]
Traceability[ Store ALL results]S
37
Extending Functional View ModelsExtending Functional View Models
38
Extending Use CasesExtending Use Cases
• Every use case or actor included, due to NFR satisfaction, must be followed by an expression using the pattern: {NFR_Type[NFR_topic]}.
• Represent Special Conditions that must prevail to an Use Case as a note linked to this Use Case, using whenever possible OCL to describe these conditions– Ex: In a Clinical Lab system
• Before accepting a test result the system must:– Check if employee works for the sector performing the test
– Check if inputted result is within a safe range
39
ExampleExample
Pick Up a PatientProcessing Area
Employee
Verify Access
Set Result
Check Sector
LIS
{Security[Input Results]}
{Security[Input Results]}
Check If results are in Range{Security[Input Results]}
{pre: (employee.sector=test.sector AND test.result in est.saferange) OR employee.position=“SM”}{Security[Input Results]}
40
Extending Scenarios [Leite 97]Extending Scenarios [Leite 97]
• Every change in a scenario due to an NFR satisficing must be followed by the expression :
Constraint: {NFR[Topic]}
• Reason: Traceability between models
41
Title
Goal
Actors
Resources
Episodes
42
Extending the Class DiagramExtending the Class Diagram
• Every class will be named using a symbol of the LEL• Classes created due to an NFR satisficing will be follwed by the
same traceability pattern used in scenarios.
StatusLine
Place : IntegerCLG1 : BooleanCLG2 : Boolean
SetCLGOn (Number) {Usability [Room Control Panel]}
SetCLGOff (Number) {Usability [Room Control Panel]}
{Usability [Room Control Panel]}
43
• Operations that are in the class due to an NFR satisficing will always be followed by the same kind of expression used in scenarios : {NFR[Topic]}
• We may have to represent special conditions that hold for an operation. These conditions will be represented between {} and must use, whenever possible, expressions written using OCL
• If these conditions impose a significant loss of space, we might represent them inside a note
Extending the Class Diagram (cont.)Extending the Class Diagram (cont.)
44
ExampleExample
SetRoomAsOccupied() pre: malfunction of Msensor
Increment_people() Pre: Motion sensor sends signalPost:NR_i_people=NR_i_people@pre+1
Decrement_people()Pre: Motion sensor sends signalpost: NR_i_people=NR_i_people@pre-1
SetRoomAsOccupied() pre: malfunction of Msensor
Increment_people() Pre: Motion sensor sends signalPost:NR_i_people=NR_i_people@pre+1
Decrement_people()Pre: Motion sensor sends signalpost: NR_i_people=NR_i_people@pre-1
Place
AdviseUserofMalfunction() {Safety [Room]}AdviseFMofMalfunction {Safety [HS]GetOLSValue() {Op.Cost [Control System]}SetRoomAsOccupied() {Accuracy [Room]}Increment_people() {Accuracy [Room]}Decrement_people() {Accuracy [Room]}TurnOnEmergency() : voidQuit() : voidTurnOff() : void
45
The Integration MethodThe Integration Method
46
Integrating NFR into Use CasesIntegrating NFR into Use Cases
NFRsGraph
Pick up aUse Case Diagran
Use CaseDiagram
Identify LEL symbols that appearsin Use Cases Names andActors
Use Cases NamesAcotrs
New Use Cases or actors Special Conditions
New scenario
Do it until there is no Use Case Diagram left to analyze
1
2
3
4
Evaluate again
5
6
7
Pick upnext graphthat applies
NFR graph whereThe symbols appears
Dynamic Operationalizations
New decisions onNFRs satisficing
Analyze possible impacts due to inclusions made in the Use Case Diagram
Evaluate necessary inclusions sto satisfice this NFR in theUse Case Diagram
47
Example of Integration into Use Cases Example of Integration into Use Cases
Split Samples According to Sector
Take Samples to Sector
Place Samples in Trays
Sorting Area Employee
Get Samples
Processing Area Employee
S Traceability[Sample]
S STraceability[Moviment ]
Traceability[Alicoting ]
STraceability[Scan sample everytime it moves from place to place
S Traceability[Place where it was ]
STraceability[Place where it went to ]
S Traceability[Who scanned]
Manager of the Processing AreaManager of Quality Assurance
48
Example of Integration into Use Cases (Cont.)Example of Integration into Use Cases (Cont.)
Split Samples According to Sector
Take Samples to Sector
Scan Samples
Place Samples in Trays
Sorting Area Employee
Get Samples
Processing Area Employee
{Traceability[Sample]}
49
Integrating NFR into ScenariosIntegrating NFR into Scenarios
NFRsGraph
Pick up ascenario
Scenarios
Analyze cenários with titles that has LAL symbolswhich appears in an NFR graph
Scenario title
Scenario
New episodes,actors and resources
New scenario
Do it until there is no scenario left to analyze
1
2
3
4
Evaluate again
5
6
7
Pick upnext graphthat applies
NFR graph whereThe symbol appears
Dynamic Operationalizations
New decisions onNFRs satisficing
Analyze possible impacts due to inclusions made in the scenario
Evaluate necessary inclusions sto satisfice this NFR in thescenario
50
Example of Scenarios IntegrationExample of Scenarios Integration
S Safety[
S Safety[
>=14 lux]
SSafety
Calculate LuxValue]
S
Safety
LuxValue]
SS Safety[ Dim Lights]
SS Safety[ Dim Lights.
Room. Illumination >=14 lux]
SSSafety[Room.Calculate LuxValue]
SS[Room.
]
51
Example of Scenarios Integration (Cont.)Example of Scenarios Integration (Cont.)
52
Integrating NFR into Class DiagramIntegrating NFR into Class Diagram
NFRGraphs
NFR Graphwhere the name of the chosen class appears
Static Operationalizations Dynamic Operationalizations
Class Diagram
Class, Attributes and Operations
New classes, attributes e and operations
NewDesign
Pick up aClass
Evaluate necessary inclusions sto satisfice this NFR in theclass diagram
Analyze possible impacts due to inclusions made in the class diagram
New decisions onNFRs satisficing
Evaluate again
Class
Look for NFRs that applies to this class
Do it until there is no classes left to analyze
Pick upnext graphthat applies
1
2
3
4
5
6
7
53
Sequence and Collaboration DiagramsSequence and Collaboration Diagrams
1
ClassDiagram
Pick upa classe with NFR
Operations due toNFRs satisficing
SequenceDiagram
Colaboration Diagram
Verify if operationrequires anymessages or special conditions to be included
New Messages /New Classes
Special Conditions
Special conditions2
New Messages /New Classes
54
Examples From a Case StudyExamples From a Case Study
55
Strategy ValidationStrategy Validation
• Strongly based on the replication project principle [Basili 96]• 3 different case studies• 2 in vitro (Controlled Environment)• 1 in vivo (Real Application Environment)• In all the 3 cases we used conceptual models built by the other
teams and we applied the proposed strategy– We built the Non-Functional View
– We integrated the NFRs from this view into the conceptual models developed by the other teams
56
Case StudiesCase Studies
• Case Study I Light Control System following a proposal presented in a Dagstuhl Seminar.
Conducted by Breitman [Breitman 00] as one of the case studies of her Ph.D. thesis.
• Case Study II Another specification of Light Control System, built by a group of
undergraduate students from the Computer Science Course of PUC_Rio
• Case Study III A Laboratory Information System (LIS) developed by a team from a software
house specialized in this domain. We used the conceptual model restricted to the processing area
57
Details on Case Study IIIDetails on Case Study III
• We built the LEL with the NFR using structured interviews and existing documentation
• From this LEL we built the set of NFR graphs• We validated these graphs together with the stakeholders• After validation we did the integration between the functional
and the non-functional views• Several changes were made in the existing class diagram
58
Integrating NFR into Use CasesIntegrating NFR into Use Cases
SSecurity[Input Results]
S Security[Check if employee isauthorized ]
SSecurity[Acess information]
S
Pick Up a Patient
Verify Access
Processing Area Employee
Set Results
LIS
Security[Regular Check]
S
Security[aditional Check]
SSecurity[Check if result is within permited value ]
Security[Test. Safe Range]
S
SSecurity[Minimum] S
Security[Maximum]
Security[Check if is employee is from the same sectorwhere the test is processed]
S
SSecurity[Test. Sector]
SSecurity[Employee.Sector]
Manager of BiochemestryManager of Hematology
SSecurity[Employee. Position=“SM”]
Input Results Use Case Diagram
Input Results Use Case Diagram
59
Resulting Use Case DiagramResulting Use Case Diagram
Pick Up a PatientProcessing Area
Employee
Verify Access
Set Result
Check Sector
LIS
{Security[Input Results]}
{Security[Input Results]}
Check If results are in Range{Security[Input Results]}
{pre: (employee.sector=test.sector AND test.result in est.saferange) OR employee.position=“SM”}{Security[Input Results]}
60
Using Another NFR GraphUsing Another NFR Graph
SValue[Test Result]
S
SValue[Automatic Assignment]
Value[LIS.Check if Value is within range]
D
Claim[“Only results within certain limits can be assigned to patient’s report without review]
S Value[Normal Range]
SValue[LIS.Tag resultsout of Normal Range]
SValue[Repeat Test]
SAccuracy[LIS. Mark Test to be repeated]
S Accuracy[LIS.Send Test to be repeatedto Analyzer]
SReliability[Test Result]
SCorrectness[Test Result]
Manager of the Processing area
61
Part of the Resulting Use Case Diagram
Pick Up a PatientProcessing Area
Employee
Verify Access
Set Result
Check Sector
LIS
{Security[Input Results]}
{Security[Input Results]}
Check If results are in Range{Security[Input Results]}
Tag Results Out of Range{Reliability [Test Result]}
Mark Test To be Repeatedt{Reliability [Test Result] }
{pre: (employee.sector=test.sector AND test.result in est.saferange) OR employee.position=“SM”}{Security[Input Results]}
62
Using the Strategy on the Class “Result to Inspect”Using the Strategy on the Class “Result to Inspect”
S Traceability[Result to Inspect]
STraceability[LIS. Keeps historical
Log of who hasassigned which results]
S
Traceability[ Log of Inspection ]
Manager of Biochemestry
S
Traceability[Who used]
S STraceability
[When used]
Traceability[Which Result]
Result to Inspect
SampleNumberTestResult
InputResult()AssigntoAdmittedTest()ReadFromAnalyzer()
SetResult()
AskResult()
Log of Inspection
SampleNumberDate TimeTestResultEmployee
CreateLog()AddRegistertoLog()SearchbySample()SearchbyPatient()SearchbyDate()
{Traceability [Inspect Tests]}
63
Using the Strategy on the Class “Medical Bureau”Using the Strategy on the Class “Medical Bureau”
POp. Restriction[Patient’s Report]
PTime Restrictions[Print Patient’s Report]
Manager of the Medical Bureau
D Claim [As soon as al the resultsare ready and reviewed the reportmust be printed]
P Time restrictions[LIS. Eletronicaly Signs Patient’s Report]
STime restrictions[Medical Bureau Doctor. Eletronicaly Signs Patient’s Report]
STime restrictions[LIS. Printing queue for Patient’s Report]
STime restrictions[Medical Bureau Doctor. Eletronical Signature]
SReliability[Eletronicaly sign Patient’s Report]
SReliability[test]
S Reliability[Range to be Eletronicaly signed]
S
-
Reliability[LIS . signs if all results are within range]
Manager of the Processing Area
PTime Restrictions[Results Ready]
P PTime Restrictions[Results to Inspect]
Time Restrictions[Admitted Tests]
Medical Bureau
ReviewPatientReport()PrintDelayedReport()PrintPromissedReport()
NR_EletSignature {Op. Restriction [Patient’s Report] }
GetSignature {Op. Restriction [Patient’s Report]}
SetSignature {Op. Restriction [Patient’s Report]}
64
: Medical Bureau
: Visit : Admitted Tests : Patient's Report
: Sector
* GetSampleNumber( )
GetAdmittedTests( )
GetResult( )
[If OK] PrintPatientReport( )
[ If Not OK] SetPatienttoReview( )
Review Patient Report
Applying the Strategy on Sequence DiagramsApplying the Strategy on Sequence Diagrams
65
: Medical Bureau
: Visit : Admitted Tests : Patient's Report
: Sector
* GetSampleNumber( )
GetAdmittedTests( )
GetResult( )
[If OK] PrintPatientReport(NR_EletSignature)
[ If Not OK] SetPatienttoReview( )
GetSignature( ) {Op. Restriction [Patient's report]}
Review Patient Report
66
Consolidating the Case StudiesConsolidating the Case Studies
• 46% of the Existing Classes were somehow changed • 45% more operation• 37% more attributes• Estimated Overhead of 7%
Case Study III1728 hours/man to build the functional view121 hours/man to build the non-functional view and to integrate it to the
functional viewCompatible with the overhead of 10% found in a previous case study
[Cysneiros 01]
67
[Basili 91] Basili, V. and Musa, J. “The Future Engineering of Software a Management Perspective”, IEEE Computer 24 1991 pp:90-96
[Boehm 76] Boehm, B., Brown, J.R. and Lipow, M. “Quantitative EVALUATION OF Software Quality” in Proc. of 2nd International Conference on Soft. Eng. San Francisco, oct 1976, pp:592-605.
[Boehm78] Boehm, B. Characteristics of Software Quality. North Holland Press, 1978 [Boehm96] Boehm, Barry e In, Hoh. Identifying Quality-Requirement Conflicts. IEEE Software, March 1996, pp. 25-35 [Breitman et al 99] Breitman,K. K., Leite J.C.S.P. e Finkelstein Anthony. The World's Stage: A Survey on Requirements
Engineering Using a Real-Life Case Study. Journal of the Brazilian Computer Society No 1 Vol. 6 Jul. 1999 pp:13:37. [Breitman 00] Breitman, K.K. "Evolução de Cenários" Ph.D. Theses at PUC-Rio May 2000. [Chung 93]Chung L., “Representing and Using Non-Functional Requirements: A Process Oriented Approach” Ph.D.
Thesis, Dept. of Comp.Sci. University of Toronto, June 1993. Also tech. Rep. DKBS-TR-91-1. [Chung 95] Chung, L., Nixon, B. “Dealing with Non-Functional Requirements: Three Experimental Studies of a Process-
Oriented Approach” Proc. 17th Int. Con. on Software Eng. Seatle, Washington, April pp: 24-28, 1995. [Chung 00] Chung, L., Nixon, B., Yu, Eric and Mylopoulos, M. “Non-Functional Requirements in Software Engineering”
Kluwer Academic Publishers 1999. [Cysneiros 99] Cysneiros, L.M. and Leite, J.C.S.P. ‘Integrating Non-Functional Requirements into data model” 4 th
International Symposium on Requirements Engineering – Ireland June 1999. [Cysneiros 01] Cysneiros,L.M., Leite, J.C.S.P. and Neto, J.S.M. “A Framework for Integrating Non-Functional
Requirements into Conceptual Models” Requirements Engineering Journal – Vol 6 , Issue 2 Apr. 2001, pp:97-115. [Dardenne 93] Dardenne, A.. van Lamsweerde A, Fickas, S.. “Goal Directed Requirements Acquisition”.
Science of Computer Programming, Vol. 20 pp: 3-50, Apr. 1993. [Dobson 91] Dobson, J.E. “On Non-Functional Requirements” PDCS Techinical Report Series University of Lancaster No
65 May 1991. [EAGLE 95] Evaluation of Natural Language Processing Systems, http://www.issco.unige.ch/ewg95 1995. [Ebert97]Ebert, Christof. Dealing with Nonfunctional in Large Software Systems. Annals of Software Engineering, 3,
1997, pp. 367-395. [Finkelstein 96] Finkelstein, A. and Dowell J. “A comedy of Errors: The London Ambulance Service Case
Study” Proceedings of the Eighth International Workshop on Software Specification and Design, IEEE Computer Society Press pp 2-5 1996
References
68
Hauser 88] Hauser, J.R. and Hsiao, K. “The House of Quality”harvard Business review, May 1998 pp:63-73
[Keller 90] Keller, S.E. et al “Specifying Software Quality Requirements with Metrics” in Tutorial System and Software Requirements Engineering IEEE Computer Society Press 1990 pp:145-163
[Kirner 96] Kirner T.G. , Davis A .M. , “Nonfunctional Requirements of Real-Time Systems”, Advances in Computers, Vol 42 pp 1-37 1996.
[Leite 93] Leite J.C.S.P. and Franco, A.P.M. “A Strategy for Conceptual Model Acquisition ” in Proceedings of the First IEEE International Symposium on Requirements Engineering, SanDiego, Ca, IEEE Computer Society Press, pp 243-246 1993.
[Leite 97] Leite, J.C.S.P. et.al. ” Enhancing a Requirements Baseline with Scenarios.” Requirements Engineering Journal, 2(4):184-198, 1997.
[Lindstrom93] Lindstrom, D.R. Five Ways to Destroy a Development Project. IEEE Software, September 1993, pp. 55-58.
[Mylopoulos 92] Mylopoulos,J. Chung, L., Yu, E. and Nixon, B., “Representing and Using Non-functional Requirements: A Process-Oriented Approach.” IEEE Trans. on Software Eng, 18(6), pp:483-497, June 1992.
[Rumbaugh 99] Rumbaugh, J., Jacobson, I. and Booch,G. "The Unified Modeling Language Reference Manual" , Addison-Wesley, 1999.
[Sommerville 92] Sommerville, I. “Software Engineering” fourth edition, Addison-Wesley, 1992. [Yu 95] Yu, E., Bois, P. and Mylopoulos, J. “From Organizational Models to System Requirements” The 3rd International
Conference on Cooperative Information Systems, Vienna, May 1995 [Yu 97] Yu, Eric “Towards Modelling and Reasoning Support for Early-Phase Requirements Engineering” Proc. of the
3rd Interna. Symp. on Requirements Eng. Jan 1997 pp:226-235