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)