Software Processen
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 1
Het software proces ●
Een gestructureerd set van activiteiten nodig om een software systeem te ontwikkelen • • • •
●
Specificatie; Ontwerp; Valideren; Onderhoud.
Een software proces model is een abstracte voorstelling van een proces. Het stelt een beschrijving van het proces voor vanuit een specifiek oogpunt.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 2
Generieke software proces modellen ●
Het waterval model •
●
Evolutionaire ontwikkeling •
●
Specificatie, ontwikkeling en validatie zijn met mekaar verweven.
Component- based software engineering •
●
Duidelijk gescheiden fasen van specificatie en ontwikkeling.
Het systeem wordt samengesteld uit bestaande componenten.
Er zijn vele varianten op deze modellen.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 3
Waterval model
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 4
Watervalmodel fasen ● ● ● ● ● ●
Analyse en definitie van eisen Systeem en software ontwerp Implementatie en unit testing Integratie en systeemtesten Operatie en onderhoud Grootste nadeel: Fouten bij het begin gemaakt zijn bijna niet te herstellen.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 5
Evolutionaire ontwikkeling ●
Verkennend •
●
De bedoeling is te werken met gebruikers en het finale systeem te ontwikkelen vanuit een initiële specificatie. Men moet beschikken over goed begrepen vereisten en op aanvraag van de gebruiker nieuwe kenmerken teoevoegen.
Prototyping •
Wordt gebruikt bij onvolledige of slecht begrepen vereisten. Men hoopt dat waneer de gebruiker het prototype gebruikt hij de vereisten beter kan specificeren.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 6
Evolutionaire ontwikkeling
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 7
Evolutionaire ontwikkeling ●
Problemen • •
●
Systemen zijn dikwijls slecht gestructureerd; Men heeft meestal prototyping software nodig.
Toepasbaarheid • • •
Voor kleine of middelgrote interactieve systemen; Voor delen van grote systemen (bv. de user interface); Voor systemen met een korte levensduur.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 8
Component-based software engineering ●
●
Gebaseerd op systematisch hergebruik van bestaande componenten. Processtappen • • • •
●
Component analyse; Bijwerken van de vereisten; Systeemontwerp met hergebruik; Ontwikkeling en integratie.
Deze benadering wordt meer en meer gebruikt naarmate meer en meer component standaarden opduiken.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 9
Reuse-oriented ontwikkelen
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 10
Proces iteratie ●
●
●
De systeemvereisten evolueren ALTIJD in de loop van een project zodat proces iteratie, waarbij vroegere stappen worden herwerkt, altijd deeluitmaken van het proces van grote systemen. Iteratie kan worden toegepast op om het even welk van de generieke proces modellen. Twee (gerelateerde) benaderingen • •
Progressieve oplevering; Spiraal ontwikkeling.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 11
Proces activiteiten ● ● ● ●
Software specificatie Software ontwerp en implementatie Software validatie Software opvolging
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 12
Software specificatie ●
●
Het proces van het vastleggen van de vereiste diensten en de beperkingen op de ontwikkeling en de werking van het systeem. Proces: Opstellen van de vereisten • • • •
Haalbaarheidstudie; Opzoeken en analyseren van de vereisten; Specificatie van de vereisten; Valideren van de vereisten.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 13
The requirements engineering process
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 14
Software ontwerp en implementatie ●
●
Proces: Ombouwen van de systeem specificatie naar een uitvoerbaar systeem. Software ontwerp •
●
Ontwerp een software structuur die de specificatie realiseert;
Implementatie •
Zet deze structuur om in een uitvoerbaar programma;
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 15
Design proces activiteiten ●
Architectuur ontwerp: •
●
Abstracte specificatie: •
●
Services worden toegekend aan componenten en de interfaces van deze componenten worden ontworpen
Data (implementatie) structuur ontwerp •
●
Voor ieder subsysteem worden de interfaces met andere subsystemen ontworpen en gedocumenteerd.
Component ontwerp •
●
voor ieder subsysteemwordt een abstracte specificatie gemaakt van zijn operaties en de beperkingen
Interface ontwerp •
●
de subsystemen en hun onderlinge relaties worden geïdentificeerd eb gedocumenteerd (hfstn 11, 12, 13)
De data structuren gebruikt in de systeemimplementatie worden uitgewerkt en gedetailleerd
Algorithme ontwerp •
©Ian Sommerville 2004
De algorithmen gebruikt voor het leveren van diensten worden ontworpen en gespecificeerd
Software Engineering, 7th edition. Chapter 4
Slide 16
Het software ontwerp proces
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 17
Gestructureerde methodes ●
●
●
Systematische benadering voor het ontwikkelen van een software ontwerp. Het ontwerp wordt meestal gedocumenteerd als een reeks van graphische modellen. Mogelijke modellen • • • • •
Object model; Sequentie model; State transition model; Structuur model; Data - flow model.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 18
Activiteiten na het Ontwerp
●
Progammeren en debuggen Software valideren en testen
●
Software onderhoud
●
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 19
Het testproces
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 20
Testfasen
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 21
Het Rational Unified Process ●
●
Een modern procesmodel afgeleid van het UML model en het geassocieerde Unified Software Development Process. Het proces wordt beschreven vanuit 3 perspectieven: • • •
Een dynamisch perspectief dat de fasen toont in de tijd; Een statisch perspectief dat de proces activiteiten toont; Een practisch perspectief.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 22
RUP fase model
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 23
RUP fasen ●
Begin •
●
Uitwerking •
●
Analyseer het probleemdomein en de systeemarchitectuur (use cases)
Constructie •
●
Maak de het business plan voor het systeem.
Systeem ontwerp, programmatie en testen.
Invoeren •
Breng het systeem in zijn operationele omgeving.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 24
Static workflows Workflow
Description
Business modelling
The business processes are modelled using business use cases.
Requirements
Actors who interact with the system are identified and use cases are developed to model the system requirements.
Analysis and design
A design model is created and documented using architectural models, component models, object models and sequence mod els.
Implementation
The components in the system are implemented and structured into implementation sub-systems. Automatic code generation from design models helps accelerate this process.
Test
Testing is an iterative process that is carried out in conjunction with implementation. System testing follows the completion of the implementation.
Deployment
A product release is created, distributed to users and installed in their workplace.
Configuration and change management
This supporting workflow managed changes to the system (see Chapter 29).
Project management
This supporting workflow manages the system development (see Chapter 5).
Environment
This workflow is concerned with making appropriate software tools available to the software development team.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 4
Slide 25