HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu 8.12.1998



Samankaltaiset tiedostot
ITK130 Ohjelmistojen luonne

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE

Algoritmit 1. Luento 3 Ti Timo Männikkö

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

TIETOKANNAN SUUNNITTELU

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Tietorakenteet ja algoritmit - syksy

812341A Olio-ohjelmointi, I Johdanto

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

TOIMINNALLINEN MÄÄRITTELY MS

Oleelliset vaikeudet OT:ssa 1/2

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

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Tietokannan suunnittelu

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

HELIA 1 (11) Outi Virkki Tiedonhallinta

A TIETORAKENTEET JA ALGORITMIT

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

1. Olio-ohjelmointi 1.1

17/20: Keittokirja IV

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

HELIA 1 (11) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

Tieto- ja tallennusrakenteet

Työssäoppimispaikan työtehtävien ja ammattiosaamisen näytön suorittaminen työssäoppimisja näyttösuunnitelman mukaan hyväksytysti.

Kielioppia: toisin kuin Javassa

AU Automaatiotekniikka. Toimilohko FB

Tietorakenteet ja algoritmit

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmoinnin perusteet Y Python

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi

Luento 2: Tiedostot ja tiedon varastointi

HELIA 1 (12) Outi Virkki Tiedonhallinta

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

ABB Drives and Controls, Koneenrakentajan ja laitetoimittajan yhteistoiminta toiminnallisen turvallisuuden varmistamisessa

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Algoritmit 2. Luento 2 To Timo Männikkö

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Harjoitustyö: virtuaalikone

13/20: Kierrätys kannattaa koodaamisessakin

Opiskelija tekee työasemaympäristöön ja sen hankintaan liittyviä toimistotehtäviä ja laskutoimituksia sekä hyödyntää kielitaitoaan.

Suunnitteluvaihe prosessissa

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Ohjelmistotuotanto, s /27/2003

Kuutioiden pakkaus - Teoria

Tietueet. Tietueiden määrittely

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan. Ammattitaidon osoittamistavat

Tietorakenteet ja algoritmit

YHDISTYKSEN VIESTINTÄ

SUOMEN KUNTALIITTO RY

11/20: Konepelti auki

Algoritmit 2. Luento 2 Ke Timo Männikkö

HELIA 1 (20) Outi Virkki Tiedonhallinta

Tietorakenteet op, 50 h. Luennot alkavat 7.9. ja päättyvät

Algoritmit 1. Luento 1 Ti Timo Männikkö

Toimilohkojen turvallisuus tulevaisuudessa

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

HELIA 1 (17) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Ohjelmistojen suunnittelu

Muotoilualan määritelmät - Tuotesuunnitteluprosessi

TIE Principles of Programming Languages CEYLON

Käytettävyys verkko-opetuksessa Jussi Mantere

AU Automaatiotekniikka. Funktio FC

Yhteenveto. Ymmärrä kokonaisuus

Kokonaisarkkitehtuuri. Kankaanpään kaupunki

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

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

Osoitin ja viittaus C++:ssa

Ylläpitodokumentti Mooan

ARVIOINTISUUNNITELMA Sivu 1/7

Miten kuvaat ja kehität organisaation kokonaisarkkitehtuuria?

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

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

Luento 3 Tietokannan tietosisällön suunnittelu

Sosiaalialan tiedonhallinta

TOIMIVAN LAADUNHALLINTAA JA LAADUN JATKUVAA PARANTAMISTA TUKEVAN JÄRJESTELMÄN KRITEERISTÖ

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

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

DigiEduET / WP4. DigiEduET seminaari

Ohjelmistojen mallintaminen, mallintaminen ja UML

VAIKUTTAAKO ARVIOINTI?

Kertausluento luennoista 1-3 1

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

KTKO104. Luento

ABLOY IQ. Lukitusturvallisuuden uusi sukupolvi

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan. Ammattitaidon osoittamistavat

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa

Kuntasektorin asianhallinnan viitearkkitehtuuri 1.0. Kuntamarkkinat Tuula Seppo, erityisasiantuntija

Transkriptio:

HELIA 1 (19) Luento 9 Suunnittelumenetelmien soveltuvuudesta... 2 Sovellustyyppi... 2 Projektikohtaiset tekijät... 3 Henkilöstötekijät... 3 Ongelma-alueeseen liittyvät tekijät... 3 Tuotteeseen liittyvät tekijät... 4 Resursseihin liittyvät tekijät... 4 Organisaatiotekijät... 4 Suunnittelumenetelmien paremmuudesta... 5 Millainen on parempi lopputuote?... 6 Millainen on parempi kehitysprosessi?... 8 Suunnittelumenetelmän valinnasta... 9 Taas kriteerejä... 10 Vaatimukset muuttuvat... 11 Ohjelman suunnittelusta... 12 Kuvauksista ohjelmaksi?... 13 Rakenteellinen ohjelmointi... 14 Rakenteet... 14 Kontrollirakenteet... 15 Tietorakenteet... 16 Modulaarisuus... 18 Ohjelmakoodi dokumenttina... 19

HELIA 2 (19) Suunnittelumenetelmien soveltuvuudesta Sovellustyyppi 1. Liiketoimintatietojärjestelmä Tiedon tallennus ja haku keskeistä Isot tietokannat Paljon yhtäaikaisia käyttäjiä Transaktion hallinta tärkeää Heym, Österle 2. Toimistautomaatio työasemaohjelmat toimistotyöympäristö tekstinkäsittely, taulukkolaskenta, kullakin ohjelmalla yksi käyttäjä 3. Teollisuusautomaatio Toisen laitteen valvonta ja hallinta Mekaaninen / kemiallinen tuotanto 4. Tietokoneavusteiset suunnittelu- ym. työkalut Toisen teknisen tuotteen suunnittelun apuväline CAD, CAM, CASE Kaikki CA (Computer Aided) tekniikka (?) 5. Tiedonvälitysohjelmisto Tiedonvälitys tietojäresjtelmien välillä Tiedoston siirto, sähköposti, sähköinen kauppa, 6. Tekoälyohjelmisto 7. Työryhmäohjelmistot Piirteitä tiedonvälitys- ja liiketoimintaohjelmistoista Asiakirjanhallintajärejstelmät, work-flow,

HELIA 3 (19) Projektikohtaiset tekijät Henkilöstötekijät Alexander - Davis Tekijä 1 2 3 Käyttäjien Aloittelija Kokenut Asiantuntija kokemus sovellusalueesta Käyttäjien kyky Huono Normaali Hyvä ilmaista vaatimuksia Kehittäjien Aloittelija Kokenut Asiantuntija kokemus sovellusalueesta Kehittäjien yleinen ammattitaito Aloittelija Kokenut Asiantuntija Ongelma-alueeseen liittyvät tekijät Tekijä 1 2 3 Sovellusalueen Uusi Normaali Vakiintunut kypsyys Ongelman kompleksisuus Yksinkertainen Vaikea Monimutkainen Mahdollisuus Välttämätön Toivottava Mahdoton toimittaa osittain toimiva tuote Muutostiheys Usein Jonkin Harvoin verran Muutosten koko Hyvin suuria Tavanomaisia Pieniä

HELIA 4 (19) Tuotteeseen liittyvät tekijät Resursseihin liittyvät tekijät Organisaatiotekijät Tekijä 1 2 3 Tuotteen koko Suuri Keskikokoinen Pieni Tuotteen kompleksisuus Monimutkainen Vaikea Yksinkertainen Tuotteen Joustavat Kohtuulliset Vaativat laatuvaatimukset Käyttöliittymävaatimukset Vähäiset Merkittävät Kriittiset Tekijä 1 2 3 Rahoitusprofiili Loppupainoinepainoinen Alku- Tasainen Rahoituksen Niukka Riittävä Runsas saatavuus Henkilöstön Loppupainoinepainoinen Alku- Tasainen saatavuusprofiili Henkilöstön Niukka Riittävä Runsas saatavuus Yhteydet loppukäyttäjiin Puuttuvat Rajoitetut Hyvät Tekijä 1 2 3 Projektinhallintakäytännöt Tiukka Joustava Väljä Laadunvalvonnan taso Heikko Keskinkertainen Edistyksellinen

HELIA 5 (19) Suunnittelumenetelmien paremmuudesta Menetelmän käytön tavoitteet: 1. laadukas rakennusprosessi 2. laadukas järjestelmä / tuote 3. tyytyväinen asiakas

HELIA 6 (19) Millainen on parempi lopputuote? Hyväksyttävyys Käyttäjän näkökulma Luotettavuus Toiminnallisuus Tavoitettavuus Oikea-aikaisuus Oppimisen helppous Yhtenäisyys Yksinkertaisuus Läpinäkyvyys Käyttökelpoisuus / Käytettävyys Testattavuus Omistajan näkökulma Kannattavuus Joustavuus muutoksille Ylläpidettävyys Taloudellisuus Tehokkuus Skaalautuvuus Kehittämisen nopeus acceptability reliability functionality availability timeliness ease of learning cohesiveness simplicity visibility usability testability feasibility flexibility maintainability economy efficiency scalability Ylläpitäjän / tietohallinnon näkökulma Yhteensopivuus compatibility Vikasietoisuus robustness Turvallisuus security Siirrettävyys portability Modulaarisuus low coupling Hyvä dokumentointi

HELIA 7 (19) Amerikkalainen kehittämiskulttuuri Yrityksen johto päättää, mitä tietojärjestelmiä ja kuinka yrityksen asioiden hoitamiseen käytetään Tavoitteena mahdollisimman korkea tuottavuuden nousu Käyttäjien tehtävä on käyttää yrityksen johdon heille tarjoamia työvälineitä (tietojärjestelmiä) Käyttäjien mielipiteitä ei juuri kuulla järjestelmän suunnittelun ja toteuttamisen aikana Pohjoismainen kehittämiskulttuuri Yrityksen työntekijät ovat mukana kehittämässä yrityksen toimintaa Työntekijöiltä odotetaan oman työnsä kehittämistä Yrityksen työntekijöitä kuullaan sovelluksia suunniteltaessa Projekti voidaan jopa antaa heidän johdettavakseen

HELIA 8 (19) Millainen on parempi kehitysprosessi? Ä Johdettavampi, hallittavampi, valvottavampi Ä Tuottavampi Ä Ennustettavampi Ä Riskien parempi hallinta Ä Nopeampi Ä Ammattitaitovaatimuksia vähemmän Ä Halvempi Ä Laadukkaampi tuote Å Koneelle tehtäväksi! Å CASE-välineet

HELIA 9 (19) Suunnittelumenetelmän valinnasta Menetelmän pitäisi tarjota suunnittelijalle paras tapa kehittää järjestelmä MENETELMA ONGELMA YMPARISTO SUUNNITTELU & TOTEUTUS TULOS TIEDOT & TAIDOT TAVAT & ASENTEET Ä Pysyykö tulos samana jos tekijät vaihtuu? Ä Pysyykö tulos samana jos tekijä tekee sen uudelleen?

HELIA 10 (19) Taas kriteerejä 1. Kattavuus suhteessa ohjelman elinkaareen 2. Ovatko vaiheet hyvin määriteltyjä 3. Miten vaiheiden tulokset esitetään 4. Millaisiin sovelluksiin menetelmä soveltuu 5. Tukeeko tietokannan suunnittelua 6. Tukeeko toiminnallisuuden suunnittelua 7. Tukeeko käyttöliittymän suunnittelua 8. Tukeeko käyttäjien osallistumista & sitoutumista 9. Tukeeko laadunvarmistusta 10. Tukeeko aikataulutusta ja kustannusarviointia 11. Tietokoneavusteisuus Tasoajattelun tuki? 1. Käsitetaso käyttäjien kieli 2. Looginen taso kohteiden ominaisuudet, suhteet ja käsittely 3. Fyysinen taso kohteiden ominaisuudet, suhteet ja käsittely atk-toteutuksena

HELIA 11 (19) Vaatimukset muuttuvat Ennen Opeteltiin perusteellisesti yksi suunnittelumenetelmä Vaiheistettiin suunnittelu ja toteutus kiinteällä tavalla Liitettiin menetelmään tietyt dokumentointikäytännöt Kaikkia suunnitteluongelmia lähestyttiin samalla menetelmällä Ts suunnitteluongelma, tilaajat, käyttäjät, suunnittelijat ja toteuttajat sopeutuivat valittuun menetelmään Nyt Käytössä useita menetelmiä, joita voidaan käyttää jopa rinnan eri tavoin yhdistellen Suunnittelun ja toteutuksen vaiheistus ei ole yhtä selkeä Kiinteää dokumentointitapaa ei välttämättä ole Suunnitteluongelman luonne määrää käytettävän menetelmän ja sen soveltamistavan Ts. suunnittelutyö määrää menetelmän. Suunnittelijoiden ja toteuttajien tulisi osata soveltaa useampia suunnittelu- ja toteutusmenetelmiä Tilaaja ja käyttäjä osallisena paitsi suunnittelu myös toteutustyössä

HELIA 12 (19) Ohjelman suunnittelusta Varmista että olet ymmärtänyt ohjelman tehtävän ennen ohjelmoinnin suunnittelua. Täsmennä puutteet tai epäselvyydet. Selvitä kaikkien käytettävien tietojen rakenteet ja saantitavat. Selvitä kaikki käsittelysäännöt. Tarkenna tarvittaessa käyttöliittymäkuvauksia Varmista vaatimukset loppukäyttäjien kanssa Käyttöliittymä Sovelluslogiikka Tietoliikenne Käyttöliittymä Tiedonhallinta Tiedonhallinta

HELIA 13 (19) Kuvauksista ohjelmaksi? Määrittely- (ja suunnittelu-) vaiheessa tuotettujen kuvausten perusteella suunnittelijoiden (ja toteuttajien) pitäisi pystyä suunnittelemaan (ja toteuttamaaan ) ohjelma Kuvausta lukevat Tilaajat Käyttäjät Määrittelijät Suunnittelijat Toteuttajat Ä Mistä yhteinen (kuvaus)kieli Tilaajan pitää ymmärtää kuvaus, jotta hän voisi sen hyväksyä Suunnittelijan pitää ymmärtää kuvaus, jotta hän voi tehdä sen perusteella työmääräarvion Käytännön ratkaisut: a) Seinätaulutekniikka b) Proto Ä Miten paljon prototyyppiin saa tulla muutoksia sen hyväksymisen jälkeen?

HELIA 14 (19) Rakenteellinen ohjelmointi Ohjelmoinnissa on viimeisen kolmenkymmenen vuoden aikana nähtävissä 4 murrosta. 1. Siirtyminen assemblereistä lausekieliin. 2. Rakenteellisen ohjelmoinnin läpimurto. 3. Sovelluskehittimien ja CASE-tuotteiden hyödyntäminen 4. Olio-ohjelmoinnin ja suunnittelun käyttöönotto. Rakenteet ohjelmat helppolukuisempia ohjelmat helpompia ylläpitää 1. Kontrollirakenteet 2. Tietorakenteet

HELIA 15 (19) Kontrollirakenteet 1. Peräkkäisrakenteet 2. Valintarakenteet (if-lauseet, case-lauseet, ) 3. Toistorakenteista. (do until, do while ) Å Sodanjulistus goto-käskyille. Å Sodanjulistus pitkille ohjelmapötkylöille Täydellinen tuki rakenteelliselle ohjelmoinnille tuli yleisesti käytettyihin ohjelmointikieliin 80-luvulla.

HELIA 16 (19) Tietorakenteet Skalaarit tietotyypit kokonaisluku, liukuluku, binääriluku, totuusarvo, merkkijono Skalaarien tietotyyppien operaatiot on tavallisesti tarkoin määritelty ohjelmointikielen määrittelyssä Rakenteiset tietotyypit Rakenteeltaan määritelty kokonaisuus skalaareja tietotyyppejä Muodostetaan pääsääntöisesti skalaarien tietotyyppien avulla Lisäksi voidaan käyttää osoittimia tai viittauksia Rakenteisten tietotyyppine käsittely vaihtelee jossain määrin ohjelmointiympäristöstä toiseen Tyypillisiä rakenteita taulukot ja tietueet Vektorirakenteiden lisäksi osoittimien avulla toteutettavat dynaamiset rakenteet Listat Pinot Puut Abstraktit tietotyypit käyttäjän määrittelemät Oliot Olion toteutus aina yksilöllinen, ei siis ohjelmointiympäristön määräämä Olion määrittelyn yhteydessä määritellään sekä tietorakenne että sallitut operaatiot Å Muuttujien esittely

HELIA 17 (19) Modulaarisuus Ongelman (ja ohjelman) jäsentäminen itsenäisiin alitehtäviin (aliohjelmiin) Aliohjelmat eli ohjelmamodulit ovat mahdollisimman riippumattomia muusta koodista, ts. jäsentäminen tehdään siten, että modulien välillä on mahdollisimman vähän tiedonvaihtoa Hyvin määritellyt rajapinnat: Tiedonvälitys mieluiten palautusarvon ja parametrien kautta. Ao. rajapinta ainoa liitos ulkomaailmaan, Globaaleja muuttujia mahdollisimman vähän Ylläpidettävyys paranee: Muutokset ohjelmien eri osissa vaikuttavat mahdollisimman vähän muualla. Toisaalta muutos yhdessä paikassa riittää Uudelleenkäytettävyys paranee Moduleita voi kopioida ohjelmasta toiseen. Työn jaon mahdollisuudet paranevat Voi olla vaikea toteuttaa (joskus myös vaikea ymmärtää ) Modulilla voidaan viitata a) Ohjelman sisäiseen aliohjelmaan / funktioon b) Ohjelman ulkopuolella sijaitsevaan ohjelmakirjastoon joka linkitetään sovellusohjelmaan Modulille määritellään Nimi Parametrit Palautusarvot, jos kyseessä on funktio

HELIA 18 (19) Ohjelmakoodi dokumenttina Vakioille on annettava nimet - ei lukuliteraaleja koodiin. Vakioille, muuttujille, aliohjelmille ja funktioille tulee antaa kuvaavat nimet, ei kryptisiä lyhenteitä. Litterääriohjelmointi: koodi ja selitykset samassa tiedostossa Viittaukset suunnitteludokumentteihin (?)