Presentation is loading. Please wait.

Presentation is loading. Please wait.

1.1/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within.

Similar presentations


Presentation on theme: "1.1/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within."— Presentation transcript:

1

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


Download ppt "1.1/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within."

Similar presentations


Ads by Google