Olioperustainen ohjelmistoprosessi

Slides:



Advertisements
Samankaltaiset esitykset
SE-02 UML-notaatio staattinen ja dynaaminen mallintaminen Kalvot: Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo.
Advertisements

Ohjelmiston tekninen suunnittelu
Tietojärjestelmät 2.
Suunnitelma ohjelmiston testaukseen
UML-notaatio staattinen ja dynaaminen mallintaminen
Tietojärjestelmät ja Systeemisuunnittelu
Tietokannan suunnittelu
Tapahtumasekvenssit = Käyttötapausten realisointi
Tekninen suunnit-telu
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa I
Ohjelmiston toteutus (teknisestä näkökulmasta)
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmän suunnittelu
– Ohjelmistojen mallintaminen, kesä 2009
Korkeakoulujen ja opetusministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto RAKETTI-XDW Käsitemäärittely,
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
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.
3. Spesifikaatioiden laatiminen
2. Vuokaaviot.
Oliosuunnittelu.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestitapausten kuvausohje.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
Käsitemallin suunnittelu
Työllisyysportti ”Ei vain tietoa, vaan ihmistä varten”
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Esitutkimus (tarvekartoitus)
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
Systeemityö 2 Toimintokaavio – Activity diagram
SE-02 Oliosuunnittelu Slides by Roope Raisamo. SE-02 Yksityiskohtainen suunnittelu Yksityiskohtaisessa suunnittelussa kunkin osan toteutus suunnitellaan.
Uudelleenkäyttö. Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim.
Koostekaavio – Composite Structure Diagram Kinnula – Kellolampi - Lehtosaari.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Mallinnustavat.
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.
Komponenttikaavio Lehtonen Iiro, Janne Liikka
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Pakkanen * * * Komponenttipohjaisen sovellustuotannon menetelmäpilotti PlugIT-seminaari Annamari Riekkinen ja Kirsi Karvinen FixIT-DoIT / HIS-tutkimusyksikkö.
Käyttöönottokaavio– Deployment diagram Vesa Jokikokko Tarmo Kemi TIK9SNA.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Koostekaavio– composite structure diagram Mikko Näpänkangas.
Olio-ohjelmoinnin perusteet luento 7
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
OMT Design System design –design technical environment Object design –design class diagram.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Tietojärjestelmät ja Systeemisuunnittelu
Kurssin aihepiiri: ohjelmistotuotannon alkeita ● [wikipedia]: – Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään,
UML-luokkakaavio ● Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakennetta ● Mitä luokkia on olemassa ● Minkälaisia luokat ovat ● Luokkien suhteet.
Prosesseista palveluihin
JHKA 2.0 tilanne JHKA-työryhmän kokous JulkICT.
Koulutuksen järjestämisen ja opintojen järjestämisen prosessit
Sosiaali- ja terveydenhuollon organisaatio- ja palvelutiedon hallinta
– Ohjelmistojen mallintaminen, mallintaminen ja UML
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
– Ohjelmistojen mallintaminen, kesä 2010
8. Periytyminen.
Mallintamisen metamalli ja notaatiot
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
Slides by Roope Raisamo
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
Vaatimusanalyysin hallintatyökalu
1. Olio-ohjelmointi.
Esityksen transkriptio:

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

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

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

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

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

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

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

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ä.

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

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

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

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

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]

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

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

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

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

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

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ä

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

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

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.

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