Download presentation
Presentation is loading. Please wait.
Published byAda Summers Modified over 8 years ago
2
1.1/46 Scope Of Software Engineering
3
1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within 30 days…, …, Pay the $0.00 bill or possible legal action …, Paying the $0.00 bill,
4
1.3/46 Prologue - (Cont’d)… On Nov, 11, 1979 the US Worldwide Military Command and Control System (WWMCCS) computer network reported that the Soviet Union has launched missiles aimed towards the US…,WWMCCS Actually, a simulated attack was interpreted as the real thing!,
5
1.4/46 Prologue - (Cont’d)… 30% of software development projects fail, 70% of the remainder –Are over budget by 189% –Behind schedule by 222%, More than 50% of this trouble is caused by inadequate requirements definition, 352 companies, 8000 Projects. Source: The Standish Group, 1995
6
1.5/46 Prologue - (Cont’d)… Why SW Projects Fail?
7
1.6/46 Prologue - (Cont’d) … SW engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the users’ needs, Furthermore, the SW must be easy to modify when the users’ needs change.
8
1.7/46 discipline Discipline – training; punishment; method, system, Self discipline - ability to apply oneself to complete a task or Self discipline is the ability to do what needs to be done, at the time it needs to be done, whether you like doing it or not.
9
1.8/46 Overview Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
10
1.9/46 Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
11
1.10/46 Historical Aspects … 1968 NATO Conference, Garmisch, Germany, Aim: to solve the “Software Crisis”, Software is delivered: –Late, –Over budget, –With residual (שרידי, משקעי ) faults.
12
1.11/46 Historical Aspects (Cont’d) … Few actual questions: What really happened on 1/1/2000 0:0?, Why was windows 2000 so late? (And why, on its release day, some 64,000 bugs were announced?), How did NASA lose MARS?MARS
13
1.12/46 Historical Aspects (Cont'd) … Why cannot bridge-building techniques be used to build operating systems?, Compare: Attitude to collapse, Accumulated experience, Complexity, Maintenance (can you please rotate in 90°?).
14
1.13/46 Historical Aspects - Conclusions Software engineering is not “engineering”, No silver bullet [brooks 1987], What silver bullets are used for?
15
1.14/46 Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
16
1.15/46 Economic Aspects Coding method CM new is 10% faster than currently used method CM old. Should it be used?, Common sense answer: “of course!”, Software engineering answer: Cost of introducing CM new to the organization, Cost of shifting to CM new : training, (and not working, learning curve), Consider the effect of CM new on maintenance, Consider the client response.
17
1.16/46 Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
18
1.17/46 Maintenance Aspects Software life cycle, The way we produce software, including: The life-cycle model, The individuals, CASE tools.
19
1.18/46 Life-cycle Model 1.Requirements phase – דרישות, 2.Specification ( & Planning) phase – אפיון, 3.Design phase – תיכון, 4.Implementation phase – יישום, מימוש, 5.Integration phase – שילוב, 6.Maintenance phase – תחזוקה, 7.Retirement – פרישה. System Analysis,
20
1.19/46 Relative Cost of Each Phase 1976–1981 data, Maintenance constitutes 67% of total cost:
21
1.20/46 Relative Cost of Each Phase דרישות %2 אפיון %5 תכן %6 קידוד ובדיקות %12 שילוב %8 אחזקה %67 דרישות 2% אפיון 5% תכן 6%
22
1.21/46 Comparative Relative Cost of Each Phase
23
1.22/46 Good and Bad Software Good software is maintained — bad software is discarded, Effect of CM new on maintenance.
24
1.23/46 Different Types of Maintenance Corrective maintenance [about 20%], Enhancement: — תחזוקת הגברה, שיפור, חיזוק Perfective maintenance [about 60%] — תחזוקת השלמה, e.g.: additional functionality or decreased response time, Adaptive maintenance [about 20%] — התאמה תחזוקת. (Responding to an ever-changing environment).
25
1.24/46 Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
26
1.25/46 Specification VS. Maintenance Faults 60 to 70 percent of faults are specification and design faults, Data of Kelly, Sherif, and hops [1992]: –1.9 faults per page of specification, –0.9 faults per page of design, –0.3 faults per page of code,
27
1.26/46 Cost to Detect and Correct a Fault
28
1.27/46 Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
29
1.28/46 Team Programming Aspects SW products might be huge: –We can build products that are too large to be written by one person in the available time, Teams: –Interface problems, –Meetings, Communication is cheap: –International teams, –Different working hours, –Cultural differences.
30
1.29/46 Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
31
1.30/46 The Object-oriented Paradigm … The structured paradigm had great successes initially –It started to fail with larger products (> 50,000 LOC), Maintenance problems (today, up to 80% of effort), Reason: structured methods are –Action oriented (finite state machines, data flow diagrams); or –Data oriented (entity-relationship diagrams), –But not both.
32
1.31/46 The Object-oriented Paradigm (Cont'd) Both data and actions are of equal importance, Object: –Software component that incorporates both data and the actions that are performed on that data, Example: –Bank account data:account balance actions: deposit, withdraw, determine balance.
33
1.32/46 Structured VS. Object-oriented Paradigm Information hiding, Responsibility-driven design, Impact on maintenance, development.
34
1.33/46 Key Aspects of Object-oriented Solution Conceptual independence: –Encapsulation – כימוס, Physical independence: –Information hiding, Impact on development: –Physical counterpart (מקביל, דומה), Impact on maintenance: –Independence effects.
35
1.34/46 Responsibility-driven Design Also called “Design by Contract”, Example: Send flowers to your aunt Tel Aviv: –Call 1-800-203040, –Where is 1-800-203040?, –Which Tel-Aviv City florist does the delivery?, –Information hiding, Object-oriented paradigm: –“Send a message by a method [action] of an object“.
36
1.35/46 Transition From Analysis to Design Structured paradigm: –Jolt ( טלטול) between analysis (what) and design (how), Object-oriented paradigm: –Objects appear from the very beginning.
37
1.36/46 Analysis / Design “Hump” Systems analysis: –Determine what has to be done, Design: –Determine how to do it, –Architectural design — determine modules, –Detailed design — design each module.
38
1.37/46 Removing the “Hump” Object-oriented analysis: –Determine what has to be done, –Determine the objects, Object-oriented design: –Determine how to do it, –Design the objects.
39
1.38/46 In More Detail Objects enter here:
40
1.39/46 Warning Do not use the object-paradigm to enhance a product developed using the structured paradigm. Water and oil do not mix, Exception: if the new part is totally disjoint –Example: adding a GUI (graphical user interface).
41
1.40/46 Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
42
1.41/46 Terminology … Software, program, system, product, Methodology – the science of methods, paradigm – model or pattern, we will use both for: ‘collection of techniques for carrying out the product life-cycle’, Client, developer, user, Cont’d
43
1.42/46 Terminology (Cont’d) … Bug: –“A bug crept into the code” Instead of –“I made a mistake”, Whose responsibility is it?
44
1.43/46 Object-oriented Terminology … Data component of an object: –State variable, –Instance variable (java), –Field (C++), –Attribute (generic), Action component of an object: –Member function (C++), –Method (generic).
45
1.44/46 Object-oriented Terminology (Cont’d) C++: A member is either: –An attribute (“field”), or, –A method (“member function”), Java: A field is either: –An attribute (“instance variable”), or a –Method.
46
1.45/46 Summary Historical aspects, Economic aspects, Maintenance aspects, Specification and design aspects, Team programming aspects, The object-oriented paradigm, Terminology.
47
1.46/46 Scope Of Software Engineering The End
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.