Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant 2011-05- 26 1 Inledning 1.1 Mål Tentamensformen, dvs hemtentamen, har valts eftersom den möjliggör att ni både kan visa att ni har grundläggande kunskap om begrepp och förståelse för samband. Ni får också möjlighet att visa att ni kan koppla materialet i kurslitteraturen till det projekt som ingår i kursen. Tanken är alltså att ni ska visa att ni har både ytkunskap, t ex kan använda rätt begrepp och termer vid rätt tillfälle, och en djupare förståelse om innehållet, genom att kunna resonera om materialet och analysera det på ett tillfredsställande sätt. 1.2 Instruktioner Svaren på frågorna i avsnitt 2 bildar en rapport. Denna rapport ska lämnas in i två versioner: dels som pdf-fil som bilaga till ett e-postmeddelande två e-postadresser: jonas.wisbrant.lu@analys.urkund.se och etsa01@cs.lth.se subject -rad: Hemtentamen <SAManv> där <SAM-anv> är det användarnamn du fått i Datavetenskaps SAM-system. dels som pappersutskrift med din egen namnteckning på försättsbladet. Utskriften lämnas antingen i det grå skåpet E-husets södra trapphall plan 2 eller postas till: Institutionen för datavetenskap, Jonas Wisbrant, LTH, Box 118, 221 00 LUND så att bör ha kommit fram senast den 31 maj. Börja på ny sida för varje uppgift. Rapporten ska innehålla ett försättsblad med följande uppgifter: Rubrik: Hemtentamen ETSA01 Namn (förnamn och efternamn) Program och inskrivningsår (t ex D10 ) Personnummer Inlämningsdatum. Inled varje lösning med uppgiftens nummer i fet stil. Upprepa inte frågan som inledning till din lösning efter som det riskerar medföra en falsk positiv i Urkund. Alla svar ska baseras på kursboken och annat material i kursen, men det är möjligt att dessutom referera till ytterligare material. Alla källor ska i så fall tydligt redovisas i texten. En eventuell referenslista kan placeras på ett separat blad sist i rapporten. Arbetet med rapporten ska ske individuellt. Alla ska lämna in var sin individuell rapport och inga rapporter får innehålla identisk text eller identisk text som flyttats om för att skilja sig. Det är givetvis inte tillåtet att kopiera eller direkt översätta text från andra källor såsom böcker och Internet, om man inte gör detta som tydliga citat med källhänvisning. Rapporten ska skrivas på svenska eller engelska. Välj det språk som du har lättast att uttrycka dig på. Lärarna hjälper inte till att formulera svar, bedöma svar, eller liknande innan inlämning, men de hjälper givetvis till att förtydliga uppgifterna och instruktionerna vid behov.
1.3 Bedömning Varje rapport bedöms och får 0 60 poäng, där 30 60 poäng är godkänt. Denna bedömning ligger sedan, tillsammans med resultatet i projektet, till grund för slutbetyget enligt riktlinjerna i kursprogrammet. Poängen baseras på hur väl man når följande nivåer på uppgifterna: Godkänd nivå: För att bli godkänd krävs det att man har en grundläggande förståelse av innehållet, att man har en grundläggande kunskap om vad i materialet som är viktigt, samt att man kan återge fakta på ett korrekt sätt. Avancerad nivå: För att få en högre poäng krävs det att man kan visa att man kan analysera materialet genom t ex jämförelser och identifiering av mönster. Dessutom är det bra om man kan visa att man kan göra jämförelser med projektet i kursen. Vissa deluppgifter är mest lämpade för svar på godkänd nivå, medan andra lämpar sig bättre för mer avancerade svar. Svara tillräckligt för varje fråga utan att fylla ut med material som inte har med uppgiften att göra. Om det finns material som inte har med uppgiften att göra så ignoreras det vid bedömningen om mängden är rimlig. Om det finns för mycket material som inte har med uppgiften att göra så påverkar det bedömningen negativt. Mer än motsvarande en sida text per uppgift lär inte behövas. Tänk på att läsa igenom uppgifterna noga och svara på alla frågorna i varje uppgift. Vid en hemtentamen har man mer tid på sig att formulera sina svar än på en traditionell salstenta. Dessutom skrivs rapporten med dator och inte med papper och penna. Sammantaget betyder detta att kraven på struktur, språk och att man motiverar sina svar är större än vid en salstenta. 1.4 Viktiga datum Tentamen delas ut genom att den publiceras på kursens hemsida: 2011-05-26, senast kl. 08:00 Efter det ska svar lämnas in via mail enligt följande: Rapport lämnas in elektroniskt senast: 2011-05-27, kl. 10:00 Signerad rapport på papper institutionen tillhanda senast: 2011-05-31. Bedömning klar senast: 2011-06-17 Om man inte lämnar in rapporten i tid eller om man inte når upp till gränsen för godkännande så kommer det att ges möjlighet att komplettera på samma sätt som det finns omtentor vid salstentor.
Uppgifter U1 Kravkrav (10 p) Förklara innebörden av de 6-8 egenskaper bra krav bör ha - var för sig eller tillsammans. Det är inte alltid man lyckas uppnå dessa goda egenskaper hos sina krav. Diskutera för var och en av egenskaperna: hur man kan eller bör gå tillväga för att säkerställa/veta/bekräfta att kravspecifikationen uppfyller den egenskapen när och hur under den fortsatta processen man kan få problem om man inte upptäckt brister i tid. U2 Testa ditt system (10 p) Jalote presenterar flera olika metoder för att välja ut testfall och/eller för att säkerställa att de täcker projektets behov: Equivalence Class Partitioning Boundary Value Analysis Pairwise Testing State-Based Testing Control Flow-Based Criteria a) Förklara kortfattat vad respektive metod går ut på. b) Anta sedan att du ska formulera en serie testfall för nivåerna: Enhetstest Integrationstest Systemtest Välj för varje nivå ut en eller två av de metoder som du förklarade i första delen av uppgiften som du finner mest lämpliga och argumentera för ditt val av metod (er). U3 Planera granskning av designdokument (10 p) a) Förklara innebörden av de olika desigvyerna: Modul-beskrivning (eng Module), Komponenter och konnektorer (eng Component and connector), Allokeringsbeskrivningar (eng Allocation). b) Antag därefter att du som projektledare i ett utvecklingsprojekt har ansvaret för att det genomförs en formell granskning av en arkitekturdesign med alla tre designvyerna. Dokumentet omfattar sammanlagt ca 40 A4-sidor text och grafik. Föreslå hur många och vilka personer (vad behöver de kunna eller ha för roll) du vill engagera och hur du vill att granskarna ska arbeta, samt berskriv hur hela granskninsgprocessen bör gå till från initiering/inbjudan till upprättande av granskningsprotokoll. U4 Utvecklingsprocesser (10 p) Det finns flera olika sorters utvecklingsprocesser. Beskriv följande modeller: Vattenfallsmodellen, Iterativ utveckling och Lättrörliga processer ( agile ). Jämför modellerna med avseende på i vilka typer av projekt de är lämpliga att använda.
U5 vs riktiga projekt (12 p) Olika processmodeller är bra i olika sammanhang. Projektet i kursen utfördes med en tydligt definierad processmodell typ vattenfall. Se kurswebben: http://cs.lth.se/kurs/etsa01/projekt2011/ avsnitt 5-8. Antag scenario 1: att din projektgrupp skulle delta i en ny projektkurs till hösten där ni hade helt fria händer att planera ert arbete. Antag scenario 2: att din projektgrupp anlitades av ett riktigt företag för att genomföra ett liknande projekt. Ange för båda scenarierna: två moment, aktiviteter eller subprocesser som ni borde ta med till det nya projektet. två moment, aktiviteter eller subprocesser som ni borde avstå ifrån eller tona ner. två moment, aktiviteter eller subprocesser som inte ingick i kursens processbeskrivning, men som du anser borde vara med för att få ett framgångsrikt projekt. Motivera kortfattat samtliga 12 val. Svaren skulle kunna redovisas i en matris enligt exemplet nedan och de är bra om du kan indentifiera moment, aktiviteter eller subprocesser där du tror/anser att behoven skiljer sig åt mellan scenarierna och Riktiga företag. OBS! Att återanvända exempelsvaret i matrisen nedan ger inga poäng ;-) Exempel subprocesser att ta med från subprocesser att ta med från subprocesser att avstå ifrån i subprocesser att avstå ifrån i subprocesser att ta med utöver (= som inte ingick i) subprocesser att ta med utöver (= som inte ingick i) Moment och motivering för respektive scenario Ersätts: Jag skulle vilja ta med granskningsprocessen eftersom den är ett bra sätt att sprida kunskap inom projektet och ett effektivt sätt att hitta fel och brister i dokument och artefakter. Jag skulle vilja avstå ifrån därför att Resultatetet av studentprojektet hade blivit bättre om? därför att I ett riktigt projet skulle man behöva mer av därför att
U6 Täcker tentan kursmålen (8 p) De hittills formulerade uppgifterna (U1-U5) täcker en stor del av kursens kursmål, men inte allt. Nedan beskrivs kursens formella kursmål enligt KA. a) Ange för var och en av kursmålspunkterna nedan vilken/vilka tentamensuppgifterna U1-U5 (om någon) som adresserar kursmålet ifråga. Motivera om kopplingen inte är uppenbar. b) Föreslå en tentamensuppgift som adresserar ett eller flera kursmål som inte behandlats i U1- U5 ovan. Ett tänkt svar på din föreslagna uppgift ska både visa att man förstår viktiga ord och begrepp i kursen och att man kan reflektera och dra egna slutsatser. Uppgiften ska inte vara en kopia av tidigare publicerade tentamenssuppgifter i kursen, men kan vara en nyskapande variant. Ange även vilket/vilka kursmål du anser att frågan behandlar. Kursmål för Ingenjörsprocessen Metodik (ETSA01) Syfte Kursens syfte är att ge studenten grundläggande kunskap om hur utveckling av stora programvarusystem går till. Syftet är även att ge studenten sådan kunskap att han/hon kan delta i planeringen av ett mindre projekt. Kursen syftar till teoretisk kunskapsinhämtning och praktisk tillämpning. Mål Kunskap och förståelse: För godkänd kurs skall studenten: kunna definiera grundläggande begrepp inom utveckling av stora programvarusystem. kunna beskriva de vanligaste processerna för utveckling av stora programvarusystem. kunna förklara de viktigaste momenten i kravhanteringsprocessen. kunna förklara hur testning går till. kunna beskriva vad en arkitekturdesign är. kunna beskriva de viktigaste stegen i projektplanering och projektuppföljning. kunna beskriva hur organisationer planerar och genomför en serie av projekt. Färdighet och förmåga: För godkänd kurs skall studenten kunna utveckla projektplan, kravspecifikation och testplan för ett mindre projekt. kunna granska projektplan, kravspecifikation och testplan för ett mindre projekt. kunna skriftligen formulera text i projektdokumentation. Värderingsförmåga och förhållningssätt: För godkänd kurs skall studenten förstå komplexiteten i uppgiften att utveckla ett programvarusystem. ha förståelse för ingenjörens yrkesroll. Kursinnehåll Utvecklingsprocessen för programvara Processmodellering Kravhantering Testning Arkitekturdesign Projektstyrning Projektuppföljning Projektdokumentation Granskningar Projekt- och organisationsnivåer