Praktikum i programvaruproduktion



Relevanta dokument
Fyra i rad Javaprojekt inom TDDC32

Inlämning 1 - Tentafrågor. Projektgrupp A

Inkapsling (encapsulation)

Design och konstruktion av grafiska gränssnitt

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

Chaos om IT-projekt..

Prototypningsverktyg. A Human-Centered Design Process (ISO , 2010) Mattias Institutionen för datavetenskap

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

Användarcentrerad Systemutveckling

Chaos om datorprojekt..

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Datavetenskap. Therese Sundström. Utveckling av ett affärssystem med. Unified Process. Examensarbete, D-nivå 30 ECTS 2005:05

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

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

RUP - Rational Unified Process

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

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

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Opponentrapport på examensarbete Utveckling av ett affärssystem med Unified Process av Therese Sundström.

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

Webservice & ERP-Integration Rapport

Design och konstruktion av grafiska gränssnitt

Objektorientering. Grunderna i OO

Piff och Puffs Chatsystem

TDP005. Föreläsning 3 - UML. Filip Strömbäck

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

TDDE10 TDDE11, 725G91/2. Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

30 år av erfarenhet och branschexperts

Agil programutveckling

Projektet. TNMK30 - Elektronisk publicering

Kravfångst Bra kravarbete handlar om att ställa rätt frågor och att ge rätt svar i rätt form

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

12 principer of agile practice (rörlig)

Låt oss ta hand om din IT, medan du själv utvecklar ditt företag

För varje par av påstående/anledning svara med ett av följande alternativ (½ p per rätt svar):

Kravfångst Bra kravarbete handlar om att ställa rätt frågor och att ge rätt svar i rätt form

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Anledning: Generellt så undviker QUPER att göra fullständiga förutsägelser för relationerna mellan ett systems fördelar, kostnad och kvalitet.

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

Problem 1-1,5p Två av följande metoder för kravspecifikation är ej lämpade att använda vid ett COTSprojekt,

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

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

UML use cases. Mikael Söderström Institutionen för informatik Umeå universitet

RUP Rational Unified Process. 17 november 2004

Kursplanering Objektorienterad programmering

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Användarcentrerad systemdesign

Objektorienterad programmering och Java

Processbeskrivning Systemutveckling

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

En guide för att förbättra noggrannheten.

Föreläsning 3 Användare, uppgift och omgivning. Kapitel 3-4 i Stone et al.

Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014

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

Att fastställa krav. Annakarin Nyberg

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Introduktion till MySQL

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 9 Erik Nilsson, Institutionen för Datavetenskap, LiU

Spelprogram. Objektorienterade applikationer Laboration 2

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

Kursplan Webbutveckling 2, 100p Läsår

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

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Introduktionsmöte Innehåll

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

hannalabom.se Alexandra Jonasson Aj222im

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

Grafiska användargränssnitt i Java

Tentamen i Introduktion till programmering

Grafiska användargränssnitt i Java

Symptom på problemen vid programvaruutveckling

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

Arkitektur Michael Åhs

PLANERING MULTIMEDIAPROJEKTET FAMILJEN GURKA

Continuous Integration med Jenkins. Linus Tolke Enea Experts

EDAA01 Programmeringsteknik - fördjupningskurs

Software Engineering. Mål med föreläsningen 10/2/2017. Kort presentation

Inlämning 2 - Förslag till tentamensfrågor i Kravhantering, Grupp A. Kompletterar de kursavsnitt som inte täcktes av förra inlämningen.

Software Engineering

Föreläsning 1: Introduktion till kursen

Inlämningsuppgift 2. DA156A - Introduktion till webbutveckling Teknik och samhälle, Malmö högskola Oktober 2012

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

TDDC74 - Projektspecifikation

Användarcentrerad systemdesign

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

Länkade listor och automatisk testning

Tentafrågor 1. Grupp. B

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Introduktion till programmering, hösten 2011

Tillämpad programmering CASE 1: HTML. Ditt namn

Användarcentrerad systemdesign

Projektplan, Cykelgarage

Transkript:

Praktikum i programvaruproduktion

Introduktion Föreläsare/Ansvarig: Pontus Boström Email:pontus.bostrom@abo.fi Rum A5055 Assistent: Petter Sandvik Email: petter.sandvik@abo.fi Rum: A5048 Föreläsningar: Kurssida: Kursen betsår av att utföra ett lite större projekt Arbetet uförs i grupper (2 pers/grupp)

Projekt: Uppgiften är att konstruera en enkel musikspelare som kan spela olika typer av ljudfiler: Spelar det som Javas ljudsystem klarar av (.vaw,.mp3,.ogg,...) Se beskrivning av uppgiften

Arbete Tidigare har studeranden fått en uppgift som lösts självständigt på egen hand I år ska en utvecklingsprocess följas Efter varje steg i processen diskuteras lösningarna på det senaste steget i utvecklingsprocessen Det här betyder strikta deadlines på de olika delmomenten Missad deadline betyder 0 poäng för den uppgiften För att få godkänt behövs Man har utfört varje steg i utvecklingsprocessen (Gjort reviews) Som tidigare år lämnas allt material in via ett subversion repository. Ett repository/grupp

Verktyg UML ArgoUML rekommenderas http://argouml.tigris.org/ Dvs andra modellformat kan nödvändigtvis inte läsas av läraren Programmering Eclipse Versionhantering Subversion Subclipse plugin för Eclipse Testning Junit plugin för Eclipse

Utvecklingsprocess En typ av waterflow model Arbetet uförs i fem steg Kravanalys 1, beskrivning i text Kravanalys 2, domänmodell Design Programmering, iteration 1 Programmering, iteration 2 Kravanalys 1 För att kunna konstruera ett program måste man veta vad man vill ha Uppgiften ger bara en grov överblick av funktionaliteten för spelaren I det här steget skall precisa krav på funktionaliteten definieras Kravanalys 2 I det här steget beskrivs domänen för spelaren mera precist med UML diagram Tillståndsmaskiner används för att beskriva hur händelser ska hanteras

Utvecklingsprocess Design I det här skedet skapas en detaljerad design av spelaren i UML Programmering, iteration 1 Spelaren kan på ett ganska bra sätt delas upp två delar, spelare och hantering av spelningslistor I den här iterationen skapas spelaren Programmering, iteration 2 I den här iterationen görs hantering av spelningslistor De integreras också med själva spelaren

Krav Krav Är uttryck för intressenternas behov av ett system för att nå ett speciellt mål Beskriver hur ett system skall fungera utan att ta ställning till hur funktioner i systemet ska implementeras Är grundpelaren för utvecklingen av ett system Indelning av krav Funktionella krav Icke-funktionella krav T. ex. Kvalitetskrav, spelningen ska ha hög kvalitet (inga hopp) Krav bör skrivas så att de är verifierbara Det ska gå för en person eller maskin att kontrollera att mjukvaran uppfyler kraven Kravdokument format Rational Unified Process - Template for Software Requirements Specification

Kravanalys 1 Flera olika sätt att samla och organisera krav för ett program Use cases (Användningsfall) User stories Problem frames Ett långt textdokument utan egentlig ordning... Användningsfall hör till de vanligare sätten Används här för att beskriva spelarens funktio Två aktörer Användare AudioSystem (Ljudsystemet)

Användningsfall Användningsfall: Spela ID: SP1 Aktörer: Användare Förvillkor: Inget Flöde av händelser: 1. Användaren väljer en fil att spela 2. Stoppa eventuell pågående spelning 3. Användaren klickar på spela knappen 4. Spelaren börjar spela filen Eftervillkor: Den nyligen valda filen spelas Alternativt flöde 1: Filen som valdes var inte av rätt format 1. Användaren informeras om att filen inte kan spelas Användningsfall: Stoppa spelning ID: SP2 Aktörer: Användare Förvillkor: Inget Flöde av händelser: 1. Användaren klickar på stopp knappen 2. Spelningen av filen stoppas 3. Den nuvarande positionen i filen sätts till början av filen Eftervillkor: Ingen fil spelas och nuvarande positionen i filen är i början av filen Alternativt flöde 1: Ingen fil var vald för spelning 1. Ingenting görs

Användningsfall Användningsfall: Felaktig fil i lista ID: SP3 Aktörer: Användare, AudioSystem Förvillkor: Spelning från spelningslista pågår Flöde av händelser: 1. Audiosystem meddelar att filen inte kan spelas 2. Filen tas bort från spelningslistan (?) 3. Användaren meddelas om felet (?) 4. Nästa fil i spelningslistan väljs 5. Spelaren börjar spela filen Eftervillkor: Den nyligen valda filen spelas och den felaktiga filen är borttagen Alternativt flöde 1: Det finns inte fler filer i listan 1. Vad betyder detta för random-play (?)

Uppgift till nästa gång Kravanalys Skriv användningsfall som beskriver funktionen hos spelaren Alla knapptryckningar och dylikt bör beaktas Kravbeskrivning skall i princip vara komplett. Det ska vara möjligt att implementera spelaren baserat på kravspecifikationen utan att behöva fundera på hur någonting borde fungera Ge även prioritet för kraven från 1 (högst) till 4 (lägst). Det finns för mycket jobb att göra förrän spelaren har all funktionalitet i kravenspecifikationen Vi kommer bara att göra krav med hög prioritet Där borde vara ungefär lika många krav i varje prioritetsklass Gör det möjligt att utveckla systemet iterativt

forts Gör en mock-up för ett användargränssnitt Vilka Grafiska användargränsnitts element behövs (knappar, textboxar, etc Vad skulle vara en bra layout Designan gränsnsittet för hur du vill att en dylik spelare ska fungera Detta kan göras i Java, någon GUI-builder för Java, Något grafik program. Om gjort i annat än Java behöver den inte se helt rätt ut. Det viktiga är att layouten av de olika elementen är utfunderad Tänk på att ert gränssnitt ska vara implementerbart på den här kursen (Alltså inte alltför invecklat om man inte har tänkt jobba extra hårt)