Suunnitteluvaihe prosessissa

Samankaltaiset tiedostot
Tietojärjestelmän osat

Ohjelmistojen suunnittelu

Integrointi. Ohjelmistotekniikka kevät 2003

Uudelleenkäytön jako kahteen

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Kontrollipolkujen määrä

Ohjelmiston toteutussuunnitelma

Ohjelmistotuotanto, suunnittelu Syksy Suunnittelu. Suunnittelun tulos. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi.

6. Suunnittelu. Suunnittelun tulos

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Suunnittelun tulos. 6. Suunnittelu. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi. 6.1 Arkkitehtuurisuunnittelu.

Ohjelmistojen mallintaminen, mallintaminen ja UML

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmiston vaatimusmäärittely. tietoteknisen järjestelmän osat

Ohjelmiston suunnittelu

2. Ohjelmistotuotantoprosessi

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Ohjelmiston testaus ja laatu. Testaustasot

Ylläpito. Ylläpidon lajeja

Simulointi. Tapahtumapohjainen

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

5. Järjestelmämallit. Mallinnus

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!

6. Arkkitehtuurityylit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Tietotekniikan Sovellusprojektit

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

PILETTI. Tekninen vaatimusmäärittely. v. 0.2

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Kieliaineistojen käyttöoikeuksien hallinnan tietojärjestelmä

Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Projektisuunnitelma Nero-ryhmä

Korkeakoulujen yhteentoimivuusmalli

TOIMINNALLINEN MÄÄRITTELY MS

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

PlugIT / Ydin: teemat ja jaksojen 2-6 suunnitelma ( )

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

UML- mallinnus: Tilakaavio

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

SAP. Lasse Metso

Oha-selvitys 2008 HISinOne-järjestelmän arviointi

LUKU 5: SUUNNITTELU. Suunnitteluun liittyviä käsitteitä:

IIO30100 Tietokantojen suunnittelu (6 op)

Hieman lisää malleista ja niiden hyödyntämisestä

ROTI-järjestelmän ja kehitystavan esittely

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Hankesuunnitelma. Novus-Hanke. Novus-Hanke. YYL:n tietojärjestelmien kokonaisuudistus HANKESUUNNITELMA. LIITE 1

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistoarkkitehtuurit

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Ohjelmistojen mallintaminen. Matti Luukkainen

Yhteinen opintohallinnon järjestelmä

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit kevät

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

1. Toimivan IT-ympäristön rakentaminen

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

Ohjelmistoprojektien hallinta Vaihejakomallit

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Matematiikan oppifoorumi Projektisuunnitelma

KESKITETTY RAIDELIIKENTEEN INFORMAATIOJÄRJESTELMÄ. Järjestelmän yleiskuvaus

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen

Kieku tuki ja ylläpito

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Tiedonkeruu, -hallinta ja testiympäristöt

Luku 10 Käyttöönoton suunnitteluja toteutusvaihe

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Parametronnin perusteet

Ohjelmistotuotanto, s

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Transkriptio:

Suunnittelu

Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet -Epätarkka kuvaus Suunnittelu Toteutus -Matala abstraktiotaso -Toteutusläheiset käsitteet -Tarkka -kuvaus

Suunnitteluprosessin pääosat Järjestelmän yleisrakenteen suunnittelu Moduulien (olioiden) suunnittelu Tietorakenteiden ja algoritmien suunnittelu Käyttöliittymän suunnittelu

Top-down suunnittelu Ei toteudu suurissa järjestelmissä tai uudelleenkäytössä!

Suunnitteluprosessi (Sommerville Requirements specification 1995) Arkkitehtuurin suunnittelu Abstrakti spesifikaatio Rajapintojen suunnittelu Komponenttien suunnittelu Tietorakenteiden suunnittelu Algoritmien suunnittelu Ohjelmiston spesifikaatio Rajapintojen spesifikaatio Arkkitehtuuri Komponenttien spesifikaatio Tietorakenteiden spesifikaatio Algoritmien spesifikaatio

Suunnitteludokumentti 1/2 1. Johdanto 2. Viitekehys 2.1 Vaatimusmäärittely 2.2 Laitteisto- ja ohjelmistotoimittajat 2.3 Tekninen kuvaus 3. Suunnittelukuvaus 3.1 Tietorakenteet 3.2 Toiminnot 3.3 Arkkitehtuuri

Suunnitteludokumentti 2/2 4. Moduulien kuvaukset 4.N.1 Yleiskuvaus (tekstiä) 4.N.2 Liittymät 4.N.3 Algoritmien esitys 5. Globaali tieto 5.1 Ulkoiset tiedostot 5.2 Tietokannat 5.3 Liitäntä tietorakenteisiin 6. Viitteet vaatimusmäärittelyyn 7. Testaus 8. Kirjastointi (yleiskäyttöiset komponentit)

Rationaalinen suunnitteluprosessi? (Parnas & Clements 1986) Rationaalinen suunnitteluprosessi ei ole mahdollista Rationaalisen prosessin teeskentely on kuitenkin mahdollista, mutta vaikeaa Teeskentely on kaikesta huolimatta hyödyllistä eli prosessi kannatta dokumentoida rationaalisesti (topdown)

Miksi suunnittelu ei suju ideaalisesti? 1. Asiakas ei tiedä tarkkaan mitä tahtoo 2. Vaikka tietäisikin, suunnittelun aikana tulee muutoksia (tarkempi tutkiminen) 3. Vaikka vaatimukset tiedetään, seuraa monimutkaisuudesta virheitä 4. Projekteihin tulee aina muutoksia 5. Inhimilliset erehdykset 6. Sovelletaan vanhaa, joka ei täysin vastaa vaatimuksia 7. Uusiokäytetään vanhaa tai tehdään uusiokäytettävää

Prosessin kuvauksen hyödyllisyys 1. Ihanteellisen prosessin tuntemus opastaa suunnittelua 2. Päästään lähemmäksi ihanteellista prosessia kuin täysin tapauskohtaisessa toiminnassa 3. Vakioprosessi auttaa henkilöiden ja tiedon siirtoa eri projektien välillä 4. Projektin edistystä voidaan verrata ideaaliprosessin mukaiseen (statistiikan?) esitykseen 5. Katselmukset ovat helpompia (tiedetään, mitä tietyssä vaiheessa voidaan odottaa)

Ideaalisen prosessin teeskentelyn merkitys Tuotetaan ideaalisen prosessin mukainen dokumentaatio, vaikka se ei vastaisikaan todellista toimintatapaa. Merkitään puuttuvat tiedot dokumentteihin. Muutokset päivitetään myös aiempiin dokumentteihin. -> Siis annetaan järkevä perustelu toiminnalle (vrt. matemaattiset todistukset) Kirjataan myös harkitut ja hylätyt vaihtoehdot -> Samoja asioita ei tarvitse miettiä uudestaan

Arkkitehtuurin suunnittelu Suunnittelun perusta: Huonoa arkkitehtuurisuunnittelua ei voi korvata millään möyhemmässä vaiheessa On useita tyylejä jakaa ohjelmisto osiin Usein kuvaus useammasta näkökulmasta Ei ole mitään yleisesti hyväksyttyä prosessimallia arkkitehtuurin suunnitteluun, mutta yleensä seuraavat toiminnot ovat tarpeen: 1. Järjestelmän rakenne jako pääosiin 2. Järjestelmän osien kontrollin määrittely 3. Järjestelmän osien jako komponentteihin

Näköjärjestelmä Järjestelmän ositus esimerkki Liukuhihnan pakkausrobotti Esineen tunnistusjärjestelmä Käden ohjaus Otteen ohjaus Pakkauksen valintajärjestelmä Pakkausjärjestelmä Liukuhihnan ohjain

Tietovarastomalli yhteinen tieto Henkilöstö, palkanlaskenta Kirjanpito WWW-palvelu Tietovarasto Laskutus, reskontrat Asiakasrekisteri Varastokirjanpito

Jokaisella osalla oma tietokanta Henkilöstö, palkanlaskenta Kirjanpito WWW-palvelu Laskutus, reskontrat Asiakasrekisteri Varastokirjanpito

Yhteisen tietovaraston etuja ja Tehokas tapa jakaa paljon tietoa Osajärjestelmien ei tarvitse tarjota tietoon liittyviä palveluja ulkopuolelle Backupit, käyttöoikeudet, toipuminen yms. keskitettyä -> paremmin hallittavissa haittoja Osajärjestelmien täytyy sopeutua yhteiseen tietomalliin se ei ole kaikille optimaalinen Suuren tietomäärän voi olla vaikea mukautua yhteiseen tietomalliin. Onko muunnos mahdollinen? Tehokkuus? Eri osilla voi olla eri vaatimukset tietoturvan, toipumisen yms. suhteen

Integrointitilanne Henkilöstö, palkanlaskenta Kirjanpito WWW-palvelu Laskutus, reskontrat Tietovarastoohjain Asiakasrekisteri Varastokirjanpito

N-kerroksinen arkkitehtuuri Client 1 Client 2 Client 3 Middleware Middleware Palvelin 1 Palvelin 2 Palvelin 3 verkko verkko

Kontrollin mallinnus - keskitetty kontrolli Pääohjelma Rutiini 1 Rutiini 2 Rutiini 3 Rutiini 1.1 Rutiini 1.2 Rutiini 3.1 Rutiini 3.2

Kontrollin mallinnus - tapahtumapohjainen Keskeytykset Keskeytysvektori TK 1 TK 2 TK 3 TK 4 Prosessi 1 Prosessi 2 Prosessi 3 Prosessi 4

Järjestelmän osien jako komponentteihin Esim. olioperiaatteen mukaisesti

Sovellusaluekohtaiset arkkitehtuurimallit Yleistä mallia arkkitehtuurille ei ole, mutta joillekin tietyille sovellusalueille on Esim. kääntäjäteknologia: 1. Lexical analyser pätkii koodin sisäiseen muotoon 2. Symbol table tulos edellisestä, nimet ja tyypit 3. Syntax analyser tarkistaa syntaksin 4. Syntax tree tulos edellisestä, ohjelman sisäinen esitys 5. Semantic analyser tarkisitaa puusta semanttisen oikeellisuuden 6. Code generator generoi suoritettavan koodin