1 / 25

Software Engineering

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.

Download Presentation

Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering 2 Software processen

  2. Software proces Fundamentele aannamen: Goede processen leiden tot goede software Goede processen reduceren risico’s Goede processen bevorderen transparantie

  3. 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

  4. 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.

  5. 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.

  6. 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

  7. 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)

  8. 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.

  9. Acceptance Testing and Release Acceptance testing The complete system is tested against therequirementsby the client. Delivery and release The complete system is delivered to the client and released into production.

  10. 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

  11. Sequence of Processes Every 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.

  12. Proces 1: Sequentieel De Waterval Methode Requirements Haalbaarheids studie Requirements Ontwerp Systeem ontwerp Implementatie Programma ontwerp Coderen Testen Acceptatie & uitgifte Gebruik & onderhoud

  13. Opeenvolging van processen Een 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.

  14. 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!

  15. Gewijzigde Waterval methode Haalbaarheids studie Waterval methode met feedback Dit is beter! Requirements Systeem ontwerp Programma ontwerp Coderen Testen Acceptatie & uitgifte Gebruik & onderhoud

  16. 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!

  17. Iteratieve verfijning Requirements Evaluatie Implementatie Ontwerp

  18. Iteratieve verfijning Continue haalbaarheids studie huidige Activiteiten Initiële versie Requirements Weergave Beschrijving Tussenliggende versies Ontwerp Implementatie Eind versie

  19. 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

  20. 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)

  21. 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

  22. 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.

  23. Observaties bij software processen Afgeronde projecten moeten de basale processen aanbieden maar ... 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.

  24. Drie Project presentaties: Sequentiële optie 1. Requirements Haalbaarheids studie Requirements 2. Ontwerp Systeem ontwerp 3. Implementatie Programma ontwerp Coderen Testen Als je een sequentieel proces volgt, moeten de drie presentaties zijn als aangegeven. Acceptatie & uitgifte Gebruik & onderhoud

  25. Drie Project presentaties: Iteratieve optie Evaluatie Requirements eerste presentatie tweede presentatie derde presentatie Implementatie Ontwerp

More Related