29
MADALINA CROITORU [email protected] Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA CROITORU [email protected] Software Engineering week 3 Madalina Croitoru IUT Montpellier

Embed Size (px)

Citation preview

Page 1: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Software Engineeringweek 3

Madalina CroitoruIUT Montpellier

Page 2: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Software crisisSurvey of outcomes

from Standish Group

280,000 development projects

1. Successful

2. Cancelled

3. Late, over budget, incomplete

128%

223%

349%

Page 3: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Goals of software engineering

• Satisfy user requirements

• High reliability• Low maintenance costs• Deliver on time• Low production cost• High performance• Ease of reuse

Page 4: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Code and fix

Page 5: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Page 6: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Waterfall model

• Requirement analysis and definition

• System and software design

• Implementation and unit testing

• System testing

Page 7: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Waterfall model

Page 8: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Current challenges

Page 9: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

MADALINA [email protected]

Waterfall model

• Requirement analysis and definition

• System and software design

• Implementation and unit testing

• System testing

Page 10: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

The requirements document

• Specify external behavior

• Specify constraints on implementation

MADALINA [email protected]

Page 11: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Requirements document should

• Be easy to change• Reference for systems

maintainers• Document the

expected system lifecycle

• Describe desired responses to unexpected

MADALINA [email protected]

Page 12: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Requirements analysis and specifications

• Involves:– Feasibility study– Requirements analysis– Requirements definition– Requirements validation– Requirements specifications

• AIM: complete, official statement of what developers are required to do

MADALINA [email protected]

Page 13: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Role of analyst

• Elicit requirements• Resolve different views• Advise what is feasible• Clarify requirements• Document

requirements• Negotiate agreement

MADALINA [email protected]

Page 14: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

How to get requirements

• Talk to the user:– Listen– Ask– Record

• Clarify views:– Resolve inconsistencies– Generate a consensus

• Important to involve all stakeholders

MADALINA [email protected]

Page 15: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Why analysis is hard

• Stakeholders do not know what they want

• Stakeholders have unrealistic expectations

• Stakeholders use their own language• Different stakeholders have different

requirements• Political factors• Economic / business factors

MADALINA [email protected]

Page 16: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Requirements definition

• A high - level, customer – oriented statement of what system is to do

• Two types of requirements:– Functional: services the systems should

provide, how it responds to inputs, how it behaves, what is should NOT do

– Non-functional: constraints the system should operate under (Pentium, X RAM, Y hard disk)

MADALINA [email protected]

Page 17: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Requirements definition

• A high - level, customer – oriented statement of what system is to do

• Two types of requirements:– Functional: services the systems should

provide, how it responds to inputs, how it behaves, what is should NOT do

– Non-functional: constraints the system should operate under (Pentium, X RAM, Y hard disk)

MADALINA [email protected]

Page 18: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Requirements documents

• Complete: all services to be provided• Consistent: no contradictions• Structural• Systematic• Free of implementation bias

MADALINA [email protected]

Page 19: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Using natural language

• Lack of clarity• Requirements confusion• Requirements amalgamation

MADALINA [email protected]

Page 20: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Requirements definition

• A high - level, customer – oriented statement of what system is to do

• Two types of requirements:– Functional: services the systems should

provide, how it responds to inputs, how it behaves, what is should NOT do

– Non-functional: constraints the system should operate under (Pentium, X RAM, Y hard disk)

MADALINA [email protected]

Page 21: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Non-functional Requirements

• Speed:– No of transactions per second– User / event response time– Screen refresh time

• Size:– Kibytes– RAM

• Ease of use:– Required average training time– Number of help screens

MADALINA [email protected]

Page 22: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

(What is a KiByte)

MADALINA [email protected]

Page 23: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Non functional Requirements

• Reliability:– Mean time to failure– Availability

• Robustness:– Time to restart after failure– Percentage of events causing failure– Freedom from data corruption on failure

MADALINA [email protected]

Page 24: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Kinds of requirements

• Physical environment:– Where will it function– Is there one/ more locations– Are there environmental restrictions?

• Interfaces:– Input coming from one / more systems?– Output going to one / more systems?– Prescribed medium for input /output?

MADALINA [email protected]

Page 25: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Kinds of requirements

• User and human interfaces:– Who will use the system?– Will there be several types of users?– What is the skill level of each?– What training is required?

• Functionality:– What the system does?– When the system does it?

MADALINA [email protected]

Page 26: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Kinds of requirements• Documentation:

– How much documentation is required?– What audience is the document intended for?– What help features are provided?

• Data:– Input / output format?– How often received / sent?– Accurate? What precision?– Data must be retained?

MADALINA [email protected]

Page 27: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Kinds of requirements• Security:

– Must access to system be controlled?– How to isolate user’s data?– How often to do backups?– Where store backups?

• Quality assurance:– Requirements for reliability?– Mean time between failure?– What faults to be captured?

MADALINA [email protected]

Page 28: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Kinds of requirements

MADALINA [email protected]

Page 29: MADALINA CROITORU croitoru@lirmm.fr Software Engineering week 3 Madalina Croitoru IUT Montpellier

Requirements Validation

• Showing that the requirements define the system that the customer wants

• Invalid requirements are very expensive

• Requirements have to be:– Complete– Correct

MADALINA [email protected]