Sunteți pe pagina 1din 22

Introduction to Software Engineering

Content
1. What is Software Engineering? 2. Characteristics of Software Engineering 3. History of Software Engineering 4. What is Software? 5. Role of Software Engineers 6. Why still Software Engineering? 7. Software Life Cycle 8. Practical Disasters 9. Year 2000 Problem 10. Software Projects in Industry

Reference: Fundamentals of Software Engineering by C. Ghezzi, M. Jazayeri and D. Mandrioli. Prentice Hall Publisher.

Dr. Samira Sadaoui

What is Software Engineering?

What is Software Engineering?

Programming in the large (multi-person


construction).

The science of building LARGE software


systems: - On time and within budget. - With correct operations. - With an acceptable performance.

Dr. Samira Sadaoui

What is Software Engineering?

A broad range of skills:


- Computer Science (algorithms and complexity, programming languages, data structures, databases, articial intelligence, etc).

- Management.

- Mathematics.

- Psychology.

Dr. Samira Sadaoui

Characteristics of Software Engineering

Characteristics of Software Engineering

LARGE software systems means:


- Complex (large number of functions, classes, components and lines of code). - Team of developers. - High cost. - Lifetime measured in years (to live long).

Software costs dominate hardware costs.

Dr. Samira Sadaoui

Characteristics of Software Engineering

Characteristics of Software Engineering Commercial pressure to produce high-quality


software: - Understanding problem requirements. - Fixing errors. - Incorporating software qualities (performance, portability, robustness, reliability, security, scalability, inter-operability, fault-tolerance, etc). - Delivering on time and within budget. - Continuously enhancing functionalities (maintainability).

Dr. Samira Sadaoui

History of Software Engineering

History of Software Engineering

Software Crisis Requirements not well understood. No methodologies for describing what the
software should do.

Increased software qualities (portable,


maintainable, reusable, etc).

High cost and time pressure. Coordination problems within the development
teams.

Dr. Samira Sadaoui

History of Software Engineering

A Solution to Software Crisis NATO conference in Garmish, Germany, in


1968:

Software Crisis: what were the problems? Software Engineering: idea for a solution.

Software Engineering is the establishment and


use of sound engineering principles in order to obtain economically software that is reliable and works efciently on real machines.

Dr. Samira Sadaoui

History of Software Engineering

A Solution to Software Crisis An engineering approach requires theories,


design methodologies, tools, management techniques, team organization.

Software Engineering: (1) The application of a


systematic, disciplined, quantiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).

Summary: Building a product : software. Using a process to build that product. Use tools in support of that process (CASE
tools).

Dr. Samira Sadaoui

What is a Software?

What is a Software?

Requirements specication document. Design specication document. Source code. Test cases. User documentation. Technical documentation.

Dr. Samira Sadaoui

What is a Software?

Two Types of Software Generic products: developed for a general


market (DB management systems, word processors, project management tools, compilers, e-mail systems, Web browsers, etc).

Bespoke (customized ) products: developed for


a specic customer.

Dr. Samira Sadaoui

10

Role of Software Engineers

Role of Software Engineers

Good programmer (data structures,


algorithms, several programming languages).

Familiar with several design methodologies


(object-oriented, formal, agent-based techniques, component-based, etc)

Good software architect (pipe and lter, MVC,


layered, data-centered, client-sever, etc)

Able to translate vague requirements and


desires into precise specications.

Good communication skills (with individuals


with different perceptions and educations).

Able to plan, schedule and coordinate work.

Dr. Samira Sadaoui

11

Why still Software Engineering?

Why still Software Engineering?

Software Systems become more complex


(telephone systems, trafc monitoring systems, banking systems, hospital administration systems).

Any change (x defects, improve existing


features, add new features, remove old features or adapt in a new environment) in the requirements may affect many parts of the software.

Projects still run over time and out of budget.


They are out of date even when they are being designed.

More demands on software qualities. Control critical systems (air crafts, medical
devices, nuclear stations) where errors can have catastrophic results.

Dr. Samira Sadaoui

12

Why still Software Engineering?

Why is software still delivered late?

Changing requirements not reected in the


schedule.

Risks not taken into account. Under-estimation of technical and human


difculties.

Unrealistic deadlines. Lack of communication among project


members.

Fail to see that the project falls behind


schedule.

Dr. Samira Sadaoui

13

Software Life Cycle

Software Life Cycle

A series of phases that organize the software production process to build high quality software:

Feasibility Study: is there a solution to the problem? Analysis: dene the problem requirements. Design: build software architecture and modules. Implementation: produce source code. Testing: deal with unit testing and system testing. Maintenance: x bugs, enhance features and adapt across platforms

Dr. Samira Sadaoui

14

Software Life Cycle

Production Activities
- Analyze problem requirements. - Decide on high-level architecture. - Produce detailed design of components. - Implement the modules. - Test the modules. - Integrate the modules and test the software. - Write user documentation. - Release to customers. - Provide maintenance.

Dr. Samira Sadaoui

15

Software Life Cycle

Management Activities
- Plan the development of the new software. - Study the software feasibility. - Estimate deadline. - Estimate software cost (resources and people). - Organize teams.

Dr. Samira Sadaoui

16

Practical Disasters

Practical Disasters

European Space Agency Ariane 5:


- 10 years and $7 billion, - ight on June 4, 1996 ended in the launcher being exploded, - to convert a 64-bit number into a 16-bit format (an overow error).

Denver baggage handling system


(1993-1994): - involves 300 computers, - overran so badly as to prevent the airport opening on time (late by 16 months), - 3.2 billion dollars over budget.

Dr. Samira Sadaoui

17

Practical Disasters

Practical Disasters

Therac-25 (1985-1987):
- a radiation therapy and X-ray machine, - malfunctioned and killed several patients by overdose (100 times), - a nonstandard sequence of keystrokes.

Dr. Samira Sadaoui

18

Year 2000 Problem

Year 2000 Problem

Two related problems :


- Years are represented with two digits; Year 2000 will be confused with 1900. - Year 2000 is a leap year; the rst time in 400 years that a year divisible by 100 has this property. Many programs will get the calculation of leap year wrong.

Dr. Samira Sadaoui

19

Year 2000 Problem

Why solving the Year 2000 problem costed $ 1012


- Source code not available or not compilable. - Poor modularity of programs and data calculations are not isolated. Finding all data calculations requires an effort estimated

5 1011 to 1012 lines of source code


- Poor programming practices, tricky and obscure data handling.

Dr. Samira Sadaoui

20

Projects in Industry

Projects in Industry

8330 Software Projects in Industry (Standish


Groups 1994 Report) : - 16% were successful: . in budget, on time, met requirements, . for large projects, only 9% were successful, - 53% were challenged (over budget, late or capabilities missing) - 31% canceled during development

1996 Succeeded Failed Challenged 27% 40% 33%

1998 26% 28% 46%

2000 28% 23% 49%

2002 34% 15% 51%

2004 29% 18% 53%

2009 32% 24% 44%

Dr. Samira Sadaoui

21

Projects in Industry

Bob Lawhorn on software failure - March 2010:


Poorly dened applications (miscommunication between business and IT) contribute to a 66project failure rate, costing U.S. businesses at least $30 billion every year (Forrester Research). International Journal of Scientic & Engineering Research Volume 2, Issue 2, February-2011.

US study (1995):
- software cost more than $450 billion, - $81 billion spend per year for failing software projects,

Dr. Samira Sadaoui

22

S-ar putea să vă placă și