Objektno usmerjeno načrtovanje: opredelitev, načela in primeri

Objektno usmerjeno načrtovanje je postopek načrtovanja sistema medsebojno delujočih objektov za rešitev problema programske opreme. To je eden od pristopov k razvoju zavarovanja.

Objekt vsebuje zaprte podatke in postopke, ki so združeni in predstavljajo objekt. Vmesnik določa, kako lahko sobivata, program pa opisuje interakcijo sklopov. Objektno usmerjeno načrtovanje je disciplina opredeljevanja subjektov in njihovih procesov za reševanje problema, ki je bil ugotovljen in dokumentiran z analizo.

V nadaljevanju je opis podskupine, ki temelji na razredih in ne vključuje pristopov k prototipnim objektom, ki jih običajno ne pridobimo z ustvarjanjem primerkov razredov, temveč s kloniranjem drugih. Oblikovanje je metodologija objektno usmerjenega oblikovanja. Zajema postopek razgradnje in poimenovanja za predstavitev logičnih in fizičnih stanj ter dinamičnih modelov načrtovanega sistema.

Teme oblikovanja

Objektno usmerjena analiza in načrtovanje

Vhodni podatki za objektno usmerjeno načrtovanje so rezultati analize. Razumeti je treba, da ni nujno, da je artefakt v celoti razvit, da bi lahko služil kot referenčna točka. Analiza in načrtovanje lahko potekata vzporedno. V praksi se lahko rezultati ene dejavnosti v kratki povratni zanki prek ponavljajočega se procesa prenesejo v drugo. Prvo in drugo dejanje se lahko izvajata postopoma; artefakti se lahko gradijo neprekinjeno in se ne razvijejo v celoti naenkrat.

Nekateri tipični predmeti

Upoštevajte najpomembnejše.

1. Konceptualni model.

Rezultati objektno usmerjene analize in načrtovanja so zajeti v koncept na predmetnem področju. Konceptualni model je izrecno izbran tako, da je neodvisen od izvedbenih podrobnosti, kot sta sočasnost ali shranjevanje podatkov.

2. Primer uporabe.

Opis zaporedja dogodkov, ki skupaj povzročijo, da sistem naredi nekaj koristnega. Vsak primer uporabe vsebuje enega ali več scenarijev, ki izražajo objektno usmerjeno načrtovanje sistema. To je tisto, kar mora sodelovati z uporabniki, imenovanimi akterji, da bi dosegli določen poslovni cilj ali funkcijo.

akterji precedensa so lahko končni uporabniki ali drugi sistemi. V mnogih primerih so različice te metode nadalje razvite v obliki diagramov. Diagrami precedensov se uporabljajo za opredelitev akterjev in procesov, ki jih izvajajo. Več o tem si preberite v knjigi Gradyja Bucha, Objektno usmerjeno načrtovanje.

3. Sistemski diagram zaporedja.

To je prikaz, ki za določen scenarij prikazuje uporabo dogodkov, ki jih ustvarijo zunanji akterji, njihov vrstni red in možne medsistemske ukrepe.

4. Dokumentacija uporabniškega vmesnika.

Dokument, ki prikazuje in opisuje videz končnega izdelka. Ta točka ni obvezna, vendar pomaga pri vizualizaciji, kar oblikovalcu olajša delo.

Relacijski podatkovni model

Gre za abstraktni prototip, ki opisuje način predstavitve in uporabe informacij. Če se objektna podatkovna zbirka ne uporablja, je treba relacijski podatkovni model običajno ustvariti pred izvedbo ukrepa, saj je izbrana strategija za sprejetje objektno usmerjene zasnove rezultat postopka.

Vendar je mogoče relacijski podatkovni model razvijati vzporedno, rast artefakta pa lahko spodbudi izpopolnjevanje drugih komponent. To je podrobneje razloženo tudi v Boochovi knjigi Objektno usmerjena analiza in načrtovanje. Upoštevajte, da boste v novi izdaji knjige Grady Bucha našli veliko praktičnih nasvetov o analizi, izvajanju, načrtovanju in upravljanju projektov.

Koncepti

Pet osnov objektno usmerjenega oblikovanja je izvedbeno-tehničnih funkcij, vgrajenih v programski jezik. Pogosto jih imenujemo s temi splošnimi imeni:

1. Razred predmeta.

Kaj je? Razred je podatkovna struktura, ki je tesno povezana z metodami ali funkcijami, ki vplivajo nanj (iz njega je ustvarjen predmet). Vsak predmet opravlja funkcijo. Opredeljujejo ga njegove lastnosti. Predmet je lahko del razreda, ki je zbirka podobnih predmetov.

2. Objektno usmerjena zasnova informacijskih sistemov skriva sposobnost zaščite določenih komponent pred zunanjimi vplivi.

3. Dedovanje.

zmožnost razreda, da razširi ali prekrije funkcionalnost druge skupine. Tako imenovani podrazred ima celoten del, ki je izpeljan (podedovan) iz nadrazreda in ima tudi svoj nabor funkcij in podatkov.

4. Vmesnik (Med tehnikami objektno usmerjenega načrtovanja obstajajo tako imenovani vzorci. Med njimi je tudi abstraktni tovarniški vmesnik.).

možnost odložitve izvajanja metode in možnost definiranja funkcij, ne da bi jih izvajali.

5. Polimorfizem (zlasti podtip) - zmožnost zamenjave objekta z njegovimi podobjekti. In tudi možnost, da spremenljivka vsebuje ne samo ta objekt, temveč tudi vse njegove komponente.

Objektno usmerjeno načrtovanje informacijskih sistemov

Razvoj koncepta

Opredelitev predmetov, izdelava diagrama razredov iz konceptualne oblike običajno prikazuje entiteto.

Identifikacija atributa.

Uporabiti morate vrsto tehnik objektno usmerjenega načrtovanja. Ne gre za končni izdelek, temveč za opis rešitve pogostega problema v kontekstu. Osnovni prednost uporabe narava oblikovnega vzorca je, da ga je mogoče ponovno uporabiti v več aplikacijah. Upošteva se tudi za Rešitve problemov, ki se lahko pojavijo v različnih situacijah. Objektno usmerjeni vzorci načrtovanja običajno prikazujejo odnose in interakcije med razredi ali predmeti, ne da bi določili končne aplikacijske sisteme ali predmete, ki so vanje vključeni.

Opredelitev okvira.

Običajno gre za nabor knjižnic ali razredov, ki se uporabljajo za implementacijo standardnega aplikacijskega ogrodja za določeno operacijski sistem. Z združitvijo velike količine kode, ki jo je mogoče ponovno uporabiti, v platformo razvijalec prihrani veliko časa, saj reši problem ponovnega pisanja velike količine standardne kode za vsako novo razvito aplikacijo.

Izhod (rezultati) objektno usmerjenega načrtovanja

diagram zaporedja je treba rešiti, da se dodajo posebni objekti, ki obdelujejo sistemske dogodke. Kot vzporedne navpične črte so prikazani različni procesi, ki potekajo hkrati, kot vodoravne puščice pa izmenjava sporočil med njimi v vrstnem redu, v katerem se pojavljajo.

Diagram razredov - so vrste Statična struktura UML, ki opisuje sisteme, prikazuje njihove atribute in odnose med njimi. Sporočila in razredi, ugotovljeni z razvojem diagramov zaporedja, lahko služijo kot vhodni podatki za samodejno Ustvarjanje globalnega sistema.

Nekatera načela in strategije oblikovanja

Objektno usmerjeni vzorci načrtovanja

Pogosto uporabite implementacijo odvisnosti. Kakšna je osnovna zamisel za? Če je element odvisen od obstoja nekega drugega primerka, je nujni primerek vgrajen v odvisnega. Primer objektno usmerjene zasnove: povezavo s podatkovno bazo posredujemo kot argument konstruktorju, namesto da bi jo ustvarili interno. Še en primer uporabe vzorca mostu: ločite abstrakcijo od njene implementacije, tako da lahko oba predmeta spreminjate neodvisno.

Upoštevajte načela objektno usmerjenega oblikovanja acikličnih odvisnosti. Upoštevajte, da graf komponent (stopnja granulacije je odvisna od obsega dela) ne sme imeti zank. To se imenuje tudi usmerjeni aciklični graf. Primer objektno usmerjene analize in načrtovanja: predpostavimo, da je C odvisen od B, za katerega velja A. Če se slednja nanaša tudi na C, se pojavi zanka.

Kakšno je načelo ponovne uporabe kompozitov? Prednost ima polimorfna sestava dedovanja. Po fazi analize se konceptualni model razvije v objektno usmerjeno zasnovo IS. Pri tem se tehnološko neodvisni koncepti analize prikažejo na izvedbene razrede, opredelijo se omejitve in oblikujejo vmesniki, rezultat pa je model za področje rešitev.

Koraki za objektno usmerjeno načrtovanje IS so lahko opredeljeni na naslednji način:

  • Iskanje konteksta sistema.
  • Oblikovanje arhitekture.
  • Identifikacija predmetov v sistemu.
  • Izdelava načrtov zasnove.
  • Specifikacija objektnih vmesnikov.
  • Oblikovanje.

Oblikovanje objektno usmerjenega sistema vključuje opredelitev konteksta, ki mu sledi oblikovanje arhitekture.

Prvi koncept

Sistemski kontekst ima statični in dinamični del. Najprej se vzpostavi z objektno usmerjenim načrtovanjem s preprostim diagramom poteka, ki se razširi v hierarhijo podsistemov. Ta model je predstavljen s paketi UML. Dinamični kontekst opisuje interakcijo sistema z okoljem. Modelira se z diagrami primerov uporabe.

Arhitektura sistema je zasnovana na podlagi konteksta ter v skladu z načeli načrtovanja in predmetnim področjem. Na splošno je sistem razčlenjen na plasti, te pa so razčlenjene v podsisteme.

Kaj je objektno usmerjena dekompozicija? Dekompozicija pomeni razdelitev velikega kompleksnega sistema na hierarhijo manjših komponent manjše kompleksnosti. Vsak večji del se imenuje podsistem. Objektno usmerjena dekompozicija opredeljuje posamezne avtonomne objekte v sistemu in odnose med njimi.

Prednosti razgradnje:

  • Posamezne komponente so manj zapletene in zato bolj razumljive in obvladljive.
  • obstaja delitev dela s specializiranimi znanji in spretnostmi.
  • Omogoča zamenjavo ali spreminjanje podsistemov, ne da bi to vplivalo na druge dele.

Identifikacija vzporednosti

Omogoča, da več predmetov prejema dogodke in izvaja več dejanj hkrati. Vzporednost je opredeljena in predstavljena v dinamičnem modelu.

Da bi to omogočili, je vsakemu vzporednemu elementu dodeljen ločen kontrolni tok. Če je vzporednost na ravni objekta, potem sta dvema simetričnima objektoma dodeljeni dve različni kontrolni niti. Če sta dve operaciji ene od njih vzporedni, se porazdeli med različne niti.

Vzporednost je povezana s težavami celovitosti podatkov in medsebojnega povezovanja. To pomeni, da je treba razviti jasno strategijo, kadar koli je potreben vzporedni proces. Poleg tega ga je treba opredeliti že v fazi načrtovanja in ga ni mogoče pustiti v fazi izvajanja.

Tehnike objektno usmerjenega načrtovanja, vzorci načrtovanja

Primeri objektno usmerjenega oblikovanja

Pri razvoju aplikacij se za posamezne kategorije težav uporabljajo nekatere skupne rešitve. To so na primer oblikovni vzorci. Opredelimo ga lahko kot dokumentiran nabor gradnikov, ki se lahko uporabljajo pri določenih vrstah nalog razvoja aplikacij.

Nekatere pogoste objektno usmerjene tehnike načrtovanja (vzorci načrtovanja) so na voljo v vzorcih načrtovanja:

  • Vzorec fasade.
  • Prikaži model ločevanja.
  • Opazovalec modela.
  • Model tipa krmilnika.
  • Vzorec pooblaščenca.
  • Upravljanje dogodkov.

Med načrtovanjem objektno usmerjenega sistema je treba prepoznati dogodke, ki se lahko pojavijo v objektih, in jih ustrezno obravnavati.

Dogodek je specifikacija pomembnega dogodka, ki ima lokacijo v čas in prostor. Modeliramo lahko štiri vrste, in sicer:

  • Signal je poimenovan predmet, ki ga vrže ena oseba in ujame druga.
  • Dogodek klica je sinhroni dogodek, ki predstavlja pošiljanje operacije.
  • Časovni proces je predstavljen v času.
  • Dogodek spremembe - dogodki, ki predstavljajo spremembo stanja.

Ravnanje z robnimi pogoji

V fazi načrtovanja je treba upoštevati inicializacijo in zaključek sistema kot celote ter vsakega podsistema. Različni vidiki:

  • Zagon, t. е. Prehod iz neinicializiranega stanja v stabilno stanje.
  • Izklop sistema, t. е. zapiranje vseh delujočih niti, čiščenje virov in pošiljanje sporočil.
  • Začetna konfiguracija in po potrebi ponovna konfiguracija.
  • Predvidevanje napak ali nezaželenega prenehanja delovanja sistema.
  • Mejni pogoji so modelirani s podobnimi primeri uporabe.

Oblikovanje predmetov

Ko je hierarhija podsistemov razvita, se določijo elementi sistema in oblikujejo njihove podrobnosti. na tem faza je v teku oblikovalec. Poudarek se s predmetnega področja prenese na računalniške koncepte. Objekti, ugotovljeni v obdobju analize, se predčasno izvedejo, da se čim bolj zmanjšajo čas izvajanja, poraba pomnilnika in skupni stroški.

Oblikovanje predmeta vključuje naslednje korake:

  • Identifikacija.
  • Zastopanje. Izdelajte oblikovne modele.
  • Razvrstitev operacij.
  • Algoritem oblikovanja.
  • Oblikovanje odnosov.
  • izvajanje nadzora nad zunanjimi interakcijami.
  • Paketno razvrščanje razredov in združenj v module.

Identifikacija predmetov

To je prvi korak v postopku oblikovanja. Objekte, identificirane med objektno usmerjeno analizo, združimo v razrede in jih izpopolnimo tako, da so primerni za dejansko izvedbo.

Funkcije te faze:

  • Opredelitev in izpopolnitev razredov v vsakem podsistemu ali paketu.
  • Opredelitev razmerij in povezav med množicami.
  • Razvoj hierarhije (posploševanje, specializacija in dedovanje).
  • Oblikovanje enot.

Predstavitev predmeta

Gamma objektno usmerjenih tehnik načrtovanja

Ko so razredi opredeljeni, jih je treba prikazati s tehnikami modeliranja. Ta korak v bistvu vključuje izdelavo diagramov UML.

Izdelati je treba dve vrsti modelov zasnove:

Statična stran. Za opis se uporabljajo diagrami razredov in predmetov.

Dinamični modeli. Za opis in prikaz odnosov med razredi se uporabljajo diagrami interakcije in stanja.

Razvrstitev dejavnosti

Na tej stopnji so naloge, ki se izvajajo na predmetih, opredeljene z združevanjem treh modelov: predmetnega, dinamičnega in funkcionalnega. Operacija opredeljuje, ki bi morala kot to, kako je treba storiti, in ne, kako.

V zvezi s tem je treba opraviti naslednje naloge:

  • Za vsak objekt v sistemu se izdela diagram prehodov med stanji.
  • Operacije so opredeljene za dogodke, ki jih prejmejo predmeti.
  • Opredeljeni so primeri, ko en dogodek povzroči druge dogodke v istem ali drugem objektu.
  • Podoperacije v operacijah so opredeljene.
  • Osnovna dejanja, razširjena na diagrame pretoka podatkov.

Oblikovanje algoritmov

Objektno usmerjeno načrtovanje c

Operacije v predmetih so opredeljene z zaporedjem. Algoritem je postopek, ki po korakih rešuje problem, določen v operaciji. Osredotoča se na to, kako je treba ukrepati.

Operaciji lahko ustreza več kot en algoritem. Ko so določena alternativna zaporedja, se izbere optimalno za področje problema. Metrike za izbiro algoritma:

  • Kompleksnost štetja. Določa učinkovitost algoritma v smislu računskega časa in potreb po pomnilniku.
  • Prilagodljivost. Ta koncept določa, ali je mogoče izbrani algoritem ustrezno in brez izgube skladnosti izvajati v različnih okoljih.
  • Razumevanje. označuje, ali je izbrani algoritem enostaven za razumevanje in izvajanje.

Oblikovanje odnosov

To strategijo je treba zapisati v fazi načrtovanja predmeta. Osnovna razmerja vključujejo asociacije, agregacije in dedovanje.

V zvezi z združenji mora oblikovalec storiti naslednje

  • Določite, ali je razmerje enosmerno ali dvosmerno.
  • Analizirajte poti združevanja in jih po potrebi posodabljajte.

V zvezi z dedovanjem mora oblikovalec storiti naslednje:

  • Konfiguracija razredov in njihovih združenj.
  • Opredelitev abstraktnih sistemov.
  • Ustvarite pogoje za izmenjavo vedenja, če je to potrebno.

Izvajanje nadzora

Razvijalec objektov lahko vključi izboljšave strategije modela diagrama stanja. Opredelitev osnovne politike dinamičnega predmeta pri načrtovanju sistema.

Pristopi za izvajanje dinamičnega modela:

1. predstavitev stanja kot lokacije v programu.

To je tradicionalni pristop, ki temelji na postopkih, pri čemer lokacija kontrolnega elementa določa status. Stroj končnega stanja se lahko izvede kot program. Prehod generira vhodno izjavo, glavna krmilna pot generira zaporedje ukazov, veje ustvarjajo pogoje, povratne poti pa oblikujejo zanke ali iteracije.

2. Mehanizem končnih avtomatov.

Ta pristop neposredno predstavlja izraz prek njegovega razreda. Izvaja končni avtomat z nizom prehodov in akcij, ki jih zagotovi aplikacija.

3. Nadzor - sočasne naloge.

Pri tem pristopu je predmet izveden kot vprašanje v programskem jeziku ali operacijskem sistemu. V tem primeru je dogodek implementiran kot klic med opravili in ohranja vzporednost, ki je lastna resničnim predmetom.

Razredi pakiranja

Pri vsakem velikem projektu je pomembno, da izvajanje skrbno razdelimo na module ali pakete. Pri ustvarjanju predmetov so razredi združeni v skupine, kar omogoča, da več družb deluje skupaj.

Različni vidiki embalaže:

1. Skrivanje notranjih informacij pred zunanjim pogledom. To omogoča, da se razred obravnava kot "črna skrinjica" in da se izvajanje spreminja, ne da bi bilo treba odjemalcem spreminjati kodo.

2. Skladnost elementov. Del (na primer razred, operacija ali modul) je povezan, če je organiziran po skladnem načrtu in so vsi njegovi deli neločljivi, tj. služijo skupnemu namenu.

Osnove gradnje fizičnih modulov:

1. Razredi morajo predstavljati podobne stvari ali komponente v istem sestavljenem objektu.

2. Tesno povezani razredi morajo biti v istem modulu, medtem ko morajo biti nepovezani ali ohlapno združeni razredi v ločenih delih.

3. Moduli morajo imeti visoko stopnjo interakcije med svojimi sestavnimi deli.

Optimizacija zasnove

Objektno usmerjene tehnike načrtovanja

Analitični model zbira logične informacije o sistemu, projektna komponenta pa dodaja podrobnosti za učinkovit dostop do njih. Program je treba pred izvajanjem optimizirati, da bo izhod učinkovitejši. Cilj izboljšav je čim bolj zmanjšati stroške v smislu časa, prostora in drugih kazalnikov.

Vendar optimizacija zasnove ne sme biti pretirana, saj so pomembna vprašanja tudi enostavnost izvedbe, vzdrževanje in razširljivost. V praksi je to jasno vidno. Razvijalci vedo, da je popolnoma optimizirana zasnova učinkovitejša, vendar manj uporabna. Zato mora mojster najti ravnovesje med obema.

Različne stvari, ki jih lahko storite za izboljšanje:

  • Dodajte odvečna združenja.
  • Opustite neuporabljena združenja.
  • Optimizacija algoritmov.
  • Ohranite izpeljane atribute, da se izognete ponovnemu izračunavanju zapletenih izrazov.

Podrobneje si oglejmo nekaj točk.

Dodajanje odvečnih združenj.

Med optimizacijo zasnove se preveri, ali lahko oblikovanje novih združenj zmanjša stroške dostopa. Čeprav ta odvečna združenja morda ne dodajajo nobenih informacij, lahko povečajo učinkovitost celotnega modela.

Izključitev neuporabljenih združenj.

Zaradi prevelikega števila združenj je lahko sistem nerazberljiv in zmanjša splošno učinkovitost. To pomeni, da se med optimizacijo odstranijo vsi neuporabljeni vezniki.

Izboljšanje algoritmov.

V objektno usmerjenih sistemih se optimizacija podatkovne strukture doseže z. Ko je zasnova razreda ustvarjena, je treba izboljšati operacije in algoritme.

Optimizacijo dosežemo z:

  • Spreminjanje vrstnega reda računalniških opravil.
  • Spremembe v zaporedju ciklov.
  • Odstranjevanje mrtvih poti v algoritmu.
  • Ohranjanje izpeljanih atributov.
Članki na tem področju