+ All Categories
Home > Documents > Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Date post: 13-Dec-2015
Category:
Upload: jayson-parrish
View: 219 times
Download: 2 times
Share this document with a friend
Popular Tags:
20
Coming up: Why worry about SW Engineering? 1 Software Engineering Software Engineering CS 421 / SWE 421 CS 421 / SWE 421 Dan Fleck Dan Fleck
Transcript
Page 1: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Why worry about SW Engineering? 1

Software EngineeringSoftware Engineering

CS 421 / SWE 421 CS 421 / SWE 421 Dan FleckDan Fleck

Page 2: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Why is it so hard? 2

Why worry about SW Why worry about SW Engineering?Engineering?

History of SW failures from History of SW failures from http://www.wired.com/software/coolapps/news/2005/11/69355

“…“…Toyota announced a recall of 160,000 of its Prius hybrid Toyota announced a recall of 160,000 of its Prius hybrid vehicles following reports of vehicle warning lights illuminating vehicles following reports of vehicle warning lights illuminating for no reason, and cars' gasoline engines stalling unexpectedly.” for no reason, and cars' gasoline engines stalling unexpectedly.”

1985-1987 -- Therac-25 medical accelerator. Software replaces 1985-1987 -- Therac-25 medical accelerator. Software replaces electromechanical safety controls. Operating system race electromechanical safety controls. Operating system race condition kills 5 people.condition kills 5 people.

November 2000 -- National Cancer Institute, Panama City. November 2000 -- National Cancer Institute, Panama City. Doctors “work-around” software problem that wouldn’t allow Doctors “work-around” software problem that wouldn’t allow them to use 5 radiation shields. Their work-around had them to use 5 radiation shields. Their work-around had unintended consequences that killed 8 patients. Doctor’s unintended consequences that killed 8 patients. Doctor’s indicted for murder.indicted for murder.

Many more incidents…Many more incidents…

Page 3: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

How many parts?How many parts?

How many parts (on average) make up a car?How many parts (on average) make up a car? How many parts (on average) make up the space How many parts (on average) make up the space

shuttle ?shuttle ? How many parts make up my class tracker?How many parts make up my class tracker?

How many parts make up a typical OS? How many parts make up a typical OS?

3

14,000

2.5m

2,200 + 15 libraries

30 million

Page 4: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Why is it so hard? (continued) 4

Why is it so hard?Why is it so hard?

Lots of “parts”. Many more than mechanical devicesLots of “parts”. Many more than mechanical devices Dishwasher - 128 partsDishwasher - 128 parts Car - 14,000 partsCar - 14,000 parts Space shuttle - 2.5 million partsSpace shuttle - 2.5 million parts Red Hat Linux 7.1 - 30 million source lines of code (SLOC)Red Hat Linux 7.1 - 30 million source lines of code (SLOC) Mac Office - 30 million SLOCMac Office - 30 million SLOC

Using 70 programmers = 428,000 SLOC / programmerUsing 70 programmers = 428,000 SLOC / programmer But those are big… what about “normal size programs”?But those are big… what about “normal size programs”?

Average programmer SLOC (Source lines of code) / day = 100Average programmer SLOC (Source lines of code) / day = 100 5 days/week * 52 weeks/year = 26,000 SLOC / year5 days/week * 52 weeks/year = 26,000 SLOC / year 15 programmer team = 390,000 SLOC / year15 programmer team = 390,000 SLOC / year

Page 5: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Why do projects fail? 5

Why is it so hard? (continued)Why is it so hard? (continued)

We’re a young field We’re a young field ENIAC/ MARK-I in 1946ENIAC/ MARK-I in 1946 FORTRAN - 1957FORTRAN - 1957

But giant - But giant - As of 2004, the U. S. Bureau of Labor Statistics counts As of 2004, the U. S. Bureau of Labor Statistics counts 760,840 software engineers holding jobs in the U.S.; for comparison, in 760,840 software engineers holding jobs in the U.S.; for comparison, in the U.S. there are some 1.4 million practitioners employed in all other the U.S. there are some 1.4 million practitioners employed in all other engineering disciplines combined.engineering disciplines combined. - - http://en.wikipedia.org/wiki/Software_engineeringhttp://en.wikipedia.org/wiki/Software_engineering

Still more art than scienceStill more art than science Everything we do is “new”. (We don’t build the exact same Everything we do is “new”. (We don’t build the exact same

house 30 times.)house 30 times.) Need to have more reproducible results Need to have more reproducible results Need to have more measurementsNeed to have more measurements

Page 6: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: How do we fix it? 6

Why do projects fail?Why do projects fail?Why do projects fail so often?Why do projects fail so often? Unrealistic or unarticulated project goalsUnrealistic or unarticulated project goals Inaccurate estimates of needed resourcesInaccurate estimates of needed resources Badly defined system requirementsBadly defined system requirements Poor reporting of the project's statusPoor reporting of the project's status Unmanaged risksUnmanaged risks Poor communication among customers, developers, and usersPoor communication among customers, developers, and users Use of immature technologyUse of immature technology Inability to handle the project's complexityInability to handle the project's complexity Sloppy development practicesSloppy development practices Poor project managementPoor project management Stakeholder politicsStakeholder politics Commercial pressuresCommercial pressuresList from: http://www.spectrum.ieee.org/sep05/1685List from: http://www.spectrum.ieee.org/sep05/1685

How many of these are caused by technical imcompentence in your developers?A.0B.5C.8D.All of them

How many of these are caused by technical imcompentence in your developers?A.0B.5C.8D.All of them

Question:Question:

Page 7: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Software Engineering: A Practitioner’s Approach, 6/e

Chapter 1Software and Software Engineering(Slides modified by Dan Fleck)

copyright © 1996, 2001, 2005R.S. Pressman & Associates, Inc.

For University Use OnlyMay be reproduced ONLY for student use at the university levelwhen used in conjunction with Software Engineering: A Practitioner's Approach.Any other reproduction or use is expressly prohibited.

7

How do we fix it?How do we fix it?

Need to have more reproducible resultsNeed to have more reproducible results Standard processes / procedures to produce good outcomesStandard processes / procedures to produce good outcomes Design patternsDesign patterns Object oriented programming (reuse)Object oriented programming (reuse)

More measurements of both the software and the processMore measurements of both the software and the process More testing at all stages of developmentMore testing at all stages of development By creating a better understanding of the process we use By creating a better understanding of the process we use

to create software, we’ll create better software faster.to create software, we’ll create better software faster.

“Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.” - IEEE Standard Glossary of Software Engineering Terminology

Page 8: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Software’s Dual Role 8

Software Engineering: A Practitioner’s Software Engineering: A Practitioner’s Approach, 6/eApproach, 6/e

Chapter 1Chapter 1Software and Software Software and Software

EngineeringEngineering(Slides modified by Dan (Slides modified by Dan

Fleck)Fleck)

copyright © 1996, 2001, 2005

R.S. Pressman & Associates, Inc.

For University Use OnlyMay be reproduced ONLY for student use at the university level

when used in conjunction with Software Engineering: A Practitioner's Approach.Any other reproduction or use is expressly prohibited.

Page 9: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: What is Software? 9

Software’s Dual RoleSoftware’s Dual Role

Software is a productSoftware is a product Delivers computing potentialDelivers computing potential Produces, manages, acquires, modifies, displays, or Produces, manages, acquires, modifies, displays, or

transmits informationtransmits information Software is a vehicle for delivering a productSoftware is a vehicle for delivering a product

Supports or directly provides system functionalitySupports or directly provides system functionality Controls other programs (e.g., an operating system)Controls other programs (e.g., an operating system) Effects communications (e.g., networking software)Effects communications (e.g., networking software) Helps build other software (e.g., software tools)Helps build other software (e.g., software tools)

Page 10: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Why is software different thanhardware? Or manufacturing? 10

What is What is Software?Software?

Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...

Page 11: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: What can wear out because of overuse? 11

Why is software different thanWhy is software different thanhardware? Or manufacturing?hardware? Or manufacturing?

software is engineeredsoftware is engineered software doesn’t wear outsoftware doesn’t wear out software is complexsoftware is complex

Page 12: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

What can wear out because of What can wear out because of overuse?overuse?

1.1. Mechanical devicesMechanical devices

2.2. Computer HardwareComputer Hardware

3.3. Computer softwareComputer software

4.4. Michael PhelpsMichael Phelps

Answers:Answers: A. 1A. 1 B. 2B. 2 C. 3C. 3 D. 1 & 2D. 1 & 2

12

Page 13: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Software Applications 13

Wear vs. Wear vs. DeteriorationDeterioration

idealized curve

change

actual curve

Failurerate

Time

increased failurerate due to side effects

Page 14: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Software—New Categories 14

There are many types of There are many types of applicationsapplications system software - system software - OS, file management, networking, drivers, etc…OS, file management, networking, drivers, etc…

application software - application software - data processing, point of sale, other data processing, point of sale, other business functions…business functions…

engineering/scientific software - engineering/scientific software - CAD, stress analysis, CAD, stress analysis, orbital mechanicsorbital mechanics

embedded software - embedded software - microwave oven keypad, automobile control, microwave oven keypad, automobile control, cell phone software, etc…cell phone software, etc…

product-line software - product-line software - word processing, inventory control, etc…word processing, inventory control, etc…

WebApps (Web applications) - WebApps (Web applications) - many different things todaymany different things today

AI software - AI software - robotics, data mining, expert systemsrobotics, data mining, expert systems

Page 15: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Software Evolution 15

Legacy SoftwareLegacy Software

software must be software must be adaptedadapted to meet the needs to meet the needs of new computing environments or of new computing environments or technology.technology.

software must be software must be enhancedenhanced to implement to implement new business requirements.new business requirements.

software must be software must be extended to make it extended to make it interoperableinteroperable with other more modern with other more modern systems or databases.systems or databases.

software must be software must be re-architectedre-architected to make it to make it viable within a network environmentviable within a network environment.

Why must it change?

Page 16: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Software Myths 16

Software EvolutionSoftware Evolution The Law of Continuing Change (1974):The Law of Continuing Change (1974): E-type systems must be continually adapted else they E-type systems must be continually adapted else they

become progressively less satisfactory.become progressively less satisfactory. The Law of Increasing Complexity (1974):The Law of Increasing Complexity (1974): As an E-type system evolves its complexity increases As an E-type system evolves its complexity increases

unless work is done to maintain or reduce it.unless work is done to maintain or reduce it. The Law of Self Regulation (1974):The Law of Self Regulation (1974): The E-type system evolution process is self-regulating with The E-type system evolution process is self-regulating with

distribution of product and process measures close to normal.distribution of product and process measures close to normal. The Law of Conservation of Organizational Stability (1980):The Law of Conservation of Organizational Stability (1980): The average effective global The average effective global

activity rate in an evolving E-type system is invariant over product lifetime.activity rate in an evolving E-type system is invariant over product lifetime. The Law of Conservation of Familiarity (1980):The Law of Conservation of Familiarity (1980): As an E-type system evolves all associated with As an E-type system evolves all associated with

it, developers, sales personnel, users, for example, must maintain mastery of its content and it, developers, sales personnel, users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. behavior to achieve satisfactory evolution.

The Law of Continuing Growth (1980):The Law of Continuing Growth (1980): The functional content of E-type systems must be The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime.continually increased to maintain user satisfaction over their lifetime.

The Law of Declining Quality (1996):The Law of Declining Quality (1996): The quality of E-type systems will appear to be declining The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes.unless they are rigorously maintained and adapted to operational environment changes.

The Feedback System Law (1996):The Feedback System Law (1996): E-type evolution processes constitute multi-level, multi- E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base.improvement over any reasonable base.

Source: Lehman, M., et al, “Metrics and Laws of Software Evolution—The Nineties View,” Proceedings of the 4th International Software Metrics Symposium (METRICS '97), IEEE, 1997, can be downloaded from: http://www.ece.utexas.edu/~perry/work/papers/feast1.pdf

Page 17: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: A Generic Framework 17

Software – Software – A.True or A.True or B.False?B.False?

1.1. If we get behind schedule we can add more If we get behind schedule we can add more programmers to catch upprogrammers to catch up

2.2. A general statement of objectives is sufficient to begin A general statement of objectives is sufficient to begin writing programs - we can fill in the details laterwriting programs - we can fill in the details later

3.3. Project requirements change, but change can be easily Project requirements change, but change can be easily accommodated because software is flexibleaccommodated because software is flexible

4.4. Once we write the program and get it working our job Once we write the program and get it working our job is doneis done

5.5. Software engineering will make us create unnecessary Software engineering will make us create unnecessary documentation and will invariably slow us downdocumentation and will invariably slow us down

Page 18: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: Software Myths 18

Software MythsSoftware Myths

Affect managers, customers (and other non-Affect managers, customers (and other non-technical stakeholders) and practitionerstechnical stakeholders) and practitioners

Are believable because they often have elements Are believable because they often have elements of truth, of truth,

but …but … Invariably lead to bad decisions, Invariably lead to bad decisions,

therefore …therefore … Insist on reality as you navigate your way Insist on reality as you navigate your way

through software engineeringthrough software engineeringOne of the goals in this class is to learn you how to determine what reality is!

Page 19: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Fixing the problemFixing the problem

Software engineering!Software engineering!

Software engineering is really just a set of ideas Software engineering is really just a set of ideas and tools to use (when it makes sense) to give and tools to use (when it makes sense) to give you a higher liklihood of success on a software you a higher liklihood of success on a software project.project.

Will your project fail if you don’t use any Will your project fail if you don’t use any software engineering techniques? No…. but you software engineering techniques? No…. but you have a better chance at success if you do.have a better chance at success if you do.

19

Page 20: Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.

Coming up: A Generic Framework 20

A Generic FrameworkA Generic Framework CommunicationCommunication

Heavy collaboration with the customer, other stakeholders and Heavy collaboration with the customer, other stakeholders and encompasses requirements gathering and related activitiesencompasses requirements gathering and related activities

PlanningPlanning Establish a plan for the work. Technical task to be conducted, risks, Establish a plan for the work. Technical task to be conducted, risks,

needed resources, work products to be created, and a scheduleneeded resources, work products to be created, and a schedule ModelingModeling

Creation of models to allow the customer and the developer to better Creation of models to allow the customer and the developer to better understand the requirements and design that will achieve those understand the requirements and design that will achieve those requirementsrequirements

ConstructionConstruction Combines code generation and testing required to uncover errors in the Combines code generation and testing required to uncover errors in the

codecode DeploymentDeployment

The software (as a complete entity or partially complete increment) is The software (as a complete entity or partially complete increment) is delivered to the customer who evaluates it and provides feedback.delivered to the customer who evaluates it and provides feedback.


Recommended