september 1999 overview software engineering1 cs466: tools and processes for software gio wiederhold...
Post on 21-Dec-2015
218 views
TRANSCRIPT
September 1999
Overview Software Engineering 1
CS466: Tools and Processes for Software
Gio Wiederhold
Dorothea Beringer
Anca-Juliana Stoica
September 1999
Overview Software Engineering 2
Goals, Lectures
Goal:» Overview of some important topics of software engineering
» Basis for future studies - ongoing education
• UML modeling
• Design patterns
• Software development process models
• Software reuse, component-oriented software development
• Software cost estimation
• ...
» Different views, invited speakers
September 1999
Overview Software Engineering 4
Assignments• Modeling with UML
– Assignment 1: Actors and Use Cases, Domain Model, for an electronic bookstore
– Assignment 2: Design Model and Interaction diagrams for same problem as in assignment 1
– Assignment 3 (reverse engineering): Given a small software package and an incomplete use case model, make the interaction diagrams, the class diagram, a state chart, and try to model two additional features
• Design Patterns
– Assignment 4: apply and detect design patterns while modeling two (three) smaller problems
• Cost Estimation– Assignment 5: Develop an estimate for a software product using tools
and models: getting problem solution, analysis of results, option analysis, opportunity analysis, personnel impact, addressing the risks, model calibration
September 1999
Overview Software Engineering 5
Books for Assignments
UML modeling:
• "UML distilled", by Martin Fowler, 1997/1999 or another UML book
Design Patterns:
• "Design Patterns", by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1994or another book containing the GoF design patterns
September 1999
Overview Software Engineering 6
Assignments: how to
– Teams of two allowed for some assignments
– Assignment 4 and 5: plan ahead!
– Due dates: mostly Monday, yet plan for previous Friday!No late days!
– Modeling assignments: require thinking and redoing. Goal is not to have just a model, but to have a good model!
September 1999
Overview Software Engineering 7
Reading for specific lectures
• "No Silver Bullet: Essence and Accidents of Software Engineering", for Sept. 27
• "A Spiral Model of Software Development and Enhancement", for Oct. 6
• A case study for the lecture on software reuse organizations, for Oct. 13
• "Risk Management for Software Development", for Oct. 16
• "Software Cost Estimation", "Estimating work with use cases", for Nov. 17
September 1999
Overview Software Engineering 8
NO Silver Bullet...Why no easy remedies?• Progress in hardware and thus possibilities for ever
more complex software
• Inherent characteristics of software (essence):» invisibility, many dimensions, hard to visualize
» complexity, non-linear in scaling up
» conformity, arbitrary complexity, interfaces
» changeability, no classic production, glue, takes over soft parts of processes
• Accidental difficulties:» ...
September 1999
Overview Software Engineering 9
Tools and Processes for Software (1)What do we need to develop a software system?
• Basic tools: Languages, Compilers, Debuggers
• Basic know how: Basic tools, Language features, Algorithms, ...
• More advanced tools: Libraries, Databases, Window-systems, Distribution-systems, …
• More advanced know how: Features of advanced tools and their languages, Distributed architectures, Solutions to specific problems, …
Let’s start developing the new baggage-control system for the next new airport….
or do we need something else?
September 1999
Overview Software Engineering 10
Processes and Tools for Software (2)
n o c o n t r o l, i.e. for larger projects ( > a few hours):
- results not predictable- schedule unknown
- organizational chaos- random communication
p r o j e c t m a n a g e m e n t
September 1999
Overview Software Engineering 11
Processes and Tools for Software (3)
d a m a g e d g o o d sunpredictable and unexpected behavior
q u a l i t y a s s u r a n c e
September 1999
Overview Software Engineering 12
Processes and Tools for Software (4)
a d h o c h a n d c r a f t i n g
e n g i n e e r i n g - planning
- documenting- testing
September 1999
Overview Software Engineering 13
TQM
Objectory
Requirementselicitation
Activities
Participative development
Silver Bullets
Prototyping
Object-oriented
Use-case driven
Risk analysis
WaterfallSpiral
IteraviteEvolutionary
RAD
Configuration-management
CASE-tools
Quality assessment
Reviews
Inspection
Walkthroughs
Milestones
Phases
Analysis
UML
Requirementsengineering
Viewpoints
ISO 9000
IEEE standards
MaintenanceReuse Design Patterns
Software metrics
Project metrics Cost estimation
Reliability
User acceptance
Testing
Component-management
Process models
Modeling techniques
Design Booch
SEI PMM
Team building
Paradigms
Life-cycles
Frameworks
September 1999
Overview Software Engineering 14
Standards (1)
There exist many standards:
• Process models, e.g. Spiral model of Boehm, Objectory of Rational
• SEI Capability Maturity Model
• IEEE standards, e.g. requirements document,
• ISO standards, e.g. ISO 9000 - 9001
Many companies have in-house standards:– complementing public standards (e.g. ISO 9000)
– adaptations of public standards, methods and models
ISO 9000
IEEE standards
SEI CMM
UML
Booch
September 1999
Overview Software Engineering 15
Standards (2) Standards describing overall Software Process Maturity
http://www.software.org/quagmire/
September 1999
Overview Software Engineering 16
Standards (3)http://www.ansi.org/catalog, search for software engineering• 1: IEEE 610.12-1990 : Standard Glossary of Software Engineering Terminology
• 3: IEEE 1348-1995 : Recommended Practice for the Adoption of CASE
• 4: IEEE 1219-1993 : Software Maintenance
• 5: ANSI Z94.7 -1998 : Engineering Economy
• 7: IEEE 1008-1987 : Software Unit Testing
• 8: IEEE 1028-1988 : Software Reviews and Audits
• 9: IEEE 1063-1989 : Software User Documentation
• 10: ANSI/AIAA R-013-1992 : Software Reliability
• 11: IEEE 1045-1993 : Software Productivity Metrics
• 12: IEEE 1044-1994 : Classification for Software Anomalies
• 15: ANSI/ANS 10.3-1995 : Documentation of Computer Software
• 16: IEEE 828-1990 : Software Configuration Management Plans
• 17: IEEE 829-1983 (R1991) : Software Test Documentation
• 18: IEEE 1042-1987 : Guide to Software Configuration Management
• 19: IEEE 1058.1-1987 : Software Project Management Plans
• 20: IEEE 1061-1993 : Software Quality Metrics Methodology
• 21: ANSI/NISO Z39.67-1993 : Computer Software Description
• ………………...
September 1999
Overview Software Engineering 17
Prototyping
Activities
Dividing up the time-scale• having milestones, phases, activities
• having models describing it (life-cycle models, process models)
• having standards describing or requiring these models
WaterfallSpiral
IterativeEvolutionary
Phases
ISO 9000
IEEE standards
Objectory
Life-cycles
Milestones
Process models
MaintenanceImplementation
DesignAnalysis
TransitionConstruction
ElaborationInception
Req. elicitation
September 1999
Overview Software Engineering 18
Frameworks
Architecture drivenRisk driven
Data drivenUse-case driven
ZVDM
ModelingHow do I catch and communicate my thoughts,
concepts, and plans?
Object-oriented
CASE-tools
UML
Modeling techniques
Booch
Paradigms
Patterns
Architecture patterns
Design patterns
September 1999
Overview Software Engineering 19
What - When?
Phases
Modeling techniques
Milestones
Project reviews
Activities
Risk analysis
Process models
ZVDM
UML
Booch
TestingImplementation
DesignAnalysis
TransitionConstruction
ElaborationInception
wwwwhhwhen, what, who, where, how, how much
Prototypes
September 1999
Overview Software Engineering 20
Money - PeopleA software development project costs money.
A software development project is carried out by people.
RAD
Milestones
ViewpointsProject metrics
Cost estimation
Process models
Team building
Use-case drivenObject-oriented
Paradigms
Prototyping
September 1999
Overview Software Engineering 21
ReviewsWalkthroughs
Design
Supermen• What is the problem?
• What is the best, yet appropriate solution?
• Bugs, bugs,
Pro
toty
pin
g
Quality assessment
Inspection
MilestonesPhases
Requirementsengineering
Viewpoints
Design Patterns
Testing
Analysis
User acceptance
Participative development
Frameworks
Reliability
September 1999
Overview Software Engineering 22
Teambuilding
Cost estimation
Order
Reuse
Configuration-management
CASE-tools
Design Patterns
Component-management
Modeling techniques
Frameworks
ComponentsProcess model
Standards
Standards
September 1999
Overview Software Engineering 23
quality personnel project leader
programmers, developers
Software Engineering
QualityAssurance
ProjectManagement
TQM
Objectory
Requirementselicitation
Activities
Participative development
Prototyping
Object-oriented
Use-case driven
Risk analysis
WaterfallSpiral
IteraviteEvolutionary
RAD
Configuration-management
CASE-tools
Quality assessment
Reviews
Inspection
Walkthroughs
Milestones
Phases
Analysis
UML
Requirementsengineering
Viewpoints
ISO 9000
IEEE standards
MaintenanceReuse Design Patterns
Software metrics
Project metrics Cost estimation
Reliability
User acceptance
Testing
Component-management
Process models
Modeling techniques
Design Booch
SEI PMM
Team building
Paradigms
Life-cycles
Frameworks
September 1999
Overview Software Engineering 24
SocialSciences
EngineeringSciences
BusinessSciences
TQM
Objectory
Requirementselicitation
Activities
Participative development
Prototyping
Object-oriented
Use-case driven
Risk analysis
WaterfallSpiral
IteraviteEvolutionary
RAD
Configuration-management
CASE-tools
Quality assessment
Reviews
Inspection
Walkthroughs
Milestones
Phases
Analysis
UML
Requirementsengineering
Viewpoints
ISO 9000
IEEE standards
MaintenanceReuse Design Patterns
Software metrics
Project metrics Cost estimation
Reliability
User acceptance
Testing
Component-management
Process models
Modeling techniques
Design Booch
SEI PMM
Team building
Paradigms
Life-cycles
Frameworks