TDDI02. Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Relevanta dokument
TDDI02. Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDI02. Programmeringsprojekt, Föreläsning 2. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

Exempel på verklig projektplan

UTGÅNGSPUNKT KURSMÅL: Programmering (= kodning) och design (= konstruktion) är teknikområden. Kodning av lite större volym

TDP003. Föreläsning 2. Filip Strömbäck

Innehåll (3) Innehåll (2) Innehåll (5) Innehåll (4) Innehåll (6) Innehåll (7) Dokumenthistorik. beställare, Översiktlig beskrivning av projektet

Projektplanering. Projektplanen. Om inte projektet planeras noga, kommer det garanterat att misslyckas

LiTH Autonom styrning av mobil robot Projektplan. Martin Elfstadius & Fredrik Danielsson. Version 1.0

Projektplan. LiTH Segmentering av MR-bilder med ITK Anders Eklund. Version 1.0. Status. Bilder och grafik projektkurs, CDIO MCIV LIPs

Före Kravspecifikationen

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

LIPS Kravspecifikation. Institutionen för systemteknik Mattias Krysander

Projektarbete med IT-verktyg - modulanpassat

Bilaga 5 b Mall för projektplan

Avropsavtalsbilaga 5

TDDI02. Programmeringsprojekt. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Bilaga 5 b: Mall för projektplan

Projektplan, Cykelgarage

Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

Projektplan. LiTH AMASE Accurate Multipoint Acquisition from Stereovision Equipment. Johan Hallenberg Version 1.0

Projektplan. LIPs. Per Henriksson Version 1.0. LiTH 7 december Optimering av hjullastare. TSRT10 projektplan.pdf WHOPS 1

Översikt Projektilen version 2.0

Kravplan Projekt Datum Version. Författare KRAVPLAN. KravXperts i samarbete med Kunskapsresan Sida 1 av (7)

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Projektplan David Sandberg Version 1.0

Ramverk för projekt och uppdrag

Robotgräsklippare PROJEKTPLAN. Robotgräsklippare. Version 1.1. Status. Granskad. Godkänd. Robotgräsklippare.

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 1. Kursinformation Vad är Software Engineering? Hur går ett projekt till?

Processbeskrivning Test

PROJEKTPLAN. Programmerbar modellbåt Pontus Brånäs, Wojtek Thorn Version 1.1. Status

LUNDS UNIVERSITET. Projektledning

Bilaga A Projektmodell. Generell Projektmodell

TDDI02. Programmeringsprojekt, Föreläsning 1. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Detta har hänt... Kursinformation. Agenda. Kursinformation

TDDI02. Programmeringsprojekt. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Projektplan GIS STADSMILJÖ- OCH SERVICEFÖRVALTNINGEN (9) Dnr STN-1121/2015

E-tjänst Särskilt boende Projektplan Version 1.0

Verksamhetsutvecklingsprojekt

RESULTAT, AVSLUT OCH UPPFÖLJNING. Stefan Berglund

RESULTAT, AVSLUT OCH UPPFÖLJNING INFÖRANDET BYTE AV PROJEKTGRUPP/MEDLEMMAR? PLANERING INFÖR INFÖRANDET

Projektplan. LiTH Reglering av Avgaser, Trottel och Turbo Fredrik Petersson Version 1.0. Status. Reglerteknisk Projektkurs RATT LIPs

Utbildningsmodul III. EPC-processen från kontrakt till garanterade besparingar. Project Transparense.

Exercise 1b: Requirements evaluation

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Projektplan. Joachim Lundh TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

PROJEKTPLAN. Detta dokument är avsett att användas som stöd vid framtagning av dokumentet Projektplan.

PROJEKTPLAN [PROJEKTNAMN]

Objektorienterad analys och design

Objektorienterad programmering

Riktlinjer Projektmodell fo r Kungä lvs kommun

Dokument 1 till Kontrakt PROJEKTGENOMFÖRANDE

Testplan Cykelgarage

Projektdirektiv Oskar Ljungqvist Sida 1. Kund/Examinator: Daniel Axehill, Reglerteknik/LiU

Projektplan. LiTH Autonom bandvagn med stereokamera Henrik Berggren Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

Projektplan. Modellbaserad diagnos av motortestcell Fredrik Johansson Version 1.0. Status. TSRT71 Modellbaserad diagnos av motortestcell IPs

Programmering = modellering

Introduktion Vi har som uppgift att göra ett systemutvecklingsprojekt åt en kund. Målet är att tillfredställa alla behov denne kund har.

PROJEKT DOKUMENT-ID VERSION

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

Projectbase Projektplan

Projektplan Autonomstyrning av gaffeltruck

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

Checklistor för riskidentifiering

Detta har hänt... Agenda. Kursinformation. Kursinformation

Process IT-utveckling, översikt

PROJEKTLEDNING. Vad är ett PROJEKT? Ett projekt:

SKOLFS. beslutade den XXX 2017.

Projektspecifikation Malmö högskola konceptmiljö

Agenda. Föreläsning 6: Utvärdering och om tentamen. Kursinformation

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

Agenda. Kursinformation. Manual för systemstart... Föreläsning 6: Utvärdering och om tentamen

Agenda. Projektbeskrivning avsnitt 8: Acceptanstest - MS4 i korthet. Kursinformation

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Utfärdat av: Utf datum: Dokument nr: Utgåva - Issue: Ange för och efternamn Ange Dokumentnummer 001

Exercise 1b: Requirements evaluation

Resultat, avslut och uppföljning

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Projektdirektiv. Verksamhet och Informatik (1)

PROJEKTPLAN. Robotrace Robotrace Version 1.1. Status. Anton Karlsson Per Landström LIPS Projektplan i Oskar Svensson

Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Agil Projektledning. En introduktion


Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Projektmetodik. Johan Nilsson. Institutionen för Biomedicinsk Teknik LTH, Lunds Universitet

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Projektplan. Mål Resultatet projektet ska leverera, dvs. vad som ska vara uppnått när projektet är genomfört, (se dokument Uppdragsbeskrivning ).

Projektplan. Redaktör: Patrik Molin Version 1.0. Mobile Scout. Status. LiTH Granskad Godkänd. TSRT71 Patrik Molin

Detta har hänt... Föreläsning 2: Projektplanering & granskning. Pratat och provat kravhantering. Bildat projektgrupper :-) Skaffat litteratur?

Projektplan Autonom Bandvagn

Projekt KA KA-system v1.0. Projekt KA Siw Bengtsson

Projectbase en generell projektmodell

Card Consulting. Projektmetodik Lars Ahlgren Card Consulting

Projektplan: Standardiserad hantering av SLU:s användaridentiteter, SLU-identiteter

Alla rättigheter till materialet reserverade Easec

Bilaga 4c. Utveckling. Upphandling av IT-stöd för barn- och elevregister inom Skolplattform Stockholm UTBILDNINGSFÖRVALTNINGEN. Förfrågningsunderlag

729G06 Föreläsning 1 Objektorienterad programmering

Projektdirektiv för införandet av ICF i äldreomsorgen

Aktiviteter vid avtalets upphörande

Projektmetodik. Andreas Lenshof. Institutionen för Biomedicinsk Teknik Lunds Universitet

Transkript:

TDDI02 Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Anatomin hos en projektplan Vad är klok design?

Tidsbokning Bokningslistor på Jonas Lindgrens dörr Ge minst en hel arbetsdags ledtid 2

3

Projektarbete kräver.. Fördelning av arbete mellan grupper och individer, eventuellt med hänsyn till kompetenser Flitig kommunikation mellan grupper/individer Beroende mellan grupper/individers alster En tidsplan Kontrollpunkter för att avgöra om planen måste ändras Dokumentation, för att Beskriva mål och förlopp för eventuella ersättare Samla erfarenheter Förbättra processen 4

5

Projektarbete kräver.. (cont.) En projektplan skall (åtminstone).. Vara nedskriven i förväg Beskriva: Vad som ska uträttas Med vilken metod Ingen design! Vara välskriven, strukturerad, kortfattad och begriplig Ta hänsyn till tänkbara olyckshändelser 6

En projektplan kan innehålla.. Översikt Intro till jobbet, kunden, gruppens egen organisation Fasplan Vilka utvecklingsfaser, vilka produkter, vilka datum? Organisationsplan Vilka team, vems ansvar? Testplan Vem? Hur? Verktyg? Förändringsplan Vad händer om förutsättningar ändras? Dokumentationsplan Vilka, när, till vem? Vem godkänner? 7

En projektplan kan inn.. (cont.) Utbildningsplan Internt, externt. Vem, när, resurser? Plan för rapportering och reviews Vad, till vem, när? Installationsplan Vilken procedur krävs för att få igång? Plan för kvalitetssäkring Standarder som ska användas? Varuplan Vad ska levereras, när? Del-leveranser? Resursplan Persontid, datortid. Summering av milstolpar! 8

Exempel på milstolpar Fas Milstolpe Planerat datum Förstudiefasen Förstudiedokument klart 1994-02-05 Definitionsfasen Kravspecifikationsdokument klart 1994-02-25 Kontrakt skrivet 1994-02-25 Acceptansvillkor framställda 1994-02-25 Projektplan klar 1994-03-04 Designfasen Designdokument klart 1994-04-15 Programmerarhandbok klar 1994-04-13 Systemtestfall framställda 1994-04-05 Integrationstestfall framställda 1994-04-08 Modultestinstruktioner framställda 1994-04-15 Programmeringsfasen Teknisk dokumentation klar 1994-05-06 Användarhandledning klar 1994-05-06 Testfasen Modultest klara 1994-04-22 Integrationstest klar 1994-05-03 Systemtestning klar 1994-05-06 Avslutningsfasen Efterstudiedokument klart 1994-05-20 Acceptansöverenskommelse klar 1994-05-10 Slutrapport från kvalitetsarbete klart 1994-05-20 Återkoppling klar 1994-05-20 Anmärkning: För täta, för små. Borde nog innehålla mer av godkänt/accepterat. 9

10

Planering: GANTT-diagram 11

Planering: PERT-diagram 12

Planering: Burn down chart 13

Exempel på organisation 14

Kompetenskrav? Graden av skicklighet som kan krävas för olika faser eller arbetsmoment vid programvaruutveckling. 15

Rubriker i verklig projektpl. 1. Revisionshistoria 1.1 Ändringslogg 1.2 Relaterade dokument 2. Förutsättningar och bakgrund 2.1 Syfte 2.2 Bakgrund 3. Mål 3.1 Affärsmål 3.2 Systemmål 3.3 Kvalitetsmål 4. Omfattning och resultat 4.1 Projektets uppgift 4.2 Avgränsningar 4.3 Förväntade resultat 5. Kopplingar till andra projekt 16

Rubriker i verklig pro.. (cont.) 6. Projektorganisation 6.1 Styrgrupp 6.2 Projektorganisation 6.3 Ansvar 6.4 Ansvarsmässig avgränsning 6.5 Projektmöten 6.6 Samverkan och rapportering 6.7 Resursplan 7. Arbetsmetodik 7.1 Arbetsmetod 7.2 Verifiering 7.3 Validering 7.4 Upphandling/köp 7.5 Kommunikationsplan 7.6 Testplan 7.7 Kvalitetsplan 17

Rubriker i verklig pro.. (cont.) 8. Tidplan och milstolpar 8.1 Milstolpar 8.2 Tidplan 8.3 Leverabler till kund 8.4 Utrullning 8.5 Kriterier för överlämning 9. Kostnader 9.1 Utvecklingsmiljö 9.2 Testmiljö 9.3 Produktionsmiljö 10. Risker 10.1 Beroenden 10.2 Stabilitet 10.3 Prestanda 10.4 Andra identifierade risker 11. Projektavslut 11.1 Överlämning till drift och förvaltning 11.2 Utvärdering 12. Ändringshantering 18

Design Viktiga nyckelord Modularisering Små, överblickbara bitar Modulkvalitet Bra egenskaper som kännetecknar en modul: Information hiding Göm viss detaljerad kunskap Abstraktioner Access via gränssnitt Språkoberoende Högre nivå, mer oberoende implementation Metodik Hur man urskiljer moduler 19

Modul Viktigast: Överblickbar, förståelig för en person eller ett team. Därför ska den: Inte vara alltför stor (eller komplex) Ha ett väl avgränsat syfte (dvs. hög cohesion ) Ha få relationer till andra moduler (dvs. låg coupling ) En modul kan vara t.ex: En enda subrutin (eller process) En databeskrivning (utan algoritmer) Ett hopbygge av flera, mindre sådana, om hög cohesion råder. En klass! 20

Modul Abstraktionslager 21

Modul Detaljerad design Förslag på modulattribut som måste specificeras: (IEEE Standard 1016, från van Vliet) 1. Identifikationen, unikt (dvs. namnet) 2. Typen, alltså t.ex. subsystem, package, klass, fil, subrutin 3. Syfte, övergripande beskrivning 4. Funktionen, relaterat till kravspecifikationen 5. Beståndsdelar, om sådana i sin tur finns 6. Beroenden, relationer till andra komponenter 7. Gränssnitt till andra komponenter, i detalj 8. Externa resurser 9. Utförande, beskrivning av algoritmer, exceptions, etc.. En förfining av funktionen. Motivera väl! 10. Data, beskrivning av representation, format och avsikt med interna data. 22

Implementation Begreppet strukturerad programmering kan förklaras på olika sätt: Programkod ska kunna läsas och förstås i den följd programtexten anger. Använd styrstrukturerna på ett systematiskt sätt En ingång, en utgång Texten ska återspegla den logiska strukturen Skriv för folk, inte kompilatorer 23

Evaluering av språk Vilka möjligheter har man att i språket kunna: Modularisera på ett vettigt sätt, också i det stora? Göra egna abstraktioner? Införa information hiding? Skapa oberoende mellan moduler? Skriva läsbar kod? Hur är det med: Ortogonaliteten? Få, kraftfulla konstruktioner som kan kombineras godtyckligt Stark typning Gäller blandning av typer, typkontroll, när denna äger rum Utnyttja det språket tillhandahåller! 24