cs466: tools and processes for software
DESCRIPTION
CS466: Tools and Processes for Software. Gio Wiederhold Dorothea Beringer Anca-Juliana Stoica. 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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/1.jpg)
September 1999
Overview Software Engineering 1
CS466: Tools and Processes for Software
Gio Wiederhold
Dorothea Beringer
Anca-Juliana Stoica
![Page 2: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/2.jpg)
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
![Page 3: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/3.jpg)
September 1999
Overview Software Engineering 3
Sign Up
• check out http://www-db.stanford.edu/cs446
![Page 4: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/4.jpg)
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
![Page 5: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/5.jpg)
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
![Page 6: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/6.jpg)
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!
![Page 7: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/7.jpg)
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
![Page 8: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/8.jpg)
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:» ...
![Page 9: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/9.jpg)
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?
![Page 10: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/10.jpg)
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
![Page 11: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/11.jpg)
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
![Page 12: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/12.jpg)
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
![Page 13: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/13.jpg)
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
![Page 14: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/14.jpg)
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
![Page 15: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/15.jpg)
September 1999
Overview Software Engineering 15
Standards (2) Standards describing overall Software Process Maturity
http://www.software.org/quagmire/
![Page 16: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/16.jpg)
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
• ………………...
![Page 17: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/17.jpg)
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
![Page 18: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/18.jpg)
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
![Page 19: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/19.jpg)
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
![Page 20: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/20.jpg)
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
![Page 21: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/21.jpg)
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
![Page 22: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/22.jpg)
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
![Page 23: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/23.jpg)
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
![Page 24: CS466: Tools and Processes for Software](https://reader031.vdocuments.site/reader031/viewer/2022020208/56813a44550346895da23340/html5/thumbnails/24.jpg)
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