sovellussuunnitteluun

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

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

Johdatus sovellussuunnitteluun. Johdatus 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

Ohjelmistojen mallintaminen, kesä 2009

Johdatus sovellussuunnitteluun

Ohjelmistotekniikan menetelmät, kevät 2008

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Olioperustaisuus (object oriented)

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät, UML

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

Ohjelmistoarkkitehtuurit. Kevät

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

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

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

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

Tietojärjestelmän osat

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikka - Luento 2

UML - unified modeling language

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

Oleelliset vaikeudet OT:ssa 1/2

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

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

TOIMINNALLINEN MÄÄRITTELY MS

Integrointi. Ohjelmistotekniikka kevät 2003

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

Tietokoneen toiminta (Computer Organization I)

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

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

A4.1 Projektityö, 5 ov.

Ylläpito. Ylläpidon lajeja

1. Tarkastellaan seuraavaa kaaviota

Johdantoluento. Ohjelmien ylläpito

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Interfacing Product Data Management System

Tietokoneen toiminta (Computer Organization I)

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Tietokoneen toiminta (Computer Organization I)

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

käyttötapaukset mod. testaus

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

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

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Tietokoneen toiminta (Computer Organization I)

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

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

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

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

UML-kielen formalisointi Object-Z:lla

Tietoturva. 0. Tietoa kurssista P 5 op. Oulun yliopisto Tietojenkäsittelytieteiden laitos Periodi / 2015

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

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

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

Suunnitteluvaihe prosessissa

812341A Olio-ohjelmointi, I Johdanto

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

Käyttötapausanalyysi ja testaus tsoft

A215 Tietorakenteet. Tietojenkäsittelytieteiden laitos Tampereen yliopisto. Periodit I-II, syksy 2007

Internet ja tietoverkot

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

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

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Ohjelmistojen mallintaminen. Matti Luukkainen

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Kurssiesite. Rakentamisen tekniikat RAK-C3004

T Ohjelmistojen määrittely- ja suunnittelumenetelmät


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

Transkriptio:

DO NOT PRINT THIS DOCUMENT Johdatus sovellussuunnitteluun Yleiskuva olioperustaisesta tietojärjestelmän ja erityisesti ohjelmiston kehittämisprosessista sekä siinä käytettävistä kuvaustekniikoista Pääperiaatteet käyttöliittymien suunnittelusta

Sisältö Johdatus sovellussuunnitteluun Johdanto Ohjelmiston kehitysprosessi Olioiden ja luokkien kuvaaminen - UML Olioyhteistyön kuvaaminen - UML Oliomallinnus Käyttötapaukset -UML Käyttöliittymän peruskomponentit Käyttöliittymän suunnittelun perussääntöjä

Johdatus sovellussuunnitteluun Luennot MA 10-12, TO 8-10 AUDITORIO Lehtori Harri Laine (laine@cs.helsinki.fi) vo: ti 12-14 (B439), ke 9-10 (B446) Koe ti 14.12. klo 16-20 Metsätalo 1 ja 2 ja? Www-kotisivu http://www.cs.helsinki.fi/u/laine/jossu/s99fin.html

Kurssin suorittaminen Osasuorituksina koe ja harjoitukset. Kokeesta saatava maksimipistemäärä on 60 pistettä. Kokeesta on saatava vähintään 27 pistettä. Harjoituksista saatava maksimipistemäärä on 6 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ä. Tässä asteikossa arvosanan 3 saa 51 pisteellä. Pientä säätelyä asteikon suhteen voidaan tehdä.

Oppimateriaali Pääasiallisena materiaalina on kurssin aikana tuotettava kalvo- ja monistemateriaali tavoiteena on saada joko kalvo- tai monistemateriaali kurssimappiin (A413) ja kurssin wwwkotisivulle (pdf-muodossa) ennen asiaa käsittelevää luentoa Lähdemateriaalia: 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, palvelu) Java-koodin välttävä lukutaito (muutamassa harjoituksessa)

Informaatiojärjestelmä Tehtävä Tietotarve Käyttäjillä esiintyy toiminnassaan ( työ tehtäviinsään) tietotarpeita = tarpeita käsitellä tietoja

Informaatiojärjestelmä Tietotarve Tietojärjestelmä palvelu palvelu Tietojärjestelmä palvelu Tietojärjestelmä palvelu Tietojärjestelmät tarjoavat palveluita tietotarpeiden tyydyttämiseksi

Informaatiojärjestelmä Henkilö voi tarvita toiminnassaan useiden tietojärjestelmien palveluita Tietojärjestelmä on jollain perusteella muodostettu hallinnollinen kokonaisuus

Informaatiojärjestelmä Palvelut perustuvat järjestelmän tietosisältöön Tietojärjestelmä palvelu Palvelut toteutetaan ohjelmistolla Tietosisältö palvelu Ohjelmisto koostuu yhdestä tai useammasta jollakin laitteisto- ja ohjelmistoalustalla toimivasta ohjelmasta

Informaatiojärjestelmä Tietojärjestelmän ohjelmisto ohjelma... ohjelma... ohjelma Laite- ja ohjelmistoalusta (PC) toimintaympäristö Laite- ja ohjelmistoalusta (Palvelin)

Informaatiojärjestelmä Tietojärjestelmä voi jakautua hierarkkisesti osajärjestelmiin TJ Osajärj. Osajärj. Osajärj. Osajärj. Samaa ohjelmaa voidaan käyttää eri osajärjestelmissä ohjelma

(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

(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ö Tietokonepeli

Ohjelmiston tuottaminen Sovellusohjelmisto (application software)= Tietojärjestelmän käyttöön tarvittava yhden tai useamman ohjelman muodostama kokonaisuus. Ohjelmisto voi koostua useilla eri laitteilla toimivista ohjelmista. Varusohjelmisto (system software) = sovellusohjelmistolle ohjelmistoalustan tarjoava ohjelmisto (käyttöjärjestelmä, ikkunointiympäristö, tietoliikennepalvelut, tietokantapalvelut, ) Ohjelmiston tuottamishankkeen kannalta oletetaan varusohjelmistopalvelujen 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ö / palvelut / 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ä palveluja 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 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

Järjestelmän elinkaari kartoitus määritely suunnittelu toteutus (ohjelmointi ja testaus) käyttöönotto ylläpito

Työmääriä Kartoitus 3 % 9% Määrittely 5 % 15% Suunnittelu 7 % 20% Koodaus 6 % 18% Moduulitestaus 7 % 20% Integrointi 6 % 18% Ylläpito 67 % Schach S.R.: Software engineering, 2. ed., Aksen Associates, 1993.

Kartoitus Tarkoitus Ongelmat Tavoitteet Yhteys toimintaan Kannattavuus

Kartoitus (feasibility study) Lähtökohtana tilanneselvitys: mikä on tilanne nyt millaisia ongelmia nykytilanteessa mitä odotetaan 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 palvelujen 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 palveluihin 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ä palveluja järjestelmä tarjoaa käyttäjilleen Mitä tietoja palvelut 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 palvelut, 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 - palvelu/itsepalvelu) työn muuttuminen <-> tarvittavat palvelut 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 palveluiden 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

Tietojärjestelmän kuvaaminen Tietojärjestelmä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ä

Tietojärjestelmän kuvaaminen Tietojärjestelmä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

Tietojärjestelmän kuvaaminen Järjestelmän kuvaamiseen voidaan käyttää luonnollista kieltä (=suomea). Millaisia taloja mahtaisi syntyä, jos niiden suunnitelmat esitettäisiin luonnollisella kielellä? Alenisivatko rakennuskustannukset Saataisiinko paremmin asiakkaan tarpeita tyydyttäviä taloja

Tietojärjestelmän kuvaaminen Talonrakennuksen kohdalla on vakiintunut ja jopa viranomaisten säätelemä kuvauskieli, jolla suunnitelmat (piirustukset) laaditaan. Tietojärjestelmien kohdalla tilanne on huonompi Tietojärjestelmä on yleensä monimutkaisempi ja sen suunnitelma sisältää enemmän yksityiskohtia kuin talon suunnitelmä Kuvauskieliä on esitetty erittäin runsaasti, mutta vakiintunutta rakennuspiirustusten tasoiseen kattavuuden yltävää tekniikkaa ei ole

Tietojärjestelmän kuvaaminen Tietojärjestelmä 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ä.