september 1999 overview software engineering1 cs466: tools and processes for software gio wiederhold...

24
September 1 999 Overview Software Engineering 1 CS466: Tools and Processes for Software Gio Wiederhold Dorothea Beringer Anca-Juliana Stoica

Post on 21-Dec-2015

218 views

Category:

Documents


2 download

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 3

Sign Up

• check out http://www-db.stanford.edu/cs446

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