Module 1 Introduction to Software Engineering Lawrence Chung
- Slides: 40
Module 1: Introduction to Software Engineering Lawrence Chung Software Engineering: Introduction 1
Objectives l What is Software Engineering? l Why Software Engineering? l How to do Software Engineering? Lawrence Chung Software Engineering: Introduction 2
What is Software Engineering? Software Engineering = Software + Engineering l What is Software? Software = Soft + ware Any examples? l What is Engineering? Engineering = Engine-er-ing Any examples? Is this an Engineering discipline? If yes, why? If not, why not? Is this for an Engineer or a scientist? Lawrence Chung Software Engineering: Introduction 3
What is Software Engineering? A historical definition: “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines …” [Fritz Bauer, at the 1 st NATO Conference on Software Engineering, 1969] IEEE definition: “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. ” A shorter definition: BCFH Lawrence Chung Software Engineering: Introduction 4
Why Software Engineering? 9 software projects totaling $96. 7 million: Where The Money Went [Report to Congress, Comptroller General, 1979] Delivered, but never successfully used 45% Used as delivered 2% Usable w. rework 3% Used w. extensive rework, but later abandoned 20% Lawrence Chung Paid for, but not delivered 30% Software Engineering: Introduction Why? Software hurts ØRequirements Ødesign 5
What Factors Contribute to Project Success? Standish Group, ‘ 01 (www. standishgroup. com) Project Success Factors The CHAOS Ten 1. Executive Management Support 28% 2. User Involvement 3. Experienced Project Manager completed on time and on budget 4. Clear Business Objectives 5. Minimized Scope 6. Standard Software Infrastructure overran original estimates: canceled before completion -Time overrun averaged 63% - Cost overrun averaged 45% 49% 23% Lawrence Chung 7. Firm Basic Requirements 8. Formal Methodology 9. Reliable Estimates 10. Other Software Engineering: Introduction 6
What Factors Contribute to Project Failure? The CHAOS Ten Standish Group, ‘ 01 (www. standishgroup. com) “The definition of insanity is. Engineering: doing the. Introduction same thing over and Lawrence Chung Software over again and expecting a different result. ” [Albert Einstein] 7
Why Software Engineering? What do software engineers do? Non-productive Activities 30% Work alone 20% Interaction 50% programming ≠ software engineering Øpersonal activity team activity Øsmall, clear problem large, nebulous problem Lawrence Chung Software Engineering: Introduction 8
Why Software Engineering? http: //www. cis. gsu. edu/~mmoore/CIS 3300/handouts/Sci. Am. Sept 1994. html http: //techdirt. com/articles/20060818/1613226. shtml Are you aware of any other mishaps? Lawrence Chung Software Engineering: Introduction 9
Why Software Engineering? Major symptoms of the “software crises”: q Over budget q Schedule slippage q Poor quality Major causes of the “software crises”: The "software crises" came about when people realized the major problems in software development were … caused by communication difficulties and the management of complexity” [Budd] Lawrence Chung Software Engineering: Introduction 10
Why SE? Lawrence Chung Software Engineering: Introduction 11
How to Do Software Engineering? Software Lifecycle Review Systems Engineering Project Planning Architectural Design Detailed Design Implementation Release Lawrence Chung Quality Assurance Requirements Analysis Maintenance BCFH - models/languages, processes/methodologies, tools, … Software Engineering: Introduction 12
To be discussed later on… Lawrence Chung Software Engineering: Introduction 13
How to do SE? Lawrence Chung Software Engineering: Introduction 14
How to do SE? Lawrence Chung Software Engineering: Introduction 15
The Tar Pit 1 2 3 4 5 6 7 l The 8 9 10 11 12 13 14 15 16 17 woes of the craft: Bugs!!! l Bugs get harder as testing progresses l The fundamental problem: fixing a bug has a 20%-50% chance of introducing another l The product gets obsolete upon or even before completion l Worse: must use others’ programs! l 18 19 20 Lawrence Chung Software Engineering: Introduction 16
Genesis 11: 1 -9 Acts 2: 1 -4 The Tower Of Babel Let's become famous by building a city with a tower that reaches up to heaven (verse four). Let's go down and confuse their speech right away, and make it so that they will not understan d each other's speech. (verses five through seven). Lawrence Chung Software Engineering: Introduction 17
Why Did the Tower of Babel Fail? Bad communication in software projects is the root of all evil. Lawrence Chung Software Engineering: Introduction 18
The Mythical Man-Month 1 2 3 4 5 6 l Optimism: All programmers are optimists, believing in happy endings and fairy god-mothers. l Because programming tasks are usually chained end-to-end, the probability that each will go well is very small. l 7 8 9 10 11 12 13 l Man-month: 14 15 16 17 18 19 20 Cost vary as a product: men · months. l Progress does not: communication overhead! l Overhead: intercommunication and training. l Lawrence Chung Software Engineering: Introduction 19
Brook’s Law Adding manpower to a late software project makes it later. Lawrence Chung Software Engineering: Introduction 20
Hatching a Catastrophe Poor Project planning, estimation, control Coding is “ 90% finished” for half of the total coding time l Debugging is “ 99% complete” most of the time l Lawrence Chung Software Engineering: Introduction 21
No Silver Bullet – Essence and Accident in Software Engineering “There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity” (1986). l Complexity l l l enormous number of states (orders of magnitude more than in hardware), so conceiving, describing and testing is hard increases non-linearly with its size introduces a lot of difficulties: l l l communication among team members enumerating (much less understanding) of all possible states of the program management problems: l l l conceptual integrity is hard to achieve learning curve: personnel turnover becomes disaster others Lawrence Chung Software Engineering: Introduction 22
The M-MM after 20 years 1 2 3 4 Answers questions like: What do you now think was 6 wrong when written? What is now obsolete? 7 What is really new in the software engineering 8 9 world? 5 10 11 l 12 13 14 15 16 17 18 19 20 What was right and still is: l Conceptual integrity is the more important factor in ease of use [There are other factors. Consider Macintosh vs. MS-DOS]. It is the central question addresses by M-MM and is central to product quality. Lawrence Chung Software Engineering: Introduction 23
How to do SE? Lawrence Chung Software Engineering: Introduction 24
How to do SE? Lawrence Chung Software Engineering: Introduction 25
How to do SE? Lawrence Chung Software Engineering: Introduction 26
How to do SE? Lawrence Chung Software Engineering: Introduction 27
How to do SE? Lawrence Chung Software Engineering: Introduction 28
How to do SE? Lawrence Chung Software Engineering: Introduction 29
Why speak about management rather than technical issues? Lawrence Chung Software Engineering: Introduction 30
How to do SE? News Groups: comp. software-eng comp. software. testing … l Professional Organizations: IEEE: TSE, ICRE, … ACM: TOSEM … l Lawrence Chung Software Engineering: Introduction 31
Introduction to SE - Summary Why Software Crisis due to Communication and Complexity l Inherent complexity l What l Engineering (large) software, bcfh How l BCFH languages, concepts, models, tools Lawrence Chung Software Engineering: Introduction 32
Lawrence Chung Software Engineering: Introduction 33
Lawrence Chung Software Engineering: Introduction 34
Lawrence Chung Software Engineering: Introduction 35
Lawrence Chung Software Engineering: Introduction 36
Lawrence Chung Software Engineering: Introduction 37
Lawrence Chung Software Engineering: Introduction 38
Lawrence Chung Software Engineering: Introduction 39
Introduction to SE - Points to Ponder 1. 2. 3. 4. 5. 6. 7. Programming = software engineering? What does BCFH really mean? Can you define it completely? What are the similarities, and differences, between Civil Engineering and Software Engineering? What are the differences between a notation and a methodology? Can we use C# for analysis? Can you prove you and I communicate with each other perfectly? Are you a scientist or an engineer? Lawrence Chung Software Engineering: Introduction 40
- Chúng tôi đứng trên núi chung
- Lawrence chung rate my professor
- Volere requirements specification template
- Tom hong
- Lawrence chung
- What is unit testing in software
- System procurement process in software engineering
- Forward engineering and reverse engineering
- Software maintenance process models ppt
- What is software implementation in software engineering
- What is software metrics in software engineering
- Types of software crisis
- What is software measurement
- Real time software design in software engineering
- Software design fundamentals in software engineering
- Types of software changes
- Introduction to software engineering course outline
- C device module module 1
- Module engineering consultant
- Module 4 - open source software and licensing
- 00104 power tools
- Introduction to construction drawing
- Electrical abbreviations
- Operations management module
- Dr carlson advises his depressed patients
- Module 00103 introduction to hand tools
- 00102-15 introduction to construction math
- An engineer's scale is set up in multiples of
- Module 1 introduction to food safety
- Intro to mice
- A tool used to hold objects firmly in place is called
- Questions and answers for food safety
- Module 3 introduction to hand tools test
- Introduction to entrepreneurship module
- Module 5 supply and demand introduction and demand
- Module 3 exam introduction to hand tools answers
- 00104-15
- Emc
- Nccer introduction to hand tools
- Vua giê xu đấng chúng con ngợi khen
- Quang trung