CMSC 345 Fall 2000 Software Design and Development.
-
Upload
emory-adams -
Category
Documents
-
view
214 -
download
0
Transcript of CMSC 345 Fall 2000 Software Design and Development.
![Page 1: CMSC 345 Fall 2000 Software Design and Development.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/1.jpg)
CMSC 345 Fall 2000
Software Design and Development
![Page 2: CMSC 345 Fall 2000 Software Design and Development.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/2.jpg)
Instructor
Instructor: Dennis L. Frey
Office: ECS 222
Email: [email protected]
Office Hours: TuTh 10:00 – 12:00
![Page 4: CMSC 345 Fall 2000 Software Design and Development.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/5.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/7.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/9.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/10.jpg)
Cost of Change
Development
Definition Maintenance
1
1.5
to
6
60
to
100
![Page 11: CMSC 345 Fall 2000 Software Design and Development.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/11.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/12.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/13.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/14.jpg)
CUSTOMER Sponsors systemdevelopment
USER
Usessystem
DEVELOPER
Buildssystem
Contractualobligation
$$$,needs
Software system
Needs
![Page 15: CMSC 345 Fall 2000 Software Design and Development.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/15.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/16.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/17.jpg)
The Development Team Requirements analyst Designers Programmers Testers Customers Trainers Maintenance team
![Page 18: CMSC 345 Fall 2000 Software Design and Development.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/18.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/19.jpg)
The Product Elementary School mathematics
testing system User interface Database Multiple user types Reporting
![Page 20: CMSC 345 Fall 2000 Software Design and Development.](https://reader036.fdocuments.in/reader036/viewer/2022082713/5697bf6f1a28abf838c7d385/html5/thumbnails/20.jpg)
New Skills GUI on Unix
Tcl/Tk curses
RCS for version control Multi-user system design
client/server