Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Olioperustainen ohjelmistoprosessi

Samankaltaiset esitykset


Esitys aiheesta: "Olioperustainen ohjelmistoprosessi"— Esityksen transkriptio:

1 Olioperustainen ohjelmistoprosessi
Yleisesittely olioperustaisen ohjelmistokehitysprosessin vaiheista Kalvot: Roope Raisamo, osin Kai Koskimiehen Oliokirjaan perustuen

2 Olioperustainen ohjelmistokehitysprosessi
1990-luvun aikana olioperustaista ohjelmistokehitystä pyrittiin systematisoimaan tuloksena erilaisia menetelmiä ja ohjelmiston kuvaustapoja Tässä käsitellään yksinkertaistettua mallia luo pohjan erilaisten laajempien menetelmien opettelulle hyvin käyttökelpoinen esitetyssäkin muodossa

3 Olioperustainen ohjelmistokehitysprosessi
Tyypilliset vaiheet: Vaatimusmäärittely (Requirement specification) Toteutettavuuskartoitus – tässä välissä yleensä vielä tarkastetaan, onko toteutus realistista Vaatimusanalyysi / Olioanalyysi Arkkitehtuurisuunnittelu Oliosuunnittelu / Yksityiskohtainen suunnittelu) Toteutus Testaus

4 Rakenne ja käyttäytyminen
Järjestelmän mallintamisen keskeiset osat: staattinen mallintaminen (rakenne) dynaaminen mallintaminen (käyttäytyminen) riippuvat toisistaan eri tavoin ohjelmistokehityksen vaiheissa tarkastellaan ohjelmistoa näistä kahdesta näkökulmasta

5 Ohjelmistokehitysprosessin rakenne
Vaatimus- analyysi Arkkitehtuuri- suunnittelu Yksityiskohtainen suunnittelu Toteutus Rakenne Käyttäytyminen

6 UML:n kaaviotyypit Korkean tason toiminnalisuus Ohjelmisto- kehitys
Rakenne Käyttö- tapauskaaviot Käyttäytyminen Esimerkkejä Oliokaaviot Sekvenssi- kaaviot Yhteistyö- kaaviot Sijoittelu- kaaviot Luokka- kaaviot Tilakaaviot Aktiviteetti- kaaviot Komponentti- kaaviot

7 Vaatimusanalyysi Vaatimusanalyysissä kerätyt vaatimukset analysoidaan ja täsmennetään tavoitteena ymmärrys siitä, mitä järjestelmää ollaan toteuttamassa ei siitä, miten toteutus tehdään! toteutustekniset näkökohdat jätettävä syrjään, koska hämärtäisivät käsitteellistä mallia vaatimusanalyysiin liittyy usein myös sovellusalueen analyysi (domain analysis) täsmentää järjestelmän toimintaympäristön käsitteistön

8 Vaatimus/olioanalyysi
Tuloksena : joukko käyttötapausten kuvauksia niistä johdettu tehtävälista järjestelmän käsitteellinen malli luokkakaaviona käyttötapausten sekvenssikaaviot olioanalyysimallin luokkia käyttäen [mahdollisesti myös sovellusalueen käsitteellinen malli luokkakaaviona] Siis järjestelmän kuvaus abstraktissa mielessä.

9 Vaatimusanalyysi Analyysin kulku: identifioidaan käyttötapaukset
määritellään niiden suhteet käyttötapauskaaviolla kuvataan ne tarkemmin sekvenssikaavioilla yksi sekvenssikaavio käyttötapausta kohden tavallisimmasta tapauksesta poikkeustilanteet voidaan kuvata erikseen oikeastaan nämä pitää tehdä tai tarkentaa sitten, kun olioanalyysin osana on tuotettu luokkakaavio

10 Vaatimusanalyysi Käyttötapaukset edustavat analyysivaiheen käyttäytymisnäkökulmaa laadittu siten, että ovat mielekkäitä sekä järjestelmän käyttäjille että suunnittelijoille Tehtäväluettelo saadaan käyttötapauksista laadittujen sekvenssikaavioiden perusteella lähtökohtana käyttöliittymän suunnittelulle Käsitteellisen mallin lähtökohtana vaatimusmäärittely ja käyttötapaukset

11 Vaatimusanalyysi Käsitteellisen mallin rakentamisen vaiheita:
luokkien identifiointi assosiaatioiden tunnistaminen alustavien attribuuttien tunnistaminen luokkien vastuiden määrittely mallin tarkistaminen mallisanaston koostaminen käsitteelliseen malliin kuuluvien tunnusten selitys esim. luokat ja assosiaatiot

12 Arkkitehtuurisuunnittelu
Vaatimusanalyysin jälkeen lähestytään asteittain varsinaista toteutusta Arkkitehtuurisuunnittelussa kiinnitetään järjestelmän arkkitehtuuriin kuuluvat valinnat

13 Arkkitehtuurisuunnittelu
Arkkitehtuurivalintoja: järjestelmän kerrokset merkittävät komponentit korkean tason suunnittelumallit arkkitehtuurityylit mahdollisen kehysarkkitehtuurin ydin ohjelmistojen sijoittelu laitteistoihin ohjelmistoalustat prosessit ja niiden kommunikointi käyttöliittymäratkaisut [muut keskeiset ratkaisut]

14 Arkkitehtuurisuunnittelu
Rakenteen kuvaukseen käytetään esimerkiksi: luokkakaavioita komponenttikaavioita sijoittelukaavioita Pakkaukset hyödyllisiä kuvaamaan alijärjestelmiä

15 Arkkitehtuurisuunnittelu
Käyttäytymisen kuvaamiseen käytetään sekvenssikaavioita. osallistujina arkkitehtuuritason elementtejä kuten komponentteja tarkentavat vaatimusanalyysin sekvenssikaavioita kuvaavat tehtävien suorituksen arkkitehtuuritason yksiköiden välisenä vuorovaikutuksena

16 Yksityiskohtainen suunnittelu
Yksityiskohtaisessa suunnittelussa kunkin osan toteutus suunnitellaan tarkemmin. Vältetään sitoutumista tiettyyn toteutuskieleen. Rakennetta kuvataan luokkakaavioilla lähtökohtana analyysivaiheen luokkakaaviot tarkennetaan huomioimalla tehokkuus muunneltavuus ylläpito

17 Yksityiskohtainen suunnittelu
Yksityiskohtaisen suunnittelun aikana tehostetaan suoritusta lisäämällä johdettuja assosiaatioita ja attribuutteja suunnitellaan assosiaatioiden toteutus parannetaan joustavuutta ja muunneltavuutta esimerkiksi soveltamalla suunnittelumalleja uudelleenorganisoidaan luokkarakennetta, rajapintoja ja periytymistä lisätään toteutuksen kannalta tarpeelliset operaatiot ja luokat suunnitellaan käyttöliittymän toteutus

18 Yksityiskohtainen suunnittelu
Arkkitehtuurisuunnittelun sekvenssikaavioita tarkennetaan tehtävät järjestelmän olioiden välisenä vuorovaikutuksena Aktiiviset luokat identifioidaan ja niiden käyttäytyminen kuvataan tilakaavioina Tilakaavioiden toteutustavat suunnitellaan Luokkien operaatiot identifioidaan sekvenssikaavioiden perusteella

19 Yksityiskohtainen suunnittelu
Merkittävimmät tai monimutkaisimmat operaatiot kuvataan tarkemmin tulo- ja jättöehtoineen operaation toimintaan liittyvä olioiden vuorovaikutus esitetään sekvenssikaavioilla muutoin kuvaus voidaan antaa esimerkiksi pseudokielellä

20 Yksityiskohtainen suunnittelu
Yksityiskohtaisen suunnittelun käyttäytymisnäkökulmaa kuvaavat: sekvenssikaaviot tilakaaviot operaatiokuvaukset

21 Yksityiskohtainen suunnittelu
Lopuksi varmistetaan rakenne- ja käyttäytymisnäkökulmien yhtäpitävyys tarkastetaan, että kaikkien operaatioiden suoritukseen tarvittavat assosiaatiot ovat olemassa tarkastetaan, että luokkakaavioissa ja sekvenssikaavioissa esiintyvät samat operaatiot tarkastetaan, että tilakaaviot sallivat sekvenssikaavioissa kuvattujen toimintojen suorittamisen

22 Toteutus Toteutusvaihe on periaatteessa suoraviivainen: yksityiskohtaisen suunnittelun mallit esitetään valitulla toteutuskielellä. Mallit ovat kuitenkin ohjelmointikieltä abstraktimmalla tasolla. Siksi: toteutusta voidaan joutua täydentämään uusilla attribuuteilla, operaatioilla ja jopa luokilla joudutaan tekemään kielestä riippuvia toteutusratkaisuja Voitaisiin jossakin määrin automatisoida.

23 Inkrementaalinen kehittäminen
Inkrementaalinen kehittäminen on (suuren) ohjelmiston kehittämistä paloittain. käyttötapauksista lähtevä ohjelmistokehitys tähän luonteva tapa käyttötapaus = toiminnallinen kokonaisuus voidaan edetä syklittäin valitsemalla ensin vain muutama keskeisin käyttötapaus suunniteltavaksi näiden perusteella voidaan toteuttaa ohjelmiston ensimmäinen prototyyppi, ja saada siitä palautetta. tämän pohjalta käyttötapauksia (ja vaatimuksia) täsmennetään asiakkailla koko kehityksen ajan tuntuma järjestelmään inkrementaalisessa ohjelmistokehityksessä on tärkeää pyrkiä valitsemaan rakennettavat osat siten, että edelliset eivät riipu niitä seuraavista -> jo rakennettua ei periaatteessa tarvitse muuttaa


Lataa ppt "Olioperustainen ohjelmistoprosessi"

Samankaltaiset esitykset


Iklan oleh Google