1 / 77

Dizajn softvera (01.01-Arhitektura Softvera)

Dizajn softvera (01.01-Arhitektura Softvera). xx.10.2007. Prof. dr Branko Peri šić perisic@uns.ns.ac.yu. Specifikacija zahteva. Specifikacija dizajna. veza zavisnosti. veza zavisnosti. Implementacija. Softverski proi z vod – opšti model.

nissim-pugh
Download Presentation

Dizajn softvera (01.01-Arhitektura Softvera)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dizajn softvera (01.01-Arhitektura Softvera) xx.10.2007 Prof. dr Branko Perišić perisic@uns.ns.ac.yu

  2. Specifikacija zahteva Specifikacija dizajna veza zavisnosti veza zavisnosti Implementacija Softverski proizvod – opšti model

  3. Modeling Languages for Systems Engineering (Statemate) The different “views” to a system

  4. Arhitektura • povezuje osobine sistema navedene u specifikaciji zahteva sa sistemskim komponentama koje će ih implementirati. Komponente su obično moduli, a arhitektura takođe opisuje njihove međusobne veze. Osim toga, arhitektura definiše operatore kojima se od podsistema prave sistemi. • Dizajn koda • obuhvata algoritme i strukture podataka, a komponente su elementi programskog jezika, kao što su brojevi, znakovi, pokazivači i niti kontrole. Tu su takođe elementarni operatori uključujući osnovne jezičke primitive za aritmetiku i manipulaciju podacima, kao i mehanizmi za kompoziciju kao što su matrice, datoteke i procedure. • Izvršni dizajn • još detaljnija pretstava - dizajn koda. On opisuje dodelu memorije, formate podataka, šablone i sl. Arhitektura softvera

  5. Arhitektura softvera “Kvalitet arhitekture definiše konceptualni integritet sistema koji dalje definiše ukupni kvalitet sistema. Dobra arhitektura olakšava proces konstrukcije. Loša arhitektura nekada konstrukciju čini nemogućom.” Steve McConnell, Code Complete, p 35;

  6. Arhitektura softvera – Zašto? 1. Povečanje obima i kompleksnosti softverskih sistema. 2. Dizajn i specifikacija strukture celokupnog sistema. 3. Složenost organizacija i globalna kontrola strukture sistema. 4. Skaliranje i performansa. 5. Izbor varijanti dizajna.

  7. Arhitektura psetarnice Može je izgraditi jedan čovek Zahteva Monimalno modeliranje Jednostavne procese Jednostavne alate

  8. Arhitektura kuće Timski se najefikasnije i najbrže gradi Zahteva Modeliranje Dobro definisan proces Močne alate

  9. Arhitektura visokog rizika

  10. Prosečan softverski projekat: - 5-10 ljudi - 10-15 meseci trajanja - 3-5 spoljašnjih interfejsa - Malo nepoznanica i rizika Defense Weapon System Telecom Switch National Air Traffic Control System Commercial Compiler Embedded Automotive Software CASE Tool Large-Scale Organization/Entity Simulation Small Scientific Simulation IS Application Distributed Objects (Order Entry) Defense MIS System Enterprise IS (Family of IS Applications) IS Application GUI/RDB (Order Entry) Business Spreadsheet Dimenzije kompleksnosti softvera Visoka tehnička složemost - Sadržani, real-time, distribuirani, fault-tolerant - Podesivi, nepredvidivi, promena postojeće arhitekture - Zahtevna performansa Niska složenost upravljanja - Mali - Neformalni - Jedan korisnik - “Proizvodi” Visoka složenost upravljanja - Veliki sistemi - Ugovori - Veliki broj interesenata - “Projekti” Niska tehnička složenost - Uglavnom 4GL, komponent-bazirana rešenja - Reinžinjering aplikacije - Interaktivni rad, interaktivna performansa

  11. Kapacitet Sigurnost Raspoloživost Otpornost na greške Performansa Propusnost Tehnologije Zaštita Prinude u SE Funkcionalnost Trošak Kompatibilnost The challenge over the next 20 years will not be speed or cost or performance;it will be a question of complexity. (Izazov za sledećih 20 godina neće predstavljati brzina, cena ili performansa već složenost) Bill Raduchel, Chief Strategy Officer, Sun Microsystems Our enemy is complexity, and it’s our goal to kill it.(Naš protivnik je složenost a naš zadatak je da je uništimo.) Jan Baan

  12. Domen arhitekture “zašto” “šta” Svojstva sistema Kvalitet arhitekture Zadovoljava Arhitektura Softverski zahtevi Ograničava Pretstavljanje arhitekture Atributi kvaliteta Tehnologija Proizvodi Definiše “kako” “ko” Sledi ArArhitekta Proces Veštine Organizacija Učesnici Definiše pravila

  13. Šta je arhitektura softvera? • Radna definicija arhitekture softvera: “ Arhitektura softvera pretstavlja opis podsistema i komponenti softverskog sistema zajedno sa njihovim međusobnim vezama. Podsistemi i komponente mogu biti specificirane iz više uglova sa ciljem ilustrovanja funkcionalnih i nefunkcionalnih osobina softverskog sistema. Softverska arhitektura sistema pretstavlja PROIZVOD koji je posledica aktivnosti projektovanja softvera.”

  14. Arhitektura – def.2. • Arhitektura softvera obuhvata niz značajnih odluka vezanih za organizaciju softverskog sistema • izbor gradivnih elemenata i njihovih interfejsa • ponašanje u skladu sa specifikacijom i saradnju gradivnih elemenata • kompoziciju elemenata strukture i elemenata ponašanja u SISTEM • arhitektonski stil kojim se rukovodi

  15. Arhitektura(nastavak) • Arhitektura softvera obuhvata: • način korišćenja • funkcionalnost • performansu • pouzdanost • ponovnu iskoristivost • ekonomska i tehnološka ograničenja • estetske aspekte

  16. Arhitektonski stilovi • Arhitektonski stil definiše familiju sistema uz oslonac na šablone koji grade organizacionu strukturu • Arhitektonski stil definiše: • rečnik komponenti i tipove konektora • ograničenja vezana za način povezivanja komponenti • jedan ili više semantičkih modela koji specificiraju kako se opšta svojstva sistema mogu izgraditi na bazi svojstava sastavnih delova.

  17. Gde se arhitektura softvera uklapa u Model životnog ciklusa razvoja softvera? Konstrukcija softvera Inženjerstvo zahteva Arhitektonski dizajn Detaljnidizajn Isporuka Testiranje Kodiranje Održavanje

  18. Metamodel arhitekture

  19. Šta obuhvata arhitektura softvera? • Opis gradivnih elemenata softverskog sistema. • Interakcije među elementima. • Šablone (paterne)koji upravljaju kompozicijom elemenata softverskog sistema. • Ograničenja vezana za šablone (paterne) • Sistem se može koristiti kao kompozitni element pri dizajnu drugih sistema.

  20. Važna terminologija arhitekture softvera • Komponente • Konektori ili veze • Pogledi • Funkcionalna svojstva • Nefunkcionalna svojstva

  21. Komponenta. • Enkapsulirani deo softverskog sistema. • Služi kao gradivni blok sistema i poseduje interfejs. • Na programskom nivou pretstavlja – module, klase, objekteili povezane funkcije. • Kategorizacija komponenti: • Obradni element • Element podataka • Vezni element.

  22. Konektori ili veze Pretstavljaju veze između komponenti. • Mogu biti statičke ili dinamičke. • Statičke veze • Pozicija komponente u sklopu arhitektonskog modela (npr. Agregacija i Nasleđivanje) • Dinamičke veze – Privremen veze i interakcije među komponentama. (npr. – Kreiranje objekataikomunikacija među objektima.)

  23. Pogledi • Delovi arhitekture softvera koji demonstriraju specifična svojstva softverskog sistema. • npr. - Dijagram prelaza stanja, Dijagram toka podataka. • Soni, Nord, Hofmeister - Specificiraju 4 pogleda na SA 1. Konceptualnu arhitekturu 2. Arhitekturu modela 3. Arhitekturu koda 4. Izvršnu arhitekturu. • P.B. Kruchten 4 pogleda na Arhitekturu softvera: 1. Logički pogled 2. Procesni pogled 3. Fizički pogled 4. Pogled raspoređenosti

  24. Funkcionalna svojstva • Bave se posebnim aspektima funkcionalnosti sistema. • U sprezi su sa odgovarajućim funkcionalnim zahtevima. • Retko su eksplicirani u sklopu softverske arhitekture i uglavnom se implicitno podrazumevaju. • Eksplicitno iskazivanjefunkcionalnih svojstavapomaže pri povezivanjuelemenata arhitekture sarelevantnim funkcionalnim zahtevom.

  25. Nefunkcionalna svojstva • Nisu pokrivena funkcionalnim specifikacijama. • Odnose se napouzdanost, kompatibilnost, mogućnost održavanja, saradnju u radu , mogućnost zamene, efikasnost, mogućnost testiranjaiponovne upotrebesoftberskog sistema.

  26. Odnos arhitekture i implementacije

  27. Kreiranje iluzije jednostavnosti

  28. Kupac Korisnik 1. Planiranje i procena budžeta. 2. Izvodivost i analiza rizika. 3. Praćenje zahteva. 4. Praćenje progresa 1. Usklađenost sa zahtevima i scenarijima upotrebe. 2. Buduće narastanje potreba i prilagođavanje 3. Performansa, pouzdanost, interoperativnost. SA Arhitekta Projektant 1. Praćenje zahteva 2. Podrška varijantama. 3. Kompletnost. 4. Konzistentnost 1. Dovoljno detalja za dizajn. 2. Izbor i asembliranje komponenti . 3. Očivanje interoperativnosti sa postojećim sistemom. Uputstvaza menjanje softvera, razvoj arhitekturei interoperativnst Serviser Nadležnosti Učesnika u specificiranju arhitekture

  29. Arhitektonski stilovi a. Šta su arhitektonski stilovi? Arhitektonski stil : • definiše familiju sistema • u terminima šablona i organizacione strukture • obezbeđuje rečnik komponenti i tipova veza • skup ograničenjavezanih za kombinovanje komponenti • Može postojatisemantički model koji specificira način određivanja opštih osobina sistema na osnovu osobuna njegovih delova.

  30. Arhitektonski stilovi b.Vrste arhitektonskih stilova i.Cevi i filtri ( Arhitekture bazirane na tokovima podataka) ii. Objekt orijentisani i apstraktni tipovi. iii. Bazirane na događajima i implicitnom pozivanju. • Ugnježdeni sistemi. • Repozitorijumi. • Interpreteri. • Procesima upravljani

  31. Heterogene arhitekture • Kombinacija više stilova. • Komponente hijerarhijskog sistema mogu internu strukturu razviti na bazi različitih metoda. • Konektorimogu biti dekomponovanina druge sisteme (npr. cevimogu biti interno implementirane kao FIFO redovi čekanja). • Pojedinačne komponente mogu koristiti mešavinuarhitektonskoh konektora. Primer: Unix pipes-and-filter sistem - Sistem datoteka se ponaša kao repozitorijum, - Prima kontrole prekoinicijalizacionihprekidača, - Sa drugim komponentama interagira preko cevi.

  32. HETEROGENI STILOVI Sistem ne mora biti zasnovan samo na jednom stilu! Na visokom nivou: događajima upravljan Na niskom nivou: ugneždeni

More Related