software engineering

25
1 NSG 2008 Software Engineering 2 Software processen

Upload: tasha-bullock

Post on 02-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Software Engineering. 2 Software processen. Software proces. Fundamentele aannamen: Goede processen leiden tot goede software Goede processen reduceren risico’s Goede processen bevorderen transparantie. Variëteit aan software processen. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Software Engineering

1NSG 2008

Software Engineering

2

Software processen

Page 2: Software Engineering

2NSG 2008

Software proces

Fundamentele aannamen:

Goede processen leiden tot goede software

Goede processen reduceren risico’s

Goede processen bevorderen transparantie

Page 3: Software Engineering

3NSG 2008

Variëteit aan software processen

Software producten variëren sterk...

Daarom, er bestaat geen standaard proces voor alle software engineering projecten

MAAR succesvolle software ontwikkelingsprojecten moeten allemaal overeenkomstige zaken aanpakken.

Dit creëert een aantal overeenkomstige proces onderdelen die onderdeel moeten zijn van alle software projecten

Page 4: Software Engineering

4NSG 2008

Basale processtappen in elk software ontwikkelproject

• Haalbaarheidsonderzoek en planning

• Requirements

• Systeem and programma ontwerp

• Implementatie and testen

• Acceptatietesten en uitgifte

• Gebruik and onderhoud

Het is essentieel om onderscheid te maken tussen deze aspecten en je ervan bewust te zijn in welke processtap je op gegeven moment zit.

Verwissel niet de begrippen requirements and ontwerp.

Page 5: Software Engineering

5NSG 2008

Feasibility and Planning

A feasibility study precedes the decision to begin a project.

• What is the scope of the proposed project?

• Is the project technically feasible?

• What are the projected benefits?

• What are the costs, timetable?

A feasibility study leads to a decision: go or no-go.

Page 6: Software Engineering

6NSG 2008

Requirements

The requirements define the function of the system FROM THE CLIENT'S VIEWPOINT.

The requirements establish the system's functionality, constraints and goals by consultation with the client and users. They are then defined in a manner that is understandable by both the client and the development staff.

This phase is sometimes divided into:

• Requirements analysis

• Requirements definition

• Requirements specification

Page 7: Software Engineering

7NSG 2008

System and Program Design

The design describes the system FROM THE SOFTWARE DEVELOPERS' VIEWPOINT

System design: Partition the requirements to hardware or software systems. Establishes an overall system architecture

Software design: Represent the software system functions in a form that can be transformed into one or more executable programs

• Unified Modeling Language (UML)

Page 8: Software Engineering

8NSG 2008

Implementation and Testing

Coding

The software design is realized as a set of programs or program units. (Written specifically, acquired from elsewhere, or modified.)

Testing

Individual components are tested against specifications.

The individual program units are integrated and tested against the design by the development staff as a complete system.

Page 9: Software Engineering

9NSG 2008

Acceptance Testing and Release

Acceptance testing

The complete system is tested against the requirements by the client.

Delivery and release

The complete system is delivered to the client and released into production.

Page 10: Software Engineering

10NSG 2008

Operation and Maintenance

Operation: The system is put into practical use.

Maintenance: Errors and problems are identified and fixed.

Evolution: The system evolves over time as requirements change, to add new functions or adapt the technical environment.

Phase out: The system is withdrawn from service.

This is sometimes called the Software Life Cycle

Page 11: Software Engineering

11NSG 2008

Sequence of ProcessesEvery software project will include these basic processes, in some shape or form, but:

• They may be formal or informal

• They may be carried out in various sequences

Major alternatives

• Sequential: Complete each process step before beginning the next (but see the next few slides). Waterfall model.

• Iterative: Go quickly through all process steps to create a rough system, then repeat them to improve the system. Iterative refinement.

Page 12: Software Engineering

12NSG 2008

Proces 1: Sequentieel De Waterval Methode

Requirements

Systeem ontwerp

Testen

Gebruik & onderhoud

Programma ontwerp

Coderen

Acceptatie & uitgifte

Requirements

Ontwerp

Implementatie

Haalbaarheids studie

Page 13: Software Engineering

13NSG 2008

Opeenvolging van processenEen puur sequentieel model is onmogelijk

Voorbeelden:

• Een haalbaarheidsstudie kan geen voorgesteld budget creëren en een tijdpad zonder voorafgaande studie van de requirements en een voorlopig ontwerp.

• Een gedetailleerd ontwerp of implementatie brengt gewoonlijk manco’s in de requirement aan het licht.

Het plan moet enige vorm van iteratie toestaan.

Page 14: Software Engineering

14NSG 2008

Discussie over de Waterval methode

Voordelen:

• Heldere procesgang• Scheiding van taken• Kwaliteitscontrole• kostencontrole

Nadelen:

Elke fase in het proces geeft nieuw inzicht over de vorige fasen, hetgeen betekent dat herziening van vorige stappen nodig is.

De Waterval methode is niet genoeg!

Page 15: Software Engineering

15NSG 2008

Gewijzigde Waterval methode

Requirements

Systeem ontwerp

Testen

Gebruik & onderhoud

Programma ontwerp

Coderen

Acceptatie & uitgifte

Waterval methode met feedback

Dit is beter!

Haalbaarheids studie

Page 16: Software Engineering

16NSG 2008

Proces 2: Iteratieve verfijning(Evolutionaire ontwikkeling)

Concept: Initiele implementatie voor klant en gebruiker commentaar, gevolgd door verfijning totdat het systeem compleet is.

• User interface schaalmodel

• Wegwerp software componenten

• Dummy modules

• Snelle prototypes

• Opeenvolgende verfijningen

Probeer zo snel mogelijk iets aan de praat te krijgen!

Page 17: Software Engineering

17NSG 2008

Iteratieve verfijning

Requirements

OntwerpImplementatie

Evaluatie

Page 18: Software Engineering

18NSG 2008

Iteratieve verfijning

WeergaveBeschrijving

huidigeActiviteiten

Requirements

Ontwerp

Implementatie

Initiëleversie

Tussenliggendeversies

Eindversie

Continue haalbaarheids

studie

Page 19: Software Engineering

19NSG 2008

Proces 3: Gefaseerde ontwikkeling

Concept: combineert sequentiële en iteratieve elementen

Een eenvoudig systeem met basisfunctionaliteit wordt snel in productie gebracht (fase 1).

De volgende fases zijn gebaseerd op de ervaringen van gebruikers uit iedere vorige fase.

Voordelen

• Terugbetaling van de investeringen kan al snel beginnen.

• De requirements worden beter begrepen in elke volgende fase van de ontwikkeling

Page 20: Software Engineering

20NSG 2008

Iterative Refinement + Waterfall Model: Graphics for Basic

Outline Description: Add vector graphics to Dartmouth Basic.

Phase 1: Extend current language with a preprocessor and run-time support package. (1976/77)

Phase 2: Write new compiler and run-time system incorporating graphics elements. (1978/80)

Page 21: Software Engineering

21NSG 2008

Iterative Refinement + Waterfall Model: Graphics for Basic

Phase 0: Iterative Refinement

Design Issues:

• Pictorial subprograms: coordinate systems, window/viewport

• User specification of perspective

Design Strategy: (Iterative Refinement)

• Write a series of prototypes with various proposed semantics

• Evaluate with a set of programming tasks

Page 22: Software Engineering

22NSG 2008

Iterative Refinement + Waterfall Model: Graphics for Basic

Phase 1: Implementation

• When the final specification was agreed, the entire preprocessor and run-time support were coded from new.

• The system was almost entirely bug-free.

Phase 2: New compiler (Waterfall)

Phase 1 was used as the requirements definition for the final version.

Page 23: Software Engineering

23NSG 2008

Observaties bij software processen

Afgeronde projecten moeten de basale processen aanbiedenmaar ... Het ontwikkelproces is altijd gedeeltelijk evolutionair.

Risico’s worden verminderd door:

• Maak Prototypes van de voornaamste components

• Verdeel het geheel in fases

• Volg een transparant software ontwikkelproces

• Maak gebruik van opnieuw te gebruiken componenten

Conclusie

Het is onmogelijk om elke stap af te ronden en het dan weg te werpen.

Page 24: Software Engineering

24NSG 2008

Drie Project presentaties: Sequentiële optie

Requirements

Systeem ontwerp

Testen

Gebruik & onderhoud

Programma ontwerp

Coderen

Acceptatie & uitgifte

1. Requirements

2. Ontwerp

3. Implementatie

Haalbaarheids studie

Als je een sequentieel proces volgt, moeten de drie presentaties zijn als aangegeven.

Page 25: Software Engineering

25NSG 2008

Drie Project presentaties: Iteratieve optie

Requirements

OntwerpImplementatie

Evaluatie

eerste presentatie

tweede presentatie

derde presentatie