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

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

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

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

TDP005. Föreläsning 1. Filip Strömbäck

TDP005. Föreläsning 1. Filip Strömbäck

Konstruktion med mikrodatorer

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

TDIU01 (725G67) - Programmering i C++, grundkurs

Testbara krav. SAST Syd Ställ gärna frågor under presentationen eller efteråt Åhörarkopior distribueras efteråt

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

BESKRIVNING AV PROCESSMETODEN SCRUM

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

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

Programutvecklingsmetodik, teori

Utbildningsplan för. International Software Engineering, 180 högskolepoäng

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

TDP005 Projekt: objektorienterade system

TSTE05-Elektronik och mätteknik

Dokumentation och presentation av ert arbete

Objektorienterad programmering

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

Dokumentation och presentation av ert arbete

Reglerteknik. Utvärderingen är genomförd av. Ansvarig studienämndsordförande. Sändlista. Anders Hansson Johan Löfberg. Kursen gavs Årskurs 3 Termin

Projektarbete DAVC20

Dokumentation och presentation av ert arbete

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

TDP005 Projekt: objektorienterade system

TDP001/TDP002. Introduktionsföreläsning. Eric Elfving Institutionen för Datavetenskap (IDA)

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

Dokumentation och presentation av ert arbete

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

TDDD38-Avancerad programmering i C++

Inspel till dagens diskussioner

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

Torun Berlind Elin Önstorp Sandra Gustavsson Klas Nordberg. Föreläsningar Lektioner Laborationer Projekt

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

THFR41 - Teknisk kommunikation på franska del II

Scrum. på fem minuter

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

TDDD78 Att välja och genomföra ett projekt

Jonas Detterfelt Siv Söderlund Johan Högdahl Michael Josefsson Tomas Svensson. Föreläsningar Lektioner Laborationer Projekt

Poäng. Start v. Programvaruteknik Institution Institutionen för datavetenskap. Antal registrerade (män/kvinnor) 25 (23/2)

TDP023 Projekt: Agil systemutveckling

TBMT41-Projekt i medicinsk teknik

TDP005 Projekt: objektorienterade system

THTY42 Teknisk kommunikation på tyska II - del 2

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

Imperativ programmering i ADA

EMG:s väg till examensarbeten av mycket hög kvalitet

Objektorienterad programmering och Java

Här ges en överblick över de delar som ingår i projektarbetet och beskriver kraven och bedömningskriterierna.

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

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

Poäng. Start v. Programvaruteknik Institution Institutionen för datavetenskap. Antal registrerade (män/kvinnor) 34 (29/5)

Kandidatarbete på Industriell ekonomi

Programmeringsteknik II

Kandidatarbete på Industriell ekonomi

TSKS10 - Signaler, information och kommunikation

LiTH Segmentering av MR-bilder med ITK Efterstudie MCIV. Anders Eklund. Status

TDDD82. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Labrapport över Rumbokningssytemet Grupp:1

DM1012 Multimediaproduktion

Processprogrammering och operativsystem Introduktion. Kursinformation. Varför operativsystem?

INFOMET. Projekt. Projektmetodik I

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

Föreläsning 4: Designprocessen

Examensarbete hos företag

TDDD78 Att välja och planera ett projekt

LIPS Kravspecifikation. Institutionen för systemteknik Mattias Krysander

Tea Nygren Siv Söderlund Fredrik Wiklund. Carl Hemmingsson. Magnus Johansson. Carl Hemmingsson. Föreläsningar Lektioner Laborationer Projekt

IT-projektledning - introduktion 725G62

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

TDDB68 - Processprogrammering och operativsystem

SCRUM. på fem minuter

Linköpings universitet 1

Poäng. Start v. Programvaruteknik Institution Institutionen för datavetenskap. Antal registrerade (män/kvinnor) 54 (50/4)

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

Användarcentrerad systemdesign

THSP41 - Teknisk kommunikation på spanska II - del 1

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

Scrum. på fem minuter

Jonas Detterfelt Siv Söderlund Johan Högdahl Weine Olovsson Magnus Johansson. Föreläsningar Lektioner Laborationer Projekt

Reglerteknisk projektkurs TSRT10

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

TDP025. Entreprenöriell programmering. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Reglerteknisk projektkurs TSRT10

TGTU43- Kommunikation på arbetsplatsen

Metoder för Interaktionsdesign

THSP21 - Teknisk kommunikation på spanska I, del 1

Reglerteknisk projektkurs TSRT10

TANA81: Matematikprojekt

TDDD80 Mobila och sociala applikationer. Kursintroduktion

Objektorienterad programmering, allmänt

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

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

Introduktion till kursen och MATLAB

TATA24 - Linjär algebra

Jonas Detterfelt Siv Söderlund Johan Högdahl Joakim Arnlind Göran Forsling. Föreläsningar Lektioner Laborationer Projekt

TDDD80 Mobila och sociala applikationer. Kursintroduktion

LIPs Daniel Axehill ChrKr Projektdirektiv_Saab_v3 CKr

Transkript:

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

Kursledning Kursledare Kursassistent Handledare Etikmoment Examinator Kursadministratör Filip Strömbäck Viktor Olsson Viktor Olsson Johan Frimodig Malin Eklund Aspelin Elin Palm Johanna Romare Klas Arvidsson Madeleine Häger Dahlqvist

Kommentarer från tidigare år OOA/OOD fokuserar nu på ert eget projekt i stället för ett godtyckligt exempel Ändrat ett par otydliga frågor i hemtentan Viktigt att ni planerar er tid då kursen har en hög arbetsbelastning Projektet innefattar ca 140 timmar/person

Kursupplägg Kursens mål Kodning av lite större volym Programutveckling i metodisk projektform, inkl dokumentation Kunskap om några element inom Software Engineering Förkunskaper God förtrogenhet med något högnivåspråk Praktisk kunskap inom datastrukturer och algoritmer

Genomförande 4 föreläsningar, varav en om verktyg 1 laboration förslag om innehåll 1 lektion om objektorienterad analys/objektorienterad design 1 gästföreläsning av Kristian Sandahl Etikmoment med 1 föreläsning av Elin Palm samt 1 seminarie Hemtenta i 3 delar Projekt

Examination - Hemtenta Individuell 3 delar 2 kompletteringsmöjligheter per del Föreläsningar översiktliga, tentan på djupet Läs relevant litteratur Ange källor Skickas ut via e-post En vecka per del Lämnas in via Inla Vecka Ord Kompl v35 v36 A v37 v38 v39 B v40 v41 A (K1) v42 v43 C v44 B (K1) v45 A (K2) v46 C (K1) v47 B (K2) v48 C (K2)

Examination - Projekt Grupper om 4 personer Projektplan Tidsplanering, milstolpar Kravspecifikation Designspecifikation Presentation Granskning Erfarenhetsrapport Leverans Demonstration Kodinlämning Testrapport (eventuellt)

Examination - Projekt Minst ett möte med handledare i veckan Innan 31/8: Semat Alphas för att förmedla status Tidsrapport via e-post (sikta på 140 timmar/person) Bilda grupper á 4 personer, varken mer eller mindre Anmäl gruppen i Webreg! Projektval klart Första handledarmötet 31/8 efter föreläsningen, då måste gruppen vara bildad, samt projektval klart Krav - Minst ett externt bibliotek, ex: SFML, Qt, SQLite, ENet, ZeroMQ, Box2D, Bullet etc Krav - använd Git och Gitlab Repositories skapas åt er

Projektförslag Spel av något slag Ljudspelare/mixer/synthesizer Chattapplikation Bibliotekshantering Webapplikation Program till Iphone/Android/Windows Phone Ny version av BookIt?

Info Webreg - anmäl er snarast! Gitlab - efter första handledarmötet Tidsbokning - BookIt, minst en arbetsdag i förväg

Projekt En tillfällig kraftsamling som genomförs för att skapa en unik produkt, tjänst eller resultat Ett definierbart ändamål Definieras i en kravspecifikation: funktionalitet, prestanda, uppträdande, etc Ett unikt åtagande inte rutinarbete, avser inte något som gjorts identiskt tidigare En tillfällig aktivitet Det finns en tydlig början och ett tydligt slut Kort definition: Ett projekt är en kombination av resurser som förs ihop för att skapa något som inte fanns förut 1 1 Cleland och Ireland, 2002

Utgångspunkt Ett projekt löper allmänt i ordningen: 1 Förstå problemet 2 Planlägg lösningen 3 Genomför planen 4 Utvärdera resultatet

Utgångspunkt Programmering (=kodning) och design(=konstruktion) är teknikområden Framställning av stora/komplexa system kräver dessutom tex: Många programmerare/grupper Specialister, utbildning, ersättare, etc (personalfrågor) Marknadsföring, kontrakt, etc (externa frågor) Kvalitetssäkring (processer, produkter, etc) Dokumentation av olika slag Management (ledning, uppföljning, resursfördelning, etc) Till stor del icke-tekniska frågeställningar!

Vad är Software Engineering? Software Engineering for Students: A Programming Approach, D Bell

Vad är Software Engineering? Mål: Konstruera stora/komplexa programvarusystem I enlighet med användares/beställares avsikter Inom föreskrivna budget- och tidsramar Med hänsyn till kvalitets- och underhållsaspekter Alltså behövs: Metod Verktyg Riktlinjer Attityder

Vad är Software Engineering? Mest övergripande mål: Förmåga att urskilja och rätta sig efter kunders önskemål och krav (dvs behovsstyrt, inte teknikstyrt) Användande av ingenjörsmässiga principer, idéer, kvaliteter och attityder Vad innebär ingenjörsmässighet? Konstruktion av programvara är inte (längre) ett ad-hoc jobb utfört av enstaka kreativa individer i den mörka källaren, utan ett välorganiserat, metodbaserat teamwork, baserat på känd teknik

Begreppsdistinktioner Principer: Ett enskilt förfaringssätt, sätt att arbeta Metod: Parprogrammering Planning poker Ett konkret, detaljerat, förfaringssätt, inklusive verktyg och principer Metodologi: Scrum Extreme Programming (XP) Läran om hur metoder konstrueras, kan värderas, dess generella egenskaper

Traditionell arbetsgång Projektfas Allmän SE-fas Resultat Förstå problemet Kravanalys Kravspecifikation Planlägg lösningen Planering Projektplan Genomför planen Design & Designspecifikation, implementation kod Utvärdera resultatet Testning Ny kod, dokument Dessa steg bryts ner i flera, mer preciserade delsteg

Vattenfallsmodell Software Engineering for Students: A Programming Approach, D Bell

Vattenfallsmodell med återhopp Software Engineering for Students: A Programming Approach, D Bell

Spiralmodellen Software Engineering for Students: A Programming Approach, D Bell

Scrum Scrum är en agil utvecklingsmetod Roller Produktägare Scrum master Utvecklare Sprints - liknande spiralmodellen Varierande längd, ofta 3-30 dagar Planering Arbete Återkoppling/retrospektiv

Scrum Backlog Hanteras av produktägaren Vad ska göras? Uppdelat i relativt små delar Sprint backlog Del av backlog för aktuell sprint Daglig Scrum Kort statusmöte varje dag Ofta stående = kort (max ca 15 min)

Prototyping Bygger på att: Tidigt skapa en prototyp Låta användaren testa denna prototyp Förfina kravspecifikationen baserat på feedback Förfina prototypen och upprepa Kan användas på två sätt: Evolutionary development Prototypen förfinas tills den utgör den färdiga produkten Throwaway prototyping Prototypen kasseras till slut Den färdiga produkten utvecklas från grunden med tidigare lärdomar

SEMAT Alpha Kernels

Tankar inför projektet Börja fundera på era principer och er metod Finns många fler att välja på än de som nämnts Gör milstolpar fram till tenta-p, ange även Semat Alpha-tillstånd för varje milstolpe Se till att er tidsplan sträcker sig åtminstone en vecka framåt Dokumentera gärna era principer samt metoder

Övrigt Kursen kräver stort egenansvar! Läs kurshemsidan noga Bilda grupper och välj projekt! Anmäl er i Webreg! Maila förslag till laborationen till filipstromback@liuse