Académique Documents
Professionnel Documents
Culture Documents
Analysis in the context of development processes (UP, RUP, XP) OOA (part 2)
Wolfram Webers
October, 2008
11/4/09
Wolfram Webers
October, 2008
Those concerned with the management of the project Those concerned with the poor quality of the delivered product
Wolfram Webers
October, 2008
11/4/09
Lifecycle models are subdivision of processes The waterfall model is one traditional approach It was developed late 1960s Problem: Once a phase is finished you cannot go back
They are by no mean iterative, but incremental Can lead to ad-hoc coding
Wolfram Webers
October, 2008
11/4/09
Prototyping involves iterations during the system development Prototypes are partial solutions of the final system
Danger:
Just the user interface (Lo-fi prototype) Limited data processing (Hi-fi prototype) Limited operational functions (Hi-fi prototype)
prototypes can be assumed as the final product after the prototype is discarded, the development efforts so far is wasted time
Wolfram Webers
October, 2008
Perform an initial analysis Define prototype objectives Specify prototype Construct prototype Evaluate prototype and recommend changes
Wolfram Webers
October, 2008
11/4/09
Introduced by Barry Boehm in 1981 Similar activities as in waterfall model, but evolutionary approach and risk management added
Wolfram Webers
October, 2008
The UP reflects the current emphasis on iterative and incremental lifecycles Is built upon spiral model
Idea
Architecture
Prototype
Wolfram Webers
Product
October, 2008 10
11/4/09
Construction Transition
Refined vision, iterative implementation of the core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates Iterative implementation of the remaining lower risk and easier elements, preparation for deployment Beta test, deployment
Wolfram Webers
October, 2008
11
Milestone: Iteration endpoint. Significant decision or evaluations Release: Stable executable subset of the final product Increment: Difference between releases of two subsequent iterations Final Product Release: system is released for production use
Development Cycle Iteration Phase
Inception
Elaboration
Construction
Transition
Wolfram Webers
October, 2008
12
11/4/09
Built upon disciplines A discipline is: a set of activities (and related artifacts) in one subject area Some literatures replaces the term discipline with workflow
Wolfram Webers
October, 2008
13
Business modelling
Understand the structure and the dynamics of the organisation Ensure that customers, end users, and developers have a common understanding of the organisation
Requirements
Come to an agreement with customer what the system should do Give developers a better understanding of the system requirements Define the functionality of the system Provide a basis for planning of the technical contents of the iterations Provide a basis for estimating cost and time to develop the system Define a user interface for the system
Wolfram Webers
October, 2008
14
11/4/09
Implementation
Translate requirements into specification describing how to implement the system Select the best implementation strategy Adjust the design to match performance, scalability, robustness, etc. Define organisation of the code (implementation modules) Implement classes and objects in terms of components Test components as units Integrate into an executable system
Wolfram Webers October, 2008 15
Test
Verify interaction between objects and components Verify proper integration of all components Verify that all requirements have been correctly implemented Identify defects; ensure defect removal before deployment
Wolfram Webers
October, 2008
16
11/4/09
Wolfram Webers
October, 2008
17
Discipline
Artifact
Incep.
Elab. s
Const.
Trans.
Business Modelling Domain Model Requirements Use Case Model Vision Supplementary Specification Glossary Analysis & Design Design Model (opt. Analysis Model) SW Architecture Document Data Model Implementation Project Management Testing Implementation Model SW Development Plan Test Model s s s s s
r r r r s s s s r s r r r r r r r
s=Start, r=Revise
Wolfram Webers October, 2008 18
11/4/09
Derivates:
OpenUP (Eclipse Process Framework) EssUP (Essential UP, Ivar Jacobsson) AUP (Agile UP) OUP (Oracle UP)
Wolfram Webers
October, 2008
19
Introduced by Kent Beck in 2000 Extreme Programming (XP) takes an extreme approach to iterative development:
New versions may be built several times per day Increments are delivered to customers every 2 weeks All tests must be run for every build and the build is only accepted if tests run successfully
Wolfram Webers
October, 2008
20
10
11/4/09
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
[] While there is value in the items on the right, we value the items on the left more.
Wolfram Webers
October, 2008
21
User Stories:
customer defines use cases; basis for release planning and acceptance testing spike solutions are created to figure out answers to tough technical or design problems based on user stories; sequence of realisation of the stories, small releases
Wolfram Webers
October, 2008
22
11
11/4/09
Iteration Planning:
based on the release planning, each iteration is planned a dozen iterations of 1 to 3 weeks length Daily stand-up meetings, collective code ownership, pair programming, daily integration tests, merciless refactoring
October, 2008
23
Requirements Scenarios
In XP, user requirements are expressed as scenarios or user stories These are written on cards and the development team break them down into implementation tasks. These tasks are the basis of schedule and cost estimates The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates
Wolfram Webers
October, 2008
24
12
11/4/09
XP release cycle
Wolfram Webers
October, 2008
25
Wolfram Webers
October, 2008
26
13
11/4/09
Wolfram Webers
October, 2008
27
Strengths:
Weaknesses:
Customer intensively integrated in development process Allows customer and developer to determine and to react to risks at each evolutionary level Improved code quality (pair programming and unit testing) Customer has to fulfil both user and client roles Increased productivity (pair programming) Continuous integration of customer
Wolfram Webers
October, 2008
28
14
11/4/09
Structured methods
OO methods
Describe problem domain conceptually Abstract from implementation constraints Source can be written requirements specifications, interviews with stakeholders, etc. Result in what the system is functionally required to do
Use cases, Class diagrams, Activity diagrams, Interaction diagrams, UImock-up (lo-fi-prototypes)
Wolfram Webers
October, 2008
29
Wolfram Webers
October, 2008
30
15
11/4/09
Requirements Analyst
Prototype Designer
Elicit Requirements
Interface Prototype
Requirements List
Evaluate Prototypes
System Architect
Develop Architecture
Requirements Model
Use Case Model
Requirements Team
Use Case Collaborations Requirements List Prepare communication diagrams Communication Diagams Prepare use case class diagrams Use Case Class Diagrams
Interface Prototype
16
11/4/09
For enhancing the analysis modes by classes, we need to Useful stereotypes for analysis classes
Boundary classes: <<boundary>> Entity classes: <<entity>>
are used to present an interface to the users/actors are used to represent arbitrary entities used by the system are used to represent control-mechanisms inside the system
Category People Organizations Structures Physical things Abstractions of people Abstractions of physical things Conceptual things Enduring relationships between members of other categogies
Examples Mr. Harmsworth Jones & Co, DfS AB Team, project, assembly truck, drill, t-shirt Employee, supervisor, customer, client Wheeled vehicle, hand tool Campaign, employee, rule, team, project Sale, purchase, contract, campaign, agreement, assembly
17
11/4/09
CRC cards can be used to determine classes They are used by in role-playing session During those session, the determined usecases are analyzed
Class Name: Responsibilities: Responsibilities of the class are listed up here Collaborations: Collaborations with other classes are listed up here, together with a brief description of the purpose of the collaboration
A responsibility is a high level description of something a class can do They can also be seen as services they offer to other classes Responsibilities are later decomposed in operations during the design Thus, the definition of operations result in some kind of contract between classes Design by contract The detailed interaction between classes can further be defined by communication diagrams
18
11/4/09
Activity diagrams are similar to data flow diagrams (DFD) The essential elements are:
Wolfram Webers
October, 2008
37
An activity is made of actions Actions can be decomposed into subdiagrams Actions can be implemented as methods (class::method) Its also possible to annotate actions with code
Receive Order
Fill Order
Send Invoice
[priority order]
[else]
Overnight Delivery
Regular Delivery
Receive Payment
Close Order
Wolfram Webers
October, 2008
38
19
11/4/09
Receive Order
Fill Order
Delivery Order
Send Invoice
[else]
Regular Delivery
Order
Overnight Delivery
Order
[priority order]
Deliver Order
Fill Order
Close Order
Wolfram Webers
October, 2008
39
Receive Order
Send Invoice
Deliver Order
Receive Payment
Close Order
Wolfram Webers
October, 2008
40
20
11/4/09
Actions can accept and/or send signals/events Accepting events means always listening for them
Timer signal
Output signal
Taxi Arrives
Book itinerary
Cancel itinerary
Wait 48 hours
Wolfram Webers October, 2008 41
Read those chapters. You will recognize many things you already did during the exercise. Read the examples given in A4 to be prepared until the design lecture. Consult the parts in the chapters before to learn how to enhance your analysis model
Wolfram Webers
October, 2008
42
21