software engineering
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 PresentationTRANSCRIPT
1NSG 2008
Software Engineering
2
Software processen
2NSG 2008
Software proces
Fundamentele aannamen:
Goede processen leiden tot goede software
Goede processen reduceren risico’s
Goede processen bevorderen transparantie
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
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.
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.
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
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)
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.
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.
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
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.
12NSG 2008
Proces 1: Sequentieel De Waterval Methode
Requirements
Systeem ontwerp
Testen
Gebruik & onderhoud
Programma ontwerp
Coderen
Acceptatie & uitgifte
Requirements
Ontwerp
Implementatie
Haalbaarheids studie
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.
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!
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
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!
17NSG 2008
Iteratieve verfijning
Requirements
OntwerpImplementatie
Evaluatie
18NSG 2008
Iteratieve verfijning
WeergaveBeschrijving
huidigeActiviteiten
Requirements
Ontwerp
Implementatie
Initiëleversie
Tussenliggendeversies
Eindversie
Continue haalbaarheids
studie
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
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)
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
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.
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.
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.
25NSG 2008
Drie Project presentaties: Iteratieve optie
Requirements
OntwerpImplementatie
Evaluatie
eerste presentatie
tweede presentatie
derde presentatie