Projektovanje softvera. Uvod

Similar documents
Rešavanje problema pomoću računara

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

TEHNIKA I INFORMATIKA U OBRAZOVANJU

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Pregled metodologija:

Objektno orijentisano projektovanje. Dr Borislav Jošanov, profesor Visoka poslovna škola strukovnih studija Novi Sad

Podešavanje za eduroam ios

2. Objektno orjentirana analiza i dizajn poslovnih aplikacija, MVC model

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

Projektovanje softvera. Dijagrami slučajeva korišćenja

Programiranje III razred

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

STRUČNA PRAKSA B-PRO TEMA 13

Dr.Miroljub Banković, prof. Kragujevac, 2008.

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08

Objektno orjentirano programiranje

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

Razvoj softverskog rešenja za podršku upravljanju proizvodnim nalozima u industrijskoj proizvodnji

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

Sybase PowerDesigner 12

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

Univerzitet u Beogradu Fakultet organizacionih nauka Miloš Milić

Slika broj 1. Primer dijagrama sekvenci

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Uvod u relacione baze podataka

Modeli podataka. Model podataka - osnovne komponente

Materijali za pripremu usmenog ispita Predmet: Procesi razvoja softvera


Tema 11:Objektno orijentisane metodologije razvoja softvera

Direktan link ka kursu:

Relacije spajaju opšta sredstva dok dijagrami grupišu opšta sredstva.

SOFTVERSKO INŽENJERSTVO INTELIGENTNIH SISTEMA

Slika 1.4. Završiti sa dizajnom pre uvođenja

Port Community System

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Materijal za prijemni ispit na Doktorske studije iz informatike

11 Analiza i dizajn informacionih sistema

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

PROŠIRENI MODEL OBJEKTI-VEZE

Mindomo online aplikacija za izradu umnih mapa

Primjeri pitanja iz 1. ili 2. skupine (za 2 ili 4 boda po pitanju) -

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

Projektiranje informacijskih sustava

SAS On Demand. Video: Upute za registraciju:

Albert Farkaš SUVREMENI TRENDOVI RAZVOJA INFORMACIJSKIH SUSTAVA

Nejednakosti s faktorijelima

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

PROJEKTNI PRORAČUN 1

Bušilice nove generacije. ImpactDrill

DANI BRANIMIRA GUŠICA - novi prilozi poznavanju prirodoslovlja otoka Mljeta. Hotel ODISEJ, POMENA, otok Mljet, listopad 2010.

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA

PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na prim

MENADŽMENT INFORMACIONI SISTEMI

Projektovanje IS. Dinamika u UML-u Zaključak. Mušterija. Određivanje cijena Pisanje zahtjeva za refundiranje. :RefundReq uest. [New] :RefundReq uest

BENCHMARKING HOSTELA

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

TESTIRANJE SOFTVERA SANJA MIJALKOVIĆ 1061/2013

IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

- UVOD U INFORMACIONE SISTEME -

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

Priprema podataka. NIKOLA MILIKIĆ URL:

1. Instalacija programske podrške

MS.CS Petar Popić, software engineer. Copyright Petar Popic Software Engineering

DIPLOMSKI RAD iz predmetа Razvoj veb aplikacija

Posmatrani i objekti posmatraci

P R A K T I K U M. 1

Struktura i organizacija baza podataka

MDA pristup u realizaciji izveštajnog podsistema informacionih sistema

WWF. Jahorina

Klasterizacija. NIKOLA MILIKIĆ URL:

Sadržaj. Projektovanje informacionih sistema Information Systems Design - uvodno predavanje - Prof. drlatinović Tihomir

Windows Easy Transfer

RANI BOOKING TURSKA LJETO 2017

ANALIZA PRIMJENE KOGENERACIJE SA ORGANSKIM RANKINOVIM CIKLUSOM NA BIOMASU U BOLNICAMA

Univerzitet u Beogradu Matematički fakultet. Mašina pravila ekspertski sistem dokazivanja zasnovan na pravilima. master rad

PROJEKTOVANJE BAZA PODATAKA U OBLASTI OBRAZOVNOG RA^UNARSKOG SOFTVERA

INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

MENADŽMENT I INFORMACIONE TEHNOLOGIJE Katedra za menadžment i IT. Menadžment i informacione tehnologije

CRNA GORA

KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

Katedra za menadžment i IT. Razvoj poslovnih informacionih sistema

MODELOM VOĐEN RAZVOJ SKLADIŠTA PODATAKA ZASNOVANOG NA DATA VAULT PRISTUPU

Osnovni koncepti Data Warehouse sistema

UPRAVLJANJE RAZVOJNIM PROJEKTIMA

Transcription:

Projektovanje softvera

Osnovni pojmovi Svaki ozbiljniji projekat prolazi kroz faze: analiza, projektovanje, implementacija, testiranje slično je sa SW projektima, kroz faze se prolazi iterativno Objektno-orijentisana metodologija razvoja dominantna u proizvodnji softvera danas Pojmovi objektno-orijentisana analiza OOA objektno-orijentisano projektovanje OOD objektno-orijentisano programiranje OOP objektno-orijentisani jezik OOL 2

Objektno-orijentisana analiza Tradicionalne tehnike strukturirane analize fokus na toku podataka u sistemu Booch (1994): Objektno-orijentisana analiza je metod analize koji ispituje zahteve iz perspektive klasa i objekata pronađenih u rečniku iz domena problema Proizvod OOA konceptualni model - ulaz u fazu OOD 3

Objektno-orijentisano projektovanje Tradicionalno strukturirano projektovanje fokus na algoritamskim apstrakcijama Booch (1994): Objektno-orijentisano projektovanje je metod projektovanja koji obuhvata proces OO dekompozicije notaciju za predstavljanje logičkih i fizičkih statičkih i dinamičkih aspekata modela sistema koji se projektuje Proizvod OOD model projektovane aplikacije ili sistema ulaz u fazu OOP 4

Objektno-orijentisano programiranje Tradicionalno strukturirano programiranje fokus na implementaciji algoritama Booch (1994): Objektno-orijentisano programiranje je metod implementacije po kojem su: programi organizovani kao kolekcije objekata koji sarađuju svaki objekat predstavlja primerak neke klase i sve klase su članovi neke hijerarhije klasa u kojoj su klase povezane relacijama nasleđivanja Proizvod OOP izvršna aplikacija ili sistem 5

Objektno-orijentisani jezik Cardelli & Wegner (1985): Jezik je objektno-orijentisan ako i samo ako ispunjava: da podržava objekte koji su apstrakcije podataka sa interfejsom preko imenovanih operacija i skrivenim lokalnim stanjem da objekti imaju pridružen tip (klasu) da tipovi (klase) mogu nasleđivati atribute nadtipa (natklase) Ako jezik samo ne podržava nasleđivanje naziva se objektno-baziranim jezikom Objektno-orijentisani jezici su: Simula, Smalltalk, Object Pascal, Eiffel, Python, Ada95, C++, Java, C#, Visual Basic.NET,... Objektno-bazirani jezici Ada83, VisualBasic v6,... 6

Principi OO modela Booch OOA&D (1994): Osnovni (obavezni) apstrakcija kapsulacija modularnost hijerarhija Dodatni (neobavezni) tipizacija konkurentnost perzistencija Modifikacija: Osnovni (obavezni) apstrakcija kapsulacija modularnost hijerarhija polimorfizam Dodatni (neobavezni) konkurentnost perzistencija 7

Apstrakcija i kapsulacija Shaw (1984): Apstrakcija je uprošćeni opis ili specifikacija sistema koja naglašava neke od detalja ili osobina, dok potiskuje druge Booch (1994): Apstrakcija ističe esencijalne karakteristrike objekta koje ga razlikuju od drugih vrsta objekata i tako definiše jasne konceptualne granice iz perspektive posmatrača Kapsulacija je proces sakrivanja onih elemenata apstrakcije koji definišu strukturu i ponašanje Kapsulacija služi da razdvoji konceptualni interfejs od implementacije apstrakcije 8

Modularnost i hijerarhija 9 Modularnost je osobina sistema da se razlaže na skup kohezivnih i slabo spregnutih modula Moduli su fizičke jedinice (nezavisno prevođenje) predstavljaju komponente sistema mogu se održavati nezavisno Hijerarhija je rangiranje ili uređivanje apstrakcija Nasleđivanje - is a hijerarhija jednostruko/višestruko potpuno (javno)/strukturno (privatno) Sadržanje - part of hijerarhija po vrednosti/po referenci (relevantno u C++, ali ne u Javi) agregacija/kompozicija

Tipizacija i polimorfizam Tipizacija je osobina da se objekti različitih klasa ne mogu uopšte ili se mogu zamenjivati na ograničene načine stroga i slaba tipizacija statička i dinamička tipizacija (vezivanje) Dinamička tipizacija i dinamičko vezivanje tehnički preduslov za ispoljavanje polomorfizma Polimorfizam je osobina da se objekat kojem se pristupa kao objektu osnovne klase ponaša različito: kao objekat osnovne klase ili kao objekat izvedene klase ponašanje zavisi od dinamičkog tipa objekta, ne statičkog tipa reference Polimorfizam objekta se zasniva na virtuelnim metodama 10

Konkurentnost i perzistencija Principi koji se dobro uklapaju u OO paradigmu Nisu suštinski principi koji određuju da li je softver OO OO softver ih ne mora posedovati Softver koji nije OO ih može posedovati Konkurentnost je osobina koja razlikuje aktivne objekte od pasivnih proces - ima vlastiti adresni prostor (tipično njime upravlja OS) nit - deli isti adresni prostor sa drugim nitima Perzistencija je osobina po kojoj se postojanje objekta proteže kroz vreme (obj. nastavlja da živi nakon nestanka njegovog stvaraoca) kroz prostor (obj. se premešta iz adresnog prostora u kojem je stvoren) 11

Model i modeliranje Model je pojednostavljenje realnosti Model nekog sistema je apstrakcija tog realnog sistema iz određenog ugla posmatranja Osnovna namena modela da se sistem koji se razvija bolje razume Modeliranje je važnije što je sistem kompleksniji kompleksnost je odlika današnjih SW sistema Savremena metodologija razvoja softvera Model Driven Development (MDD) 12

Ciljevi modeliranja Model pomaže da se sistem vizuelizuje Model omogućava da se specificira struktura sistema ponašanje sistema Model daje šablon koji usmerava konstrukciju sistema Model dokumentuje projektne odluke koje se donose Model smanjuje cenu razvoja omogućava ispitivanje projektnih odluka po nižoj ceni 13

OO model i pogledi na model Model OO analize i projektovanja obuhvata više pogleda na sistem koji se razvija Dve dimenzije pogleda na sistem: logički/fizički aspekti statički/dinamički aspekti AiP OO sistema se obavlja u terminima klasa, objekata, njihovih relacija i interakcija Tokom AiP koriste se različiti uglovi gledanja na model sistema u datom 2D prostoru 14

Dijagrami Za svaki pogled na model sistema može se definisati adekvatan dijagram Svaki dijagram predstavlja jednu projekciju modela Primer - aplikacija sa 100 klasa: potrebno je više klasnih dijagrama (svaki prikazuje jedan pogled na model) Jedno ime na svakom dijagramu označava isti entitet (sa izuzetkom operacija zbog preklapanja imena) 15

Logički i fizički aspekti modela Logički model sistema opisuje ključne apstrakcije i mehanizme koji obrazuju prostor problema ili definišu arhitekturu sistema definiše strukturu i relacije između klasa relacije i interakcije između objekata Fizički model sistema opisuje konkretnu softversku i hardversku kompoziciju definiše arhitekturu modula i arhitekturu procesa 16

Statički i dinamički aspekti modela Statički aspekti modela se fokusiraju na strukturu sistema Dinamički aspekti modela se fokusiraju na ponašanje sistema Realni sistemi uvek imaju dinamičko ponašanje: objekti se kreiraju i uništavaju objekti šalju poruke drugim objektima nekim redosledom spoljašnji događaji izazivaju reakcije izvesnih objekata 17

Notacija za opis modela Nekoliko notacija zaslužuju posebnu pažnju: Booch i OMT notacija (iz istorijskih razloga) UML notacija (standard) Pogodnosti standardne formalne grafičke notacije: olakšava se komunikacija između korisnika i članova razvojnog tima projektant se rasterećuje od nebitnih detalja i koncentriše se na bitne omogućava se upotreba automatizovanih alata za proveru konzistencije i korektnosti projekta ili izvršavanje modela Nije neophodno koristiti celu notaciju na primer Booch Lite, UML Basic (UML User Guide) Potrebno je da notacija omogućava različit stepen detaljnosti (ponekad samo grube skice) Notacija treba da bude nezavisna od programskog jezika neki elementi notacije nemaju direktnu podršku u konkretnom jeziku 18

Alati za modeliranje (1) IBM Rational: Software Architect (Rose, Rose XDE Developer, Software Modeler) http://www-01.ibm.com/software/rational/products/swarchitect/ Borland: Together http://www.borland.com/products/together/default.aspx Gentleware: Poseidon for UML http://www.gentleware.com Open Source: StarUML http://staruml.sourceforge.net/en/ Altova: Umodel http://www.altova.com/download/umodel/uml_tool.html Omondo: EclipseUML http://www.omondo.com 19

Alati za modeliranje (2) Sparx Systems: Enterprise Architect http://www.sparxsystems.com Visual Paradigm: Visual Paradigm for UML http://www.visual-paradigm.com/product/vpuml Embarcadero Technologies: ER/Studio Software Architect http://www.embarcadero.com/products/er-studio-software-architect Pregled alata: http://en.wikipedia.org/wiki/list_of_unified_modeling_language_tools 20