Aspect-Oriented Software Development with Use Cases. Jacobson.2004. Addison-Wesley. Ohjelmistotekniikan jatkoseminaari. Tampereen teknillinen yliopisto. Porin yksikkö 2007Mitä on Aspect Oriented Software ProgrammingAspektiperustainen ohjelmointi (Aspect-oriented programming - AOP) on Xeroxin Palo Alton tutkimuskeskuksessa kehitetty ohjelmointimenetelmä jonka avulla läpileikkaavat (cross-cutting) ominaisuudet voidaan kerätä yhteen paikkaan jolloin niiden käsittely on helpompaa ja ohjelmakoodista saadaan siistimpää. Läpileikkaavat ominaisuudet ovat toimintoja joita käytetään useissa luokissa tai proseduureissa. Mitä on Aspect Oriented Software Development ?• Aspektiperustaisessa ohjelmistokehityksessä (aspect-oriented software development. AOSD) koko ohjelmistoa läpileikkaavat ominaisuudet kuvataan paitsi suunnittelussa myös ohjelmakoodin tasolla muusta luokkarakenteesta (ja toisistaan) erillisinä aspekteina.• Aspektiympäristöön kuuluva punoja (weaver) yhdistää sitten aspektikuvaukset ja luokat erityisten liitoskohtien (join inform inform cut) avulla suoritusvalmiiksi ohjelmaksi.• Automaattinen punominen mahdollistaa myös uusien aspektien lisäämisen (esim uuden lokitietojen tallennuspolitiikan käyttöönoton) ilman muutoksia muuhun järjestelmään. Mitä on Aspect Oriented Software Development• AOP:tä varten tarvitset kokonaisvaltaisen lähestymistavan ohjelmistojärjestelmän kehittämiseen johon kuuluu näkökulmat vaatimuksista analysointiin and suunnitteluun toteutukseen ja testaukseen.• AOSD tarkoittaa parempaa modulariteettia koko järjestelmälle.• parempi modulariteetti funktionaalisille vaatimuksille ja ei- funktionaalisille vaatimuksille• rakentaa järjestelmä jolla on ymmärrettävämpi rakenneAspektiohjelmoinnin tarkoitus• Aspektipohjaisella ohjelmoinnilla tarkoitetaan aspektien modularisoimista koostamista ja uudelleenkäyttöä.• Aspektiohjelmoinnin avulla voidaan ohjelmakoodista tehdä selkeämpää ja helpommin ymmärrettävää kuin perinteisten menetelmien kuten olio-ohjelmoinnin tai proseduraalisen ohjelmoinnin avulla.• Erityisesti ohjelmistojen muunneltavuuden ja uudelleenkäytön avuksi on kehitetty aspektiperustaisia menetelmiä. Mitä järkeä desireä käytetään ja miten tehdään ?• Eri asioiden erottaminen ja erillään pitäminen lähdekoodin tasolla• Käytännön sovelluksia jäljitys (tracing) profilointi lokit jne• Kerrotaan mihin kohtaan sovellusta aspekti kiinnittyy– connect point kohta johon voi kiinnittyä– inform cut mihin join pointiin tartutaan– advice mitä koodia ja ennen vai jälkeen join pointin se suoritetaanAspektiohjelmaKoostuu:• kehotteista (advice):– aspektien ohjelmakoodi• liitoskohdista (connect point):– metodin alku/loppu– poikkeusten käsittelijät– liitoskohdan valitsin (pointcut designator)• liitoskohtamäärityksistä (pointcut):– kuvataan ne perusohjelman kohdat joihin aspekti punotaan– sidotaan aspektin kehote yhteen tai useampaan liitoskohtaan perusohjelmassa– http://www cs helsinki fi/u/eeanttil/seminaari/johdatus_aspektikasitteistoon ppt#20Aspektiohjelmointi• Aspekti = näkökulma• mahdollisuus esittää useita jaotteluperusteita• kapseloidaan ohjelman läpileikkaavia ominaisuuksia• Mielenkiinnon kohde (concern)– eri mielenkiinnon kohteet johtavat erilaisiin jaotteluihin tai modularisointeihin– voidaan kutsua myös jaotteluperusteeksiAspektiohjelmoinnin tavoite• Aspektiohjelmoinnin tavoitteena ohjelmiston läpileikkaavien ominaisuuksien kapselointi• Aspektit punotaan perusohjelmaan• Staattinen aspektiohjelmointi– Aspektit punotaan käännösaikana– Tunnetuin ohjelmointikieli AspectJ• Dynaaminen aspektiohjelmointi– Aspektit punotaan ajonaikanaAspektiohjelmointi• Pystytään kapseloimaan koko ohjelman läpileikkaavia ei-toiminnallisia ominaisuuksia• Ohjelma jaetaan kahteen eri osaan:– perusohjelmaan• ohjelman toiminnalliset osat• ei tarvitse tietää aspekteista– aspektiohjelmaan• ei-toiminnalliset osat sekä kuvaus niiden liittämisestä perusohjelmaan• muutokset riittää tehdä yhdessä paikassaEsimerkkiaspect SimpleTracing {pointcut tracedCall():label(cancel Figure. Draw(graphicContext));before: tracedCall() {System out println( ”Entering: ” + thisJoinPoint);}}Aspektien edut• ohjelmiston läpileikkaavat toiminnot voidaan modularisoida. (ei tarvitse monistaa)• ohjelmakoodista tulee selkeämpää• ohjelmistojen muuttaminen on helpompaa• ohjelmistojen kehityssyklin nopeus ja hallittavuus paranee• arkkitehtuurisia ratkaisuja helpompi vaihtaa• aspektin toteuttavalle toiminnallisuudelle vastuuhenkilö• aspektien toiminnallisuutta voidaan uudelleen käyttääAOSD ja Use Cases• systemaattinen lähestymistapa on use-case-driven lähestymistapa.• se tarjoaa metodin kehityssovelluksille keskittymällä mielenkiinnon kohteiden toteuttamiseen.• auttaa modularisoimaan mielenkiinnon kohteita• käyttötapaukset ovat läpileikkaavia mielenkiinnon kohteita• voit mallintaa läpileikkaavia mielenkiinnonkohteita käyttötapauksilla toteuttamalla ne aspektien kanssa.• Komponentteihin perustuva kehitys on lähestymistapa rakentaa monimutkaisia systeemejä.• jaat vaatimukset komponenteille kuten classes packages services jne.• monia vaatimuksia ei voi paikallistaa tiettyyn komponenttiin vaan ne vaikuttavat moniin komponentteihin eli nämä vaatimukset läpileikkaavat komponentit ja niitä kutsutaan läpileikkaaviksi komponenteiksi. The Use of Components Today• jokaisella komponentilla on oma erityinen roolinsa ja vastuualueensa ja tarkoituksensa.• komponentit muodostavat hyvin määriteltyjä rajapintoja• ne tuottavat määriteltyjä vasteita kuten tietokoneen komponentit.• komponentti kapseloi sisältönsä• ei tarvitse tietää miten komponentti toimii• pitää vain osata lähettää oikea signaali rajapintaan ja saada haluttu vaste• käytetään sopivinta komponenttiaJärjestelmän rakentaminen komponenttien avullaTavallisesti lähdetään liikkeelle järjestelmän ymmärtämisestä• mitkä ovat vaatimukset• tutkit ja tunnistat osat• kartoitat vaatimukset komponenttien maailmaan.• voi olla 1000 vaatimusta ja 50 komponenttia• valitset valikoiman komponenteista ja tarkistat että kaikki vaatimukset toteutuvat ko komponenteillaKirjan esimerkkinä Hotel Management SystemHotel Management System• Hotel Management System made up of interconnected componentsKomponenttien edut• komponentit edustavat järjestelmän pysyvää rakennetta• niiden avulla voi ymmärtää koko järjestelmää.• komponentti voi sisältää esim huoneen varausjärjestelmän muuntelun.• komponenttien avulla järjestelmää voi muuttaa asiakkaan vaatimusten mukaan. Komponenttien rajoitukset• Komponenttien rajoituksia lähestytään mielenkiinnon kohteiden kautta• mielenkiinnon kohde voi olla funktionaalinen vaatimus tai ei-funktionaaliset vaatimukset• mielenkiinnonkohde voi olla mikä tahansa ,joka on kiinnostuksen kohde loppukäyttäjälle kehittäjälle jne.• mielenkiinnon kohteiden erotteleminen on ongelmien pilkkomista pienempiin osiin•.
Forex Groups - Tips on Trading
Related article:
http://perttiaspect.blogspot.com/2007/11/aspect-oriented-software-development.html
comments | Add comment | Report as Spam
|