Скачать презентацию Software Engineering CS 421 SWE 421 Dan Скачать презентацию Software Engineering CS 421 SWE 421 Dan

c2be47064215ecd8b93860723a0b87a2.ppt

  • Количество слайдов: 25

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

Why worry about SW Engineering? n History of SW failures from http: //www. wired. Why worry about SW Engineering? n History of SW failures from http: //www. wired. com/software/coolapps/news/2005/11/69355 n n “…Toyota announced a recall of 160, 000 of its Prius hybrid vehicles following reports of vehicle warning lights illuminating for no reason, and cars' gasoline engines stalling unexpectedly. ” 1985 -1987 -- Therac-25 medical accelerator. Software replaces electromechanical safety controls. Operating system race condition kills 5 people. (http: //en. wikipedia. org/wiki/Therac-25) November 2000 -- National Cancer Institute, Panama City. Doctors “work-around” software problem that wouldn’t allow them to use 5 radiation shields. Their work-around had unintended consequences that killed 8 patients. Doctor’s indicted for murder. Many more incidents… Coming up: Why is it so hard? 2

Why is it so hard? n Lots of “parts”. Many more than mechanical devices Why is it so hard? n Lots of “parts”. Many more than mechanical devices n n n Dishwasher - 128 parts Car - 14, 000 parts Space shuttle - 2. 5 million parts Red Hat Linux 7. 1 - 30 million source lines of code (SLOC) Mac Office - 30 million SLOC n n Using 70 programmers = 428, 000 SLOC / programmer But those are big… what about “normal size programs”? n n n Average programmer SLOC (Source lines of code) / day = 100 5 days/week * 52 weeks/year = 26, 000 SLOC / year 15 programmer team = 390, 000 SLOC / year Coming up: Why is it so hard? (continued) 3

Why is it so hard? (continued) n We’re a young field n n n Why is it so hard? (continued) n We’re a young field n n n ENIAC/ MARK-I in 1946 FORTRAN - 1957 But giant - As of 2004, the U. S. Bureau of Labor Statistics counts 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 engineering disciplines combined. - http: //en. wikipedia. org/wiki/Software_engineering n n Still more art than science Everything we do is “new”. (We don’t build the exact same house 30 times. ) Need to have more reproducible results Need to have more measurements Coming up: Why do projects fail? 4

Why do projects fail? Why do projects fail so often? Unrealistic or unarticulated project Why do projects fail? Why do projects fail so often? Unrealistic or unarticulated project goals n Inaccurate estimates of needed resources n Badly defined system requirements Question: n Poor reporting of the project's status n Unmanaged risks n Poor communication among customers, developers, and users n Use of immature technology How many of these are n Inability to handle the project's complexity caused by technical incompetence in your n Sloppy development practices developers? n Poor project management A. 0 n Stakeholder politics B. 5 C. 8 n Commercial pressures D. All of them List from: http: //www. spectrum. ieee. org/sep 05/1685 n Coming up: How do we fix it? 5

How do we fix it? n Need to have more reproducible results n n How do we fix it? n Need to have more reproducible results n n n Standard processes / procedures to produce good outcomes Design patterns Object oriented programming (reuse) More measurements of both the software and the process n More testing at all stages of development n By creating a better understanding of the process we use to create Coming up: Software Engineering: A Practitioner’s Approach, 7/e software, we’ll create better software faster. n Chapter 1 Software and Software Engineering (Slides modified by Dan Fleck) “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of For University Use Only software. ” - IEEE Standard Glossary of Software Engineering Terminology May be reproduced ONLY for student use at the university level copyright © 1996, 2001, 2005 R. S. Pressman & Associates, Inc. when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited. 6

Software Engineering: A Practitioner’s Approach, 7/e Chapter 1 Software and Software Engineering (Slides modified Software Engineering: A Practitioner’s Approach, 7/e Chapter 1 Software and Software Engineering (Slides modified by Dan Fleck) copyright © 1996, 2001, 2005 R. S. Pressman & Associates, Inc. For University Use Only May 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. Coming up: 7

n Wait…. n See Coming up: What is Software? lets build a house first. n Wait…. n See Coming up: What is Software? lets build a house first. Building. AHouse. ppt 8

Why is software different than hardware? Or manufacturing? n n Coming up: Wear vs. Why is software different than hardware? Or manufacturing? n n Coming up: Wear vs. Deterioration software is engineered software doesn’t wear out most software is still custom built software is complex 10

Wear vs. Deterioration Coming up: There are many types of applications 11 Wear vs. Deterioration Coming up: There are many types of applications 11

There are many types of applications n n system software - OS, file management, There are many types of applications n n system software - OS, file management, networking, drivers, etc… application software - data processing, point of sale, other business functions… n n engineering/scientific software - CAD, stress analysis, orbital mechanics embedded software - microwave oven keypad, automobile control, cell phone software, etc… n n n product-line software - word processing, inventory control, etc… Web. Apps (Web applications) - many different things today AI software - robotics, data mining, expert systems Coming up: Legacy Software 12

Legacy Software Why must it change? n n Coming up: Software – A. True Legacy Software Why must it change? n n Coming up: Software – A. True or B. False? software must be adapted to meet the needs of new computing environments or technology. software must be enhanced to implement new business requirements. software must be extended to make it interoperable with other more modern systems or databases. software must be re-architected to make it viable within a network environment. 13

Software – A. True or B. False? 1. 2. 3. 4. 5. If we Software – A. True or B. False? 1. 2. 3. 4. 5. If we get behind schedule we can add more programmers to catch up A general statement of objectives is sufficient to begin writing programs - we can fill in the details later Project requirements change, but change can be easily accommodated because software is flexible Once we write the program and get it working our job is done Software engineering will make us create unnecessary documentation and will invariably slow us down Coming up: Software Myths 14

Software Myths Affect managers, customers (and other non-technical stakeholders) and practitioners n Are believable Software Myths Affect managers, customers (and other non-technical stakeholders) and practitioners n Are believable because they often have elements of truth, but … n Invariably lead to bad decisions, therefore … n Insist on reality as you navigate your way through software engineering in this class is to learn you One of the goals n how to determine what reality is! Coming up: Fixing the problem 15

Fixing the problem Software engineering! n Software engineering is really just a set of Fixing the problem Software engineering! n Software engineering is really just a set of ideas and tools to use (when it makes sense) to give you a higher likelihood of success on a software project. n Will your project fail if you don’t use any software engineering techniques? No…. but you have a better chance at success if you do. Coming up: A Generic Framework 16

n A Generic Framework Communication n n Planning n n Creation of models to n A Generic Framework Communication n n Planning n n Creation of models to allow the customer and the developer to better understand the requirements and design that will achieve those requirements Construction n n Establish a plan for the work. Technical task to be conducted, risks, needed resources, work products to be created, and a schedule Modeling n n Heavy collaboration with the customer, other stakeholders and encompasses requirements gathering and related activities Combines code generation and testing required to uncover errors in the code Deployment n The software (as a complete entity or partially complete increment) is delivered to the customer who evaluates it and provides feedback. Coming up: A Layered Technology 17

What is a process framework Process framework Framework activities work tasks work products milestones What is a process framework Process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities Coming up: Framework Activities 19

Framework Activities n n n Communication Planning Modeling n n n Construction n Analysis Framework Activities n n n Communication Planning Modeling n n n Construction n Analysis of requirements Design Code generation Testing Deployment What are some artifacts (work tasks, work products, milestones & deliverables, QA checkpoints) of each activity? What tools may help support them? Coming up: Umbrella Activities 20

Umbrella Activities n n n n Coming up: The Process Model: Adaptability Software project Umbrella Activities n n n n Coming up: The Process Model: Adaptability Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management 21

The Process Model: Adaptability n The framework activities will always be applied on every The Process Model: Adaptability n The framework activities will always be applied on every project. . . BUT n The tasks (and degree of rigor) for each activity will vary based on: n n n Coming up: Question the type of project characteristics of the project common sense judgment; concurrence of the project team 22

Question n Pick any one of the project types below and tell me which Question n Pick any one of the project types below and tell me which process activity would be emphasized or deemphasized and why Project Types: - 1. Space Shuttle control system - 2. Web-based calendar - 3. Embedded controller in your refrigerator - 4. Automatic “daily fortune” text-messenger Framework Activities n Communication n Planning n Modeling n n n Construction n Coming up: How to solve any problem Analysis of requirements Design Code generation Testing Deployment 23

How to solve any problem n Polya 1945 n n n Understand the problem How to solve any problem n Polya 1945 n n n Understand the problem Plan a solution Carry out the plan Examine the result for accuracy Do these agree with our basic framework? communication, planning, modeling, construction deployment? Coming up: The CMMI 24

The Waterfall Model n Do all process steps in the following order (this is The Waterfall Model n Do all process steps in the following order (this is generally thought of as the most basic model) 1998, the Standish Group analyzed 23, 000 projects to determine failure factors. The top reasons for project failure, according to the report, were associated with waterfall practices. - http: //www 2. umassd. edu/SWPI/xp/articles/r 6047. pdf Coming up: Different families of models 29

Different families of models Prescriptive Agile Prescriptive Models 1970 ->Present Agile Models 2001 ->Present Different families of models Prescriptive Agile Prescriptive Models 1970 ->Present Agile Models 2001 ->Present -Waterfall (1970) -Evolutionary (1975) -Incremental (1975) -Spiral (1988) -RAD (1991) - e. Xtreme Programming (1999) - SCRUM (1990 s) - DSDM (1997) - Crystal (2001) All dates are approximate based on publications Coming up: Different families of models 30

Different families of models Prescriptive Agile Goal: Higher Quality Software Philosophy: • Bring order Different families of models Prescriptive Agile Goal: Higher Quality Software Philosophy: • Bring order to chaos • Provide repeatability/consistency • Provide ability to control • Provide ability to coordinate teams • Individuals and interaction over process and tools • Working software over large documentation • Customer collaboration over contract negotiation • Responding to change over following a plan Which is probably better for large teams? A. Prescriptive B. Agile C. Same Which is probably better for a web application? Which is probably better for Mars rover control system? Which is produces better software? End of presentation 31