Föreläsning 1. Kursinformation. Utvecklingsprocessen. Kravspecifikation. Gruppindelning.

Relevanta dokument
Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Användarcentrerad systemdesign

Användarcentrerad systemdesign

Praktikum i programvaruproduktion

Agile-metoder, XP och ACSD

Design och konstruktion av grafiska gränssnitt

Fungerar Agila principer i alla typer av projekt?

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

Design och konstruktion av grafiska gränssnitt

Människa- datorinteraktion, MDI, vt 2012, Anvisningar för projekt- /grupparbete

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

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

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Kursprogram, ETSF20 Programvaruutveckling för stora projekt (PUSP), 7,5 hp

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

Exercise 1b: Requirements evaluation

Redogörelse för utvecklingsprocessen av spelet The Legend of Chalmers

Människa- datorinteraktion, MDI, ht 2012, Anvisningar för projekt- /grupparbete

Kandidatarbete på Industriell ekonomi

Exercise 1b: Requirements evaluation

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

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

Agil programutveckling

SCRUM. Vattenfallsmodellen. Analys. Design. Kod. Test. Rational Unified Process Agile. Kallas också linjär sekventiell modell.

Innehåll: Obligatoriska föreläsningar och grupparbeten

Inspel till dagens diskussioner

BESKRIVNING AV PROCESSMETODEN SCRUM

Spelschema för årets fotbollsmästerskap! island tyskland Söndag 14/7 Växjö Arena, Växjö. Söndag 14/7 Kalmar Arena, Kalmar

Objektorienterad programmering

Kursprogram, ETS032 Programvaruutveckling för stora system (PUSS), 7,5 hp

Föreläsning 4, Användbarhet, prototyper

RUP - Rational Unified Process

Design och krav. Design Definition. enkelt Det ska vara möjligt att. Henrik Artman

Linköpings universitet 1

Kravspecifikation för hårdvaruprojekt i kursen Datorsystemteknik, HT2005. Temperaturvakt med loggningsfunktion

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

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

FAFA55 Kvantfysikaliska koncept PROJEKT UNDER LÄSPERIOD 1

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15

LIPS Kravspecifikation. Institutionen för systemteknik Mattias Krysander

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

V 1 Kalendervecka Måndag 16/1 Tisdag 17/1 Onsdag 18/1 Torsdag 19/1 Fredag 20/1 Lördag 21/1 Föreläsning. Omtentamen Protetik

Projektuppgift.

Kursansvarig: Margareta Kesselberg, Rum: B320, Tel: , E-post:

FÖRELÄSNING 8 DSV2PVT

Undervisningsspråk: Svenska Moment på andra skandinaviska språk och engelska kan förekomma.

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

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

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

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Kursbeskrivning / Matrialiserande och gestaltning, 12 hp

Linköpings universitet

Reglerteknisk projektkurs TSRT10

Kandidatarbete på Industriell ekonomi

Projektarbete DAVC20

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Bokningslista Examinator

Användbarhet i sitt sammanhang

Modern utvecklingsmetodik. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag

Projektet. TNMK30 - Elektronisk publicering

EITF45 - Projektintroduktion. HT William Tärneberg

Kandidatarbete på Industriell ekonomi

Projektmetodik II. HF1005, Informationsteknik och ingenjörsmetodik för Datateknik. Projektarbete

Människa- datorinteraktion, MDI, ht 2011, anvisningar för projekt- /grupparbete

EITF45 - Projektintroduktion. HT William Tärneberg

Kandidatuppsats. Januari Statistiska institutionen Stockholms Universitet

Dokumentation och presentation av ert arbete

Projektarbete. Grunder

KURS-PM för. Lärande i arbete 2 (YTLR27) 40 Yhp. Version 1.0 Uppdaterad

Dokumentation och presentation av ert arbete

Tentamen i Objektorienterad programmering

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Att fastställa krav. Annakarin Nyberg

Säkra system. En profil om säkerhet och programvara. Profilansvarig: Nahid Shahmehri

Matematik I. hösttermin Jennifer Chamberlain Kurskoordinator

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

"SÄTT SPÅR I FRAMTIDEN NU!

Välkomna till KMM! KMM. KMM - lärandemål Efter fullgjord kurs ska ni bland annat kunna:

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Linköpings universitet

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban

FÖRVARA KEEP STORE MÖBELDESIGN IA & EFG. IA K3 21 oktober 22 november 2013 Inredningsarkitektur & möbeldesign KONSTFACK

Agil Projektledning. En introduktion

ESSF05 Elektronikprojekt och hållbar utveckling

Kursplan för Kandidatuppsats i sociologi VT 2018, 15hp

Filhanterare med AngularJS

Sociologisk Analys I, 7,5 hp, Sociologi I

Inlämning 1 - Tentafrågor. Projektgrupp A

Kursbeskrivning och schema: Statsvetenskapliga metoder, statsvetenskap 2, (7,5 poäng) VT 2008

LIPs Fredrik Ljungberg ChrKr Projektdirektiv18_ROV.doc CKr

Poäng. Start v. Applikationsprogramm ering i Python 7.5. Antal registrerade (män/kvinnor) 50 (34/16)

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

Föreläsning 4: Designprocessen

Gemensamma riktlinjer fo r genomfo rande av Examensarbete Hing Elkraftteknik

TDDD78 Att välja och planera ett projekt

Kursbeskrivning och schema: Statsvetenskapliga metoder, statsvetenskap 2, 5 poäng (VT 2007)

Transkript:

Föreläsning 1 Kursinformation. Utvecklingsprocessen. Kravspecifikation. Gruppindelning.

Lärare Kursansvarig: Gästföreläsare: Christer Carlsson Joachim von Hacht Michal Andreen Handledare: Michal Andreen Staffan Björnesö Christer Carlsson Peter Evensen Daniel Wetterbro

Kursens mål Kursen skall ge er erfarenhet av att utveckla ett mindre programsystem i grupp, med användande av en föreskriven utvecklingsprocess. Kursen skall också ge tillfälle att utnyttja (och därmed konsolidera) kunskaper från tidigare kurser i objektorienterad programutveckling samt människa datorintraktion. Ett outtalat syfte är också att ni skall ha kul under projeket.

Undervisning Föreläsningar: Måndag 16/3, kl 10 12 i sal HA2 Måndag 23/3, kl 8 10 i sal HA2 Fredag 27/3, kl 13 15 i sal HA2 Tisdag 31/3 kl 13 15 I sal HC2 Grupphandledning: Torsdagar i läsveckorna 1 4 samt 6 7, enligt särskilt schema. I läsvecka 5 och 8 beslutar varje grupp om handledningstid i överenskommelse med sin handledare. Närvaro är obligatorisk under handledningstimmarna. Återkoppling: Återkoppling ges på gruppens producerade dokument och kod.

Deadlines Måndag 16/3: Sammansättningen av projektgrupperna skall vara klart Onsdag 18/3: Valet av projekt skall vara klart (senast kl 9.00) Fredag 20/3: Kravspecifikation skall vara klar (senast vid midnatt). Fredag 27/3: Designdokumentet skall vara klart (senast vid midnatt). Onsdag 13/5: En första version av projektrapporten skall vara klar (senast vid midnatt). Tisdag 19/5: Demoversion av programmet skall visas för handledaren. Tisdag 19/5: Dokument och kod skall vara opponentgruppen tillhanda. Tisdag 26/5: Projekten redovisas, all dokumentation och kod skall vara klar.

Examination Betyg: Endast betygen godkänd och underkänd ges. Krav för godkänt: Aktivt deltagande i gruppens arbete inklusive produktion av kod och obligatoriska dokument. Närvaro vid och aktivt deltagande under handledningstimmarna. Veckans arbetsinsats redovisas gruppvis skriftligen till handledaren. Närvaro vid och aktivt deltagande i presentationsdagen 26 maj (presentation och opposition).

Tidsplan Läsvecka Utvecklingsfas Resultat 1 Kravinsamling Kravspecifikation 2 Analys och design Designdokument 3 7 Implementation Fungerande program, manual 8 Rapportering Rapport, presentation, demonstration

Gruppindelning Målsättningen är exakt fyra medlemmar per grupp. Om inte antalet deltagare på kursen är jämt delbart med fyra kommer några grupper att få tre medlemmar. Gruppindelningen skall bli klar i dag.

Resten av veckan I dag: Tisdag: Gruppindelning. Val av projekt. Meddela Christer via e post senast kl 9.00 på onsdag. Ange gruppnummer, projektval samt namn, personnummer och Chalmers CID för samtliga medlemmar). Torsdag: Fredag: Handledarmöte (se kurshemsidan för tid och plats). Utkast till kravspecifikation. Skriftlig kravspecifikation per e post till handledaren. Denna och alla andra dokument skall skrivas på engelska.

Projektförslag Varje grupp skall välja ett av nedanstående förslag (mer information om förslagen finns på kurshemsidan). Implementationsspråk skall i samtliga fall vara Java. Korsordseditor. Sudokueditor. Bibliotekssystem. Simulering av övergångsställe. System för Lunch Dating. Datorspel. Val av spel måste godkännas av handledaren. Eget förslag. Måste presenteras skriftligt för och godkännas av handledaren.

Risker vid mjukvaruutveckling Misslyckas med att möta användarnas behov Gör inte det användaren vill att det ska göra. Misslyckas med att förutsäga kostnader Programsystemet blir dyrare att utveckla än förväntat. Misslyckas med att nå deadlines Är inte färdigt i tid. Prestandaproblem Är slött. Portabilitetsproblem Går inte att flytta till en annan maskin med lätthet. Underhållsproblem Har otydlig struktur och innehåller komplicerd och svårtolkad kod. Tillförlitlighetsproblem Innehåller buggar som gör att det kraschar. Användargränssnittsproblem Svårt att använda, trist layout.

Aktiviteter vid programutveckling Utveckling av ett större programsystem innehåller åtminstone följande aktiviteter: Insamlande och dokumentation av användarkrav. Analys av kraven. Design av program och GUI. Kodning. Enhetstester (tester av enskilda klasser). Integrationstest. Hur skall dessa utföras och dokumenteras?

Utvecklingsprocesser Några omtalade modeller: Waterfall model (1970 talet) Föregående fas avslutas innan nästa fas påbörjas. Övertagen från annan ingenjörsvetenskap. Iterative development (1980 talet) Systemet byggs i flera iterationer med utökad funktionalitet. Agile development (2000 talet) Iterativ process med korta iterationer (som längst ett par veckor) och fokus på tät samverkan i utvecklingsgrupp.

Waterfall model (vattenfalls modellen)

Iterative development

Agile development Agile development (lättrörlig utveckling) är ett synsätt gemensamt för en grupp av utvecklingsmetoder. Det är alltså inte en utvecklingsmetodik i sig utan snarare en uppsättning värderingar, attityder och principer. Agile värdesätter: Individer och samspel framför specifika metoder, processer och verktyg. Körbar programvara framför omfattande dokumentation. Kundsamarbete framför kontraktsförhandlingar. Anpassning till förändring framför att följa en statisk plan. Bland lättrörliga metoder kan nämnas: Adaptive Software Development, Crystal, DSDM, Extreme Programming (XP) och Lean Software Development.

Vår process Kravbeskrivning (3 dagar). Enkel form av användningsfall (use cases). Analys och design (1 vecka). Design av GUI enligt MDI-kursen. Mer om design av programstrukturer nästa föreläsning. Implementation (4 veckor). I huvudsak en iteration med tillägg om tid medger. Enhetstest av viktiga klasser. Förbjudet!! Cowboy coding: Var och en hackar där han/hon känner för det.

Börja inte koda nu Många finner det frestande att börja koda direkt, dvs: utan att ordentligt gjort klart för sig vilka krav och önskemål kunden har, utan att tänka igenom en design för programmet. Varför skulle det gå bättre vid programutveckling än inom annan ingenjörsverksamhet.

Dilbert om kravspecifikation

Failing to grasp the idea

Vad är ett krav? Ett krav är en funktion eller egenskap som systemet skall tillhandahålla för att uppfylla sitt syfte. Funktionella krav Specificerar de handlingar som systemet skall kunna utföra. Icke funktionella krav Specificerar egenskaper hos systemet t.ex. användbarhet, tillförlitlighet, prestanda, modifierbarhet och återanvändbarhet. Nivåer av krav Tvingande absolut nödvändiga för att systemet skall uppfylla sin uppgift. Önskvärda går att klara sig utan, men detta kan leda till vissa besvär eller lägre effektivitet. Trevliga att ha bidrar endast marginellt till systemet som helhet.

Krav Ett krav skall: specificera VAD, inte HUR vara korrekt vara komplett vara otvetydigt vara kortfattat vara design oberoende vara uppnåbart vara testbart

Användningsfall (use( cases) Systemets funktionella krav fångas med användarfall (use cases). Användningsfall är en mall för en sekvens av interaktioner (scenarior) mellan en aktör (användare) och ett system Use Case Use Case Use Case Användarkrav

Användningsfall (use( cases) Ett användarfall beskriver vilken interaktion en aktör har med systemet för att uppnå sitt mål. En fullständig beskrivning av ett användarfall innebär ofta många steg av interaktion, med flera alternativ och felsituationer. Vi nöjer oss med att i första skedet beskriva huvudalternativet i några få meningar. Säg i detta skede så lite som möjligt om användargränssnittet. Vi anger för varje användarfall dess prioritet och tidsåtgång. Observera Vi beskriver ett användarfall enbart med text. Det finns grafiska standarder för att beskriva användarfall; skall dock inte användas i kursen.

Ett exempel Vi tänker oss ett system för att boka och sälja biljetter till en biograf med flera salonger. Följande skall gälla för systemet: systemadministratörer kan lägga in föreställningar i systemet säljare kan boka och sälja biljetter ekonomisystemet kan få information om sålda biljetter. Låt oss betrakta några användningsfall.

Användningsfall 1 Lägg till en film Aktör: Systemadministratör. Mål: Lägg till en film och dess föreställningar till systemet. Interaktion: Användaren anmodas att ge filmens namn och premiärdatum. Systemet visar en grafisk vy med tillgängliga visningstider för de olika salongerna den kommande månaden. Användaren väljer ett antal av dessa alternativ. Systemet bekräftar och lagrar valen. Prioritet: 1. Svårighet: Lätt.

Användningsfall 2 Sälja biljetter Aktör: Säljare. Mål: Sälja ett antal biljetter till en viss föreställning. Interaktion: Användaren anger en film. Systemet visar en grafisk vy av salongen för nästa föreställning med lediga och upptagna platser markerade. Användaren kan markera ett antal lediga platser och sälja dem. Prioritet: 1. Svårighet: Lätt.

Användningsfall 3 Biljettförsäljning över internet Aktör: Kund vid dator med internetanslutning. Mål: Köpa biljetter till en viss föreställning. Interaktion: Användaren anger en biograf och film. Systemet visar en grafisk vy av salongen för nästa föreställning med lediga och upptagna platser markerade. Användaren kan markera ett antal lediga platser och köpa dem och betala med kontokort. Prioritet: 3. Svårighet: Svår.

Kravspecifikation som kontrakt Den godkända kravspecifikationen fungerar som kontrakt mellan er och kunden/handledaren. Användarfall av prioritet 1 och 2 skall implementeras. Omprövning kan eventuellt ske i läsvecka 5, om det visar sig nödvändigt.

Hur hitta kraven Ett stort problem Vi har ingen riktig kund. Handledaren får fungera som ersättare, men kan inte ta kundens roll på riktigt. Förslag till arbetsmetod: Brainstorming (hela gruppen), för att komma på/förstå vad man skall kunna göra med programmet. Sortera kraven i viktiga/mindre viktiga samt lätta/svåra. Skriva användningsfall.

En kravspecifikation denna vecka 1. Introduction An overview of the document. 2. Scope A brief description of the product to be developed. 3. Functional Requirements A list of all the use cases (priority 1-3). 4. Other Requirements. Time requirements? Security requirements? Data volume requirement? Etc. 5. User interface sketch. Do not put too much effort into producing the sketch.