Olioperustainen ohjelmistoprosessi - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Olioperustainen ohjelmistoprosessi

Description:

Olioperustainen ohjelmistoprosessi Yleisesittely olioperustaisen ohjelmistokehitysprosessin vaiheista Kalvot: Roope Raisamo, osin Kai Koskimiehen Oliokirjaan perustuen – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 24
Provided by: uta104
Category:

less

Transcript and Presenter's Notes

Title: Olioperustainen ohjelmistoprosessi


1
Olioperustainen ohjelmistoprosessi
  • Yleisesittely olioperustaisen ohjelmistokehityspro
    sessin 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
Yksityiskohtainen suunnittelu
Arkkitehtuuri- suunnittelu
Toteutus
Rakenne
Käyttäytyminen
6
UMLn kaaviotyypit
Ohjelmisto- kehitys
Korkean tason toiminnalisuus
Rakenne
Käyttäytyminen
Käyttö- tapauskaaviot
Sekvenssi- kaaviot
Oliokaaviot
Yhteistyö- kaaviot
Esimerkkejä
Tilakaaviot
Aktiviteetti- kaaviot
Luokka- kaaviot
Sijoittelu- 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ökul
    maa 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 -gt jo rakennettua ei periaatteessa
    tarvitse muuttaa
Write a Comment
User Comments (0)
About PowerShow.com