OSAII: Käytännön rutiinit. Ohjelmiston suunnittelu
|
|
- Jutta Saarinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 OSAII: Käytännön rutiinit Projektin hallinta Ohjelmiston vaatimusten määrittely Ohjelmiston suunnittelu Ohjelmointi Testaus ja laadunvarmistus Ylläpito Ohjelmiston suunnittelu Ohjelmiston suunnittelun tavoite Suunnitteluperiaatteet modulaarisuus, kiinteys, kytkentä,... arkkitehtuurimallit, patternit, frameworkit Suunnittelumenetelmät toimintokeskeiset tietorakennepohjaiset olioperustaiset Suunnitteludokumentti, katselmus Erityisteemat: käyttöliittymät, suorituskyky
2 Ohjelmistosuunnittelun tavoite Ensimmäinen kehitystyövaihe ohjelmiston sisäinen malli vaatimusmäärittely antaa ulkoisen mallin suhteessa ohjelmointikieleen yms. Konkreettiset suunnittelun osat tietosuunnitelma - arkkitehtuurisuunn. toimintasuunn. - liittymäsuunnitelma Suunnittelun osa-alueet Arkkitehtuurisuunnittelu - architecture d. korkean tason elementit & suhteet Toimintosuunnittelu - procedural design arkkitehtuurisuunnitelman prosessit tarkentuvat komponenttien toimintokuvauksiksi Tietosuunnittelu - data design käsitekaavioista ja tietohakemistosta tietorakenteiksi Liittymäsuunnittelu - interface design ulkoisten liittymien toiminta, käyttöliittymä
3 Ohjelmistosuunnittelun tasot Yleissuunnittelu -product/system/preliminary d. järjestelmän kokonaisrakenne yhteiset tietorakenteet/varastot jako alijärjestelmiin, kommunikointi Yksityiskohtainen suunnittelu - detailed/program/module design moduulien sisäiset rakenteet algoritmit, tietorakenteet/varastot Suunnittelun ongelmia Ohjelmistosuunnitelman sopivien hierarkioiden ja abstraktiotasojen löytäminen tiedon ja toimintojen abstraktiot Moduulien löytäminen suunnittelun tuloksen tarjottava yksinkertaiset liittymät moduulien välillä (ja ympäristöön), itsenäiset moduulit ilman sivuvaikutuksia
4 Suunnittelun nyrkkisääntöjä Ole laajakatseinen, mieti vaihtoehtoisia lähestymistapoja Uudelleenkäytä tunnettuja ratkaisuja käytä välitason abstraktioita: ohjaa suunnitelman tarkastelija riittävän pienissä askeleista reaalimaailman vaatimuksista ohjelmiston sisältämiin algoritmeihin välitasoista syntyy kontrollimoduuleita Suunnittelun nyrkkisääntöjä... Varaudu muutoksiin (dokumentoidusti) Varaudu poikkeustilanteisiin poikkeus normaalista toimintotapauksesta on normaali osa ohjelmistoa! Älä ohjelmoi, muista abstraktiotaso Huolehdi laadun suunnittelusta Sido suunnitelman kohdat vaatimuksiin Iteroi!
5 Suunnittelun nyrkkisääntöjä... Mikä olikaan suunnittelun %osuus projektin resurssikulutuksesta? Suunnitteluvirheen korjauskustannus? Tavoite: MITÄ ja MITEN? Ohjelmiston suunnittelu Ohjelmiston suunnittelun tavoite Suunnitteluperiaatteet modulaarisuus, kiinteys, kytkentä,... arkkitehtuurimallit, patternit, frameworkit Suunnittelumenetelmät toimintokeskeiset tietorakennepohjaiset olioperustaiset Suunnitteludokumentti, katselmus Erityisteemat
6 Suunnitteluperiaatteet Suunnitelman toivottavat ominaisuudet modulaarisuus kiinteys (cohesion) kytkentä (coupling) tiedon kätkeminen (information hiding) ylläpidettävyys (maintainability) Modulaarisuus Yksityiskohtaisen suunnittelun tasolla ohjelmisto on jaettu erillisiin nimettyihin (usein erikseen käännettäviin) osiin tietorakenteet yleensä moduulien yksityisiä, käyttö operaatioiden kautta julkiset operaatiot liittymänä moduuliin vrt objektit koko (30LOC?) vs liittymien lukumäärä (3?)
7 Modulaarisuus Yleissuunnittelun tasolla osajärjestelmä megamoduuli toteuttaa yhden selkeän tehtäväkokonaisuuden vaatimusmäärittelyn kannalta katsottuna rajapinnat, ohjelmamoduulit suhteessa osajärjestelmään Moduulihierarkkiat Moduulihierarkkia - ohjston rakennekuvaus kutsurakenne puumallina syvyys: maksimipolku juuresta lehteen leveys: sisarusten maksimilukumäärä sisäänhaarautuminen (fan in): kutsujien lukumäärä uloshaarautuminen (fan out): kutsuttavien lukumäärä
8 Moduulihierarkkiat. Pyrkimyksiä kehäkytkennät -> vaikeuksia puurakenteen muoto elliptinen tasomallin käyttö osajärjestelmien erityistehtävät omina moduuleinaan kaikkien osajärjestelmien yhteisesti tarvitsemat perustehtävät alempana abstraktina koneena, alustana (platform), infrastruktuurina Kiinteys (cohesion) Moduuli on kiinteä jos kaikki sen osa palvelevat yhtä ainoaa osatehtävää moduuli ei ole kiinteä jos se sisältää toisiinsa heikosti suhteessa olevia osia lisää moduulin ylläpidettävyyttä lisää mahdollisuuksia uudelleenkäyttöön
9 Kiinteyden asteita Satunnainen kokoelma Samantyyppisiä tehtäviä (esim tulostus) Samaan aikaan/etenemisjärjestyksessä tarvittavia osia Yhteisiä tietorakenteita käyttäviä osia (objektit) Moduulin osat tuottaja-kuluttajasuhteessa Toimintakokonaisuuteen perustuva Kytkentä (coupling) Kuvaa vuorovaikutuksia moduulien välillä Heikosti kytkettyjä moduuleja helpompi ylläpitää muutokset eivät vaikuta muihin moduuleihin
10 Kytkennän asteita Ei vuorovaikutusta Käsiteltävä tieto välitetään yksittäisinä parametreina /rakenteisina parametreina Ohjaustiedon välittäminen parametreina Yhteiskäyttöiset laitteet Yhteiskäyttöinen tietorakenne Sisäisten rakenteiden hyväksikäyttö Tiedon kätkeminen Vain liittymät paljastavat tietoa syötteet, tulosteet, julkiset operaatiot data vs informaatio toteutus, testaus ja ylläpito paikallista suojaus tehostuu
11 Moduulien riippumattomuus Mittarina moduulin sisäinen yhteenkuuluvuus = kiinteys (cohesion) moduulien välisen kytkentäasteen (coupling) pienuus Ylläpidettävyys Modulaarisuus, kiinteys, heikko kytkentä Tiedon piilottaminen Suunnitteludokumentin laatu yleis- ja yksityiskohtaisen suunnittelun välisen suhteen selkeys selkeä suhde vaatimusmäärittelyihin Muutoksiin varautumisen aste Suunnitelman laadukkuus
12 Ohjelmiston suunnittelu Ohjelmiston suunnittelun tavoite Suunnitteluperiaatteet modulaarisuus, kiinteys, kytkentä,... arkkitehtuurimallit, patternit, frameworkit Suunnittelumenetelmät toimintokeskeiset tietorakennepohjaiset olioperustaiset Suunnitteludokumentti, katselmus Erityisteemat Suunnitteluperiaatteet Edelliset lähinnä toiminto/tietosuunn. Millä keinoin suunnitelman toivottuihin ominaisuuksiin (modularisuus, eheys, ) voidaan päästä? Suhde arkkitehtuurisuunnitelmaan?
13 Suunnitteluperiaatteet Ohjelmistoarkkitehtuurit M Shaw, D Garlan: Software Architecture - Perspectives on emerging discipline, Prentice Hall, Arkkitehtuuriratkaisujen uudelleenkäyttö, patternien käyttö, frameworkien käyttö ero abstraktiotasossa jolla käytetään Gamma, Helm, Johnson, Vlissides: Design Patterns: Elements of Reusable Object- Oriented Software. Ohjelmistoarkkitehtuurimalleja Rakennemalli, työnjako ohjelmiston sisällä vrt yleissuunnitelma, yhteyskaavio, systeemisuunnitelma jossa näkyy jako eri toimijatyypeille Komponenttien välinen vuorovaikutus muodostaa arkkitehtuurin perustan Jako muodostaa näkökulman, jonka mukaan tietyt palvelut ja tiedot kuuluvat samaan kokonaisuuteen
14 Ohjelmistoarkkitehtuurimalleja putket ja suodattimet oliot ja palvelut tapahtumapohjainen / reaktiivinen kerrosarkkitehtuuri jaettu tietovarasto tulkki rinnakkaiset prosessit pää-/aliohjelma tilakone asiakas-palvelija putket ja suodattimet -malli tietovuolähestymistapa suodattimet toisistaan riippumattomia tiedonmuokkaajia suodattimen osattava tulkita saapuvaa tietovirtaa (jaettu käsitys rakenteesta) suodattimen ei tarvitse tietää keneltä tieto tulee tai minne se menee rinnakkaisuutta tai peräkkäisyyttä esim. unix-putket
15 Arkkitehtuurimalleja oliot ja palvelut malli olio tarjoaa palveluja palvelun pyytäjän tunnettava tarjoaja ja palvelurajapinta (kutsu- tai viestirakenne) tarjoajien ei tarvitse tuntea pyytäjiä (asiakkaita) tieto kätketty olion sisään tapahtumapohjainen, epäsuoran käsittelyn malli palveluja ei kutsuta suoraan komponentti voi tuottaa tapahtumia (event), joihin toiset komponentit reagoivat tapahtumaan voi reagoida yksi tai useampi komponentti reagoija voi rekisteröityä vastaanottamaan tapahtumia tai tapahtumat hoidetaan yleislähetyksenä ja sille herkistynyt reagoi tapahtuman aiheuttajan ei tarvitse tietää reagoijia, ei välttämättä edes reagoiko joku esim. windows -tapahtumat, tietokantatriggerit
16 Kerrosarkkitehtuuri kukin kerros tarjoaa palveluja seuraavaksi ylemmän tason kerrokselle palvelujen abstraktiotaso kasvaa kerros kerrokselta esim. tietoliikenneprotokollat tason 3 palvelut tason 2 palvelut tason 1 palvelut Kerrosarkkitehtuuri... Ylemmän kerroksen palvelut tuotetaan alemman kerroksen palveluiden avulla eri käsitteistö, ylempänä voimakkaammat välineet Suljetussa kerrosarkkitehtuurissa vain edellisen tason palvelut käytettävissä ylläpidettävyys avoimessa kaikkien alempien tasojen palvelut käytettävissä joustavuus esim käyttöliittymäkerros, OSI-malli
17 Arkkitehtuurimalleja tulkkiarkkitehtuuri virtuaalikone ohjauskieli, jota tulkitaan tila ja tilan esitys rinnakkaiset prosessit prosessien välinen kommunikointi pää-/aliohjelma pääohjelmassa kontrollisilmukka aliohjelmissa erikoispalvelut Arkkitehtuurimalleja Kommunikoinnin toteutustapa on arkkitehtuuritason ratkaisu: aliohjelmakutsu viestinvälitys yhteiset tiedostot tai muistialueet
18 Patterns Suunnittelumalli on systemaattinen tapa ratkaista tietty usein esiintyvä ongelma toimivaksi havaitulla perinteisellä tekniikalla yksityiskohtaisen suunnittelutason malli voi toteuttaa erilaisilla ohjelmontikielillä Suunnittelumallit - rakenne (Design Patterns) tarkoitus eli ratkaistava ongelma sovelluskohteet rakenne, mistä komponenteista malli muodostuu ja miten komponentit liittyvät toisiinsa mallin edut ja haitat sovellusesimerkkejä toteutusvaihtoehtoja (koodirunkoja)
19 Esimerkki: abstract factory Tarkoitus: malli esittää tavan luoda tietyn luokan jälkeläisluokkien ilmentymiä tuntematta näitä luokkia Esimerkki: yleiskäyttöinen käyttöliittymäkirjasto windows kontrolli käyttöliittymä kontrolli motifkontrolli. kontrollit erilaisia eri ympäristöissä kirjaston pitäisi olla yleinen, miten voidaan yleisellä tasolla luoda ilmentymiä mpäristökohtaisille luokille Abstract Factory Client uses AbstractProductA uses uses ConcreteProductA1 ConcreteProductA2 AbstractFactory CreateProductA (...) : abstract CreateProductB (...) : abstract AbstractProductB ConcreteProductB1 ConcreteProductB2 ConcreteFactory1 CreateProductA( ) CreateProductB( ) Concrete factory2 CreateProductA( ) CreateProductB( )
20 Abstract Factory Client (siis hyödyntävä ohjelma) tuntee abstraktin tehtaan ja abstraktit tuotteet ja kutsuu näiden tarjoamia palveluja. Abstraktin tehtaan palvelukutsu ohjautuu konkreettisen tehtaan vastaavaan luontipalveluun, joka siis luo ilmentymän kyseisen tyyppiselle tuotteelle esim windows-kontrollitehtaan luonappipalvelu luo ilmentymän winnappiluokkaan. Abstract Factory sovelle Client uses Nappi uses uses winnappi motifnappi KontrolliTehdas LuoNappi (...) : abstract LuoLiuku (...) : abstract Liuku winliuku motifliuku KontrolliTehdasWin LuoNappi( ) LuoLiuku( ) KontrolliTehdasMotif LuoNappi( ) LuoLiuku( )
21 Abstract Factory Mallilla eristetään konkreettiset tehtaat asiakkaasta Tuoteperhe voidaan helposti vaihtaa toiseksi Asiakkaan tunnettava tuotetyypit, joten uusia tuotetyyppejä ei voida lisätä pelkästään aliluokkia lisäämällä -> muutettava asiakkaan ja abstraktin tehtaan koodia esim. kilistimen lisäys käyttöliittymäkontrolleihin Sovelluskehykset (application frameworks) uudelleenkäytettäväksi tarkoitettua kokoelmaa yhdessä toimivia yleensä abstrakteja luokkia, jotka tarjoavat perusrakenteen ja -toiminnallisuuden tietyn tyyppiselle sovellukselle käyttöliittymäkehykset yleiset sovelluskehykset (MacApp, Borland OWL, ) sovellusaluekohtaiset kehykset,
22 Sovelluskehykset runko, johon esim. perintää jä syrjäyttämistä hyväksikäyttäen voidaan liittää sovelluskohtaista toiminnallisuutta. Runkoluokat kutsuvat abstraktien luokkien operaatioita, jotka sitten konkreettisten jälkeläisluokkien oliot toteuttavat hollywood-periaate: don t call us we call you, kirjastosta kutsutaan sovelluskohtaisia rutiineja Sovelluskehykset kirjaston käyttö sovelluskehystä käytettäessä sovelluskehyskerros= kirjastokerros sovelluskerros
23 Sovelluskehykset normaali aliohjelmakirjaston käyttö sovellustoiminnot function aliohjelmakirjasto Sovelluskehys toteuttaa joitakin (useita) suunnittelumalleja ja tarjoaa niihin perustuvan yleisrakenteen sovellusalueelle (application domain) tyypillisiä erityispalveluja esim CASE-kehys
24 CASE-kehys Kehyskohtaisesti Kaavioikkunoidene hallinta kaavioelementtien luonti, poisto, siirtely kaavioelementtien yhteyksien käsittely kaavion paperitulostus sovelluskohtaisen aliluokan tehtäviä kaavioelementin piirtäminen uusien kaavioelementtien määrittely Patterns vs Frameworks Design patterns more abstract than frameworks desing patterns smaller architectural elements than frameworks design patterns less specialized than frameworks
25 Ohjelmiston suunnittelu Ohjelmiston suunnittelun tavoite Suunnitteluperiaatteet modulaarisuus, kiinteys, kytkentä,... arkkitehtuurimallit, patternit, frameworkit Suunnittelumenetelmät toimintokeskeiset tietorakennepohjaiset olioperustaiset Suunnitteludokumentti, katselmus Erityisteemat Suunnitteluprosessi Asteittain tarkentava suunnittelu selvitä ongelman olennaiset osat vaatimusanalyysi, älä lykkää selvitystehtäviä etsi ratkaisumahdollisuu(k)s(ia) simuloi keskeiset tilanteet, myös poikkeukset valitse yksinkertaisin riittävä/kattava kuvaa hierarkisesti tarkentaen muodosta vastaava rakennekaavio
26 Kuvaa kunkin tarkennustason osaset toiminnot tieto tiukka top-down -suunnittelu ei yksin riitä iteraatio! Esimerkki / toiminta juopottele mene viinakauppaanmene porttikongiin sammu osta kossu juo korkkaa ota 1. ryyppy irvistele loput laula särje pullo
27 Esimerkki / tieto sakkolappu nimi osoite henkilötunnus raha katuosoite postiosoite eurot sentit jako/tarkennushierarkia valokopiokone alustus kopiointi erikoistilanteet virheet... ilmoitukset paperi loppu tukos...
28 ohjelmarakenteita spagettikoodi ohjelma tietorak. ohjelmarakenteita strukturoitu
29 ohjelmarakenteita oliokeskeinen Suunnitteluprosessi Erityisteemoja suunnitelman laadun arviointi ohjelmiston laadun suunnittelu käyttöliittymät suorituskyky
30 Suunnittelumenetelmät Toimintopohjainen Tietopohjainen Oliopohjainen
31 Toimintopohjaiset menetelmät Lähtökohtana toimintopohjainen vaatimusanalyysi: tietovuokaaviot toimintojen hierarkkinen jäsentäminen Suunnitteluvaiheessa jäsennetään ratkaisu samalta pohjalta strukturoitu suunnittelu ylhäältä alaspäin (top-down) (Constantine, Yourdon, Myers) Toimintopohjaiset menetelmät Toiminnan luonne - kaksi päätyyppiä: muunnosjärjestelmä (transform flow): tieto muunnetaan syöttötiedosta tulostiedoksi osat : syöttötietojen käsittely, muunnos ja tulosteiden muodostus
32 Toimintopohjaiset menetelmät tapahtumankäsittelyjärjestelmä (transaction flow): tiedon käsittelyn ydin on tapahtumakeskus, josta käsittely jakautuu moneksi erilliseksi toimintopoluksi osat: syöttötietojen vastaanotto, tapahtumakeskus ja joukko toimintopolkuja Muunnos tietovuokaaviosta ohjelmarakenteeksi Erotetaan vuokaavion pääosat: syöttö - muunnoskeskus - toiminta/tulos Muodostetaan näistä pääosista ylimmän tason rakennekaavio Tarkennetaan kutakin alipuuta,kunnes kaikki vuokaavion solmut on sijoitettu
33 Rakennekaavio: muunnosjärjestelmä: rakennekaavion juureksi valvontasolmu, sen kolmeksi alipuuksi: syöttö, muunnos ja tulostus tapahtumankäsittelyjärjestelmä: rakennekaavion juureksi tapahtumakeskus, sen toiseksi alipuuksi syötteidenvastaanotto ja toiseksi alipuuksi valvontasolmu, jonka alipuina ovat toimenpidepolut Muunnos tietovuokaaviosta ohjelmarakenteeksi valvonta syöttö muunnos tulostus
34 Muunnos tietovuokaaviosta ohjelmarakenteeksi 1 2 tapahtumakeskus syöttö valvonta toim 1 toim 2
35 Horizontal partitioning vertical partitioning suhde työnjakoon projektissa suhde ylläpidettävyyteen Tiedot ja toimintopohjainen suunnittelu Tietovuokuvauksista johdetaan myös kunkin moduulin tietosisällöt, jotka tarkennetaan hierarkkisesti edeten
36 Yksityiskohtainen suunnittelu - algoritmit Algoritmeille useita kuvaustekniikkoja, esim: perinteinen kulkukaavio (flow chart) pseudokoodi rakenteinen kulkukaavio (Nassi- Sneidermann) päätöstaulu Perinteinen kulkukaavio toiminta ehto ehdon arvo nuoli kuvaa kontrollin etenemistä
37 Kulkukaavio: johtaja Turhapuron päivä herää juo kalja F nälkä? T syö kyljys pukeudu F sataa? T katsele tv:tä mene töihin ilta? T F mene nukkumaan pseudokoodi: johtaja Turhapuron päivä begin herää; repeat until mene nukkumaan happens: if nälkä then syö kyljys else juo kalja; if sataa then begin katsele tv:ta; if ilta then mene nukkumaan; end else begin pukeudu; mene töihin; mene nukkumaan; end; end;
38 rakenteiset kulkukaaviot toiminto 1 toiminto 2 toiminto 3 peräkkäisyys while-ehto toiminto while-silmukka toiminto until -ehto do until -silmukka T ehto F 1 2 case-lauseke thentoiminto elsetoiminto toiminto 1... if-rakenne case-rakenne rakenteinen kulkukaavio: johtaja Turhapuron päivä herää F nälkä? T juo kalja syö kyljys F sataa? T pukeudu katsele tv:tä mene töihin mene nukkumaan until nukkumassa F ilta? T mene nukkumaan
39 Päätöstaulut ehdon arvo säännössä säännön tunnus Sääntö n n+1 Ehto i T F Toiminta I Toiminta I+1 x x merkintä siitä, että toiminta suoritetaan kun sääntö voimassa Päätöstauluesimerkki ei merkitystä Sääntö Sairaana Sataa Viikonloppu Töihin Sänkyyn Kylään TV auki T - - x x F T T x F T F x F F T x F F F x kaikki arvoyhdistelmät otettava mukaan (muutoin-vaihtoehtoa voi käyttää)
40 Algoritmin valinta Algoritmin soveltuvuus: virheettömys voimassaoloalue tehokkuus totetutusympäristöstä riippuvat rajoitteet Suunnittelumenetelmät Toimintopohjainen Tietopohjainen Oliopohjainen
41 Tietorakennepohjaiset menetelmät Käsiteltävän tiedon rakenne määrää ohjelmiston rakenteen: peräkkäisyys, ehdollisuus, toisto hierarkkisuus Lähtökohtana tulosteiden, syötteiden, tietokannan, kyselyn, tapahtuman rakenne (esim. Jacksonin JSP, Warnier & Orr) Osatehtävät: tietorakenteiden kuvaaminen perusprimitiivien avulla: peräkkäisyys, vaihtoehtoisuus, toisto tietorakenteen muuntaminen kontrollihierarkiaksi ohjelmistohierarkian tarkentaminen ohjelmiston toiminnallinen kuvaus
42 Tietorakennepohjaiset menetelmät Tyypillisiä sovellusalueita: kaupallis-hallinnolliset sovellukset tietokoneavusteinen suunnittelu ja valmistus (CAD, CAM, CAE) sovellukset, joiden käsittelemällä tiedolla on hyvin määritelty ja hierarkkinen rakenne Esim.: JSP - Jackson Structured Programming (-75) Tietorakenteesta kuvattavissa peräkkäisyys, vaihtoehtoisuus ja toisto Tietorakenteet kuvataan hierakisena kaaviona, joka voidaan esittää myös tekstimuodossa.
43 JSP-rakennekaavio Tuloslista kurssitiedot opiskelija * yhteenveto tunnus nimi arvosana hetu o o JSP-periaate Muodostetaan palveluun liittyviä peräkkäisrakenteita vastaavat tietorakenteet (1 tai useampia) esim. raportin rakennekuvaus, syottötiedostojen rakennekuvaukset. Jos rakenteita on useampia määrätään eri rakennekuvausten rakenneosien vastaavuus kytkemällä vastinosat yhteen. Kutsutaan vastionosien yhteenliittymää osapariksi (yhteenliittymässä voi olla yli 2 osaa) raportin rakenneosa & tietokannan rakenneosa
44 JSP-periaate JSP-periaate Aikaansaatu kytketty tietorakennekaavio muunnetaan ohjelmarakennekaavioksi: moduuli jokaista osaparia kohden moduuli jokaista paritonta kohden Rakenteiden yhteensovittamisessa voi syntyä rakenneristiriitoja (esim raportti eri järjestyksessä kuin syöttöaineisto) Menetelmä tarjoaa standardiratkaisuja näiden hoitamiseen.
45 Ohjelmiston suunnittelu Ohjelmiston suunnittelun tavoite Suunnitteluperiaatteet modulaarisuus, kiinteys, kytkentä,... arkkitehtuurimallit, patternit, frameworkit Suunnittelumenetelmät toimintokeskeiset tietorakennepohjaiset olioperustaiset Suunnitteludokumentti, katselmus Erityisteemat: käyttöliittymät, suorituskyky Suunnitteludokumentti Arkkitehtuurisuunnitelma Toimintosuunnitelma Tietosuunnitelma Liittymäsuunnitelma Yhteys vaatimuksiin (ulkoinen käytös) Testaussuunnitelma myöhemmin esillä
46 Suunnitteludokumentin rakenne 1 Johdanto systeemin tavoitteet ja tarkoitus esittelee sovelluksen käsitemaailman normaali johdannon rakenne (TIKI!) Järjestelmän yleiskuvaus Sovellusalue Järjestelmäkuvaus ja ohjelmiston rooli 3. Arkkitehtuurisuunnitelma ratkaisun filosofia ja ohjelmiston toimintaperiaate moduulit ja niiden väliset suhteet tietokanta-arkkitehtuuri huomaa yleis- ja detaljisuunnitelmat molemmat syytä esittää
47 Yhdistelmä toiminnan ja tiedon kuvauksista: 4. Moduulikuvaukset yleiskuvaus (esim UML-menetelmällä) tietorakenteet toiminnot erityiset tekniset suunitteluratkaisut poikkeustilanteiden käsittely ratkaisuvaihtoehtoja - miksi hylättiin? Ratkaisun rajoitukset -- ylläpidettävyys Yhteys vaatimusdokumentin vast. kohtiin! Käyttöliittymä tyypilliset käyttöskenaariot prototyppikuvaus tai kuvia muuten piirrettynä Muut liittymät: KJ, muut ohjelmistot,...
48 Toteutuksen rajoitukset noudatettavat standardit ohjelmointikielet, KJ, apuohjelmat kokoarviot tyyliohjeet Lähdeluettelo Liitteet kaavioiden symbolien kuvaukset käytettyjen sisäisten kielien syntaksit hallintoliitteet: muutokset aik. dokumentaatioon
49 Ohjelmiston suunnittelu Ohjelmiston suunnittelun tavoite Suunnitteluperiaatteet modulaarisuus, kiinteys, kytkentä,... arkkitehtuurimallit, patternit, frameworkit Suunnittelumenetelmät toimintokeskeiset tietorakennepohjaiset olioperustaiset Suunnitteludokumentti, katselmus Erityisteemat: käyttöliittymät, suorituskyky Erityisteemat: käyttöliittymät Käyttöliittymän oltava yhtenäinen look and feel standardit sovellusalueen käsitteistön käyttö rauhallinen ulkoasu: yksinkertainen on kaunista! Ja tehokasta! Annettu palaute (tulosteet, virheilmot) oltava järkevää
50 Käyttöliittymät: palaute hyvä virheilmo ei nolaa käyttäjää vaan auttaa ymmärtämään virheen syyn, ilmaisee vaurioiden laajuuden ja toipumiseen tarvittavat toimet Toiminnan ohjaus soveltumattomat operaatiot eivät tarjolla ei toisiinsa liittymättömiä asioita yhtäaikaa tarjolla (kiinteys!) opastusjärjestelmä
51 Toimintojen vahvistaminen voisiko peruuttaa vaatisiko vahvistuksen transaktion käsite Älä rasita käyttäjän muistia lyhytkestoinen muisti noin 5 pikku juttua, silmänräpäyksen ajan, ei yli toiminnon Erityisteemat: suorituskyky Otettava huomioon kaikissa elinkaaren vaiheissa vaatimusanalyysi: riittävän tarkat suoritusaika- ja -tilavaatimukset arviointitapa tarpeille? Arkkitehtuurisuunnittelu: epäonnistunut tietorakenteiden ja tiedostojen valinta voi tuhota suorituskyvyn jonoverkkoanalyysillä mahdollista etsiä kriittiset kohdat
52 Moduulisuunnittelussa algoritmin valinta vaatimuksia vastaavasti mistä vaihtoehtoiset algoritmit? Dokumentin sisällettävä aika-tilaanalyysit! Koodaus ja testaus: liika viilaaminen epäolennaisissa paikoissa voi tuhota ylläpidettävyyden -- optimoi pullonkauloissa
Oliosuunnittelu. Oliosuunnittelu
Oliosuunnittelu Perinnän ja dynaamisen sidonnan hyödyntäminen Tarkastellaan ohjelmaa, jonka tehtävänä on tuottaa erilaisista kuvioista muodostuva kuvaesitys Ratkaisu 1: perinteinen malli - ei perintää
Ohjelmiston suunnittelu
Ohjelmiston suunnittelu Sunnittelu: asiakaslähtöisten vaatimusten muuntaminen teknisiä mahdollisuuksia tehokkaasti hyödyntäväksi ratkaisuksi luova prosessi Pääkohteet: ohjelmiston yleisrakenne ja toimintaperiaatteet
Ohjelmistotuotanto, s
Ohjelmistotuotanto : asiakaslähtöisten vaatimusten muuntaminen teknisiä mahdollisuuksia tehokkaasti hyödyntäväksi ratkaisuksi luova prosessi Pääkohteet: ohjelmiston yleisrakenne ja toimintaperiaatteet
Ohjelmistotuotanto, s2001 2/10/2003
Ohjelmistotuotanto Ohjelmistosuunnittelu 1 : asiakaslähtöisten vaatimusten muuntaminen teknisiä mahdollisuuksia tehokkaasti hyödyntäväksi ratkaisuksi luova, asiantuntemusta vaativa prosessi Pääkohteet:
Suunnitteluvaihe prosessissa
Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet
Ohjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
Yhteenveto. Menettelytavat
Yhteenveto Ohjelmistotuotanto: Luotettavien ja tehokkaiden ohjelmistojärjestelmien tuottamista noudattaen hyviksi havaittuja menettelytapoja. Menettelytavat Prosessimalli (vesiputous/spiraali/kasvattava)
Ohjelmistotuotanto, s
Ohjelmistotuotanto Suunnittelu 3 Kuvion piirtotavan erottaminen omaksi piirtoalgoritmin toteuttavaksi olioksi on esimerkki (strategy) suunnittelutason ratkaisumallista, joka lisää joustavuutta ja muunnettavuutta
Tietorakennepohjaiset menetelmät
Tietorakennepohjaiset menetelmät Käsiteltävän tiedon rakenne määrää ohjelmiston rakenteen: peräkkäisyys, ehdollisuus, toisto hierarkkisuus Lähtökohtana tulosteiden, syötteiden, tietokannan, kyselyn, tapahtuman
Ohjelmistotekniikan menetelmät, suunnittelumalleja
582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman
Ohjelmistojen mallintaminen Ohjelmistoarkkitehtuuri Harri Laine 1
Ohjelmistojen mallintaminen Ohjelmistoarkkitehtuuri 25.11.2008 Harri Laine 1 Buschmann et al: Software architecture is a description of the subsystems and components of a software system and relations
812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
Uudelleenkäytön jako kahteen
Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta
13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä
Suunnittelu - tietorakenteet
Suunnittelu - tietorakenteet ietorakenteet ovat datan abstraktioita Rakenteella pyritään mahdollistamaan tehokas käsittely (operaatiot) - ei itseisarvoa Rakenteet ohjelmointikielestä riippumattomia Valitaan
Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.
Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001
Ohjelmistotuotanto, s
Toiminnan osiinjako Ohjelmistotuotanto Systeemiteoreettinen lähestymistapa INPUT PROCESS OUTPUT Vaatimusanalyysin menetelmiä systeemi on prosessi, joka saa syötteitä ja tuottaa tuloksia systeemi voidaa
Tietojärjestelmän osat
Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto
Ohjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:
Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,
Copyright by Haikala. Ohjelmistotuotannon osa-alueet
Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary
Ohjelmistokehykset (software frameworks)
Ohjelmistoarkkitehtuurit 1 (software frameworks) Osittain abstraktiksi jätettyjä ohjelmistorunkoja, joita eri tavoin täydentämällä saadaan rakennettua kokonaisia uusia sovelluksia tai sovelluksen osia
Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
Lähestymistavat - toiminnallinen
Lähestymistavat - toiminnallinen Systeemiteoreettinen lähestymistapa INPUT PROCESS OUTPUT systeemi on prosessi, joka saa syötteitä ja tuottaa tuloksia systeemi voidaa jakaa osasysteemeihin tietojärjestelmissä
Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
12. Kehysarkkitehtuurit
12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto
Ohjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit 8.10.2012 1 (software frameworks) Osittain abstraktiksi jätettyjä ohjelmistorunkoja, joita eri tavoin täydentämällä saadaan rakennettua kokonaisia uusia sovelluksia tai sovelluksen
Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
Ohjelmistokehykset (software frameworks)
Ohjelmistoarkkitehtuurit 1 (software frameworks) Osittain abstraktiksi jätettyjä ohjelmistorunkoja, joita eri tavoin täydentämällä saadaan rakennettua kokonaisia uusia sovelluksia tai sovelluksen osia
Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
Ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien
Ohjelmistojen mallintaminen
Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta
Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko
Ohjelmistokehykset Määritelmä & tavoitteet, taustaa & peruskäsitteitä, kehykset vs. suunnittelumallit, erikoistamisrajapinnat & kontrollinkulku, kehystyypit, kehysten rakenne ja evoluutio, esimerkki: JHotDraw,
Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
Ohjelmiston toteutussuunnitelma
Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,
Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1
Ohjelmistojen mallintaminen Tietovuokaaviot 3.11.2008 Harri Laine 1 t Data flow diagrams Pohjana systeemiteoreettinen järjestelmämalli Input system output Järjestelmän tehtävä on muokata lähtötiedoista
Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus
Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright
Ohjelmistotekniikan menetelmät, UML
582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka
Ohjelmistotuotanto, suunnittelu Syksy Suunnittelu. Suunnittelun tulos. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi.
6. Suunnittelu Suunnittelun tulos Vaatimusanalyysin jälkeen seuraava työvaihe on suunnittelu. Siinä vaatimusanalyysin korkean abstraktiotason malleja käyttämällä luodaan alempien abstraktiotasojen malleja.
6. Suunnittelu. Suunnittelun tulos
6. Suunnittelu Vaatimusanalyysin jälkeen seuraava työvaihe on suunnittelu. Siinä vaatimusanalyysin korkean abstraktiotason malleja käyttämällä luodaan alempien abstraktiotasojen malleja. Tavoitteena on
Suunnittelun tulos. 6. Suunnittelu. Suunnitteluprosessin työvaiheet. Suunnitteluprosessi. 6.1 Arkkitehtuurisuunnittelu.
6. Suunnittelu Suunnittelun tulos Vaatimusanalyysin jälkeen seuraava työvaihe on suunnittelu. Siinä vaatimusanalyysin korkean abstraktiotason malleja käyttämällä luodaan alempien abstraktiotasojen malleja.
Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,
5. Järjestelmämallit. Mallinnus
5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.
SEPA - Design Patterns
SEPA - Design Patterns Kimmo Karlsson, 51066R & Antti Pirinen, 51406N 15. maaliskuuta 2005 1 Sisältö 1. Sisältö 2. Johdanto 3. Käyttöönotto 4. Käyttökokemukset 2 Johdanto Valitsemamme ohjelmistonkehityskäytäntö
Tenttikysymykset. + UML- kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
Ohjelmien analysointi. ER-kaaviot
Ohjelmien analysointi Ohjelmien kuvaaminen kaavioilla ohjelmien ymmärtäminen kaavioiden avulla kaavioiden tuottaminen ohjelmasta Erilaisia kaaviotyyppejä: ER-kaaviot, tilakaaviot, UML-kaaviot tietohakemisto
Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005
5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.
Ohjelmistojen mallintaminen, suunnittelumalleja
582104 Ohjelmistojen mallintaminen, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman tiettyjen
11. Kehysarkkitehtuurit
11. Kehysarkkitehtuurit Johdanto Kehystyypit Kehykset ja arkkitehtuuri Kehykset ja suunnittelumallit Kehyspohjainen ohjelmistokehitys Esimerkkikehys Kehysten toteutuksesta Kehysten etuja ja ongelmia Yhteenvetoa
Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi
Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi Pietu Pohjalainen Geneerinen metaohjelmointi Syksy 2004 Tietojenkäsittelytieteen laitos Helsingin yliopisto Esityksen sisältö Oliopohjaiset
Kurssin aihepiiri: ohjelmistotuotannon alkeita
Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään, kun tuotetaan tietokoneohjelmia sekä monista
Algoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7
Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7 Mikä on IT arkkitehtuuri? Liiketoimintamalli määrittelee IT arkkitehtuurin IT arkkitehtuuri ottaa kantaa sovelluksen laadullisiin vaatimuksiin
Tietokanta (database)
Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään
9. Muunneltavuuden hallinta
9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden
TOIMINNALLINEN MÄÄRITTELY MS
TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa
Ohjelmistojen mallintaminen kertausta Harri Laine 1
kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu
HELIA 1 (14) Luento 7 Käyttöliittymäolio... 2 Olioajattelun perusteet... 3 Tavoitteet... 3 Peruskäsitteet... 4 Olio / Olioinstanssi / Olion esiintymä... 4 Ominaisuudet... 4 Toiminnot... 4 Olioluokka /
Toteutussuunnitelma. Luennon tavoitteista. Motivointia. Pressman, Software Engineering
Toteutussuunnitelma Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Pressman, Software Engineering 1 Tavoitteista Luentojen jälkeen opiskelijan tulisi osata: 2 Sisällöstä Tavoitekalvon asioita.
812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State
2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus
811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto
811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien
UML- mallinnus: Tilakaavio
UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista
Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä
www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite
Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
Tenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
Ohjelmiston testaus ja laatu. Testausmenetelmiä
Ohjelmiston testaus ja laatu Testausmenetelmiä Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne
HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten
Algoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
Tietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
ohjelman arkkitehtuurista.
1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä
T SEPA - päiväkirja: Design Patterns. ETL työkalu
T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty
8. Kehysarkkitehtuurit
8. Kehysarkkitehtuurit Johdanto Kehystyypit Esimerkki: Simulointikehyksen malleja Kehyspohjainen ohjelmistokehitys Kehykset ja suunnittelumallit Esimerkkikehys Kehysten toteutuksesta Kehysten etuja ja
http://www.enteract.com/~bradapp/docs/patterns-intro.html http://www.hillside.net/patterns/
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Esimerkki: Rekursiokooste Antisuunnittelumallit Suunnittelumallit ja UML Mallikielet Suunnittelumallit
Tenttikysymykset. + UML- kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
Suunnittelumallien käyttö ohjelmistosuunnittelussa
Suunnittelumallien käyttö ohjelmistosuunnittelussa Mika Rantakeisu Rovaniemen ammattikorkeakoulu Avoin ammattikorkeakoulu mika.rantakeisu@edu.ramk.fi Tiivistelmä Tämä on selvitys suunnittelumallien käytöstä
jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja
Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1
TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit
TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen
Hirviö. Design Patterns
Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................
6. Arkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit - Kerrosarkkitehtuurit - Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit - Asiakas-palvelin arkkitehtuurit - Viestinvälitysarkkitehtuurit
Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1
Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon 31.10.2008 Harri Laine 1 Ohjelmisto Tietokoneohjelma (computer program) toimintaohje, jonka mukaan toimien tietokone suorittaa jonkin tietojenkäsittelytehtävän
Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely
582101 - Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely 1 Vaatimukset ja käyttötapaukset Vaiheittainen mallintaminen ja abstraktiotasot Järjestelmän rajaaminen sidosryhmäkaaviolla
Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Luento 8 Ohjelmistokehykset Tuoteperheet 19.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 OHJELMISTOKEHYKSET 19.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 2 Ohjelmistokehykset (software
Harjoitustehtävät ja ratkaisut viikolle 48
Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin
Muistutus aikatauluista
Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
Ohjelmistojen mallintaminen. Matti Luukkainen
Ohjelmistojen mallintaminen Matti Luukkainen Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään,
Algoritmit 1. Luento 10 Ke Timo Männikkö
Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot
Ohjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit Tuoteperheet Tuoterunkoarkkitehtuurit Perinteisessä ohjelmistotuotannossa on keskitytty uusien ohjelmistojen laadukkaaseen tuottamiseen Erikoistuneista ainutlaatuisista vaatimuksista
Bosch-malli. Kolme vaihetta. Termistöä. Ohjelm!toarkkitehtuu"n
Bosch-malli Ohjelm!toarkkitehtuu"n suunni#elu 2$6 Quality Attribute-oriented Software Architecture Design method Toiminnallisista vaatimuksista laadittu arkkitehtuurimalli kehitetään arvioimalla sitä laadullisten
5. Suunnittelumallit. TTY Ohjelmistotekniikka
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Antisuunnittelumallit Esimerkki: Rekursiokooste Suunnittelumallit ja kehykset Suunnittelumallit ja
Ohjelmiston vaatimusmäärittely. tietoteknisen järjestelmän osat
Ohjelmiston vaatimusmäärittely tietoteknisen järjestelmän osat toiminta dokumentit laitteisto järjestelmä tietokanta ihmiset ohjelmisto 1 Määrittelyprosessi Määrittelyprosessi ideat lähtökohdat rajoitteet
Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.
Kokeellinen algoritmiikka (3 ov) syventäviä opintoja edeltävät opinnot: ainakin Tietorakenteet hyödyllisiä opintoja: ASA, Algoritmiohjelmointi suoritus harjoitustyöllä (ei tenttiä) Kirjallisuutta: Johnson,
Ohjelmistoarkkitehtuurit. Syksy 2010
Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin
Integrointi. Ohjelmistotekniikka kevät 2003
Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri
Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,
Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
Ohjelmistoarkkitehtuurin suunnittelu
Ohjelmistoarkkitehtuurin suunnittelu Luento 3 10.9.2014 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Arkkitehtuuritietämyksen lähteet Yleisiä suunnitteluperiaatteita Kaunis arkkitehtuuri 10.9.2014