CMSC 345 Fall 2000 Software Design and Development.

20
CMSC 345 Fall 2000 Software Design and Development

Transcript of CMSC 345 Fall 2000 Software Design and Development.

Page 1: CMSC 345 Fall 2000 Software Design and Development.

CMSC 345 Fall 2000

Software Design and Development

Page 2: CMSC 345 Fall 2000 Software Design and Development.

Instructor

Instructor: Dennis L. Frey

Office: ECS 222

Email: [email protected]

Office Hours: TuTh 10:00 – 12:00

Page 3: CMSC 345 Fall 2000 Software Design and Development.

TA

TA: Mahesh Gandhe

Office:

Email: [email protected]

Office Hours: MW TBD

Page 4: CMSC 345 Fall 2000 Software Design and Development.

Course Materials Course homepage

www.cs.umbc.edu/courses/undergraduate/345/fall00

Course Description Objective Textbooks Grading

Class Schedule

Page 5: CMSC 345 Fall 2000 Software Design and Development.

What is Software Engineering? SW Engineering focuses on the

computer as a problem-solving tool instead of investigating HW design or proving theorems about algorithms

Any hacker can write code. SW Engineering is about designing and developing high-quality software

Page 6: CMSC 345 Fall 2000 Software Design and Development.

Why Software Engineering Writing a program is easy Developing a software product is hard High-quality software products are robust,

efficient and effective High-quality software products are easy to

understand, modify and compose with other high-quality software products

Software engineers are skilled professionals who follow “best practices”

Page 7: CMSC 345 Fall 2000 Software Design and Development.

Management MythMyth: If we get behind schedule, we can

add more programmers to catch up.

Reality: The mythical man-month - “… adding people to a late software project makes it later”. Why?

People can be added, but in a planned and well-coordinated manner.

Page 8: CMSC 345 Fall 2000 Software Design and Development.

Customer Myth

Myth: A general statement of objectives is sufficient, we will fill in the details later.

Reality: Poor up-front definition is the major cause of failed software efforts.

Page 9: CMSC 345 Fall 2000 Software Design and Development.

Customer Myth Myth: Project requirements continually

change, but change can easily be accommodated because software is flexible.

Reality: It is true that software requirements do change, but the impact of change varies with the time the change is introduced.

Page 10: CMSC 345 Fall 2000 Software Design and Development.

Cost of Change

Development

Definition Maintenance

1

1.5

to

6

60

to

100

Page 11: CMSC 345 Fall 2000 Software Design and Development.

Practitioner Myth

Myth: Once we write the program and get it to work, our job is done.

Reality: Industry data shows that 50%-70% of all effort expended on a program is expended after it is delivered to the customer.

Page 12: CMSC 345 Fall 2000 Software Design and Development.

Practitioner Myth

Myth: The only deliverable for a successful project is the working program.

Reality: A working program is only one part of the software configuration. Documentation forms the foundation for a successful development and provides guidance for the software maintenance task.

Page 13: CMSC 345 Fall 2000 Software Design and Development.

Who does SW Engineering? Stakeholders working together as

a team. Usually 3 categories

Customer User Developer

Page 14: CMSC 345 Fall 2000 Software Design and Development.

CUSTOMER Sponsors systemdevelopment

USER

Usessystem

DEVELOPER

Buildssystem

Contractualobligation

$$$,needs

Software system

Needs

Page 15: CMSC 345 Fall 2000 Software Design and Development.

A Systems Approach Projects do not exist in a vacuum Must provide a context

System Boundaries Elements of a system

Activities Objects (Entities) Relationships Definition of the boundary

Page 16: CMSC 345 Fall 2000 Software Design and Development.

Building the system Determine the requirements Create a system design Design individual programs Test the programs in pieces Test the programs together Deliver the system

Page 17: CMSC 345 Fall 2000 Software Design and Development.

The Development Team Requirements analyst Designers Programmers Testers Customers Trainers Maintenance team

Page 18: CMSC 345 Fall 2000 Software Design and Development.

MAINTENANCE

SYSTEMDESIGN

REQUIREMENTSANALYSIS AND DEFINITION

PROGRAMDESIGN

PROGRAMIMPLEMENTATION

UNITTESTING

INTEGRATIONTESTING

SYSTEMTESTING

SYSTEMDELIVERY

SO

FTW

AR

E D

EV

ELO

PM

EN

T S

TE

PS

DE

VE

LOPE

R R

OLE

SANALYST

DESIGNER

PROGRAMMER

TESTER

TRAINER

Page 19: CMSC 345 Fall 2000 Software Design and Development.

The Product Elementary School mathematics

testing system User interface Database Multiple user types Reporting

Page 20: CMSC 345 Fall 2000 Software Design and Development.

New Skills GUI on Unix

Tcl/Tk curses

RCS for version control Multi-user system design

client/server