Beruflich Dokumente
Kultur Dokumente
What is UML ?
Modeling language, not a method Mainly graphical notation used to express the design Proposed OMG standard Several techniques:
iterative development patterns : to describe the key ideas class diagrams : what kind of abstractions were made interaction diagrams : key behaviors of the system use cases : communication with the domain experts
snapshot of one aspect of your system sum of all use cases is the external picture of your system
activity diagrams
Development Process
Development Process
1. Inception
2. Elaboration
Construction Inception Elaboration 1
Transition 2 3 ...
Risk management
Requirements risks: build the right system Technological risks: experience with the used technology Skills risks: is the required staff available? Political risks
Requirement Risks
Technological Risks
Build prototypes that try out the pieces of technology you planned to use
fast evolving technology high risk in linking the components of a design together architectural design decisions special attention to distributed systems
Risks
What happens if a piece of technology doesnt work ? What if we cant connect two pieces of the puzzle ? What is the likelihood of something going wrong ?
Used techniques
Class diagrams, package diagrams, deployment diagrams
Skills Risks
Lack of experience and training Apply immediately by building prototypes Organize project discussions Pattern community
http://stwww.cs.uiuc.edu/users/patterns/patterns.html
Baseline Architecture
Result of the Elaboration (20% of total project time)
Planning Users: level of priority for each use case Developers: consider architectural risk for each use case Developers: commitment schedule
3. Construction
Construction builds the system in a number of iterations
each iteration is a mini-project analysis, design, coding, testing and integration for each use case assigned to the iteration
Refactoring
Software entropy
original structure disappears after subsequent modifications redesign cause short-term pain for longer-term gain
Refactoring
is a term to describe redesign techniques will not change the functionality of your program it changes the internal structure to make it better understandable changes are small steps (rename a method, move a field, )
Refactoring
Documentation in Construction
1. One or two pages describing a few classes in class diagrams 2. A few interaction diagrams to show how the classes collaborate 3. Some text to pull the diagrams together 4. State diagram if a class has a complex life cycle 5. Patterns to capture the basic ideas
Patterns
Look at the result of the process They describe common ways of doing things It is much more than a model
it must include the reason why it is the way it is it is a solution to a problem patterns must make the problem clear explain why it solves the problem explain under what circumstances it solves the problem
4. Transition
Construction Inception Elaboration 1 2 3 ... Transition
Analyze Risk
Trading Mgr
Price Deal
Capture Deal Trader Actor extends Capture deal Limits Exceeded Salesperson
Use Case
CreditRating : string
Constraint
1
(If Order.customer.creditRating is poor then Order.isPrepaid must be true) Employee
Corporate Customer
Iteration
[check=true] remove ( )
needs ToReorder ( ) SelfDelegation Return
New
a Reorder Item
Creation
a Delivery Item
event
Activity
Delivered
transition
Waiting
Delivered
Self transition
state
Synchronization bar
[found cola]
Add water
Put Filter
Activity
Turn on machine
^coffeePot.TurnOn
Brew coffee
Light goes out
End
Pour coffeee
Drink beverage