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

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

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

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

Konstruktion med mikrodatorer

TDP005 Projekt: objektorienterade system

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

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

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

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

Dokumentation och presentation av ert arbete

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

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

Dokumentation och presentation av ert arbete

Programutvecklingsmetodik, teori

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

Objektorienterad programmering

Projektarbete DAVC20

Dokumentation och presentation av ert arbete

TDP005 Projekt: objektorienterade system

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

Inspel till dagens diskussioner

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

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

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

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

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.

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

TDDD78 Att välja och genomföra ett projekt

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

TDP023 Projekt: Agil systemutveckling

TDP005 Projekt: objektorienterade system

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

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

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

TDDD38-Avancerad programmering i C++

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

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Verifikation, validering och testning

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

Kursinformation Tets 37 HT -2013

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

Föreläsning 4: Designprocessen

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

TDDD78 Att välja och planera ett projekt

IT-projektledning - introduktion 725G62

SCRUM. på fem minuter

Linköpings universitet 1

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

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

Kandidatarbete på Industriell ekonomi

Användarcentrerad systemdesign

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

Kandidatarbete på Industriell ekonomi

Scrum. på fem minuter

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

Reglerteknisk projektkurs TSRT10

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

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

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

Kandidatarbete I- data

INFOMET. Projekt. Projektmetodik I

Reglerteknisk projektkurs TSRT10

vecka 51 tisdag 18/12 kl 14:00 Informationsmöte om examensarbetet i projektrummet.

Metoder för Interaktionsdesign

TBMT41-Projekt i medicinsk teknik

Objektorienterad programmering och Java

Medborgaren och myndigheten

Reglerteknisk projektkurs TSRT10

Logistik (723G48), 7,5 hp Kursinformation VT -2016

TANA81: Matematikprojekt

Objektorienterad programmering, allmänt

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

TDDD80 Mobila och sociala applikationer. Kursintroduktion

DM1012 Multimediaproduktion

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

TSKS10 - Signaler, information och kommunikation

Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

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

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

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

TSTE05-Elektronik och mätteknik

Examensarbete hos företag

Introduktion till kursen och MATLAB

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

Kurs HF1005 Informationsmetodik och ingenjörsmetodik, HT, 2010 INFOMET

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

Labrapport över Rumbokningssytemet Grupp:1

Upprop & Lediga tjänster

THFR41 - Teknisk kommunikation på franska del II

TDDD92 Artificiell intelligens -- projekt

SCRUM och mycket mer

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

Transkript:

TDDI02 Programmeringsprojekt, Föreläsning 1 Anton Sundblad Filip Strömbäck Med utgångspunkt i tidigare slides av Jonas Lindgren På denna föreläsning: Kursinformation Vad är Software Engineering? Hur går ett projekt till?

Kursledning Kursledare Kursassistent Handledare Examinator Kursadministratör Filip Strömbäck Anton Sundblad Rebecka Geijer Michaeli Rebecka Geijer Michaeli Sam Le Viktor Olsson Klas Arvidsson Madeleine Häger Dahlqvist

Kommentarer från tidigare år OOA/OOD fokuserar nu på ert eget projekt istället för ett godtyckligt exempel Föreläsningarna har ändrats om lite för att vara mer konsekventa 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 lektion om objektorienterad analys/objektorienterad design Hemtenta i 3 delar 1 gästföreläsning av Kristian Sandahl Etikmoment med 1 föreläsning av Elin Palm samt 1 seminarie Projekt

Examination - Hemtenta Individuell 3 delar 2 kompletteringsmöjligheter per del Föreläsningar översiktliga, tentan på djupet Läs relevant litteratur 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 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 1/9: 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 1/9 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 Ideér: Spel av något slag Bibliotekshantering Ligahantering Program till Iphone/Android/Windows Phone

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

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

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

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? Software Engineering for Students: A Programming Approach, D Bell

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

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

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!