Johdatus sovellussuunnitteluun. Johdatus sovellussuunnitteluun

Samankaltaiset tiedostot
Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1. Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1

sovellussuunnitteluun

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

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kevät 2008

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Johdatus sovellussuunnitteluun

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Olioperustaisuus (object oriented)

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikan menetelmät, UML

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

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistojen mallintaminen, kesä 2010

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

1. Tarkastellaan seuraavaa kaaviota

Tähtitieteen käytännön menetelmiä Kevät 2009

Tietojärjestelmän osat

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

Ohjelmistotekniikka - Luento 2

Johdatus sovellussuunnitteluun, s2000, osa3 Helsingin yliopisto;/tktl. Harri Laine 1. Järjestelmän palvelujen määrittely

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

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

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

UML - unified modeling language

Oleelliset vaikeudet OT:ssa 1/2

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Integrointi. Ohjelmistotekniikka kevät 2003

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Interfacing Product Data Management System

Ohjelmistojen suunnittelu

TOIMINNALLINEN MÄÄRITTELY MS

Ylläpito. Ylläpidon lajeja

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2010

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Lehtori, DI Yrjö Muilu, Centria AMK Ydinosaajat Suurhankkeiden osaamisverkosto Pohjois-Suomessa S20136

13/20: Kierrätys kannattaa koodaamisessakin

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

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

käyttötapaukset mod. testaus

Johdantoluento. Ohjelmien ylläpito

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Ohjelmistojen mallintaminen, mallintaminen ja UML

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

UML-kielen formalisointi Object-Z:lla

T harjoitustyö, kevät 2012

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Tietojärjestelmätieteen ohjelmat

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Tärkeää huomioitavaa:

Tietokoneen toiminta (Computer Organization I)

T harjoitustehtävät, syksy 2011

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Testaaminen ohjelmiston kehitysprosessin aikana

Tietokoneen toiminta (Computer Organization I)

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

IIO30100 Tietokantojen suunnittelu (6 op)

Suunnitteluvaihe prosessissa

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

Ohjelmistojen mallintaminen. Matti Luukkainen

Määrittely- ja suunnittelumenetelmät

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

IIO30100 Tietokantojen suunnittelu (6 op)

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

TIE = JOTU. VH5 - MagicDraw

1. Johdanto. Ohjelmistotuotannon ongelmia

A4.1 Projektityö, 5 ov.

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät Olio-ohjelmoinnin perusteet (eli Oope) Laajuus

Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

Transkriptio:

Johdatus sovellussuunnitteluun Yleiskuva olioperustaisesta tietojärjestelmän ja erityisesti ohjelmiston kehittämisprosessista sekä siinä käytettävistä kuvaustekniikoista Pääperiaatteet käyttöliittymien suunnittelusta Johdatus sovellussuunnitteluun Sisältö Johdanto Ohjelmiston kehitysprosessi Käyttötapaukset -UML Olioiden ja luokkien kuvaaminen - UML Olioyhteistyön kuvaaminen - UML Oliomallinnus Käyttöliittymän suunnittelun perussääntöjä Johdatus sovellussuunnitteluun Luennot 10.6., 12.6., 16.6, 18.6., 23.6. ja 26.6 klo 16-20 A217, teollisuuskatu Lehtori Harri Laine (laine@cs.helsinki.fi) Www-kotisivu http://www.cs.helsinki.fi/u/laine/jossu/v03/ Kurssin suorittaminen Osasuorituksina koe ja harjoitukset. Kokeesta saatava maksimipistemäärä on 50 pistettä. Harjoituksista saatava maksimipistemäärä on 10 pistettä. Harjoitukset eivät ole pakolliset. Arvostelu tulee perustumaan laitoksella yleisesti käytettyyn asteikkoon, jossa hyväksymisraja on 30 ja arvosanaväli on 3 pistettä. Pientä säätelyä asteikon suhteen voidaan tehdä. Oppimateriaali Pääasiallisena materiaalina on kalvo- ja monistemateriaali kalvot ja moniste löytyvät kurssin www-kotisivulta (pdf-muodossa) Monistetta löytyy monistemyynnistä Lähdemateriaalia: Oppimateriaali Harri Laine: Johdatus sovellussuunnitteluun,helsingin yliopisto, tietojenkäsittelytieteen laitos, 2002 Maciaszek L.A: Requirements Analysis and System Design, Developing Information Systems with UML, Addison Wesley, 2001 Booch G., Rumbaugh J. and Jacobson I.:The Unified Modeling Language User Guide,Addison-Wesley, 1998 Preece J, et al: Human-Computer Interaction, Addison- Wesley, 1994

Edellytykset Tällä kurssilla ei ohjelmoida, mutta kuitenkin edellytetään Ohjelmoinnin perusteet Olio-ohjelmoinnin peruskäsitteet (luokka, olio, ) Java-koodin välttävä lukutaito (muutamassa harjoitustehtävässä) Tehtävä Tietotarve Käyttäjillä esiintyy toiminnassaan ( työ tehtäviinsään) tietotarpeita = tarpeita käsitellä tietoja Tietotarve Henkilö voi tarvita toiminnassaan useiden tietojärjestelmien ita on jollain perusteella muodostettu hallinnollinen kokonaisuus t tarjoavat ita tietotarpeiden tyydyttämiseksi Palvelut perustuvat järjestelmän tietosisältöön Palvelut toteutetaan ohjelmistolla n ohjelmisto Tietosisältö Ohjelmisto koostuu yhdestä tai useammasta jollakin laitteisto- ja ohjelmistoalustalla toimivasta ohjelmasta ohjelma Laite- ja ohjelmistoalusta (PC)... ohjelma... toimintaympäristö Laite- ja ohjelmistoalusta (Palvelin) ohjelma

voi jakautua hierarkkisesti osajärjestelmiin TJ Samaa ohjelmaa voidaan käyttää eri osajärjestelmissä (Osa)järjestelmän kokoamisperusteita Sama palveltava toimintakokonaisuus ilmoittautumiset, kurssihallinto Yhteiset käyttäjät kirjaston asiakasjärjestelmä Yhteinen tietosisältö tilaustietojärjestelmä Maantieteellinen sijainti aluekohtaiset asiakasjärjestelmät ohjelma (Osa)järjestelmän kokoamisperusteita Yhteinen tehtävätyyppi raportointiosajärjestelmä Samanlainen ajoitus päivittäistoiminta / vuodenvaihteen toimet Yhteinen toteutustekniikka tai -väline puhelinkäyttöinen tilitietojärjetelmä Osajärjestelmäjako voi olla monikriteerinen ja monitasoinen: eri tasoilla jakoperusteet voivat vaihdella. Esimerkkejä tietojärjestelmistä Tietojenkäsittelytieteen laitoksen ilmoittautumisjärjestelmä (ILMO) Opintosuoritusrekisteri Lentoyhtiöiden paikanvarausjärjestelmä Yliopiston kirjaston lainausjärjestelmä Puhelinkeskuksen ohjelmisto Tekstinkäsittelyjärjestelmä Ohjelmointiympäristö n kehittämisympäristö (CASE) Tietokonepeli Ohjelmiston tuottaminen Sovellusohjelmisto (application software)= n käyttöön tarvittava sovelluskohtaisia ita tarjoava yhden tai useamman ohjelman muodostama kokonaisuus. Ohjelmisto voi koostua useilla eri laitteilla toimivista ohjelmista. Varusohjelmisto (system software) = sovellusohjelmistolle alustan tarjoava ohjelmisto (käyttöjärjestelmä, ikkunointiympäristö, tietoliikennet, tietokantat, ) Ohjelmiston tuottamishankkeen kannalta oletetaan varusohjelmistojen olevan valmiina tarjolla Keskeiset kysymykset järjestelmää kehitettäessä Mihin tarkoitukseen? (why) mikä on järjestelmän tehtävä? Millainen? (what) mitä ominaisuuksia järjestelmällä on? tietosisältö / t / käyttäjät Miten? (how) tekninen ratkaisu?

Järjestelmän tarkoitus Millaista toimintaa järjestelmällä pitäisi tukea? Mitä tietojenkäsittelytehtäviä järjestelmä avustaa / mahdollistaa? Ketkä suorittavat avustettavia tietojenkäsittelytehtäviä? Mitä hyötyä / kustannuksia järjestelmästä on? Millaisia ongelmia järjestelmällä halutaan poistaa? Millainen järjestelmä Keitä ovat järjestelmän käyttäjät? Mitä ja järjestelmä tarjoaa / kenelle? Millainen on järjestelmän tietosisältö? Millaisessa ympäristössä järjestelmä toimii? Millaista on järjestelmän käyttö? Miten tehdään Järjestelmän elinkaari Millainen on järjestelmän tietokannan rakenne? Miten järjestelmää käytetään? Millainen käyttöliittymä järjestelmällä on? Millainen on ohjelmiston rakenne? Miten ohjelmiston osat ovat yhteydessä toisiinsa? kartoitus määritely suunnittelu toteutus (ohjelmointi ja testaus) käyttöönotto ylläpito Työmääriä Kartoitus Kartoitus 3 % 9% Määrittely 5 % 15% Suunnittelu 7 % 20% Koodaus 6 % 18% Moduulitestaus 7 % 20% Integrointi 6 % 18% Ylläpito 67 % Tarkoitus Ongelmat Tavoitteet Yhteys toimintaan Kannattavuus Schach S.R.: Software engineering, 2. ed., Aksen Associates, 1993.

Kartoitus (feasibility study) Lähtökohtana tilanneselvitys: mikä on tilanne nyt millaisia ongelmia nykytilanteessa mitä odotetaan tilanteen olevan tulevaisuudessa Tavoitteiden asetus Tilanneselvitysten perusteella asetetaan tavoitteet tulevalle järjestelmälle tavoitteet tulevilta käyttäjiltä ja järjestelmään liittyviltä sidosryhmiltä (= taho, joka on jollain tavoin tekemisissä järjestelmän kanssa) Kartoitus / tavoitteiden kohteita Tietotarpeiden tyydytys Nykyjärjestelmän työnkulun muuttaminen tai muun nykyjärjestelmän ongelman poistaminen Uusien jen kehittäminen Valvonnan kehittäminen (suojaus) Järjestelmän suorituskyky (käsittelymäärät, vasteajat) Kustannukset (seuranta, vähentäminen) Tehokkuuden parantaminen (käyttöaste) Kartoitus / tavoitteiden asetus Tavoitteet mahdollisimman täsmällisesti selkeinä numeroina Esim. ilmoittautumiseen käytettävä aika on pudotettava 50 % nykyisestä (EI: ilmoittautumista on nopeutettava ) Jos tavoitteet liittyvät uusiin ihin ja uusiin tietotarpeisiin, on nämä määriteltävä riittävän täsmällisesti. Tavoitteet tärkeysjärjestykseen Joskus tavoiteet voivat olla jopa ristiriidassa keskenään Määrittely (Requirements analysis) Tavoitteiden pohjalta määritellään järjestelmän tavoitetila Karkea suunnitelma järjestelmästä = Miltä järjestelmä näyttää ulospäin Ketkä järjestelmää käyttävät Mitä ja järjestelmä tarjoaa käyttäjilleen Mitä tietoja t tarvitsevat Puiteet järjestelmän toteutukselle (ympäristö, käyttöliittymä, ) Määrittely (Requirements analysis) Järjestelmä tehdään käyttäjille Järjestelmän pitää tarjota ne t, joita käyttäjät haluavat Nämä on siis saatava selville Tietävätkö käyttäjät mitä he haluavat? Kyllä ja ei: Kysyttävä: Miksi? Mihin aiot käyttää? Esiteltävä vaihtoehtoja - Prototyypit Määrittely / vaihtoehtoja Kehitetään ratkaisuvaihtoehtoja työnjako (ihminen/kone - /itse) työn muuttuminen <--> tarvittavat t mitä vaikuttaa kokonaisuuteen, jos asiat tehdään tietyllä tavoin käsittelyperiaatteet (suorakäyttö/eräkäyttö) käyttöliittymävaihtoehdot teknisiä vaihtoehtoja, jotka täsmennetään suunnittelussa: tiedostoratkaisu (tiedostot/tietokanta) hajautus (hajautettu/keskitetty) laitteisto ja varusohjelmisto syötteiden ja tulosteiden muoto

Määrittely / vaihtoehtoja Vain jotain tai joitain vaihtoehtoja lähdetään kehittämään eteenpäin, joten on valittava nämä vaihtoehdot vaihtoehtoja on arvioitava Arviointi? Tarkastellaan vaihtoehdon vaikutusta käyttäjiin (liike)toimintaan tavoitteiden saavuttamiseen iden saatavuuteen Huom! vaihtoehdot esitettavä konkreettisesti Arvioinnissa kiinnitettävä huomiota järjestelmän toimivuuteen saadaanko kaikki työt hoidettua määritellyllä ratkaisulla? onko toiminta järkevää? onko ratkaisu tehokas? järjestelmän toteutettavuuteen onko tarvittavat resurssit (henkilöstö, välineet) käytettävissä? osataanko tehdä (riittävän nopeasti)? Arvioinnissa kiinnitettävä huomiota Edistääkö ratkaisu (liike)toimintaa? Onko ratkaisu taloudellisesti kannattava? Taloudellisuuden selvittäminen: Kustannus-hyötyanalyysi Suunnittelu Suunnittelussa tarkennetaan määrittelyssä laadittua karkeaa suunnitelmaa. Tarkennus voi tapahtua monitasoisesti asteittain. Suunnittelun osa-alueita käyttöliittymän suunnittelu tietokannan suunnittelu työnkulkujen suunnittelu laitteiston valinta tietoliikenteen suunnittelu ohjelmistosuunnittelu n kehittämiseen osallistuu yleensä useita henkilöitä on tärkeää, että kehittäjät ymmärtävät toisiaan ja pystyvät tehokkaasti välittämään toisilleen tietoa kehitettävästä järjestelmästä projektiin tulevan uuden henkilön pitäisi pystyä suhteellisen nopeasti muodostamaan kuva järjestelmästä t ovat usein laajoja ja pienehkötkin järjestelmät sisältävät runsaasti yksityiskohtia. Yksityiskohdat ovat tärkeitä joissakin tilanteissa, mutta niiden mukanaolo kuvauksessa häiritsee kokonaisuuden hahmotusta Tarvitaan siis eri tasoisia kuvauksia, yleiskuvauksista yksityiskohtaisiin kuvauksiin

Järjestelmän kuvaamiseen voidaan käyttää luonnollista kieltä (=suomea). Millaisia taloja mahtaisi syntyä, jos niiden suunnitelmat esitettäisiin pelkästään luonnollisella kielellä? Alenisivatko rakennuskustannukset? Saataisiinko paremmin asiakkaan tarpeita tyydyttäviä taloja? Talonrakennuksen kohdalla on vakiintunut ja jopa viranomaisten säätelemä kuvauskieli, jolla suunnitelmat (piirustukset) laaditaan. Tietojärjestelmien kohdalla tilanne on huonompi on yleensä monimutkaisempi ja sen suunnitelma sisältää enemmän yksityiskohtia kuin talon suunnitelma Tietojärjestelmien kuvauskieliä on esitetty erittäin runsaasti, mutta vakiintunutta rakennuspiirustusten tasoiseen kattavuuden yltävää tekniikkaa ei ole on abstrakti tuote Talonrakennuksen kohdalla on eriytyneitä ammatteja, jotka tarvitsevat omat piirustuksensa. Tietojärjestelmien kohdalla eriytyneisyys on vähäisempää, samat ohjelmoijat käsittelevät kaikkia ohjelman aspekteja käyttöliittymästä tietokantaan Ei pystytä teoreettisesti osoittamaan, että jokin kuvaustekniikka olisi parempi kuin toinen On erilaisia kilpailevia käsityksiä siitä, millaisista rakenneosista tietojärjestelmä muodostuu, näiden hyvyyttä ei pystytä osoittamaan Olioperustainen kuvaaminen Tällä kurssilla tarkastellaan järjestelmän olioperustaista kuvaamista Olioperustaisuus on nykytrendi ohjelmistotuotannossa. Tulevaisuudessa??? Kuvausjärjestelmänä esitellään UML-(unified modeling language) kuvaustekniikka. Tekniikkaan sisältyy graafisia kuvauskieliä ja se on saavuttamassa teollisuusstandardin aseman (object management group:n OMG standardoima) UML ei ole kaikenkattava kuvausjärjestelmä.