Johdatus(ta) ohjelmistotekniikkaan 2005

Samankaltaiset tiedostot
Johdatus(ta) ohjelmistotekniikkaan 2006

Johdatus ohjelmistotekniikkaan siitä se lähtee

Johdatus(ta) ohjelmistotekniikkaan 2009

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

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

ProAgria. Opportunities For Success

Efficiency change over time

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Strategiset kyvykkyydet kilpailukyvyn mahdollistajana Autokaupassa Paula Kilpinen, KTT, Tutkija, Aalto Biz Head of Solutions and Impact, Aalto EE

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

Capacity Utilization

7.4 Variability management

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

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

CIO muutosjohtajana yli organisaatiorajojen

Tekes the Finnish Funding Agency for Technology and Innovation. Copyright Tekes

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

Mitä on ohjelmistotuotanto?

Keskeisiä näkökulmia RCE-verkoston rakentamisessa Central viewpoints to consider when constructing RCE

Infrastruktuurin asemoituminen kansalliseen ja kansainväliseen kenttään Outi Ala-Honkola Tiedeasiantuntija

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

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

Millainen on onnistunut ICT-projekti?

7. Product-line architectures

FROM VISION TO CRITERIA: PLANNING SUSTAINABLE TOURISM DESTINATIONS Case Ylläs Lapland

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

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

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

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

RANTALA SARI: Sairaanhoitajan eettisten ohjeiden tunnettavuus ja niiden käyttö hoitotyön tukena sisätautien vuodeosastolla

The role of 3dr sector in rural -community based- tourism - potentials, challenges

Industry known for competence & ability to solve complex engineering challenges

Software engineering

Teacher's Professional Role in the Finnish Education System Katriina Maaranen Ph.D. Faculty of Educational Sciences University of Helsinki, Finland

Cloud, Convergence, Ubiquity ja muita uudissanoja - ICT toimialan näkymät 2011

LYTH-CONS CONSISTENCY TRANSMITTER

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

Ostamisen muutos muutti myynnin. Technopolis Business Breakfast

Tulevaisuuden työ nyt

Information on preparing Presentation

Kestävä kehitys, vastuullisuus. Työryhmän kokous 26.10

Rikasta Pohjoista 2019 Uudistuva teollisuus Teollisten innovaatioiden tulevaisuus

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

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

Helsinki Metropolitan Area Council

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

Lataa Legislating the blind spot - Nikolas Sellheim. Lataa

WAMS 2010,Ylivieska Monitoring service of energy efficiency in housing Jan Nyman,

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

BLOCKCHAINS AND ODR: SMART CONTRACTS AS AN ALTERNATIVE TO ENFORCEMENT

Data Quality Master Data Management

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

NetPro projektin kokemuksia - Hajanaisia poimintoja kuuden vuoden Leonardo-projektin varrelta, ja vähän muualtakin

Osaamisen ennakoinnin viitekehys

Vaikuttavuus ja arviointi

HITSAUKSEN TUOTTAVUUSRATKAISUT

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

Rakentamisen 3D-mallit hyötykäyttöön

ITK130 Ohjelmistoprosessi

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Collaborative & Co-Creative Design in the Semogen -projects

ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto

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

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Hankkeen toiminnot työsuunnitelman laatiminen

Gap-filling methods for CH 4 data

The CCR Model and Production Correspondence

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

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

TIETEEN PÄIVÄT OULUSSA

Esikaupallisesti ratkaisu ongelmaan. Timo Valli 58. ebusiness Forum

TU-C2030 Operations Management Project. Introduction lecture November 2nd, 2016 Lotta Lundell, Rinna Toikka, Timo Seppälä

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

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

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Kilpailukyky, johtaminen ja uusi tietotekniikka. Mika Okkola, liiketoimintajohtaja, Microsoft Oy

Millainen on viihtyisä kaupunki ja miten sitä mitataan?

Euromaat kehittyvät epäyhtenäisesti / Euro Countries Are Developing Unevenly

Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut

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

Olet vastuussa osaamisestasi

Digitalisaation hyödyt teollisuudessa

Choose Finland-Helsinki Valitse Finland-Helsinki

Esitykset jaetaan tilaisuuden jälkeen, saat linkin sähköpostiisi. Toivottavasti vastaat myös muutamaan kysymykseen tapahtumasta Have a lot of fun!

Teknologinen muutos ja yliopistojen tulevaisuus. Tievie-seminaari Helsinki Antti Auer

Sulautettu tietotekniikka Kimmo Ahola

Uusia kokeellisia töitä opiskelijoiden tutkimustaitojen kehittämiseen

Windows Phone. Module Descriptions. Opiframe Oy puh Espoo

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

Tietotekniikan koulutus ammattikorkeakouluissa 2012 Uudellamaalla

Malleja verkostojen rakentamisesta

A new model of regional development work in habilitation of children - Good habilitation in functional networks

Suomi innovaatioympäristönä maailman paras?

Miten strategiset muutokset saadaan parhaiten aikaan - Tunnista myös kompastuskivet

Tavaroiden ulkomaankauppatilastojen tulkinnan haasteet Timo Koskimäki

HAY GROUPIN PALKKATUTKIMUS

Visualisoinnin aamu 16.4 Tiedon visualisointi. Ari Suominen Tuote- ja ratkaisupäällikkö Microsoft

Projektin tavoitteet

Transkriptio:

Johdatus(ta) ohjelmistotekniikkaan 2005 Tommi Kärkkäinen Jyväskylän yliopisto tietotekniikan laitos 1 Agenda 1. IT:n kehitystrendeistä 2. ohjelmistotekniikasta ja prosesseista 3. Näkökulmia ohjelmistokehitykseen 2

1. Trendeistä ICTs (Information and Communication Technologies) play an increasingly important role in the economy. ICTs account for a large share of investment and contribute significantly to output and productivity growth. Despite current cyclical difficulties, trend growth of the ICT sector remains strong. (huom: johtopäätökset hyvästä koulutusalasta) The ICT sector is highly globalised in an increasingly globalised world economy. The focus of international investment is shifting from manufacturing towards services. Software is one of the most rapidly growing and evolving sectors in OECD countries. Strong growth in the software sector is due to its increasingly crucial role in the ICT sector and the economy. Software that underpins network integration, interconnection and compatibility will be essential and software-related patenting is increasing rapidly. Trade in software is dynamic but difficult to measure. E-commerce is growing, but is still in its infancy, especially among consumers. (huom: lyhyen aikavälin muutokset yliarvioidaan ja pitkän aikavälin aliarvioidaan) The demand for ICT skills continues to grow, creating concerns about possible labour shortages and gaps in worker skills. Governments, firms and educational institutions in OECD countries are taking measures to meet changing skill demands in the IT workforce. New computing potential and communication channels are being developed and are proliferating. (OECD Information Technology Outlook ICTs and the Information Economy, 2002) 3 trendeistä (O JOT PM, 2005 Av ainteknologiat ja tulev aisuus - Yhteiskunnallisia tarkasteluja nousev ien teknologioiden ja kv alifikaatioiden y htey ksistä, 2003) 4

trendeistä Tulevaisuusammatteja: 1. Keinoelinten suunnittelija 2. Tekoälyn konsultti 3. Bioelektroniikan suunnittelija 4. Bioinformaatikko 5. Hypekonsultti 6. Kyberluokittelija 7. Geeniterapiakonsultti 8. Geoinformaatikko 9. Nanoteknologiakonsultti 10. Yksinkertaistusasiantuntija 11. Älytalojen suunnittelija 12. Sosiaalisten verkostojen analyytikko 13. Virtuaalilääkäri 14. Visualisoinnin asiantuntija 15. Web-puutarhuri IT:stä tulee keskeinen osa perusinfrastruktuuria jokaisella elämänalueella IT-ammattilaisia tarvitaan enenevässä määrin jokaisella elämänalueella (huom: lista muodostettu nykyisten trendien pohjalta tämän hetken asiantuntijoiden toimesta eli kriittisyyttä täsmällisiin ammattinimikkeisiin) (O JOT PM, 2005 Av ainteknologiat ja tulev aisuus - Yhteiskunnallisia tarkasteluja nousev ien teknologioiden ja kv alifikaatioiden y htey ksistä, 2003) 5 IT/OT:n horisontaalisuus: Tieto- ja viestintäteknologian soveltaminen Keski-Suomen teollisuudessa - alueellinen teknologiastrategia Puutuoteteollisuus Paperinvalmistus Käsi- ja pienteollisuus Graafinen teollisuus ICT Nanoteknologia Energia- ja ympäristöteknologia Hyvinvointi - teknologia Metalliteollisuus Esimerkiksi: FIBNET PROBISI PaperData InBCT/ALL Datamining PROSÄÄ Knowledge Mining Pilot Data PROSÄÄ2 EEG/MMN processing FPGA/PowerPC Linux CFB APROS VATKU IMPI Knowledge Boost Tuotanto2010 DataminingII Pro.Laatu.Pro 6

Välitilinpäätös: IT/OT:llä keskeinen rooli yhteiskuntakehityksessä uudet alat, ammatit, työtehtävät yms. perustuvat uusiin ohjelmistoihin, jotka ovat osa uusia, entistä laajempia tieto- ja informaatiojärjestelmiä tietoa täytyy hallita ja muokata älykkäästi sekä tarjota sitä jalostuneessa muodossa, jalostuneina palveluina käyttäjien jokapäiväisten rutiinien helpottamiseksi ja päätöksenteon tueksi tarve ja kysyntä laadukkaille ohjelmistoille kasvaa taatusti Huom: Ohjelmistoihin ja niiden kehitykseen liittyviä työ- ja liiketoimintamahdollisuuksia yksittäisestä kehittäjästä, konsultista ja kouluttajasta esim. yli 100.000:n työntekijän jättiyrityksen teknologiajohtajaksi yllin kyllin Avoin ja vapaa ohjelmistokehitys (mm. muuttaa (liike)toiminta- ja oppimismalleja ja -mahdollisuuksia ) 7 2. ohjelmistotekniikasta ja -prosesseista 8

Ohjelmistotekniikka mitä se on Termi (software engineering, SE) (ja ala) juontaa juurensa 1968 järjestettyyn NATOkonferenssiin, jossa ohjelmistotuotannon todettiin olevan kriisissä laajojen ohjelmistojen tuottaminen oli vaikeaa, ne olivat pullollaan virheitä, niiden toimitusajat venyivät ja valmistuskustannukset karkasivat käsistä. (kuulostaako tutulta) Kuten SE:n historiaa käsitelleen seminaarin http://www.dagstuhl.de/9635/ johdannossa sanotaan: In August 1996 about a dozen historians met with about a dozen computer scientists to discuss the history of software engineering. The term software engineering has been deliberately chosen as being provocative at the 1968 NATO Conference on Software Engineering. This notion was meant to imply that software manufacture should be based on the types of theoretical foundations and practical disciplines that are established in the traditional branches of engineering. This need was motivated by the so-called software crisis. Ever since, the debate whether such a crisis exists has continued within the software engineering community. It is a crucial question, because if the answer is yes, software engineering may not be called an engineering discipline yet. If the answer were no, the question would be, what is it that constitutes this discipline. Nykyisin SE määritellään(kin) monella tavalla, joista alla yksi: "Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software (IEEE Standard Glossary for Software Engineering Terminology) SE:stä lisää: Software Engineering 2004 Volume, http://en.wikipedia.org/wiki/software_engineering 9 SE tänään: monien kehitysvaiheiden tuloksena, jättiläisten harteilla ; kts. esim. http://www.sdm.de/en/it-wissen/themen/sdmkonf-2001/index.html Brooks (1987) ``No silver bullet: Essence and accidents of software engineering' yhdellä yksittäisellä tekniikalla ei saada kaikkea aikaan sillan- ja talonrakennus(insinööri)tieteisiin nähden edelleen suuria eroja, erityisesti kvantisoinnissa mutta meillähän kaikki on tietokoneella alusta loppuun (näyttävien) ohjelmien tekeminen liian helppoa lapsikin sen osaa, mutta se laatu on kyllä jotain ihan muuta: Boehm: Quantitative evaluation of software quality ohjelmistokehitys- ja suoritusympäristön kokonaisvaltainen ymmärtäminen (ihmiset, softat ja raudat) vaativa homma (vrt. tietoturva) osatako ohjelmoida ja/vai ohjelmointikieltä ja/vai uusinta sovelluskehitintä ja/vai palvelualustoja ja/vai laadunhallintajärjestelmää ja/vai projektinhallintalakanan käyttöä ja/vai Joo, kaikkea pitää osata (tai oikeastaan riittää osata oppia ja tajuta), mutta silti yhtä tärkeää onnistuneen ohjelmistokehityksen varmistamiseksi on tietää kuka tekee, mitä tekee, miksi tekee, miten tekee ja milloin tekee prosessimallit Mutta, huom: Ohjelmistokehityksen teoriaa ei ole (toisin kuin OS, PL, DS&AL JOT ym. 2005 tekniset jutut), joka tekee homman akateemisesti haastavaksi 10

Prosesseista 1. Risk-driven approach esim. Boehmin spiraalimalli 2. Document-driven approach esim. UP ja sen variantit 3. Code-driven approach esim. XP 4. Yleisesti: Määritellään kehitysvaiheet ja niiden järjestys a) What shall we do next b) How long shall we continue to do it Määritellään vaihetuotteet, inkrementit, prototyypit, validointitekniikat, jne. HUOM: kenen näkökulmasta missäkin vaiheessa suhteessa vaihetuotteisiin esim. vaatimukset: (liike)toimintaprosessit, asiakasvaatimukset, laadulliset vaatimukset, esim. käyttötapausten/käyttäjäkuvausten formaatti käyttäjän/järjestelmän interaktiosekvenssit (käyttäjä kehittäjä) käyttötapausten hierarkiat & priorisointi (käyttäjä projektipäällikkö) (toiminnalliset) poikkeukset (kehittäjä käyttäjä) arkkitehtuuri/laajennettavuus (kehittäjä projektipäällikkö) frekvenssi (kä ke, kä propä, ke propä, propä kä ) (B. Boehm, A Spiral Model of Software Development and Enhancement, IEEE Computer, 1988) 11 Muutama pikahuomio prosesseista työn jakaminen osiin mahdollistaa työn jakamisen, edistymisen seuraamisen, projektin johtamisen (ja sen osista laskuttamisen) yms. laatu (V&V) synty osavaiheiden tulona: Vaatimukset 90% oikeita Rakenne 90% oikea Käyttöliittymä 90% järkevä Toteutus 90% kohdallaan Testikattavuus 90% Onnistuminen 0.9*0.9*0.9*0.9*0.9 0.59 eli 59%:sti iteratiivisuus ja inkrementaalisuus jos tehdään alunperin väärää ohjelmaa, onnistuminen 0% Kehittämisnopeuden neljä ulottuvuutta: (Steve McConnell: Ohjelmistotuotannon hallinta, 1996) henkilöstö prosessi tuote teknologia 12

Vesiputousmalli vs Roycen malli, tulkinnat vs. faktat: Royce: Managing the Development of Large Software System, 1970 Verifiointi Määrittely Validointi Verifiointi Suunnittelu Validointi Verifiointi Toteutus Validointi Verifiointi Testaus Validointi Verifiointi Validation&Verification: Are we building the right software/ Are we building the software right IEEE Std Validation & Verification, 2004 Integrointi Validointi Ylläpito 13 Ongelmanratkaisuanalogia: Potentiaalinen uudelleenkäyttö Perinteinen uudelleenkäyttö 1. Mikä ongelma halutaan ratkaista (vaatimukset) 2. Miten ratkaistava ongelma jakaantuu osaongelmiin (suunnittelu) 3. Miten osaongelmat ratkaistaan (toteutus) 4. Mikä saadaan alkuperäisen ongelman ratkaisuksi (koonti) 14

Ohjelmistoprojekti 15 3. Näkökulmia ohjelmistokehitykseen 16

Rooleja ja näkökulmia Käyttäjä Sovellusalue Ylläpito Liiketoiminta Asiakas Vaatimukset Manageri Suunnittelu Testaus Teknologia Toteutus (Liike)toimintamalli Tekniikka Kehittäjä Kaaoshan siitä syntyy 17 CHAOS Report 1994: Impaired Factors Project Impaired Factors 1. Incomplete Requirements 2. Lack of User Involvement 3. Lack of Resources 4. Unrealistic Expectations 5. Lack of Executive Support 6. Changing Requirements & Specifications 7. Lack of Planning 8. Didn't Need It Any Longer 9. Lack of IT Management 10. Technology Illiteracy Other % of Responses 13.1% 12.4% 10.6% 9.9% 9.3% 8.7% 8.1% 7.5% 6.2% 4.3% 9.9% 18

CHAOS Report 1994: Success Factors Project Success Factors 1. User Involvement 2. Executive Management Support 3. Clear Statement of Requirements 4. Proper Planning 5. Realistic Expectations 6. Smaller Project Milestones 7. Competent Staff 8. Ownership 9. Clear Vision & Objectives 10. Hard-Working, Focused Staff Other % of Responses 15.9% 13.9% 13.0% 9.6% 8.2% 7.7% 7.2% 5.3% 2.9% 2.4% 13.9% 19 Chaos Report 1999 CHAOS Ten: What makes project successful User Involvement 20 points Executive Support 15 points Clear Business Objectives 15 points Experienced Project Manager 15 points Small Milestones 10 points Firm Basic Requirements 5 points Competent Staff 5 points Proper Planning 5 points Ownership 5 points Other 5 points 20

Liiketoimintaprosessit Haaste ja mahdollisuus: oikeat ohjelmistot oikeille käyttäjille oikeisiin ympäristöihin Työprosessit EMV (Ympäristö) KONTEKSTI IMV (Toteutus) UMV (Käyttäjä) SMV (Rakenne) Ohjelmisto(t) BMV (Toiminta) (muok. Pressman, Software Engineering Practitioner s Approach, 2000. Alkup. idea Äyrämön Samin) 21 & d11 $ $ M D = $ dt1 $ $ M $ % dn 1 O K L d tj L L O d1 m # M d tm M d nm " Tältäköhän se (tulevaisuuden) ohjelmistotuotantolinjakin näyttää (courtesy of S. Äyrämö) 22