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



Samankaltaiset tiedostot
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1

Visual Basic -sovelluskehitin Juha Vitikka

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

5. HelloWorld-ohjelma 5.1

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Johdatus ohjelmointiin

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Ohjelmointi 1 / syksy /20: IDE

Käännös, linkitys ja lataus

5. HelloWorld-ohjelma 5.1

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

11/20: Konepelti auki

Sovellusarkkitehtuurit

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmistojen suunnittelu

Suunnitteluvaihe prosessissa

Ohjelmointi 1. Kumppanit

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

Uudelleenkäytön jako kahteen

Integrointi. Ohjelmistotekniikka kevät 2003

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Johdanto kurssin sisältöön

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

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

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Virtuaalikoneiden generointi Vmgen-kääntäjällä

Opetusmateriaalin visuaalinen suunnittelu. Kirsi Nousiainen

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

TKT224 KOODIN KOON OPTIMOINTI

Ylläpito. Ylläpidon lajeja

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Used with permission of Microsoft. Kulttuurihistoria Syyskuu 2015

VYPEdit verkkosivualusta SVY-toimijoille

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Lisää pysähtymisaiheisia ongelmia

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

Tapahtuipa Testaajalle...

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

Ohjelmoinnin perusteet, syksy 2006

Projektinhallintaa paikkatiedon avulla

Visual Case 2. Miika Kasnio (C9767)

Nimi: Opnro: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä. 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla:

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Ohjelmistotekniikka - Luento 2

15. Ohjelmoinnin tekniikkaa 15.1

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

16. Ohjelmoinnin tekniikkaa 16.1

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

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

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg

Ohjelmoinnin perusteet Y Python

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Kieliversiointityökalu Java-ohjelmistoon. Ohje

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

WINE API ja Virtualisointiohjelmistot

2 Konekieli, aliohjelmat, keskeytykset

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

Ohjelmoinnin perusteet Y Python

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

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

ASTERI KIRJANPITO KIELIVERSION OHJE

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Tietojärjestelmän osat

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

Kemian tekniikan kandidaattiohjelman ohjelmointikurssi (5 op)

Tietokoneen toiminta (Computer Organization I)

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Asiakas ja tavoite. Tekninen toteutus

SAIRAALALII'ITO. XVI VALTAKUNNALLISET ATK-PÄIVÄT , Lappenranta, hotelli Lappee

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

Ohjelmiston testaus ja laatu. Testaustasot

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli

Tietokoneen toiminta (Computer Organization I)

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

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

Tekstinkäsittelyn jatko KSAO Liiketalous 1

Apuja ohjelmointiin» Yleisiä virheitä

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

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

Liittymät Euroclear Finlandin järjestelmiin, tietoliikenne ja osapuolen järjestelmät Toimitusjohtajan päätös

Tietotekniikan Sovellusprojektit

16. Ohjelmoinnin tekniikkaa 16.1

AutoCAD-natiiviobjektin toteutus

Transkriptio:

HELIA 1 (17) Luento 11 Ohjelmistokehityksen työkaluista... 2 Ohjelmointikielten sukupolvet... 2 Ohjelman palveluhierarkia... 4 Ohjelman suoritus... 5 Tulkki... 5 Kääntäjä... 6 Sovelluskehitin... 7 CASE... 9 Välineiden vertailukriteerejä... 10 Opastus ja ohjeet... 11 Ruutuopasteet... 12 Windows-opasteet... 13 Opastuksen päätyypit Windows käyttöliittymässä... 13 Opastuksen suunnittelu... 14 Ulkoasu... 14 Sisältö... 15 Help-tiedosto... 16 Projektitiedosto... 16 Hypertekstilinkit... 17

HELIA 2 (17) Ohjelmistokehityksen työkaluista Ohjelmointikielten sukupolvet 1. sukupolvi konekielet ohjelmointi konekielisiä käskyjä bittijonoina 2. sukupolvi symboliset konekielet ohjelmointi: symbolisen konekielen käskyjä (ADD 1, R4) 3. sukupolvi (3GL) lausekielet yhdestä lausekielen lauseesta generoituu useita konekielisiä käskyjä 4. sukupolvi (4GL) sovelluskehittimet miten ohjelmoinnista mitä -ohjelmointiin näytönkäsittely ja ohjelmointi rakennetaan tietokannan päälle CASE tuotteet miten ohjelmoinnista mitä -ohjelmointiin ei ohjelmoida vaan määritellään koodi generoidaan lopuksi, mahdollisesti eri ympäristöihin 5. sukupolvi?

HELIA 3 (17) Abstraktiotason nousu! yksityiskohtaisesta yleisempään mitä vähemmän koodia on kirjoitettava tietyn toiminnon aikaansaamiseen Korkean abstraktiotason edut keskitytään sovellusalueen ongelmiin, ei ohjelmointiongelmiin sovelluksen toteutus nopeampaa Korkean abstraktiotason haitat kaikkia sovelluksen yksityiskohtia ei saa juuri sellaisiksi kuin haluaisi 4GL-kielet tyypillisesti tietokeskeisiä sovelluksen toteutus alkaa tietokannan toteutuksesta / määrittelystä sovelluksen muut osat perustuvat tietokannan hyödyntämiseen Toimintokeskeiset välineet Käyttöliittymäkeskeinen tai selvästi toimintopainotteinen sovellusalue Modernit välineet tukevat käyttöliittymän suunnittelua

HELIA 4 (17) Ohjelman palveluhierarkia 5. Kohdealueesta riippuvat palvelut esim. tukkukaupan peruspalveluiden toteutus 4. Yleiskäyttöiset, kohdeympäristöstä riippumattomat palvelut funktiot, aliohjelmat, oliot 3. Ohjelmointikielen palvelut 2. API-palvelurajapinnat KJ-palveluja laajentavat rajapinnat (NetBIOS, ODBC, ) 1. Käyttöjärjestelmätaso KJ:n palvelut (keskeytykset, ) 0. Laitteistotaso laitteiden välinen kommunikaatio

HELIA 5 (17) Ohjelman suoritus Tulkki Ohjelmaa ei erikseen käännetä ja linkata ennen sen ajoa Käännös ja linkkaus tehdään ohjelman suorituksen aikana Käännös vaatii tyypillisesti runsaasti aikaa Tulkattavien ohjelmien suorituskyky on merkittävästi huonompi kuin käännetyn ohjelman Etuja Ohjelmointikieli tyypillisesti helppo oppia Ohjelman kehityksessä vähemmän työvaiheita Tarjolla integroituja kehitysympäristöjä (sisältävät näytönhallinnan ja tiedonhallinnan) Ohjelmointikieli on usein ilmaisuvoimaisempi (?) ts. koodintarve vähäisempi Tulkkaavat ympäristöt on helpompi siirtää laitealustalta toiselle (?) Haittoja Hidas Resurssisyöppö Tulkattavaa ohjelmaa ei välttämättä voida liittää osaksi muilla välineillä toteutettua ohjelmistoa Virheiden selvitys yleensä hankalaa

HELIA 6 (17) Kääntäjä Kääntää lausekielellä kirjoitetut ohjelmat konekielelle Käännöksen jälkeen ohjelma linkataan kirjasto-ohjelmiin ja / tai muihin sovellusohjelmanohjelman osiin ts. linkkaus kokoaa yhteen erikseen käännettyjä itsenäisiä ohjelman osia ja muodostaa niistä yhden kokonaisuuden eli suoritettavan ohjelman Ohjelman ilmentymät eri käännösvaiheissa: 1. Lähdekielinen ohjelma 2. Käännetty ohjelma 3. Suoritettava ohjelma Etuja Nopea ja tehokas Kääntäjään perustuvia sovelluskomponentteja voidaan liittää muilla kehitysvälineillä tuotettuihin sovelluksiin Muilla kehitysvälineillä tehtyjä komponentteja voidaan helpommin liittää kääntäjään perustuvaan toteutukseen API-rajapinnat (Application Programming Interface) on tyypillisesti määritelty C tai C++ -kielen avulla. Palvelun hyödyntäminen on helpointa samalla kielellä Useimmat standardoidut ohjelmointikielet on tarkoitettu kääntäjillä toteutettaviksi Virheselvitys yleensä helpompaa (debuggeri kehitysympäristössä) Haittoja Kielet tyypillisesti laajoja ja työläämmin opittavissa Työmäärältään yleensä mittava vaikkei ongelma olisikaan Isomman ohjelman ylläpito aina työläämpää Samasta ohjelmointikielestä on laite- / toimittajakohtaisia murteita

HELIA 7 (17) Sovelluskehitin Tavoitteena sovelluksen nopea & vaivaton kehitys Työkalussa mukana tyypillisesti näytönkehitin, valikkokehitin, raporttikehitin, ohjelmointikieli, joskus myös tietokannan luomiseen ja ylläpitoon soveltuva väline Välineistöllä voidaan yleensä toteuttaa koko sovellus Sovelluksen kehitys alkaa tietokannan luonnilla Sovellusalueesta riippuen saatetaan selvitä hyvin vähällä ohjelmoinnilla, ts. pääasiassa määritellään ja maalataan näyttöjä ja raportteja Sovellus vaatii toimiakseen tyypillisesti myös ajoympäristön installoimisen (työasemaan) Käyttöliittymä ja sovelluslogiikka yleensä samassa koodissa Voivat ohjata epä-modulaariseen ohjelmointitapaan

HELIA 8 (17) Omavaraisjärjestelmät Ohjelmointikieli, tiedonhallinta ja näytönhallinta on yhdistetty samaan tuotteeseen Toteutus on yleensä tulkkaava Tietokanta ei tyypillisesti sovellu tapahtumankäsittelyyn Tietokanta voidaan tarvittaessa korvata tehokkaammalla ja monipuolisemmalla tiedonhallintajärjestelmällä, johon ollaan yhteydessä esim. ODBC-rajapinnan välityksellä Kääntävät ympäristöt Kehittimellä tehdystä määrittelystä käännetään kehitintoimittajan oman tai yleisen ohjelmointikielen mukaista lähdekoodia Joissain kehittimissä samasta määrittelystä voidaan tuottaa esim. C- tai Java kielinen versio Koodin generointi tapahtuu tyypillisesti vain määrittelystä koodiksi, muunnos toisinpäin on vaikeaa

HELIA 9 (17) CASE Computer Aided Systems Engineering Määritellään sovellus tieto- (ja toiminto-) pohjaisia suunnittelumenetelmiä käyttäen Esim Oraclen Designer / 2000:ssa: Prosessianalyysi Käsiteanalyysi Toimintohierarkia generointi generointi Tietomalli Modulimalli (tietokäytöt) generointi generointi Tietokannan Ohjelmamodulirungot Luontilauseet Tietokanta voidaan toteuttaa määrittelemällä ja generoimalla alusta loppuun Mikäli ohjelman kehityksessä pidättäydytään koodigeneraattorien tuottamaan tulokseen ei käyttöliittymien laatu ole häävi

HELIA 10 (17) Välineiden vertailukriteerejä Tyypillinen sovellusalue? Välineen asema sukupolviluokituksessa? Välineen abstraktiotaso? Perusfilosofia: Tieto- / toiminto- / oliopohjaisuus / muu? Suoritustapa: kääntävä, tulkkaava? Tukeeko protoilua Tukeeko tietokantoja, ja millaisia? Sisältääkö oman tietokannan? Virheiden jäljityspalvelut Valmisosien liitäntämahdollisuudet (esim. VBX, OCX, OLE, tms.) Hajautuksen tuki? Laitealustarajoitukset? Resurssivaatimukset?

HELIA 11 (17) Opastus ja ohjeet Periaatteessa ohjelmien käytössä pitäisi riittää, että tietää, mitä haluaa tehdä esim. kirjanpito-ohjelma ei saisi edellyttää käyttäjältä muuta kuin kirjanpitotaitoja Ts. ohjelman pitäisi vaatia mahdollisimman vähän sellaista tietoa, mikä ei liity kirjanpitoon Tavoittamaton tavoite! Å Käyttöoppaista ja opasteista on kuitenkin pyrittävä tekemään tarpeettomia! Opasteet (ja käyttöohjeet) ovat osa sovellusohjelmaa! Ä myös niille asetettavat vaatimukset pitäisi selvittää käyttäjien tarpeista lähtien Viestinnän hyötysuhde on yleensä huono: Käyttäjät eivät tyypillisesti lue, muista eivätkä aina ymmärräkään ohjeita (kunnes on pakko )

HELIA 12 (17) Ruutuopasteet Etuja Ruutuopasteet ovat aina saatavilla Ruutuopasteet voivat liittyä suoraan käsillä olevaan ongelmaan (tietoon / tehtävään) ns. context-sensitive help Ruutuopasteet voivat tarjota tehokkaita avun etsimiskeinoja Ruutuopasteet eivät vie pöytätilaa Ruutuopasteet ovat ajantasalla (ei vanhoja versioita) Haittoja Hypertekstidokumentin hahmottaminen on käyttäjälle vaikeaa (paperidokumentin rakenne on helpompi) Kuvaruutu on pieni tarpeellisen informaation esittämiseen Kuvaruudulla huonompi resoluutio silmät väsyvät Kuvaruudun muoto houkuttelee käyttämään liian pitkiä tekstirivejä ja luettavuus kärsii. Fysiologisesti rivin optimipituus on n. 40-50 merkkiä Ä Sama materiaali ei sellaisenaan käy käyttöohjeeksi ja ruutuopasteeksi Kerrallaan näkyvä informaatioannos on ruudulla ja paperilla erilainen Ruutu tarjoaa tehokeinoja, joita paperi ei tarjoa (vilkutus, animointi) Tiedon hakumenetelmät ovat erilaiset Ruutuopasteissa voidaan käyttää hypertekstiä Ruutuopasteissa voidaan ottaa huomioon ohjelman tila

HELIA 13 (17) Windows-opasteet Opastuksen päätyypit Windows käyttöliittymässä 1. Tilannekohtainen opastus (context-sensitive help) Kaikille käyttöliittymän kontrolleille 2. Toimintokohtainen opastus Kaikille sovelluksen toiminnoille 3. Työkaluvihje Kaikille työkalurivin ikoneille tai muille tekstittömille ja riittämättömällä tekstillä varustetuille toimintokontrolleille 4. Tilarivin hyödyntäminen tarvittaessa ohje, viesti, virheilmoitus

HELIA 14 (17) Opastuksen suunnittelu Ulkoasu Suunnittele opastukselle tyyli: 1. Otsikko Opastussivun merkityksen selvästi kertova otsikkoteksti Otsikon tulee erottua selvästi muusta tekstistä Fontti voi olla päätteellinen tai päätteetön Kirjasinkoko riittävän suuri Esim Arial 14-18 2. Ingressi Opastusotsikon jälkeen seuraava muutaman rivin mittainen selvitys opastussivun keskeisestä sisällöstä joko sama leipätekstin kanssa tai siitä erottuva. älä käytä erottamiseen vahvennusta 3. Leipäteksti Varsinainen opastus Korkeintaan 2 sivua (sivu = kerrallaan nähtävissä oleva opastusteksti) Leipätekstin kirjasinlaji alaviivaton, paitsi jos tekstissä on pitkiä rivejä ja pitkiä kappaleita Esim Arial 10 Älä käytä sekaisin useita eri kirjasinlajeja, lihavointeja, kallistuksia, Älä valitse eksoottisia kirjasinlajeja Toteuta tyyli tekstinkäsittelyohjelmaan, joka tukee RTF-tiedostomuotoa

HELIA 15 (17) Sisältö Suunnitteluvaiheessa Kerätään sovelluksen keskeinen terminologia Kukin termi ja sen lyhyt selostus tallennetaan suoraan opastustiedostoksi Protoiluvaiheessa Laaditaan opastuksen yleiskuvaus Keskeisten toimintojen opastus tallennetaan erilliseen käyttöliittymäoliokohtaiseen opastustiedostoon Toteutetaan sovelluksen keskeisten kontrollien tilannekohtainen opastus. Opastusta täydennetään tarvittaessa myöhemmin Å Sovelluksen yleiskuvaus, terminologia, keskeisten toimintojen opastus ja käyttöliittymäoliokohtainen opastus sidotaan yhdeksi kokonaisuudeksi Å Ohjetiedoston osat 1. Päähakemisto 2. Sovelluksen yleiskuvaus (lyhyt) 3. Sovelluksen keskeinen terminologia 4. Sovelluksen keskeiset toiminnot 5. Sovelluksen käyttö yrityksen tehtävien hoidossa 6. Käyttöliittymäoliokohtainen opastus

HELIA 16 (17)