Transparency Masters for Software Engineering: A Practitioner ...
Software Engineering CS 421 / SWE 421 Dan Fleck Coming up: Why worry about SW Engineering? 1 Why worry about SW Engineering? 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 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. November 2000 -- National Cancer Institute, Panama City. Doctors work-around software problem that wouldnt allow them to use 5 radiation shields. Their work-around had unintended consequences that killed 8 patients. Doctors indicted for murder. Many more incidents Coming up: Why is it so hard? 2 How many parts? 14,000 How many parts (on average) make up a car? 2.5m How many parts (on average) make up the space shuttle ? 2,200 + 15 libraries How many parts make up my class tracker?
30 million How many parts make up a typical OS? 3 Why is it so hard? Lots of parts. Many more than mechanical devices 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 Using 70 programmers = 428,000 SLOC / programmer But those are big what about normal size programs?
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) 4 Why is it so hard? (continued) Were a young field 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 Still more art than science Everything we do is new. (We dont build the exact same house 30 times.) Need to have more reproducible results Need to have more measurements Coming up: Why do projects fail? 5 Why do projects fail? Why do projects fail so often?
Unrealistic or unarticulated project goals Inaccurate estimates of needed resources Badly defined system requirements Poor reporting of the project's status Question: Unmanaged risks Poor communication among customers, developers, and users Use of immature technology How many of these are Inability to handle the project's complexity caused by technical imcompentence in your Sloppy development practices developers? Poor project management A.0 Stakeholder politics B.5 C.8 Commercial pressures List from: http://www.spectrum.ieee.org/sep05/1685 Coming up: How do we fix it?
D.All of them 6 How do we fix it? Need to have more reproducible results Standard processes / procedures to produce good outcomes Design patterns Object oriented programming (reuse) More measurements of both the software and the process More testing at all stages of development By creating a better understanding of the process we use Coming Software Engineering: A Practitioners Approach, 6/e toup:create software, well
create better software faster. Chapter 1 Software and Software Engineering (Slides modified by Dan Fleck) Software engineering is the application of a systematic, disciplined, copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. quantifiable approach to the development, operation, and maintenance of For University Use Only software. - IEEE Glossary of university Software Engineering Terminology May be reproduced ONLYStandard for student use at the level when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited. 7 Software Engineering: A Practitioners Approach, 6/e Chapter 1 Software and Software Engineering (Slides modified by Dan Fleck) copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. Coming up: Softwares Dual Role For University Use Only 8 Softwares Dual Role Software is a product
Delivers computing potential Produces, manages, acquires, modifies, displays, or transmits information Software is a vehicle for delivering a product Supports or directly provides system functionality Controls other programs (e.g., an operating system) Effects communications (e.g., networking software) Helps build other software (e.g., software tools) Coming up: What is Software? 9 What is Software? Software is a set of items or objects that form a configuration that includes programs
documents data ... Coming up: Why is software different than hardware? Or manufacturing? 10 Why is software different than hardware? Or manufacturing? software is engineered software doesnt wear out software is complex Coming up: What can wear out because of overuse? 11 What can wear out because of overuse? 1. 2. 3. 4.
Mechanical devices Computer Hardware Computer software Michael Phelps Answers: A. 1 B. 2 C. 3 D. 1 & 2 12 Wear vs. Deterioration increased failure rate due to side effects Failure rate change actual curve idealized curve Time Coming up: Software Applications
13 There are many types of applications system software - OS, file management, networking, drivers, etc application software - data processing, point of sale, other business functions engineering/scientific software - CAD, stress analysis, orbital mechanics embedded software - microwave oven keypad, automobile control, cell phone software, etc product-line software - word processing, inventory control, etc
WebApps (Web applications) - many different things today AI software - robotics, data mining, expert systems Coming up: SoftwareNew Categories 14 Legacy Software Why must it change? 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.
Coming up: Software Evolution 15 Software Evolution The Law of Continuing Change (1974): E-type systems must be continually adapted else they become progressively less satisfactory. The Law of Increasing Complexity (1974): As an E-type system evolves its complexity increases unless work is done to maintain or reduce it. The Law of Self Regulation (1974): The E-type system evolution process is self-regulating with distribution of product and process measures close to normal. The Law of Conservation of Organizational Stability (1980): The average effective global activity
rate in an evolving E-type system is invariant over product lifetime. The Law of Conservation of Familiarity (1980): As an E-type system evolves all associated with it, developers, sales personnel, users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. The Law of Continuing Growth (1980): The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime. The Law of Declining Quality (1996): The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes. The Feedback System Law (1996): E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base. Source: Lehman, M., et al, Metrics and Laws of Software EvolutionThe 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 Coming up: Software Myths 16 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: A Generic Framework 17 Software Myths Affect managers, customers (and other nontechnical stakeholders) and practitioners Are believable because they often have elements of truth, but Invariably lead to bad decisions, therefore Insist on reality as you navigate your way through software
engineering One of the goals in this class is to learn you how to determine what reality is! Coming up: Software Myths 18 Fixing the problem Software engineering! Software engineering is really just a set of ideas and tools to use (when it makes sense) to give you a higher liklihood of success on a software project. Will your project fail if you dont use any software engineering techniques? No. but you have a better chance at success if you do. 19
A Generic Framework Communication Planning Creation of models to allow the customer and the developer to better understand the requirements and design that will achieve those requirements Construction Establish a plan for the work. Technical task to be conducted, risks, needed resources, work products to be created, and a schedule Modeling
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 The software (as a complete entity or partially complete increment) is delivered to the customer who evaluates it and provides feedback. Coming up: A Generic Framework 20
Brand Strategy Initiative. ... Creative work. Marketing plan . Through research and discovery, develop a positioning statement and messaging platform for the University. 18.104.22.168 Review findings of the UM communications audit conducted in 2010.
For the initial pool play games: At the 1 ½ hour mark, one more inning will be played (open) For the "final four" single elimination tournament: 6 innings will be played. 10-run rule after regulation game is complete (3 ½...
FHWA CPT workshopPractical Experiences using the CPT--September 2015 - Indianapolis, IN--Gerald Verbeek. This presentation was given by Gerald Verbeek on April 19, 2012 during the Shallow Exploration Drillers Clinic.
Literary Terms. Figurative Language. ... The Book Thief: Symbol - contd. The Mockingjay pin symbolizes hope. ... Using a motif refers to the repetition of a specific theme dominating the literary work. Difference Between Motif and . Theme.
SAMI-Persévérance : une piste à suivre pour favoriser la persévérance aux études postsecondaires Projet financé par le FQRSC (2005-2007) Présenté par Louise Sauvé, Ph.D Professeure en techonologie éducative, TÉLUQ-UQAM Directrice du Centre d'expertise et de recherche de SAVIE Co-responsable du...
Ready to download the document? Go ahead and hit continue!