Ohjelmistotekniikan menetelmät, Johdatus ohjelmistotuotantoon

Slides:



Advertisements
Samankaltaiset esitykset
Testaus ja testausympäristöt
Advertisements

Suunnitelma ohjelmiston testaukseen
4. Vaatimusten hallinta Ohjelmistotuotantoprosessin tavoitteena
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Tietokannan suunnittelu
Ohjelmistokehittäminen. Luku 1 – Mitä on ohjelmistokehittäminen?
Tekninen suunnit-telu
1. Olio-ohjelmointi.
Ohjelmiston elinkaarimallit
Ohjelmiston toteutus (teknisestä näkökulmasta)
T Projektikatselmus Ryhmä Reilu PP-Iteraatio
Tietojärjestelmän suunnittelu
@ Leena Lahtinen Helia OHJELMOINTITAITO ICT02D 12 OP.
Systemaattisen käyttöliittymäsuunnittelun tuottamien vaatimusten erot alkuperäisiin vaatimusmäärittelyn vaatimuksiin verrattuna Ville Nordberg,
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
3. Spesifikaatioiden laatiminen
Oliosuunnittelu.
KANSALLISKIRJASTO - Kirjastoverkkopalvelut ONKI-projekti Dataportaali
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Pro gradu -tutkielmat ohjelmistotestauksesta
Ohjelmistojen suunnittelumenetelmät ja –työkalut
(mukaellen Haikala & Mikkonen 2011, 29)
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Ohjelmistotekniikka ja projektinhallinta, 4 op
JHS:N SUOSITUKSET VAATIMUSMÄÄRITTELYLLE SEPPO RÄSÄNEN SAVONIA-AMMATTIKORKEAKOULU TERVEYSALA, KUOPIO Ohjelmistotekniikka ja projektinhallinta,
Testauksen tutkimustulokset Marko Jäntti
Esitutkimus (tarvekartoitus)
Heikki Salokanto Valvoja: prof. Jukka Manner Ohjaaja: DI Pekka Pajuoja, TEKES Sovelluskehitysympäristön virtualisoinnin tuomat edut ja haitat.
Ohjelmistotuotanto.
Systeemityö 2 Vesiputousmalli Teppo Räisänen, Principal Lecturer
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
© Conformiq Software Ltd. | The Future of Software Testing Kuormitustestaus.
Uudelleenkäyttö. Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Analyysi. Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien.
Ohjelmistotekniikka kevät 2003 CASE-välineet. Ohjelmistotekniikka kevät 2003 Mitä ovat CASE-välineet? Computer Aided Software Engineering Tietokoneavusteinen.
Refaktorointi ”Te olette tehneet tätä ennenkin”. Mitä on refaktorointi? (1/2) prosessi ohjelmakoodin laadun parantamiseksi ohjelman sisäisen rakenteen.
Liiketoimintaprosessit ja MS Visio 2010
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Ohjelmistotekniikka kevät 2003 Ohjelmistotekniikan määritelmä Ohjelmistotekniikka (Software Engineering) tarkoittaa pätevien insinööriperiaatteiden vakiinnuttamista.
Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.3.
Kurssin aihepiiri: ohjelmistotuotannon alkeita ● [wikipedia]: – Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään,
jew1 Systeemityön eteneminen opintojaksolla Ohjelmiston suunnittelutaito Opintojakson eteneminen.ppt.
Prosessimallinnuksen kehittäminen JHKA-jaosto Jari Kallela.
Liiketoimintaprosessit ja MS Visio 2013
Kansallinen palveluväylä PERTIVA-kokous
Metatietopalvelut Elementit Mikael Vakkari, neuvotteleva virkamies. VM.
– Ohjelmistojen mallintaminen, mallintaminen ja UML
Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
– Ohjelmistojen mallintaminen, kesä 2010
THL - Eurykleia Henkilöstö- ja talousasioiden suunnittelu- ja raportointijärjestelmän määrittely TP 1 agenda Ongelman kuvaus, tavoitteet, rajaukset,
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
Tietojärjestelmät KEHITTÄMINEN JOHTO KIRJANPITO TILAUSTEN KÄSITTELY
Vaatimukset ja käyttötapaukset
Liiketoimintaprosessit ja MS Visio 2010
Vaatimusmäärittely kehitysprosessissa
Kansallinen palveluväylä
Ohjelmistotekniikan menetelmät, Johdatus ohjelmistotuotantoon
Vaatimusanalyysin hallintatyökalu
OHJELMOINTITAITO ICT02D 12 ECTS.
Vaatimukset ja käyttötapaukset
1. Olio-ohjelmointi.
– Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon
Esityksen transkriptio:

582101 - Ohjelmistotekniikan menetelmät, Johdatus ohjelmistotuotantoon

Lyhyt johdatus ohjelmistotuotantoon Ohjelmistotuotanto, ohjelmistoprojektit Miten ohjelmistojen tuottaminen eroaa teollisesta tuotannosta Ohjelmistojen elinkaari, elinkaarimallit

Ohjelmistotuotannon viisikulmio

Ohjelmistotuotannon ongelma Ohjelmistotuotanto on se tietojenkäsittelytieteen osa-alue, joka käsittelee laajuudeltaan ja monimutkaisuudeltaan sellaisten ohjelmistojen tuottamista, jossa kehitystyöhön tarvitaan ryhmä [Ghezzi et al.] Vuonna 1994, vain 16% ohjelmistoprojekteista valmistui ajallaan ja budjetissa [The Standish Group’s “Chaos Report”, 1994] Vuonna 2003 vastaavasti jo 34% [The Standish Group , 2003]

Ohjelmistotuotannon alan käsitteitä Ohjelmistoprojekti Ohjelmistotuotteen tai -palvelun tuottamishanke Ohjelmiston elinkaari Vaiheet alkuvaiheen ideoinnista (‘syntymästä’) aina lopulliseen ‘töpselin nykäisemiseen seinästä’ Ohjelmistojen kehitystyölle ominaista iterointi: elinkaaren keskimmäisiä vaiheita toistetaan vaatimusten ja ympäristön muuttuessa inkrementaalisuus: tuotetta rakennetaan pienissä osasissa

Erilaisia ohjelmistojen sovelluskohteita Ohjelmistot ohjaavat mitä moninaisimpien asioiden toimintaa Erilaisia ohjelmistoja, esimerkiksi Liiketoimintajärjestelmät (enterprise applications) Sulautetut järjestelmät (embedded software) Tosiaikajärjestelmät (real-time software) Varusohjelmistot (systems software) Ohjelmistotuotantoa katsotaan monesti (ehkäpä liiaksikin!) liiketoimintajärjestelmien kehittämisen näkökulmasta Esimerkiksi avoimen lähdekoodin järjestelmät - mitä kategoriaa?

Tietojärjestelmä, ohjelmisto, ohjelma Tietojärjestelmä on hallinnollinen kokonaisuus Laitteet, palvelut, tietosisällöt, ohjelmistot Ohjelmisto taas koostuu yhdestä tai useammasta ohjelmasta, jotka toimivat jollakin laitteisto- ja ohjelmistoalustalla Ohjelmistot ja tietojärjestelmät ovat monimutkaisia kokonaisuuksia .. jotka kutoutuvat toimintaympäristönsä yhteyteen

Tietojärjestelmä tarjoaa palveluita koko toimintaympäristöönsä

Liiketoimintasovelluksille ominaisia piirteitä Ohjelmisto on osa tietojärjestelmää Ohjelmistoprosessi on osa liiketoimintaprosessia Ohjelmistojen tuottaminen on muutakin kuin ohjelmointia Menestyksekäs liiketoimintasovellusten tuottaminen on monesti ensisijaisesti liiketoiminnan prosessien automatisoimista Joten.. ohjelmistotuotanto on oikeastaan liiketoiminnan mallintamista

Esimerkkejä ohjelmistoista Facebook Word GCC DX200 Eclipse Doom 3 WebOODI HKL maksukorttilukija Firefox Excel ssh Google Symbian S60 Apache TKTL:n ILMO Skype emacs HelMet Max Payne PowerPoint MySQL Kauppakeskuksen oven avaaja

Ohjelmistotuotanto eroaa teollisesta tuotannosta Ohjelmat eivät ole konkreettisia muokkaaminen onnistuu ‘loputtomiin’ Ohjelmat ovat keskenään hyvin erilaisia sovellusalueet, toimintaympäristöt, laite- ja ohjelmistoympäristöt

Ohjelmistotuotanto eroaa teollisesta tuotannosta Ohjelmistoja ei juurikaan suunnitella sarjatyönä Standardointityö monilla sovellusalueilla vasta lapsenkengissään Ohjelmistojen toiminta sovitetaan kuhunkin ympäristöön sopivaksi Ohjelmistot vaativat ylläpitoa Toisaalta, tiettyä ohjelmistoa voidaan monistaa nollakustannuksin Ohjelmistotuoteliiketoiminta perustuu tähän Entäpä massaräätälöitävät ohjelmistot?

Ohjelmistotuotanto on muutakin kuin ohjelmointia Ohjelmistotuotannossa ratkotaan ihmisten ja organisaatioiden monimutkaisia ongelmia Tyypilliset ohjelmointikielen (esim. Javan) käsitteet ovat monesti aivan liian matalalla abstraktion tasolla Monimutkaiset järjestelmät on suunniteltava ennen toteutusta (ohjelmointia) Ennen suunnittelua on ymmärrettävä ongelman asettamat vaatimukset Vaatimukset taas on suhteutettava ympäristöönsä ja käytettävissä oleviin toteutusvoimiin.

Ohjelmistotuotanto on erityisesti mallintamista Malli abstrahoi, jäsentää ja kuvaa todellisuutta Mikä on todellisuus? Liiketoimintaympäristö? Tietokoneen käskykanta? Java-kielen myöhäisen sidonnan säännöstö? Projektin budjetti ja henkilöstö?

Mallinnusvälineitä [Eriksson & Penker 1998]

Ohjelmakoodin sovittaminen malliin Ohjelmistoa mallinnettaessa teemme sillan ohjelmakoodin ja ulkoisen ympäristön välille Lähestymistapoja mallintamiseen Proseduraalinen mallintaminen: järjestelmä jaetaan moduuleihin toiminnallisella osituksella Oliomallintaminen: ositus perustuu luokkien muodostamiin komponentteihin ja niiden suhteisiin Ohjelmointikielten luokittelussa käytetään samankaltaisia termejä - olioparadigma, proseduraalinen ohjelmointi, funktionaalinen ohjelmointi...

Ohjelmiston elinkaari Määrittely - millainen ohjelmisto? Suunnittelu - miten ohjelmisto toteutetaan? Toteutus - ohjelmointi, testaus Käyttöönotto Ylläpito Mikä vaiheista vie eniten aikaa?

Suhteellisia työmääriä Määrittely 8 % 24 % Suunnittelu 7 % 20 % Ohjelmointi 6 % 18 % Moduulitestaus 7% Integrointi Ylläpito 67 % [Schach 1993]

Vaatimusmäärittely “Vaatimukset kuvaavat luonnollisella kielellä ja kaavioilla järjestelmältä edellytettäviä palveluja ja sen toiminnalle asetettuja rajoitteita.” [Sommerville] Ulkoinen näkökulma järjestelmään Osa-alueina Vaatimusten kerääminen käyttäjiltä ja muilta sidosryhmiltä Vaatimusmäärittely käyttötapauksina ja tekstinä Menetelmät ja työkalut Haastattelut, vanhat järjestelmät, läpikäynnit CASE-välineet

Suunnittelu “Ohjelmistosuunnitelmassa kuvataan tulevan ohjelmiston rakenne, rakenneosien väliset rajapinnat ja tietosisältö sekä jossain tapauksissa algoritmit.” [Sommerville] Suunnitteluvaiheessa näkökulma on ohjelmiston sisäinen Arkkitehtuurisuunnittelu - kokonaisrakenne Oliosuunnittelu - osien tarkempi suunnittelu Ero vaatimusmäärittelyvaiheeseen nähden Heijastaako ohjelmistosuunnitelma vaatimuksia, vai tehtiinkö mitä osattiin?

Toteutus Ohjelmointi Testaus Virheenjäljitys Koodikatselmukset Edellisten vaiheiden ollessa kunnossa, tämä vaihe on suoraviivaista

Integrointi ja käyttöönotto Ohjelmiston koostaminen erikseen toteutetuista ja testatuista komponenteista Nuoren järjestelmän kohdalla vaikea erottaa toteutuksesta ja testauksesta Iäkkäämmässä järjestelmässä erilliset testi- ja tuotantoympäristöt Käyttöönotto Järjestelmän toimittaminen asiakkaille tuotantokäyttöön Järjestelmä- ja hyväksymistestaukset Käyttökoulutus, käyttöohjeet, dokumentaatio

Käyttö ja ylläpito Ohjelmistotuote asennettu ja otettu osaksi käyttäjän normaalia toimintaa Aiempi järjestelmä poistettu käytöstä Ylläpitotoimenpiteiden luokittelu Korjaavat ylläpitotoimet (virheiden poistaminen) Sopeuttavat ylläpitotoimet (ympäristön muutoksiin vastaaminen) Lisäävät / parantavat ylläpitotoimet (lisäominaisuudet) Uudelleenjärjestelytoimet (sisäiset muutokset, ei vaikutusta ulkoiseen käyttäytymiseen)

Elinkaari vaihtelee projekteittain Kullakin sovelluksella on yksilöllinen elinkaarensa Ohjelmistot heijastavat käyttävän organisaation elinkaarta