Tema 4 Osnovni koncepti za opis razvoja softvera DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac Parts of this Tema use material from the textbook H. Balzert, Softver-Technik, Vol. 1, 2nd ed., Spektrum Akademischer Verlag, 2001 Version: Feb. 20, 2004 (D Nov. 06, 2003) 1
4. Osnovni koncepti za opis razvoja softvera a) Opis rezultata razvojnih faza softvera dokumentacija razvoja softvera b) Definisanje osnovnih koncepata za opis razvoja softvera i njihova klasifikacija c) Osnovni koncepti i faze razvoja softvera d) Klasifikacija osnovnih koncepata u skladu sa njihovom notacijom e) Osnovni koncepti i njihova područja primene f) Osnovni koncepti i njihovo korišćenje u metodama analize DAAD project Joint Course on Software Engineering 2 2
Tehnike opisa koje se koriste pri izradi softverske dokumentacije Problem: Kako opisati? Zahtevi korisnika Specifikacija Projektovanje Kod Korisnik Analitičar Dizajner (Projektant) Programer Source: Schneider, SEUH 43, p. 123 DAAD project Joint Course on Software Engineering 3 3
Opis softverske dokumentacije konačni klasifikacija? slučajeva korišćenja sekvenci UML objekti veze pseudo kod DAAD project Joint Course on Software Engineering 4 4
Osnovni koncepti razvoja softvera Balzert vol. 1, 2. izdanje 2001 koncepti i pogledi Alternativne notacije Često korišćene Retko korišćene Box 1973 programa Tabele odluke 1957 aktivnosti 1997 saradnje Funkcijsko drvo slučajeva korišćenja Rečnik 1979 Model objekti veze 1976 1980/ 1990 Pseudo kod Pravila 1954 Petri mreže 1962 Sekvencijalni FunkcionalnaPoslovni hijerarhija proces Funkcionalni pogled Tok informacija Strukture Tipovi entiteta i odnosa ka podacima Strukture Kontrolne Objektno- Algoritamski Orijentisani pogled pogled If-Then Pogled pravilima Paralelne na stanja Interaktivne Pogled scenariju DAAD project Joint Course on Software Engineering 5 5
Osnovni koncepti razvoja softvera Balzert vol. 1, 2-go izdanje 2001 koncepti i pogledi Alternativne notacije Često korišćene Retko korišćene elementarni formalizovani mehanizmi opisa Klasifikacija na tri nivoa: Koji pogled na softver? Koji aspekt tog pogleda? Koja stvarna vrsta notacije? X UML Box 1973 programa Tabele odluke 1957 osnovni koncepti aktivnosti 1997 saradnje Funkcij -sko drvo slučajeva korišćenja Rečnik 1979 Model objekti veze 1976 1980/ 1990 Pseudo kod Pravila 1954 Petri mreže 1962 Sekvencijalni FunkcionalnaPoslovni hijerarhija proces Funkcionalni pogled Tok informacija Strukture Tipovi entiteta i odnosa ka podacima Structure Kontrolne Objektno- Algoritamski Orijentisani pogled pogled If-Then Pogled pravilima Paralelne na stanja Interaktivne Pogled scenariju DAAD project Joint Course on Software Engineering 6 6
Osnovni koncepti razvoja softvera Balzert vol. 1, 2-go izdanje 2001 Alternativne notacije Često korišćene koncepti i pogledi Retko korišćene Jackson 1975 Warnier- Orr 1972 Jackson 1975 Box 1973 razvoj 1996 2001 Sintaksni 1964 programa Tabele odluke 1957 saradnje Funkcij -sko drvo Rečnik 1979 Model objekti veze 1976 1980/ 1990 Pseudo kod Pravila 1954 Petri mreže 1962 Sekvencijalni FunkcionalnaPoslovni hijerarhija proces Funkcionalni pogled Tok informacija Strukture Tipovi entiteta i odnosa ka podacima Structure Kontrolne Objektno- Algoritamski Orijentisani pogled pogled If-Then Pogled pravilima Paralelne na stanja Interaktivne Pogled scenariju DAAD project Joint Course on Software Engineering 7 7
Razvoj softvera ostaje mešavina metoda Razvoj Razvoj softvera kao kao nauka nauka i i kao kao praktična aktivnost imaju imaju nešto nešto zajedničko: raznovrsnost Raznovrsnost pristupa u osnovnim konceptima: moraju biti mogući različiti pogledi na softverske proizvode (različiti aspekti sofverskih proizvoda) Computer-Zeitung 25/96 (20. June 96) DAAD project Joint Course on Software Engineering 8 8
Osnovni koncepti: principi Nezavisni od faze upotrebljivi u raznim fazama Nezavisni od područja primene vrsta primene određuje izbor pogodnog osnovnog koncepta Nezavisni od metoda osnovni koncepti se mogu kombinovati u opštim metodama (npr. strukturna analiza, OOA sa UML...) DAAD project Joint Course on Software Engineering 9 9
funkcijsko drvo konačni sekvencijalni saradnje tabala odlučivanja Osnovni koncepti i faze razvoja softvera Faza definisanja Faza projektovanja slučajeva korišćenja Petri mreže OV (objekti veze) RP (rečnik ) pravila pseudo kod Legenda: A B: A se koristi u B Faza implementacije box programa DAAD project Joint Course on Software Engineering 10 10
Klasifikacija osnovnih koncepata u skladu sa njihovom notacijom tekstualni grafički tekst verbal nabrojani zahtevi box saradnje klasifikaciona šema tabela odlučivanja stanja programa sekveencijalni tabela odlučivanja pseudo kod pravila konačni RP Petri mreže OV use case diagr. funkcijsko drvo konačni (tekstualni) Petri mreže (tekst) neformalni poluformalni/formalizovani formalni DAAD project Joint Course on Software Engineering 11 11
Osnovni koncepti i njihova područja primene područja primene složenost... osnovni koncepti... rečnik OV (objekti veze) (konačni )...funkcija studijskog primera funkcijsko drvo...algoritama pseudo kod programa box tabela odlučivanja pravila administrativni tehničkinaučni realnovreme interakcija čovekračunar legenda: ( ) = ograničeno... sistemskog okruženja... vremenski-zavisnog ponašanja... korisničkog interfejsa DAAD project Joint Course on Software Engineering 12 Petri mreže konačni aktivnosti sekvencijalni saradnje grafička specifikacija (Petri mreže) (konačni ) kontrolne pravila 12
Osnovni koncepti Razvoja softvera: poboljšanja Balzert vol. 1, 2-go izdanje 2001 Algebarska specifikacija 1972 Hoareova logika 1969 Z Strukturni EBNF Paketni dijagr. Gramatike Komponentni dijagr. stanja SDL osnovna koncepti: kompletni? dodatne notacije? Box 1973 3 nivoa klasifikacije Šema je fleksibilna programa Tabele odluke 1957 aktivnost i 1997 saradnje Funkcijsko drvo slučajeva korišćenja Rečnik 1979 Model objekti veze 1976 1980/ 1990 Pseudo kod Pravila 1954 Petri mreže 1962 Sekvencijalni Funkcionalna hijerarhija Poslovni proces Funkcionalni pogled Tok Strukture informacija Tipovi entiteta i odnosa ka podacima Structure Kontrolne If-Then Objektno- Algoritamski Pogled Orijentisani pogled pogled pravilima Paralelne na stanja Interaktivne Pogled scenariju DAAD project Joint Course on Software Engineering 13 13
Osnovni koncepti klasifikacija poboljšanja Algebarska specifikacija 1972 Hoareovturntike dijagr. Z Struk- Grama- EBNF Paketni logika 1969? Komponentni dijagr. stanja SDL Box 1973 programa Tabele odluke 1957 aktivnost i 1997 saradnje Funkcijsko drvo slučajeva korišćenja Rečnik 1979 Model objekti veze 1976 1980/ 1990 Pseudo kod Pravila 1954 Petri mreže 1962 Sekvencijalni Funkcionalna hijerarhija Poslovni proces Funkcionalni pogled Tok Strukture informacija Tipovi entiteta i odnosa ka podacima Structure Kontrolne If-Then Objektno- Algoritamski Pogled Orijentisani pogled pogled pravilima Paralelne na stanja Interaktivne Pogled scenariju DAAD project Joint Course on Software Engineering 14 14
Osnovni koncepti: detaljna klasifikacija poboljšanja Proširenje pogleda... Proširenje aspekata... Z Gramatike Bo dij Structure Chart EBNF Di tok pro Paketni dijagr. Komponentni dijagr. Funkcijsko drvo slučajeva korišćenja Hoareova logika Algebarska specifikacija 1972 Rečnik 1979 OV Objektiveze 1976 1980/ 1990 Ps ko podsistemi izvodnog koda podsistemi binarnog koda FunkcionalnaPoslovni hijerarhija proces Tok informacija Efecti funkcija Interakcija među funkcijama Efekti funkcija na podatke Strukture Tipovi objekata i veza Strukture Ko stru ka komponentama Funkcionalni pogled ka podacima Objektno- Alg Orijentisan sk pogled DAAD project Joint Course on Software Engineering 15 15
Kombinacija osnovnih koncepata u objektno-orijentisanoj analizi OOA 1990 Sekvencijalni OV (Objekti veze) Pseudo kod saradnje slučajeva korišćenja objekti & veze kontrolne konačni interakcije tok posla legenda: A B: A se sadrži u B A B: A se implicitno sadrži u B DAAD project Joint Course on Software Engineering 16 16
Kombinacija osnovnih koncepata u strukturnoj analizi SA 1979 Tabela odlučivanja Drvo odlučivanja Funkcijsko drvo Rečnik Pseudo kod funkcionalna hijerarhija tok informacija kontrolne legenda: A B: A se sadrži u B A B: A se implicitno sadrži u B DAAD project Joint Course on Software Engineering 17 17
Kombinacija osnovnih koncepata u strukturnoj analizi i analizi u realnom vremenu RT SA 1979 tabela odlučivanja drvo odlučivanja rečnik OV (objekti veze) pseudokod stanja tok informacija objekti & veze kontrolne konačni i DAAD project Joint Course on Software Engineering 18 18