Inleiding Informatica, College 6, H 6 – sheet nr. 117 October :27 Basiscursus Informatica 98/991 Inleiding Informatica College 7, Brookshear hoofdstuk 6: Software Engineering
Inleiding Informatica, College 6, H 6 – sheet nr. 217 October :27 Basiscursus Informatica 98/992 Overzicht college 7 n Software engineering als discipline n Software levenscyclus n Modulariteit n Ontwerpmethodologieën n Testen - Documentatie n Software eigendomsrecht en aansprakelijkheid
Inleiding Informatica, College 6, H 6 – sheet nr. 317 October :27 Basiscursus Informatica 98/993 Sotware “engineering”? n Software is integraal onderdeel van onze samenleving en heeft grote invloed op dagelijks leven n Traditionele ‘engineering’: ontwikkelen van complex produkt adhv modellen ä Geldt ook voor software, daarom SE nodig n Geschiedenis: software crisis ä hardware goedkoper --> grotere applicaties ä niet alleen probleem van algoritmes, maar van ook van management en ‘user centered design’
Inleiding Informatica, College 6, H 6 – sheet nr. 417 October :27 Basiscursus Informatica 98/994 Project management n Hoe kosten inschatten in termen van tijd, geld, mensen, etc.? n Hoe project opdelen in hanteerbare delen? n Hoe de verschillende delen later integreren? n Hoe communiceert men met elkaar? n Hoe meet je vooruitgang?
Inleiding Informatica, College 6, H 6 – sheet nr. 517 October :27 Basiscursus Informatica 98/995 Moeilijkheden in SE
Inleiding Informatica, College 6, H 6 – sheet nr. 617 October :27 Basiscursus Informatica 98/996 Onderzoek in SE n Hoe kan de kwaliteit van software verbeterd worden? ä formele technieken ä betrouwbare bouwstenen ä ontwerppatronen n Internationale beroepsorganisaties: IEEE en ACM stimuleren onderzoek: ä organiseren congressen en SIG’s ä geven hoogwaardige tijdschriften uit
Inleiding Informatica, College 6, H 6 – sheet nr. 717 October :27 Basiscursus Informatica 98/997 Overzicht college 7 n Software engineering als discipline n Software Life Cycle n Modulariteit n Ontwikkel tools en technieken n Documentatie n Software eigendomsrecht en aansprakelijkheid
Inleiding Informatica, College 6, H 6 – sheet nr. 817 October :27 Basiscursus Informatica 98/998 SE Life Cycle Development Modification Use SE onderzoek met name in deze fase Is de software begrijpelijk? Documentatie en code conventies van belang SWI: gebruikers betrekken bij ontwerp en evaluatie
Inleiding Informatica, College 6, H 6 – sheet nr. 917 October :27 Basiscursus Informatica 98/999 De ontwikkelfasen n Analyse n Ontwerp n Implementatie n Testen
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9910 Analyse n Het begrijpen van het probleem ä Het ‘wat’ n Behoeften van opdrachtgever (en gebruikers) vertalen in: ä systemvereisten en daarna in: ä technische specificatie
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9911 Ontwerp n Technische invulling van software systeem ä het ‘hoe’ n Onderscheiden van modules ä aan elke module kan onafhankelijk gewerkt worden ä helpt latere implementatie en modificatie n Keuze van data-structuren, architectuur ä arrays, bomen, parallel, serieel,...
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9912 Implementatie n Het schrijven van de programma code n Het ontwikkelen van databases
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9913 Testen n Is de software correct? n Deel van testen al tijdens implementatie ä elke module afzonderlijk n Ook het geheel moet getest worden n Testen is geen garantie
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9914 Waterval model analyse ontwerp implementatie testen op maat standaard strakke controle om risico’s te beperken
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9915 Recentere trends n Watervalmodel te star, zeker als gebruikersbehoeften niet duidelijk zijn n Meer flexibele modellen ä prototyping –evolutionary prototyping –throw-away prototyping ä spiral model: –steeds kleine stukjes in elke fase analyse ontwerp implementatie testen
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9916 Overzicht college 7 n Software engineering als discipline n Software lyfe cycle n Modulariteit n Ontwikkel tools en technieken n Documentatie n Software eigendomsrecht en aansprakelijkheid
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9917 Modulariteit n Opdelen van software in hanteerbare eenheden, waarbij elke eenheid een deel van de totale taak op zich neemt betaal salaris bepaal bruto pensioen eraf belasting eraf lokale belasting rijks belasting Structure chart Imperatieve paradigma Controle koppeling
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9918 UML n Unified Modelling Language ä de facto standaard diagramtechniek voor object- georiënteerde systemen ä klassen, objecten, attributen, methoden ä compositie, overerving ä relaties tussen klassen ä ‘swim lanes’: boodschappen tussen objecten ä toestanden van objecten
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9919 Koppeling n Ideaal: minimale koppeling ä modules zo onafhankelijk mogelijk ä latere wijzigingen hebben lokale consequenties n Controle koppeling (vorige sheet) n Data koppeling: gemeenschappelijke data van modules n OO weinig data koppeling, want relevante data zit al in object
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9920 Data koppeling bepaal salaris bepaal bruto pensioen eraf belasting eraf lokale belasting rijks belasting ID werknemer bruto salaris
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9921 Neveneffecten n Vaak gevolg van impliciete koppeling ä door gemeenschappelijke globale variabele ä probleem: verandering in x door A of B kan onverwachte gevolgen hebben ä side-effect: niet expliciet geprogrammeerd effect AB globale gegevens x x x
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9922 Cohesie n Ideaal: maximale cohesie = sterke interne samenhang in een module n Functionele cohesie: onderdelen dragen bij aan eenzelfde actie, bv in een OO methode n Logische cohesie: aktiviteiten in logisch verband, bv het object is het logische middelpunt in een OO klasse met diverse methodes n OO: logisch en functioneel samen
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9923 Overzicht college 7 n Software engineering als discipline n Software lyfe cycle n Modulariteit n Ontwerpmethodologieën n Testen en documentatie n Software eigendomsrecht en aansprakelijkheid
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9924 Top-down ontwerp n Begin globaal en ga steeds meer in detail n Hiërarchische structuur n Kan soms inflexibel zijn
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9925 Bottom-up ontwerp n Begin met kleine (kant en klare) modules n Hoeft niet hiërarchisch te zijn ä Soms zijn modules gelijkwaardig n Belangrijk voor bouwen dmv hergebruik n OO
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9926 Data Flow diagrams n Geeft aan hoe data stroomt door het systeem ä waar het bij elkaar komt, gesplitst wordt, gecreeerd, veranderd, etc data mani- pulatie data opslag data flow data bron en afvoer
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9927 Entity-Relationship diagrams professorcursusstudent onder- wijst volgt n Belangrijke data-eenheden en relaties n Cardinaliteit: one-to-to, one-to-many, many- to-one, many-to-many n Ook voor OO van belang
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9928 Data dictionaries n Centraal bijhouden van alle data items in het hele systeem ä identifier, legale entries (numeriek, letters), value restrictions, waar opgeslagen (DB, file), welke modules gebruiken item n Bevordert: ä verbeteren van communicatie tussen gebruiker en analist ä uniformiteit (ontdekken van redundantie en inconsistentie)
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9929 CRC kaarten n Beschrijving van Class-Responsibility- Collaboration per object n systeem simulatie in een team, een object wordt gespeeld (video Peter Coad)
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9930 Design Patterns n Architectuur inspireert software bouwers: ä voor ontwerpproblemen kristalliseren algemene oplossingen uit op den duur n Beroemde boeken: ä Alexander: A Pattern language ä ‘gang of four’: Design Patterns
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9931 Overzicht college 7 n Software engineering als discipline n Software lyfe cycle n Modulariteit n Ontwikkel tools en technieken n Testen en documentatie n Software eigendomsrecht en aansprakelijkheid
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9932 Testen n Testen levert geen bewijs van foutloosheid n diverse testmanieren: ä glass-box: zwakke modules inspecteren ä glass-box: alle paden nalopen ä black-box: alle grenswaarden ä black-box: programma redundancy ä black-box: alfa-beta testen
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9933 Documentatie n Gebruikers-documentatie ä manuals en online help ä door onafhankelijke tekstschrijver (vgl Word) n Systeem-documentatie ä goed geschreven code (conventies) ä goed gedocumenteerd op moeilijke punten ä goed beschreven klassen/objecten/methoden ä synchronisatie (vgl Javadoc)
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9934 Overzicht college 7 n Software engineering als discipline n Software life cycle n Modulariteit n Ontwikkel tools en technieken n Documentatie n Software eigendomsrecht en aansprakelijkheid
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9935 Eigendomsrecht n Literair: copyright op vorm en niet op idee n In software is het idee belangrijker (algoritme) en niet de vorm (programma) n Patent aanvragen duurt lang ä tijdens aanvraag niet beschermd n Aansprakelijkheid: disclaimers ä “In no event will Company X be liable for any damages arising out of the use of this software”
Inleiding Informatica, College 6, H 6 – sheet nr October :27 Basiscursus Informatica 98/9936 Look and Feel n : 9 jaar durende juridische strijd tussen Apple en Microsoft over GUI look- and-feel van de Macintosh n door Apple verloren: je kunt geen patent aanvragen op look-and-feel n (zie videotape introductiedag)