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

CS466: Tools and Processes for Software

  • Upload
    jariah

  • View
    62

  • Download
    2

Embed Size (px)

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 Presentation

Citation preview

Page 1: CS466: Tools and Processes for Software

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

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

September 1999

Overview Software Engineering 3

Sign Up

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

Page 4: CS466: Tools and Processes for Software

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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