Scope Of Software Engineering
-
Upload
emery-pena -
Category
Documents
-
view
74 -
download
9
description
Transcript of Scope Of Software Engineering
![Page 1: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/1.jpg)
1.1/46
Scope Of
Software Engineering
![Page 2: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/2.jpg)
1.2/46Prologue…
• ‘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 ,
![Page 3: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/3.jpg)
1.3/46Prologue - (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…,
• Actually, a simulated attack was interpreted as the real thing!
,
![Page 4: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/4.jpg)
1.4/46Prologue - (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, 1995352 companies, 8000 Projects. Source: The Standish Group, 1995
![Page 5: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/5.jpg)
1.5/46Prologue - (Cont’d)…• Why SW Projects Fail?
![Page 6: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/6.jpg)
1.6/46Prologue - (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.
![Page 7: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/7.jpg)
1.7/46discipline
• Discipline – training; punishment; method, system,
• Self discipline - ability to apply oneself to complete a task
or
Self discipline isthe ability to do what needs to be done,at the time it needs to be done,whether you like doing it or not.
![Page 8: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/8.jpg)
1.8/46Overview
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm ,
• Terminology.
![Page 9: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/9.jpg)
1.9/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 10: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/10.jpg)
1.10/46Historical Aspects …
• 1968 NATO Conference, Garmisch, Germany,
• Aim: to solve the “Software Crisis” ,
• Software is delivered:– Late,– Over budget,– With residual (שרידי, משקעי )
faults.
![Page 11: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/11.jpg)
1.11/46Historical 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?
![Page 12: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/12.jpg)
1.12/46Historical 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°?).
![Page 13: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/13.jpg)
1.13/46Historical Aspects - Conclusions
• Software engineering is not “engineering”,
• No silver bullet [brooks 1987],
• What silver bullets are used for?
![Page 14: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/14.jpg)
1.14/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 15: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/15.jpg)
1.15/46Economic Aspects
• Coding method CMnew is 10% faster than currently used method CMold. Should it be used?,
• Common sense answer: “of course!”,
• Software engineering answer:
• Cost of introducing CMnew to the organization,
• Cost of shifting to CMnew : training, (and not working, learning curve),
• Consider the effect of CMnew on maintenance ,
• Consider the client response.
![Page 16: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/16.jpg)
1.16/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 17: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/17.jpg)
1.17/46Maintenance Aspects
• Software life cycle,
• The way we produce software, including:
• The life-cycle model,
• The individuals ,
• CASE tools.
![Page 18: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/18.jpg)
1.18/46Life-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,
![Page 19: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/19.jpg)
1.19/46Relative Cost of Each Phase
• 1976–1981 data,
• Maintenance constitutes 67% of total cost:
![Page 20: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/20.jpg)
1.20/46Relative Cost of Each Phase
דרישות%2
אפיון%5 תכן
%6
קידודובדיקות
%12
שילוב%8
אחזקה%67
2%דרישות 5%אפיון
6%תכן
![Page 21: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/21.jpg)
1.21/46Comparative Relative Cost of Each Phase
![Page 22: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/22.jpg)
1.22/46Good and Bad Software
• Good software is maintained — bad software is discarded ,
• Effect of CMnew on maintenance.
![Page 23: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/23.jpg)
1.23/46Different 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).
![Page 24: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/24.jpg)
1.24/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 25: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/25.jpg)
1.25/46Specification 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 ,
![Page 26: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/26.jpg)
1.26/46Cost to Detect and Correct a Fault
![Page 27: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/27.jpg)
1.27/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 28: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/28.jpg)
1.28/46Team 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.
![Page 29: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/29.jpg)
1.29/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 30: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/30.jpg)
1.30/46The 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.
![Page 31: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/31.jpg)
1.31/46The 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 balanceactions: deposit, withdraw, determine balance.
![Page 32: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/32.jpg)
1.32/46Structured VS. Object-oriented Paradigm
• Information hiding,
• Responsibility-driven design ,
• Impact on maintenance, development.
![Page 33: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/33.jpg)
1.33/46Key Aspects of Object-oriented Solution
• Conceptual independence:– Encapsulation – כימוס,
• Physical independence: – Information hiding,
• Impact on development:– Physical counterpart (מקביל, דומה) ,
• Impact on maintenance:– Independence effects.
![Page 34: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/34.jpg)
1.34/46Responsibility-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“.
![Page 35: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/35.jpg)
1.35/46Transition From Analysis to Design
• Structured paradigm:– Jolt ( טלטול) between analysis (what) and design (how) ,
• Object-oriented paradigm:– Objects appear from the very beginning.
![Page 36: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/36.jpg)
1.36/46Analysis / 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.
![Page 37: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/37.jpg)
1.37/46Removing 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.
![Page 38: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/38.jpg)
1.38/46In More Detail
• Objects enter here:
![Page 39: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/39.jpg)
1.39/46Warning
• 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).
![Page 40: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/40.jpg)
1.40/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 41: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/41.jpg)
1.41/46Terminology …
• 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
![Page 42: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/42.jpg)
1.42/46Terminology (Cont’d) …
• Bug: – “A bug crept into the code”
Instead of
– “I made a mistake” ,
• Whose responsibility is it?
![Page 43: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/43.jpg)
1.43/46Object-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).
![Page 44: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/44.jpg)
1.44/46Object-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.
![Page 45: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/45.jpg)
1.45/46Summary
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
![Page 46: Scope Of Software Engineering](https://reader036.fdocuments.us/reader036/viewer/2022062301/56813323550346895d9a032e/html5/thumbnails/46.jpg)
1.46/46
Scope Of
Software Engineering
The End