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

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

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

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

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

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

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

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

Exempel på verklig projektplan

LIPS Kravspecifikation. Institutionen för systemteknik Mattias Krysander

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Före Kravspecifikationen

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

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

Projektarbete med IT-verktyg - modulanpassat

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

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Projektplan, Cykelgarage

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

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Dokumentation och presentation av ert arbete. Kursens mål. Lärare Projektmedlemmar. Studenter Extern personal. Projektfaser. Projektroller.

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

Dokumentation och presentation av ert arbete

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

Dokumentation och presentation av ert arbete

PROJEKT Kurs om hållbar utveckling

Projektarbete. Johan Eliasson

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

Adobe Acrobat 7.0. Få jobbet gjort med kraftfulla intelligenta dokument

Objektorienterad programmering

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

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

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

Bilaga 5 b Mall för projektplan

Dokumentation och presentation av ert arbete

Testplan Cykelgarage

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Dokumentation och presentation av ert arbete

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

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


Programmering = modellering

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Bilaga 3a Ickefunktionella

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Grundläggande Projektledningslära

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Exercise 1b: Requirements evaluation

Reglerteknisk projektkurs TSRT10

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Dokumentation och presentation av ert arbete

7.1.1 Modulindelning. Delsystem: Pneumatiskt system. Elmotor för rotation. Axel. Lager. Chuck. Ram. Kylsystem. Sensorer

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

Projektplan. Grupp 8 Version 1.0

LIPs Daniel Axehill ChrKr Projektdirektiv_Saab_v3 CKr

Tillämpad programmering CASE 1: HTML. Ditt namn

SKOLFS. beslutade den XXX 2017.

Webbshop Bas har ett lätthanterligt ordersystem med en färdig betallösning mot faktura eller postförskott.

Programmeringsteknik F1/TM1

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

Kursplanering Objektorienterad programmering

IBM Software Group. Agil Acceptans Test. Annika Kortell SAST 15-års jubileum IBM Corporation

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Objektorienterad analys och design

Utveckling av ett grafiskt användargränssnitt

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

Projektstyrning - kortversionen Jan-Åke Olofsson

LIPs Isak Nielsen ChrKr Projektdirektiv13_ROV.doc CKr

Reglerteknisk projektkurs TSRT10

En kort inledande sammanfattning av projektplanen. Bör vara på en egen sida och placeras först i projektplanen.

Agil utveckling ställer nya krav på upphandling. Roland Bäcklin, Jaybis Konsult AB

Lisa kortmanual. Version Miljödata AB Ronnebygatan 46 Tel Karlskrona Org. nr

LIPs Martin Lindfors ChrKr Projdir2017_sbd.doc CKr

Bilaga 5 b: Mall för projektplan

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

Datastrukturer och algoritmer

Bilaga A Projektmodell. Generell Projektmodell

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

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar.

GIT L0009B GEOGRAFISK DATABASTEKNIK. Information inför kursstart

TMP Consulting - tjänster för företag

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

Certifieringswebb. Version 1.0 Mats Persson

Biometria Violweb. Kom-igång-guide. Januari Sammanfattning Den här anvisningen är till för dig som ska börja använda dig av Biometrias tjänster.

WD406F - Interaktiva medier I 7,5hp Moment: Web Usability Inlämningsuppgift 1ab. Wynona Ekesrydh

Reglerteknisk projektkurs TSRT10

Att ladda ner från legimus.se

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

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

Björn Åstrand

Programmering och digital kompetens

En verktygslåda för tjänsteorientering

Transkript:

TDDI02 Programmeringsprojekt, Föreläsning 2 Filip Strömbäck Med utgångspunkt i tidigare slides av Jonas Lindgren På denna föreläsning: Dokument - kravspecifikation, projektplan Vad är klok design?

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 Milstolpar 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

Projektarbete kräver: Kravspecifikation Se kurshemsidan för information om vad som kan vara intressant att ha med i kravspecifikationen Speciellt viktigt är funktionella krav, i form av: Ska-krav - dessa krav måste implementeras Bör-krav - implementeras i mån av tid Tänk på att projektet examineras utifrån kraven

Projektarbete kräver: Kravspecifikation Exempel: E-butik Man ska kunna sortera produkterna

Projektarbete kräver: Kravspecifikation Exempel: E-butik Man ska kunna sortera produkterna (Dåligt) Användaren ska kunna sortera produkter på pris i både stigande och fallande ordning (Bra)

Projektarbete kräver: Kravspecifikation Exempel: E-butik Man ska kunna sortera produkterna (Dåligt) Användaren ska kunna sortera produkter på pris i både stigande och fallande ordning (Bra) Exempel: Ska: Användaren ska kunna välja att betala med kort Bör: Användaren bör kunna välja att betala med faktura Bör: Användaren bör kunna spara artiklar utanför kundvagnen i sin "önskelista" för senare köp

Projektarbete kräver: Kravspecifikation Ickefunktionella krav: Totala laddningstiden för alla sidor ska vara under 100 ms Hemsidan ska se likadan ut i Internet Explorer 7, Edge, Firefox 42, Chrome 33, och IceWeasel Hemsidan ska använda HTML5 uteslutande Hemsidan ska klara 5000 samtidiga användare på en server

Projektarbete kräver: Projektplan En projektplan ska (åtminstone): Vara nedskriven i förväg Beskriva: Vad som ska uträttas, med vilken metod, men ingen design Vara välskriven, strukturerad, kortfattad och begriplig Ta hänsyn till tänkbara olyckshändelser Levande dokument: utvecklas i takt med projektet

En projektplan kan innehålla Översikt Intro till jobbet, kunden, gruppens organisation Fasplan/Tidsplan - obligatorisk 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?

En projektplan kan innehålla Utbildningsplan Intern, extern Vem, när, resurser? Plan för rapportering och granskningar Vad, till vem, när? Installationsplan Vilken procedur krävs för att komma igång? Plan för kvalitetssäkring Standarder som ska användas? Varuplan Vad ska levereras, när? Delleveranser? Resursplan Persontid, datortid Summering av milstolpar!

Rubriker i mer verklig projektplan 1 Revisionshistoria 11 Ändringslogg 12 Relaterade dokument 2 Förutsättningar och bakgrund 21 Syfte 22 Bakgrund 3 Mål 31 Affärsmål 32 Systemmål 33 Kvalitetsmål 4 Omfattning och resultat 41 1 1 Se kurshemsidan

Exempel på milstolpar Fas/Milstolpe Planerat datum Förstudiefasen Förstudiedokument klart 1994-02-05 Förstudiedokument accepterat 1994-02-10 Definitionsfasen Kravspecifikationsdokument klart 1994-02-25 Kontrakt skrivet 1994-02-25 Acceptansvillkor framställda 1994-02-25 Kravspecifikationsdokument accepterat 1994-03-01 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

Exempel på riskanalys Miniriskmetoden: Risk Sanno- Konse- Riskvärde Åtgärd likhet kvens Beställare får Ha flera slut på gosedjur 3 5 3 5 = 15 leverantörer Anton tröttnar Hitta på gosedjurshestar 1 6 1 6 = 6 ersättare

Mäta förlopp av implementation Uppfattning om utvecklingsförlopp Svårt att få en bra uppfattning Märkbar investering Olika metoder

Planering: Burn down chart

Planering: GANTT-diagram

Design - Viktiga nyckelord Modularisering Små, överblickbara bitar Modulkvalitet, egenskaper som kännetecknar en bra modul: Inkapsling Abstraktioner Språkoberoende Metodik Hur urskiljer man moduler?

Modul - abstraktionslager Exempel: TCP/IP 7 Application layer 6 Presentation layer 5 Session layer 4 Transport layer 3 Network layer 2 Data link layer 1 Physical layer

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

Modul - detaljerad design Förslag på modulattribut som måste specificeras 2 : Identifikation, unikt (namn) Typ, ex subsystem, paket, klass, fil, subrutin Syfte, övergripande beskrivning Funktion, relaterat till kravspecifikationen Beståndsdelar, om sådana i sin tur finns Beroenden, relationer till andra komponenter Gränssnitt till andra komponenter, i detalj Externa resurser Utförande, beskrivning av algoritmer, exceptions etc Data, beskrivning och avsikt av interna data 2 IEEE Standard 1016, från van Vliet

OOA/OOD CRC-kort Sälja Öka lagersaldo Ta bort ur lager Vara Kund, lagersaldo, pris Lagersaldo Lagersaldo

OOA/OOD CRC-kort Sälja Öka lagersaldo Ta bort ur lager Sälja Öka lagersaldo Ta bort ur lager Hämta recension Vara Kund, lagersaldo, pris Lagersaldo Lagersaldo Bok Kund, lagersaldo, pris Lagersaldo Lagersaldo ISBN

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

Implementation Tänk på: Skriv för folk, inte kompilatorer 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