Inleiding

1,844 views

Published on

Inleiding op mijn cursus "Systeemanalyse"

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,844
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Inleiding

  1. 1. Systeemanalyse Inleiding
  2. 2. Overzicht <ul><li>Inhoud van de cursus. </li></ul><ul><li>Wat is systeemanalyse? </li></ul><ul><li>Belang van systeemanalyse </li></ul><ul><li>Fasen in het ontwikkelingsproces </li></ul><ul><li>Objectgeoriënteerde systeemanalyse </li></ul><ul><li>UML </li></ul><ul><li>Inleiding tot objecten </li></ul>
  3. 3. Inhoud van de cursus <ul><li>Waarom systeemanalyse? </li></ul><ul><li>Opleiding tot systeemanalist? </li></ul><ul><li>Welke methode? </li></ul><ul><li>Theorie of praktijk. </li></ul><ul><li>Vaardigheden. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  4. 4. Waarom systeemanalyse? <ul><li>Huis bouwen ~ software bouwen </li></ul><ul><li>Wat? </li></ul><ul><ul><li>Analyse- en ontwerptechnieken </li></ul></ul><ul><ul><li>Software engineering: ontwikkelingsproces </li></ul></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  5. 5. Opleiding tot analist <ul><li>Analist word je pas na veel ervaring. </li></ul><ul><li>Wel: </li></ul><ul><ul><li>technieken aanleren; </li></ul></ul><ul><ul><li>achtergrondkennis opdoen; </li></ul></ul><ul><ul><li>'feeling' kweken; </li></ul></ul><ul><ul><li>leren analyses interpreteren. </li></ul></ul><ul><li>Cursus basis voor stage en eindwerk. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  6. 6. Welke methode? <ul><li>Objectgeoriënteerde methode. </li></ul><ul><li>Merodemethode (K.U.Leuven). </li></ul><ul><li>Watervalmodel versus spiraalmodel. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  7. 7. Theorie of praktijk <ul><li>Geen theoretische scherpslijperij, praktische toepasbaarheid belangrijk. </li></ul><ul><li>Veel oefenen: in de les en thuis. </li></ul><ul><li>Toch heel wat theoretische kennis te verwerken: </li></ul><ul><ul><li>cursus goed bijhouden </li></ul></ul><ul><ul><li>vroeg beginnen te studeren </li></ul></ul><ul><ul><li>geregeld herhalen (“herhaling moeder van de studie”) </li></ul></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  8. 8. Vaardigheden <ul><li>Oog voor gebruikersbehoeften en bedrijfsbehoeften </li></ul><ul><li>Oog voor structuur </li></ul><ul><li>Abstract denken (modellen opstellen) </li></ul><ul><li>Zin voor precisie </li></ul><ul><li>Ruimere blik (informatica is meer dan hardware en programmeren) </li></ul><ul><li>Liefde voor het vak </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  9. 9. Wat is systeemanalyse? <ul><li>Definitie </li></ul><ul><li>Analist als brugfunctie </li></ul><ul><li>Modelgeoriënteerd </li></ul><ul><li>Vaardigheden van een analist </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  10. 10. Definitie <ul><li>Systeemanalyse is een verzameling technieken en methodes om: </li></ul><ul><ul><li>de informatiebehoefte van de gebruiker ondubbelzinnig in kaart te brengen (Analyse/ WAT) en </li></ul></ul><ul><ul><li>om het informatiesysteem op hoog (logisch) niveau te gaan ontwerpen (Ontwerp/ HOE). </li></ul></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  11. 11. Analist als brugfunctie <ul><li>Gebruikersbehoefte centraal, MAAR </li></ul>? <ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>Gebruiker Informatica-specialist
  12. 12. Gebruikers : “ Informatici hebben geen benul van wat gebruikers willen.” “ Informatici willen alleen nieuwe technische snufjes”. “ Informatici specialiseren zich vooral in het vergoelijken van budgetoverschrijdingen”. <ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  13. 13. “ Gebruikers snappen niets van informatica.” “ Gebruikers stellen onmogelijke eisen.” “ Gebruikers weten niet wat ze willen. Ze veranderen voortdurend van mening.” Informatici <ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  14. 14. Oplossing: systeemanalist <ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>Gebruiker Informaticus Systeemanalist
  15. 15. Gebruiker Specialist Systeemanalist Management
  16. 16. Analyse is modelgeoriënteerd
  17. 17. Voordelen van modellen <ul><li>Ondubbelzinnig. </li></ul><ul><li>Visueel. </li></ul><ul><li>Duidelijk (verbergen implementatiedetails). </li></ul><ul><li>Uitstekend communicatiemiddel. </li></ul><ul><li>Fouten worden sneller blootgelegd. </li></ul><ul><li>Pas op: modellen moeten aangevuld worden met tekstuele beschrijvingen </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  18. 18. Vaardigheden van een analist <ul><li>Analytisch vermogen </li></ul><ul><li>Abstract denkvermogen </li></ul><ul><li>Synthetisch vermogen </li></ul><ul><li>Communicatief vaardig </li></ul><ul><li>Interviewtechnieken </li></ul><ul><li>Schriftelijke rapportering </li></ul><ul><li>Vergadertechnieken </li></ul><ul><li>Kennis van en interesse voor nieuwe informatietechnologieën </li></ul><ul><li>... </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  19. 19. Belang van systeemanalyse <ul><li>Kenmerken van een goed informatiesysteem </li></ul><ul><li>Ideaal versus realiteit </li></ul><ul><li>Belang neemt toe </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  20. 20. Kenmerken goede software Goede software is <ul><li>bruikbaar </li></ul><ul><li>betrouwbaar </li></ul><ul><li>gebruiksvriendelijk </li></ul><ul><li>onderhoudbaar </li></ul><ul><li>flexibel </li></ul><ul><li>efficiënt </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  21. 21. Software in de realiteit <ul><li>67% van de middelen gaat naar het onderhouden van bestaande software </li></ul><ul><li>3/4 van de systemen voldoet niet aan de gebruikerswensen </li></ul><ul><li>90% van de projecten duren 50% langer dan gepland </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  22. 22. Gevolgen <ul><li>Gedemotiveerde informatici en hoge kosten. </li></ul><ul><li>Nutteloze, maar dure producten. </li></ul><ul><li>Veel beloven en weinig veel te laat en veel te duur geven. </li></ul><ul><li>Hoe lang nog deze waanzin ?? </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  23. 23. Belang neemt toe! <ul><li>Niet de technische geavanceerdheid, maar de gebruiker bepaalt het succes van software. </li></ul><ul><li>Betere integratie van uiteenlopende systemen noodzakelijk. </li></ul><ul><li>Kostprijs: </li></ul><ul><ul><li>Ontwikkelen is duur. </li></ul></ul><ul><ul><li>Slecht functionerende software is duur. </li></ul></ul><ul><ul><li>Conversie is duur. </li></ul></ul><ul><ul><li>Onderhoud is duur. </li></ul></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  24. 24. <ul><li>mainframe beheerd door centrale EDP-afdeling </li></ul><ul><li>verscheidene afdelingen krijgen hun eigen mini-computer en ontwikkelen hun eigen systemen (eigen EDP-afdeling) </li></ul><ul><li>PC’s doen hun intrede: nog meer versnippering, veel gebruikers ontwikkelen eigen toepassingen </li></ul><ul><li>netwerken: systemen moeten weer geïntegreerd worden ==> enorme complexiteit </li></ul><ul><ul><li>Integratie van systemen: evolutie </li></ul></ul>
  25. 25. Relatieve kost om een fout te herstellen
  26. 26. Ontwikkelingscyclus
  27. 27. Fasering <ul><li>Watervalmodel </li></ul><ul><ul><li>mijlpaalproducten </li></ul></ul><ul><ul><li>output een fase is input volgende fase </li></ul></ul><ul><li>Alternatief: iteratieve modellen </li></ul><ul><li>Waar is de testfase? </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  28. 28. Vooronderzoek <ul><li>Omgevingsvariabelen onderzoeken. </li></ul><ul><li>Randvoorwaarden onderzoeken. </li></ul><ul><li>Wensen klant globaal onderzoeken. </li></ul><ul><li>Alternatieve oplossingen voorstellen. </li></ul><ul><li>Kosten en baten onderzoeken. </li></ul><ul><li>Globale planning. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  29. 29. Analysefase <ul><li>Vereistenstudie. </li></ul><ul><li>Statische systeemstructuur van probleemdomein modelleren. </li></ul><ul><li>Bedrijfsgebeurtenissen in kaart brengen. </li></ul><ul><li>Bedrijfsregels beschrijven. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  30. 30. Ontwerpfase <ul><li>Ontwerp globale architectuur. </li></ul><ul><li>Databaseontwerp. </li></ul><ul><li>GUI-ontwerp. </li></ul><ul><li>Detailontwerp (programmaspecificaties). </li></ul><ul><li>Fysieke architectuur. </li></ul><ul><li>Veiligheidsplan. </li></ul><ul><li>Ontwerp procedure. </li></ul><ul><li>Ontwerp handleiding, on-line help, opleidingen. </li></ul><ul><li>Programmeer- en integratieplan. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  31. 31. Realisatiefase <ul><li>Programmeren. </li></ul><ul><li>Moduletests uitvoeren. </li></ul><ul><li>Fysieke architectuur voorbereiden. </li></ul><ul><li>Handleidingen, on-line help, opleidingen uitwerken. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  32. 32. Integratiefase <ul><li>Integreren (samenvoegen). </li></ul><ul><li>Systeemtest. </li></ul><ul><li>Acceptatietest. </li></ul><ul><li>Installatie en opleiding. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  33. 33. Onderhoudsfase <ul><li>Correctief onderhoud. </li></ul><ul><li>Adaptief onderhoud. </li></ul><ul><li>Perfectief onderhoud. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  34. 34. Objectgeoriënteerd <ul><li>Objectgeoriënteerde analyse versus objectgeoriënteerd programmeren. </li></ul><ul><li>Functiegerichte methoden. </li></ul><ul><li>Datagerichte methoden. </li></ul><ul><li>Objectgeoriënteerde methoden. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  35. 35. OOA versus OOP <ul><li>Dezelfde basisprincipes. </li></ul><ul><li>OOP ouder (jaren '70-'80). </li></ul><ul><li>OO-programmeren zonder OO-analyse of OO-ontwerp. </li></ul><ul><li>Hoge verwachtingen niet ingelost. </li></ul><ul><li>OOAD: jaren '80-'90. </li></ul><ul><li>OOA combineerbaar met procedurele programmeertaal. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  36. 36. Functiegerichte analyse <ul><li>Functies zoeken en opsplitsen in deelfuncties. </li></ul><ul><li>Data Flow Diagrams </li></ul><ul><li>Succesvol in jaren '70-'80. </li></ul><ul><li>Aanpasbaarheid is een probleem. </li></ul><ul><li>Reden: structuur probleem is niet gelijk aan structuur van de oplossing. </li></ul><ul><li>Voorbeeld: bootjesverhuurder. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  37. 37. Data Flow Diagrams
  38. 38. Datagerichte methoden <ul><li>Uitgaan van structuur van probleem. </li></ul><ul><li>Datamodellen opstellen. </li></ul><ul><li>Functies koppelen aan data. </li></ul><ul><li>Aanpasbaarheid nog niet optimaal. Te veel logica op functieniveau </li></ul><ul><li>Geen oog voor hergebruik. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  39. 40. Objectgeoriënteerde methoden <ul><li>Uitgaan van structuur van probleemdomein. </li></ul><ul><li>Objecten krijgen verantwoordelijkheid (gedrag). </li></ul><ul><li>Functies sturen berichten naar objecten. </li></ul><ul><li>Systeemstructuur apart van functiestructuur. </li></ul><ul><li>Objecten herbruikbaar. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  40. 41. Object A Object B Object C Probleemdomein Functie A Functie B Functie C Functie D
  41. 42. UML (Unified Modelling Language) <ul><li>Tientallen verschillende OO-methoden, elk met zijn eigen symbolen. </li></ul><ul><li>Ivar Jacobson, Grady Booch en Jim Rumbaugh gaan samenwerken (three amigos). </li></ul><ul><li>Ambities: één eenheidsmethode. </li></ul><ul><li>Resultaat: één notatiewijze. </li></ul><ul><li>Door OMG als standaard aanvaard. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  42. 43. Inleiding in objecten <ul><li>Objecten en klassen. </li></ul><ul><li>Specialisatie, generalisatie en overerving. </li></ul><ul><li>Polymorfisme en dynamic binding. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  43. 44. Objecten en klassen <ul><li>Object </li></ul><ul><ul><li>Ding uit realiteit </li></ul></ul><ul><ul><li>Heeft een identiteit </li></ul></ul><ul><ul><li>Heeft een levenscyclus. </li></ul></ul><ul><ul><li>Heeft een toestand. </li></ul></ul><ul><ul><li>Vertoont een bepaald gedrag. </li></ul></ul><ul><li>Verzameling objecten van hetzelfde type: klasse. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  44. 45. Gedrag van een object
  45. 47. Specialisatie, generalisatie, overving
  46. 48. Voordelen van overerving <ul><li>Hergebruik van code. </li></ul><ul><li>Aanpasbaarheid van software </li></ul><ul><li>Verhinderen van redundantie. </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>
  47. 49. Polymorfisme <ul><li>Polymorfisme betekent dat de aanvrager van een dienst helemaal niet de klasse hoeft te kennen van het object dat de dienst uiteindelijk zal uitvoeren. </li></ul><ul><li>Generalisatieklassen en specialisatieklassen kunnen operaties hebben met dezelfde naam, maar een verschillende implementatie. </li></ul><ul><li>Bij uitvoering wordt nagegaan welke code moet uitgevoerd worden (dynamic binding), niet bij compilatie (static binding). </li></ul><ul><li>Inhoud cursus </li></ul><ul><li>Wat? </li></ul><ul><li>Belang </li></ul><ul><li>Fasen </li></ul><ul><li>Objectgeor. </li></ul><ul><li>UML </li></ul><ul><li>Objecten </li></ul>

×