Programmeringsstil 11/3-2002 Första timmen: Introduktionsföreläsning (Rasten: Konton/passerkort) Andra timmen: Kursupplägg, genomgång av kursprogrammet (Efteråt: Joel finns kvar för frågor) Joel Brynielsson, 2002-03-11 1
Mål Introduktion av mjukvarukonstruktion och dess betydelse. Besvara grundläggande frågor om mjukvarukonstruktion. Joel Brynielsson, 2002-03-11 2
Mjukvarukonstruktion / Software Engineering Alla industriländer är ekonomiskt beroende av mjukvara. Allt fler system styrs av mjukvara. Mjukvarukonstruktion / Software Engineering inbegriper teorier, metoder och verktyg för professionell utveckling av mjukvara. Kostnader för mjukvarukonstruktion utgör en betydande del av BNP i alla industriländer. Joel Brynielsson, 2002-03-11 3
Mjukvara kostar! Mjukvarukostnader är ofta ett systems dominerande kostnad, jämför t.ex. med kostnaderna på en vanlig persondator. Det är dyrare att underhålla än att utveckla. Detta gäller speciellt system med lång livstid. Mjukvarukonstruktion / Software Engineering handlar om kostnadseffektiv utveckling av mjukvara. Joel Brynielsson, 2002-03-11 4
FAQ 1 Vad är mjukvara? Vad är mjukvarukonstruktion? Vad är skillnaden mellan mjukvarukonstruktion och datalogi? Vad är skillnaden mellan mjukvarukonstruktion och systemkonstruktion (System Engineering)? Joel Brynielsson, 2002-03-11 5
FAQ 2 Vad är en mjukvaruprocess? Hur definieras en modell för en mjukvaruprocess? Vad kostar det att utveckla mjukvara? Vad kännetecknar bra programvara? Joel Brynielsson, 2002-03-11 6
Vad är mjukvara? Datorprogram och associerad dokumentation. Mjukvaruprodukter kan vara av två slag: Generiska, d.v.s. utvecklade för att kunna säljas till en mängd olika (oidentifierade) kunder. Specialgjorda, d.v.s. utvecklade för en specifik kund enligt dess specifika behov. Joel Brynielsson, 2002-03-11 7
Vad är mjukvarukonstruktion? Mjukvarukonstruktion (Software Engineering) är en ingenjörsdisciplin som inbegriper allting som har att göra med konstruktion av programvara. Programkonstruktörer bör tillägna sig ett systematiskt och organiserat synsätt till sitt arbete. De bör använda sig av lämpliga verktyg och tekniker beroende på problemet som skall lösas, givna begränsningar och tillgängliga resurser. Joel Brynielsson, 2002-03-11 8
Mjukvarukonstruktion kontra datalogi? Datalogi handlar om teori och grundläggande begrepp. Mjukvarukonstruktion handlar om hur man praktiskt går till väga för att utveckla och leverera användbar mjukvara. Datalogi ensamt kan idag ej tjäna som grund för mjukvarukonstruktion. Joel Brynielsson, 2002-03-11 9
Mjukvarukonstruktion kontra systemkonstruktion? Systemkonstruktion (System Engineering) inbegriper alla aspekter vid utveckling av datorbaserade system, vilket inkluderar hårdvara, mjukvara och process. Mjukvarukonstruktion är en del i denna process. Systemutvecklare är involverade i systemspecifikation, design av arkitektur, integration och driftsättande. Joel Brynielsson, 2002-03-11 10
Mjukvaruprocess En mängd aktiviteter vars mål är utveckling och/eller evolution av programvara. Gemensamma aktiviteter för alla mjukvaruprocdesser är: Specifikation vad systemet skall göra och vilka begränsningar som finns. Utveckling produktion av mjukvaran Validering kontroll av att mjukvaran är vad kunden vill ha Evolution förändringar i mjukvaran så att den möter nya och ändrade krav Joel Brynielsson, 2002-03-11 11
En mjukvaruprocessmodell En förenklad representation av en mjukvaruprocess, presenterad från ett speciellt perspektiv. Exempel på perspektiv: Workflow perspective - sequence of activities Data-flow perspective - information flow Role/action perspective - who does what Generiska processmodeller: Waterfall Evolutionary development Formal transformation Integration from reusable components Joel Brynielsson, 2002-03-11 12
Kostnader Utveckling: 60% Testning: 40% För specialgjord programvara kostar evolutionen mer än utvecklingen. Inom vilken del kostnaderna hamnar varierar beroende på: typen av system som utvecklas, krav på attribut som prestanda och tillförlitlighet, vald utvecklingsmodell. Joel Brynielsson, 2002-03-11 13
Bra programvara 1 Mjukvara skall leverera önskad funktionalitet och prestanda och skall vara förändringsbar, tillförlitlig, effektiv och användbar. Joel Brynielsson, 2002-03-11 14
Bra programvara 2 Förändringsbarhet (maintainability) Mjukvara måste ständigt utvecklas för att möta nya och ändrade krav. Tillförlitlighet (dependability) Mjukvara skall vara tillförlitlig. Effektivitet (efficiency) Mjukvara skall inte använda systemresurser i onödan. Användbarhet (usability) Mjukvara måste vara användbar för de användare som den designats för. Joel Brynielsson, 2002-03-11 15
Vetenskapen Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues. Professional societies publish codes of conduct which set out the standards of behaviour expected of their members. Joel Brynielsson, 2002-03-11 16
Sammanfattning 1 Mjukvarukonstruktion är en ingenjörsdisciplin som inbegriper allting som har att göra med konstruktion av programvara. Mjukvarukonstruktion handlar om hur man praktiskt går till väga för att utveckla och leverera användbar mjukvara och associerad dokumentation. Joel Brynielsson, 2002-03-11 17
Sammanfattning 2 Viktiga attribut: Förändringsbarhet (maintainability) Tillförlitlighet (dependability) Effektivitet (efficiency) Användbarhet (usability) Joel Brynielsson, 2002-03-11 18
Sammanfattning 3 Mjukvaruprocessen består av aktiviteter vars mål är utveckling och/eller evolution av programvara. Typiska aktiviteter är specifikation, utveckling, validering och evolution. Joel Brynielsson, 2002-03-11 19
Programmeringsstil Studiehandboken: En fortsättningskurs i datalogi som ger en introduktion till professionell programmeringsverksamhet. Kursen ger teknologerna en känsla för programmerarens olika roller och uppgifter. Joel Brynielsson, 2002-03-11 20
Kursupplägg Projektkurs Större projekt ( gör en ordbehandlare ) Kontinuerlig examination Ingen tentamen Föreläsningar Metodik för mjukvarukonstruktion Praktiska exempel på arbetsmetodik (gästföreläsningar) Joel Brynielsson, 2002-03-11 21
Projekt 1 Projektgrupper om två personer. Indelning i tre grupper: Ronnie Jens Joel Registrera dig i res senast i morgon! Projekt- och gruppindelning anslås onsdag 13 mars. Joel Brynielsson, 2002-03-11 22
Projekt 2 Årets projekt: Webbläsare med editor E-postfilter Presentationsprogram Chattprogram Diskussion/presentation onsdag 13/3. Joel Brynielsson, 2002-03-11 23
Eget projekt Ansök hos din gruppledare. Ett antal skarpa projekt finns. Det här är chansen för dig som vill ha en riktigt intressant uppgift med en intresserad uppdragsgivare. Joel Brynielsson, 2002-03-11 24
Projektkrav Projektet förväntas uppfylla följande: Sammanhängande program med ett grafiskt användargränssnitt. Programmet skall avspegla och uppfylla de dokument som lämnats in. Skall motsvara fyra högskolepoäng. Implementering skall ske i Java. Examination 13-16 maj i datorsal. Joel Brynielsson, 2002-03-11 25
Dokument 22 mars Kravspecifikation. 19 april Designdokument. 3 maj Implementationsdokument. 13-16 maj Slutdokument (inlämnas i samband med examinationen). Joel Brynielsson, 2002-03-11 26
Kursbok Ian Sommerville. Software Engineering. 6:e upplagan, Addison-Wesley, 2001. ISBN 0201-39815-X. 720 sidor. Pris: 600 kr på kårens bokhandel. Boken har en omfattande hemsida med exempelkod, inledande kapitel, ordlista, OHslides, m.m. Joel Brynielsson, 2002-03-11 27
Schema KTH:s schema gäller än så länge. Håll utkik på webben efter schemaändringar! Quarnevalen tänker ni komma hit då? Kom på gästföreläsningarna, tack! Joel Brynielsson, 2002-03-11 28
Terminalövningar Grå, Karmosin, Vit SimaManager Allmän handledare Joel Brynielsson, 2002-03-11 29
Kursregistrering res checkin prost02 senast 12/3 (annars får du inget projekt) course join prost02 Joel Brynielsson, 2002-03-11 30
Betyg För att bli godkänd krävs: att gruppen gör alla inlämningar i tid (till korrekt gruppledare och med korrekt webblänk), att gruppen är närvarande och presenterar sitt projekt vid examinationen, att gruppen gör eventuella kompletteringar enligt gruppledares anvisningar och inom angivna tidsramar, att gruppledaren anser att gruppens projekt motsvarar fyra högskolepoäng. Joel Brynielsson, 2002-03-11 31
Hederskodex Kortversion: Att försöka skaffa högskolepoäng genom att använda någon annans arbete är fusk. Fullständig text finns i kursprogrammet och på webbsidan. Joel Brynielsson, 2002-03-11 32
Kursens webbsida http://www.nada.kth.se/ kurser/kth/2d1351/aktuellt.html Detta är kursens informationskanal. Titta här ofta! Joel Brynielsson, 2002-03-11 33
Synpunkter Lämna synpunkter under kursens gång till: Lärarna Teknologernas kursutvärderare D-sektionens studienämnd (ordf Peter Modin <d00-pmo@d.kth.se>) Joel Brynielsson, 2002-03-11 34
Kommande föreläsningar 12/3 Riktlinjer för kravspecifikationen 13/3 Presentation av projekttilldelning och grupptilldelning Genomgång av karakteristik för de olika mjukvaruprojekten Joel Brynielsson, 2002-03-11 35