Upload
emery-pena
View
79
Download
9
Embed Size (px)
DESCRIPTION
Scope Of Software Engineering. 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 ,. ,. Prologue - (Cont’d)…. - PowerPoint PPT Presentation
Citation preview
1.1/46
Scope Of
Software Engineering
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 ,
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!
,
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
1.5/46Prologue - (Cont’d)…• Why SW Projects Fail?
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.
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.
1.8/46Overview
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm ,
• Terminology.
1.9/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
1.10/46Historical Aspects …
• 1968 NATO Conference, Garmisch, Germany,
• Aim: to solve the “Software Crisis” ,
• Software is delivered:– Late,– Over budget,– With residual (שרידי, משקעי )
faults.
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?
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°?).
1.13/46Historical Aspects - Conclusions
• Software engineering is not “engineering”,
• No silver bullet [brooks 1987],
• What silver bullets are used for?
1.14/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
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.
1.16/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
1.17/46Maintenance Aspects
• Software life cycle,
• The way we produce software, including:
• The life-cycle model,
• The individuals ,
• CASE tools.
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,
1.19/46Relative Cost of Each Phase
• 1976–1981 data,
• Maintenance constitutes 67% of total cost:
1.20/46Relative Cost of Each Phase
דרישות%2
אפיון%5 תכן
%6
קידודובדיקות
%12
שילוב%8
אחזקה%67
2%דרישות 5%אפיון
6%תכן
1.21/46Comparative Relative Cost of Each Phase
1.22/46Good and Bad Software
• Good software is maintained — bad software is discarded ,
• Effect of CMnew on maintenance.
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).
1.24/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
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 ,
1.26/46Cost to Detect and Correct a Fault
1.27/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
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.
1.29/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
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.
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.
1.32/46Structured VS. Object-oriented Paradigm
• Information hiding,
• Responsibility-driven design ,
• Impact on maintenance, development.
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.
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“.
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.
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.
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.
1.38/46In More Detail
• Objects enter here:
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).
1.40/46
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
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
1.42/46Terminology (Cont’d) …
• Bug: – “A bug crept into the code”
Instead of
– “I made a mistake” ,
• Whose responsibility is it?
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).
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.
1.45/46Summary
• Historical aspects,
• Economic aspects,
• Maintenance aspects,
• Specification and design aspects,
• Team programming aspects,
• The object-oriented paradigm,
• Terminology.
1.46/46
Scope Of
Software Engineering
The End