chapter 1 the product. 2 product what is it? who does it? why is it important? how to ensure it...
TRANSCRIPT
Chapter 1Chapter 1The The
ProductProduct
2
ProduProductct
What is it?What is it? Who does it?Who does it? Why is it important?Why is it important? How to ensure it be done right?How to ensure it be done right?
What is What is Product?Product?
Computer software is the product that software engineers design and build.Includes • programs • documents • data ...
Software Software CharacteristicsCharacteristics
software is engineeredsoftware is engineered software doesn’t wear outsoftware doesn’t wear out software is custom builtsoftware is custom built
Failure Curve for Failure Curve for HardwareHardware
“Wear out”
Failurerate
Time
Infant mortality
Idealized & Actual Failure Idealized & Actual Failure Curve Curve
for for SoftwareSoftware
idealized curve
change
actual curve
Failurerate
Time
increased failurerate due to side effects
Software Software MythsMyths Management mythsManagement myths
Myth:Myth: We already have a book … We already have a book … Myth:Myth: My people have .. newest computers My people have .. newest computers Myth:Myth: If we get behind schedule, … more If we get behind schedule, … more programmers …..programmers …..
Myth:Myth: If I decide to outsource … If I decide to outsource … Customer mythsCustomer myths
Myth:Myth: … a general statement … … a general statement … Myth:Myth: … continually change … flexible … … continually change … flexible …
Practitioner’s mythsPractitioner’s myths Myth:Myth: … get it to work, our job is done. … get it to work, our job is done. Myth:Myth: … “running” … no way of assessing its … “running” … no way of assessing its quality.quality.
Myth:Myth: Software engineering … slow us down. Software engineering … slow us down.
The Cost of The Cost of ChangeChange
Definition Development After release
1x
1.5-6x
60-100x
Software Software ApplicationsApplications system softwaresystem software
real-time softwarereal-time software business softwarebusiness software engineering/scientific engineering/scientific
softwaresoftware embedded softwareembedded software PC softwarePC software AI softwareAI software Web Apps (Web Web Apps (Web
applications)applications)
Software Poses Software Poses ChallengesChallenges
How do we ensure the quality of the software that we produce? How do we meet growing demand and still maintain budget control? How do we upgrade an aging "software plant?" How do we avoid disastrous time delays? How do we successfully institute new software technologies?
11
Who does Who does it?it?
Programmer is an individual concerned with the details of implementing, packaging, and modifying algorithms and data structures written in particular programming languages.
Software Engineer is a programmer additionally concerned with issues of analysis, design, verification, and testing documentation software maintenance, and project management.