Ohjelmistotuotannon käytännöt 6 op



Samankaltaiset tiedostot
Software engineering

Capacity Utilization

1. Johdanto. Ohjelmistotuotannon ongelmia

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

7. Product-line architectures

1. Liikkuvat määreet

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Salasanan vaihto uuteen / How to change password

Johdantoluento. Ohjelmien ylläpito

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

7.4 Variability management

anna minun kertoa let me tell you

Helsinki Metropolitan Area Council

Kaivostoiminnan eri vaiheiden kumulatiivisten vaikutusten huomioimisen kehittäminen suomalaisessa luonnonsuojelulainsäädännössä

Results on the new polydrug use questions in the Finnish TDI data

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

Other approaches to restrict multipliers

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

Windows Phone. Module Descriptions. Opiframe Oy puh Espoo

Millainen on onnistunut ICT-projekti?

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

ECVETin soveltuvuus suomalaisiin tutkinnon perusteisiin. Case:Yrittäjyyskurssi matkailualan opiskelijoille englantilaisen opettajan toteuttamana

Miehittämätön meriliikenne

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Information on preparing Presentation

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Ostamisen muutos muutti myynnin. Technopolis Business Breakfast

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Security server v6 installation requirements

HITSAUKSEN TUOTTAVUUSRATKAISUT

LUONNOS RT EN AGREEMENT ON BUILDING WORKS 1 THE PARTIES. May (10)

TIETEEN PÄIVÄT OULUSSA

Uusia kokeellisia töitä opiskelijoiden tutkimustaitojen kehittämiseen

Projektityö

Security server v6 installation requirements

Collaborative & Co-Creative Design in the Semogen -projects

Miten luodaan tehokas ja sertifioitu laatujärjestelmä?

Projektitoiminta JOTU JOTU2013/K.Systä 1

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Efficiency change over time

OHJ-3010 Ohjelmistotuotannon perusteet

ENE-C2001 Käytännön energiatekniikkaa. Aloitustapaaminen Osa II: Projekti- ja tiimityö

Miksi Suomi on Suomi (Finnish Edition)

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

EUROOPAN PARLAMENTTI

Guidebook for Multicultural TUT Users

Export Demand for Technology Industry in Finland Will Grow by 2.0% in 2016 GDP growth 2016/2015, %

Choose Finland-Helsinki Valitse Finland-Helsinki

Innovative and responsible public procurement Urban Agenda kumppanuusryhmä. public-procurement

Millaisia mahdollisuuksia kyberturva tarjoaa ja kenelle? Ja mitä on saatu aikaan?

Tietoturvallisuus yhteiskunnan, yritysten ja yksityishenkilöiden kannalta

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

Millainen on viihtyisä kaupunki ja miten sitä mitataan?

Tuloksia ja kokemuksia / results and experiences

AFCEA PVTO2010 Taistelija / S4

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Perspectives on the future

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Copernicus, Sentinels, Finland. Erja Ämmälahti Tekes,

Constructive Alignment in Specialisation Studies in Industrial Pharmacy in Finland

Suunnittelutyökalu kustannusten ja päästöjen laskentaan

Projektinhallinta: riskeihin varautuminen

MEETING PEOPLE COMMUNICATIVE QUESTIONS

CASE POSTI: KEHITYKSEN KÄRJESSÄ TALOUDEN SUUNNITTELUSSA KETTERÄSTI PALA KERRALLAAN

ECSEL - Electronic Components and Systems for European Leadership

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

Suomen 2011 osallistumiskriteerit

ProAgria. Opportunities For Success

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

Roolipeliharjoitus. - Opiskelijoiden suunni=elemat neuvo=eluvideot ja niiden vertaisarvioinnit

Skene. Games Refueled. Muokkaa perustyyl. for Health, Kuopio

TÄYTTÖAUTOMAATIT TÄYTTÖAUTOMAATIT COMPUTER INFLATORS

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

Tietorakenteet ja algoritmit

Indoor Environment

Määrittely- ja suunnittelumenetelmät

LYTH-CONS CONSISTENCY TRANSMITTER

Data quality points. ICAR, Berlin,

Information on Finnish Courses Autumn Semester 2017 Jenni Laine & Päivi Paukku Centre for Language and Communication Studies

Biojätteen keruu QuattroSelect - monilokerojärjestelmällä Tiila Korhonen SUEZ

Use of spatial data in the new production environment and in a data warehouse

Flexbright Oy Embedded software/hardware engineer

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

ITK130 Ohjelmistoprosessi

Mitä on ohjelmistotuotanto? Johdanto. Tämän kurssin näkökulma. Kurssin suhde muuhun opetukseen

IT-projekti. Mitä #&!% siellä tapahtuu?

Transkriptio:

Ohjelmistotuotannon käytännöt 6 op

Kurssin tavoitteet ja aiheet Saada kuva ohjelmistotuotantoprosessista kokonaisuutena Hallita ohjelmistotuotannon vaiheet ja erilaiset ohjelmistoprosessit Tuntea ohjelmistotuotannon vaihetuotteiden sisällöt ja osata tuottaa niihin liittyviä dokumentteja Osata käyttää UML-kaavioita eri ohjelmistotuotannon vaiheissa Keskeiset aihealueet Ohjelmistotyö ja sen osa-alueet Ohjelmistoprosessit UML-mallinnus Ohjelmiston elinkaari Ohjelmistojen laatustandardit 1-2

Kurssin materiaali Kurssi pohjautuu kirjaan Ilkka Haikala, Tommi Mikkonen: Ohjelmistotuotannon käytännöt, Talentum 2011 (12. painos) Kurssin kalvot perustuvat kirjaan ja osittain Ilkka Haikalan materiaaleihin http://www.cs.tut.fi/%7eotm/luennot/kalvot/index.html http://www.cs.tut.fi/kurssit/ohj-3010/luennot/kalvot/index.html Lisäksi lähteinä käytetty www:stä löydettyä materiaalia Kurssin kalvoniput on koostanut Erja Nikunen ja Auvo Häkkinen 1-3

Kurssikirjan otsikot Ilkka Haikala, Tommi Mikkonen: Ohjelmistotuotannon käytännöt 1. Johdanto 2. Ohjelmistoprojektimallit 3. Vaatimustenkäsittely 4. Määrittelystä ja määrittelynotaatioista 5. Käyttötapaukset 6. Luokkakaaviot 7. Tapahtumasekvenssikaaviot 8. Tila- ja aktiviteettikaaviot 9. Tietovirtakaaviot 10. Käsiteltävän tiedon rakenteen määrittely 11. Laadunhallintajärjestelmä ja prosessit 12. Ohjelmistoprojektin hallinta 13. Tuotteenhallinta 14. Ohjelmistosuunnittelu 15. Tarkastukset ja katselmoinnit 16. Testaus 1-4

Kurssi Teoriaa Opettajat käy läpi ohjelmistotuotannon osa-alueita Tuotantoa ja/tai kaavioita käydään läpi tunneilla esimerkin avulla Afrikan tähti -peli tästä kaksi välikoetta Harjoituksia parityönä tehtävä suurempi harjoitustyö (esitutkimus-,) määrittely- tai suunnitteluvaihe Harjoitustyön etenemistä esitellään myös muille opiskelijoille (vertaisarviointia) 1-5

Arvostelu Kirjalliset kokeet, 50% Harjoitukset, 50% Erilliset tehtävät raportin sisältö raportin rakenne, jäsentely, selkeys, havainnollisuus raportin vertaisarviointi Hyväksytty suoritus noin 50% pisteistä Molemmista osista noin puolet 1-6

OHJELMISTOTEKNIIKKA Ilkka Haikala, Tommi Mikkonen: Ohjelmistotuotannon käytännöt luku 1 1-7

Ohjelmistotekniikka Ohjelmistotekniikkaan erikoistuessasi opit tietokoneohjelmien yleiset suunnitteluperiaatteet, joita osaat käyttää laajasti ja luovasti eri sovellusaloilla. Sinulla ei tarvitse olla aikaisempaa koodauskokemusta, mutta looginen päättelykyky ja mielikuvitus ovat hyväksi avuksi. Tietotekniikka-alan yritykset kehittävät ohjelmistoja, tarjoavat tietotekniikan käyttöpalveluja ja konsultointia, tietokantapalveluita sekä sisällön tuotantoa. Muiden alojen yritykset hyödyntävät tietotekniikkaa omassa liiketoiminnassaan parantamaan tuottavuutta ja tuloksellisuutta sekä tuotteiden ja palveluiden laatua. Nykyisin melkein kaikissa tuotteissa on älykkyyttä ohjelmistojen muodossa. Ohjelmistotekniikan insinöörinä voit käyttää taitojasi kehittäessäsi sovelluksia pankeille, terveydenhuoltoon tai peliteollisuuteen yhtä hyvin kuin lukuisille mobiililaitteille tai sulautetun tietotekniikan laitteille. Metropolian web-sivut 1-8

Ohjelmistotekniikka Laitoksen ohjelmistotekniikan erikoistumislinjalla tarkastellaan laadukkaiden ohjelmistojen systemaattista tuottamista. "Laadukkuus" ja "systemaattisuus" pitävät sisällään sekä ohjelmistotuotteisiin kohdistuvia teknisempiä aiheita kuten ohjelmointitekniikat ja -kielet, suunnittelu- ja mallinnusmenetelmät sekä ohjelmistotyökalut että ohjelmistotuotantoa tukevia ja valvovia toimenpiteitä kuten prosessit, projektityö, mittaaminen, testaus ja dokumentointi Ohjelmistotekniikan laaja hallitseminen vaatii täten varsin monipuolista osaamista, jota pyritään edistämään erikoistumislinjan opetuksessa ja tutkimuksessa. HY / TKTL:n web-sivut 1-9

LAADUKKUUS? 1-10

11

Tilastoa laadusta - kaaosraportti Standish Group 1995 365 IT executives in US companies in diverse industry segments, 8,380 projects average time overrun = 222%. Project completion 61% of originally specified features included 16% On time, on budget, with all of the specified features and functions 53%? ü Cancelled before they were completed average cost overrun = 189% 31% delivered and operational but overbudget, over-schedule or with fewer features and functions than 1-12

Uudempia tutkimuksia www.infoq.com/articles/interview-johnson-standish-chaos 1-13

1-14

Projektin koon mukaan 1-15

Miksi epäonnistutaan? (Charette 1989) Lopetettu sopimusongelmien takia Saatettu loppuun, mutta mutta käyttäjät eivät voi tai halua käyttää mutta järjestelmä ei vastaa kustannuksiltaan sovittua mutta ei pysynyt sovitussa aikataulussa mutta järjestelmä ei täytä alunperin sovittuja laatukriteerejä mutta järjestelmä ei täytä alunperin luvattua suorituskykyä mutta järjestelmää ei pysty kehittämään kustannustehokkaasti mutta... 1-16

Surkean kuuluisia esimerkkejä East Texas Cancer Center / USA / 1986 London Ambulance Dispatching System / UK / 1992 European Space Agency: Ariane 5 / Eurooppa / 1996 New air traffic system / UK / 2002 ebay/ USA / 2000, 2009 Fidelity Investments online / Kanada / 2002 EDB Fellesdata AS (pankkeja) / Norja / 2001 Sampo-pankki / Suomi / 2008 Sähköinen äänestys / Suomi / 2008 AMK-pääsykokeet / Suomi / 2003 jne 1-17

Therac-25 säteilyhoitokone 1985-87 Aiemmin laitteistolla toteutettuja varmistuksia siirretty ohjelmistolle käytettiin silti aiemman version ohjelmistoa Antoi tietyissä harvinaisissa tilanteissa valtavan yliannostuksen säteilyä potilaalle Huonosti testattu palautetta ei otettu tosissaan eikä siitä pidetty järjestelmällisesti kirjaa järjestelmä huonosti dokumentoitu kun ongelmista raportoitiin, asiaa ei tutkittu tarpeeksi Olemattomat laadunhallintaprosessit luotettiin, että hardis voi särkyä, softa ei Softa on testattu, se toimii, eihän se voi mennä rikki ajan myötä Hinta kolme kuollutta kolme pysyvästi vammautunutta courses.cs.vt.edu/professionalism/therac_25/therac_1.html 1-18

Safety - London Ambulance Dispatching System 1992 The full introduction of the computer system effectively did away with the radio and telephone calls to stations, with the computer dispatching crews to answer calls. Within hours, during the morning rush, it became obvious that calls were going missing in the system; ambulances were arriving late or doubling up on calls. emergency callers were also held in a queuing system which failed to put them through for up to 30 minutes. As many as 20 people might have died because of the delays One 14-year-old boy had died of an asthma attach after waiting 45 minutes. The call was dealt with in 28 minutes - although the Patient's Charter has a target of 14 minutes. A man of 83 died before the service reverted to the old system at 2p.m. on Tuesday. Causes: assumed location of ambulances known, memory leak, operators left out 128.240.150.127/Risks/13.88.html#subj1.1 1-19

Ariane 5 1996 Ariane 4:stä komponentteja uudelleenkäyttöön Moduuli, joka laski lähdössä korkeutta ja nousukulmaa, ei huomioinut muistivuotoja Muunnos 64-bittisestä 16-bittiseen tuotti ylivuodon Ei huomioitu, että Ariane 5 tehokkaampi ja mitatut arvot suurempia Ko. luvut ei olleet edes maastanousun jälkeen olennaisia, ts. laskennan olisi voinut lopettaa heti, kun raketti ilmassa Muistivuoto aiheutti tietokoneen alasajon Backup-järjestelmä laski saman samaan aikaan samalla tavoin, ja kaatui myös Sukkulaa ei ohjannut enää mikään 10 vuoden kehitystyö ja lasti jouduttiin räjäyttämään 40 s nousun jälkeen Aikansa kallein ohjelmointivirheen aiheuttama vahinko Kehityskustannukset n. 7 M$ Lastia n. 500 M$ edestä (satelliitteja) www.ima.umn.edu/~arnold/disasters/ariane.html www.around.com/ariane.html www.esa.int/export/esacp/pr_33_1996_p_en.html 1-20

Over budget / Over schedule 2002 National Air Traffic Services (Nats) is already looking at replacing the systems at its new control centre at Swanwick in Hampshire, even though the system doesn't become operational until next week. Swanwick was originally meant to be operational by 1997, but problems with the development of software by Lockheed Martin caused delays. Now running six years late and 180m over budget, the system will control 200,000 square miles of airspace over England and Wales, looking after two million flights a year. But long-term planners are already looking at replacing the systems. Nats told that it plans to do things very differently next time in a bid to avoid delays. www.vnunet.com/news/1128597 Air traffic control system crashes again www.vnunet.com/news/1130791 1-21

Data Integrity - Fidelity Investments online service 2002 Canadian account holders information was accessible 29 May 2002 A design flaw at a Fidelity Investments online service accessible to 300,000 people allowed Canadian account holders to view other customers' account activity. Fidelity said it had fixed the problem and was offering customers the option of changing account numbers. http://www.msnbc.com/news/758979.asp 1-22

Upgrading ebay 2009 ebay apologized to customers for a system upgrade that has led to intermittent outages and frustrating service problems during the past two weeks. In a note to members on its annoucements board, ebay apologized for the problems and blamed them on an upgrade of its database that it began in August. "It may seem like it should take a short time to implement these improvements," ebay said in its note. "But it is quite a task to perform installations and testing while keeping the existing site running. We conduct lots of tests to make sure that these transitions are as seamless as possible. Sometimes they are not. And for that, we are very sorry." ebay representatives did not respond to repeated calls seeking comment. In its note, ebay said it should complete the upgrade in the next "seven to 10 days." 1-23

Pohjoismaista yhteistyötä Telia-Soneran www-sivut katosivat verkosta 24.3.2006, kun UPS-laitevika kaatoi palvelimen Tietoenatorin konesalissa UPS tarkoitettu turvaamaan virransaanti sähkökatkon sattuessa Norjalainen datayhtiö EDB Fellesdata oli elokuussa 2001 mukana asentamassa lähes 300 kiintolevyn klusteria pankin tietojärjestelmään. Työntekijän piti alustaa uusi järjestelmä, mutta hän tyhjensikin vanhan käytössä olleen levystön Maksuliikenne ja saldotiedot olivat poikki useita päiviä Suuri määrä s-postia tuhoutui n. 300000 asiakkaalta, ja 1.8 milj. viestin välitys kesti jopa kolme vuorokautta, kun TeliaSoneran postipalvelin hajosi Tukholmassa 3.1.2008 Palvelin vioittui ennen joulua, mutta se oli saatu toimimaan Kukaan ei seurannut toimintaa, ja se hajosi uudestaan Aiemmin valvoneen henkilön työsuhde päättyi joulukuussa, eikä tilalle oltu nimitetty uutta valvojaa Myös varmuuskopiot olivat pilalla 15. joulukuuta lähtien 1-24

Mikä tekee ohjelmistoista niin erikoisia? verrattuna muihin insinööritieteisiin Ohjelmisto aineetonta "sitä ei voi potkaista" sen hahmottaminen vaikeaa sen laatua ja valmiusastetta vaikea arvioida Virheitä voi syntyä helposti, ja niitä löytyy vielä pitkänkin käytön jälkeen Asiakasvaatimuksia vaikea määritellä täydellisesti vaikea ymmärtää asiakkaan vaatimuksia yksikäsitteisesti vaatimusten muuttuessa täytyy välittää suuria tietomääriä ja kommunikoida useiden ryhmien kesken Ohjelmiston muuttaminen näennäisesti liiankin helppoa Ohjelmistoa lähes mahdoton testata perusteellisesti ja kattavasti 1-25

Ohjelmistotyyppejä Pakettiohjelmisto / valmisohjelmisto muodostavat yhden kokonaisuuden ei ole suunniteltu tai valmistettu asiakaskohtaisesti markkinointi ja toimitus samanlaisina jopa miljoonille käyttäjille esim. taulukkolaskenta-, tekstinkäsittely- ja virustentorjunta Asiakaskohtaiset ohjelmistot räätälöidään asiakkaan tarpeiden mukaan yleensä tiiviistä yhteistyötä asiakkaan kanssa Sulautetut ohjelmistot tehdään osaksi muuta kuin varsinaista atk-tuotetta esim. matkapuhelimien ja autojen sisältämät ohjelmistot Toimialaraportti, 17/2005, Marko Ylikorpi (toim.) KTM:n ja TE-keskusten julkaisu 1-26

Sulautetut järjestelmät NMT-puhelin 20 kloc (Lines Of Code) GSM-keskus 15MLOC GSM-puhelin 500 kloc kommunikaattori 1,5 MLOC 3G matkapuhelin koodimäärä kolminkertaistuu 2Gpuhelimeen verrattuna televisio 200 kloc hissi 50 kloc moderni auto 50 kloc avaruussukkula 21 MLOC (sukkulassa 0,5MLOC) 1-27

Mikä ei ole muuttunut? Laatu edelleen ongelmallista jopa enemmän kuin ennen Ohjelmistojen tekeminen edelleen käsityötä edelleen erittäin henkilökohtaista tekemistä tuottavuus vaihtelee suuresti eri ihmisten välillä Vain pieni osa projekteista menestyksellisiä viidestä projektista yksi ei tuota koskaan mitään hyödyllistä loput kärsivät aikataulu- ja budjettiongelmista Epäonnistumisten syyt harvemmin teknisiä useimmiten ongelmat löytyvät huonosta hallinnosta huonosta projektiosaamisesta / -johtamisesta huonosta prosessiosaamisesta yms. 1-28

Ratkaisu? Suurempi paino systemaattiseen kehittämiseen Formaalit tai puoliformaalit määritykset järjestelmän vaatimuksista Tietokoneavusteiset kehitysvälineet (CASE) Keskittyminen asiakasvaatimusten selvittämiseen Varhaisten versioiden demonstrointi (prototyypit) Suurempi paino virheettömän koodin tuottamiseen ohjelmistotuotanto 1-29

Ohjelmistotuotanto - Software Engineering Määritelmiä Designing, building and maintaining large software systems Software engineering is concerned with the theories, methods and tools for developing, managing and evolving software products. I. Sommerville The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them. B.W.Boehm The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. F.L.Bauer 1-30

Software Engineering - ohjelmistotuotanto Lisää määritelmiä vrt. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. IEEE Standard 610.12 The technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost constraints. R. Fairley Electrical Engineering, Mechanical Engineering, Civil Engineering, Aerospace Engineering, Chemical Engineering 1-31

1-32

Ohjelmistotuotannon osa-alueet (oppikirjan mukaan) Liiketoiminta, johtaminen Laatujärjestelmä Hankkeiden hallinta (tuotteen tasolla) Projektinhallinta Projektinhallinta Projektinhallinta ohjelmointi suunnittelu testaus määrittely käyttöönotto, ylläpito tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta... Kirjan kuva 2.1 otupk/ilkka Haikala 1-33

Millainen projekti - millainen prosessi More formal, more controlled, more bureaucratic Configuration management Project management Methods Documentation Requirements specification Quality control, inspections SW design Programming language, tools, and technical skills Requirements management Measurement Testing procedures, planning Small programs Large systems Sometimes, for some people, it seems to be more important 34 to get the process done than to get the product done. 1-34