Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS Lecture 14 Päivi Ovaska.

Samankaltaiset esitykset


Esitys aiheesta: "Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS Lecture 14 Päivi Ovaska."— Esityksen transkriptio:

1 Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS Lecture 14 Päivi Ovaska

2 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 Sisältö Yleistä kuvaustekniikoista, menetelmistä ja prosesseista SA –menetelmä Ohjelmistokehityksen uusia tuulia.

3 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Kuvaustekniikat, menetelmät, prosessit  kuvaustekniikat muodostavat yhteisesti sovitun tavan kuvata ohjelmiston keskeiset ominaisuudet (esim. UML )  ohjelmistotyön kokonaisuuden näkökulmasta kuvauksen on katettava kaikki keskeiset osat ja näkökulmat kehitettävästä järjestelmästä  menetelmät ohjeistavat kuvaustekniikoiden tarkoituksenmukaisen käytön (SA, Bruegge&Dutoit, OMT, RUP)  Ohjelmistoprosessit kuvaavat ohjelmiston rakentamisen vaiheet ja niiden tulokset, määrittelee ohjelmiston elinkaaren ja ohjelmiston tekemisen yleisrakenteen, on toistettaa toimintamalli  Prosessimalleja esim. vesiputousmalli, protoilumalli, evolutionääriset mallit (käsiteltiin 1. luennolla)

4 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 SA -menetelmä  Structured Analysis  Menetelmästä useita eri versioita  Structured Analysis (Yordon et. Al.)  Structured Design  SA/RT (Real Time, Ward&Mellor)  Yleisin käytetty proseduraalinen menetelmä

5 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 Mallinnusvuo SA/RT-mallinnus Toteutusmalli Ympäristömalli Käyttäytymismalli Ydinmalli - järjestelmän tavoitteet - liittymäkaavio - tapahtumalista - tietovuokaaviot, minispeksit - käsitekaaviot - tilakaaviot - tietohakemisto - toteutuksen rajaaminen - käyttöliittymä - kaavioiden muokkaaminen toteutuskelpoisiksi - ei-toiminnaliset ominaisuudet - toteutukseen liittyvät virhetilanteet

6 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 Menetelmän komponentit

7 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7

8 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 Tietovuokaaviossa (DFD) käytetyt symbolit

9 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Tietovuokaavioiden hierarkia  Ylimmällä tasolla järjestelmän toiminta kuvataan ns. liittymäkaaviolla (context diagram, yhteyskaavio, ympäristökaavio)  terminaattorit ja koko järjestelmä yhtenä transformaationa  Järjestelmätransformaatio kuvataan tarkemmin tason 1 tietovuokaaviolla, sen transformaatiot edelleen tason 2 tietovuokaaviolla, jne.  Pilkkominen alikaavioihin lopetetaan, kun transformaation on niin yksinkertainen, että sen toiminta voidaan kuvata minispesifikaatiolla (pseudokoodi, strukturoitu kulkukaavio, työnkulkukaavio)

10 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10

11 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11 Hierarkia, liittymäkaavio

12 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 Hierarkian toinen taso Alimman tason transformaatiot merkitään tähdellä

13 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 Hierarkian kolmatta tasoa

14 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14 Hierarkian alin taso kuvataan minispekseillä Minispeksi 1: Tilauksen vastaanotto - Tilauksen vastaanotto tapahtuu puhelimitse tai faksilla. - Asiakkaan tiedot tarkastetaan asiakastietokannasta, tarvittaessa asiakastiedot syötetään. - Samalla tarkastetaan asiakkaan laskutustilanne. Jos asiakkaalla on hoitamattomia karhuja, ei tilausta oteta vastaan.

15 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15 Järjestelmän tavoitteet KURREK-järjestelmä sisältää kuvaukset opintojaksoista, opettajista ja opintosuorituksista. Järjestelmä tuottaa kurssien osallistujalistoja, tenttien tuloslistoja ja opintosuoritusrekisteriotteita. Opettajat kirjaavat järjestelmän avulla opintosuoritukset rekisteriin. Opiskelijat pystyvät ilmoittautumaan kursseille ja tutkimaan omia suoritustietojaan.

16 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16 Liittymäkaavio KURREK-järjestelmästä

17 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17 Tapahtumalista 1) Ylläpitäjä päivittää opiskelijan tietoja (lisäys, poisto muutos). 2) Ylläpitäjä päivittää opintojakson tietoja. 3) Ylläpitäjä päivittää opettajan tietoja. 4) Opiskelija ilmoittautuu kurssille. 5) Opiskelija ilmoittautuu tenttiin. 6) Opiskelija osallistuu tenttiin. 7) Opettaja pyytää kurssin osallistujalistan. 8) Opettaja pyytää tentin osallistujalistan. 9) Opettaja kirjaa opintosuorituksen. 10) Opiskelija pyytää opintorekisteriotteen. 11) Laitoksen johtaja saa opintoviikkoyhteenvedon.

18 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18 Organisaation toimintaa kuvaava tietovuokaavio

19 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19 Esimerkki tietovirtamatriisista

20 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20 Tietovuokaavio Kurrek-järjestelmästä

21 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 21

22 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 22 Kirjan elinkaari tilakaaviona

23 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 23 Tilakoneiden käyttömahdollisuuksia  Toiminnon kuvaaminen esim. algoritmin määrittely  Laitteiden ja prosessien toiminnan kuvaus (digitaalikello, matkapuhelin, pankkiautomaatti)  Järjestelmän elinkaaren mallintamiseen  Käyttöliittymien spesifioinnissa

24 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 24

25 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 25

26 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 26 UML vs. SA  Liittymäkaavio vs. käyttötapauskaavio.  Tapahtumalista vs. käyttötapaus vs. operaatio.  Tietovuokaavio vs. tapahtumasekvenssikaavioiden ja luokkakaavioiden käyttö.  UML (OMT++) oliopohjaiseen mallintamiseen  SA proseduraaliseen mallintamiseen sekä reaaliaikajärjestelmien mallintamiseen

27 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 27 Ohjelmistotekehityksen uusia tuulia

28 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 28 Rapid Application Development (RAD)  Pyrkimyksenä minimoida kehitysaika (60-90 päivää)  Jaetaan järjestelmä horisontaalisesti mahdollisimman itsenäisiin komponenttteihin  Jokaista komponenttia kehitetään lineaarisesti  Liiketoimintamalli  Tietosisältöjen mallinnus  Prosessien mallinnut  Sovelluksen generointi  Testaus ja integrointi  RAD olettaa käytettävissä olevan uudelleenkäytettäviä komponentteja  Uudelleenkäytön ongelmia  Komponenttikirjaston luomisen ja ylläpitämisen vaatima työmäärä, komponenttien etsiminen, dokumentoinnin puutteellisuus, haluttomuus käyttää muiden tekemiä komponentteja  Vaatimusten muuttuminen

29 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 29 Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan February 11-13, 2001 The Agile Alliance," group of independent thinkers about software development

30 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 30 Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self- organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

31 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 31 25.11.2001 VTT:n ohjelmistokehitysmalleilla hyötyä asiakkaalle ajoissa Ketteryydellä potkua ohjelmistokehitykseen VTT:n uusi tutkimusohjelma (Agile Software Technologies) tuottaa ketterän ohjelmistokehityksen käytännön sovelluksia teollisuusympäristöihin. Näitä teollisuuteen kehitettyjä malleja, joilla ihmisten vuorovaikutus voidaan ottaa paremmin mukaan ohjelmistokehitykseen, sovelletaan nyt käytännössä. Ketterä ohjelmistokehitys alentaa kustannuksia, vähentää ohjelmistovirheiden määrää ja nopeuttaa tuotantosykliä sekä reagoi herkästi asiakkaalta tuleviin muutostarpeisiin. Perustana on ajattelutavan muutos, jossa painopiste on ihmisten yhteistyössä ja muutosherkkyydessä. Keskeisessä roolissa ovat ihmiset eli ohjelmistojen tuottajat - eivät prosessit, dokumentaatio tai sopimukset. VTT:n tutkimus ohjelmistokehityksestä on tuottanut ratkaisuja, joilla ihmisten vuorovaikutus voidaan ottaa paremmin mukaan ohjelmistokehitykseen. Ketteryyden astetta lisätään ottamalla asiakas mukaan ohjelmistokehitystiimiin, jolloin asiakkaan muutostarpeet otetaan huomioon luonnostaan. Kun lisäksi tuotantosyklit ovat riittävän lyhyitä, kehitystyö on helppo pitää halutussa suunnassa. Asiakkaalle taataan maksimaalinen hyöty, kun ohjelmistokehitys pyritään pitämään mahdollisimman yksinkertaisena, jolloin nykyinen tarve jaetaan pienempiin osakokonaisuuksiin sen sijaan, että tulevaisuus pyrittäisiin ennakoimaan mahdollisimman hyvin. Tämä ehkäisee yleistä ongelmaa, että tuotetaan hyvä ohjelmisto väärään tarpeeseen. Ketteryyden saavuttamisen keinona on myös testisuuntautunut ohjelmointi. Tällöin rakennetaan ensivaiheessa testausmoduulit, mikä pakottaa ajattelemaan ohjelmiston käyttökelpoisuutta jo varhaisessa vaiheessa.


Lataa ppt "Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS Lecture 14 Päivi Ovaska."

Samankaltaiset esitykset


Iklan oleh Google