1
Version: Feb. 20, 2004 (D Nov. 06, 2003)
Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac
DAAD Project“Joint Course on Software Engineering”
Tema 4Osnovni koncepti za opis
razvoja softvera
Parts of this Tema use material from the textbook H. Balzert, “Softver-Technik”, Vol. 1, 2nd ed., Spektrum Akademischer Verlag, 2001
2
DAAD project „Joint Course on Software Engineering“ © 2
4. Osnovni koncepti za opis razvoja softvera
a) Opis rezultata razvojnih faza softvera – dokumentacijarazvoja 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
3
DAAD project „Joint Course on Software Engineering“ © 3
Tehnike opisa koje se koriste pri izradi softverske dokumentacije
Source: Schneider, SEUH 43, p. 123
Problem: Kako opisati ?
Zahtevi korisnika Specifikacija Projektovanje Kod
Korisnik Analitičar Dizajner (Projektant) Programer
4
DAAD project „Joint Course on Software Engineering“ © 4
Opis softverske dokumentacije …
dijagram klasa
dijagram sekvenci
pseudo kod
konačniautomat
dijagram objekti veze
dijagram toka podataka
dijagramslučajeva korišćenja
UML
klasifikacija?
5
DAAD project „Joint Course on Software Engineering“ © 5
Osnovni koncepti … razvoja softveraBalzert vol. 1, 2. izdanje 2001
Funkcij-skodrvo
Rečnik podataka
1979
Dijagram klasa1980/1990
Box dijagram
1973
Dijagram toka
programa
1966
Pseudokod
Tabele odluke
1957
Pravila Petrimreže1962
Sekven-cijalni
dijagram
1987
Konačni automat
1954
Modelobjekti veze1976
Dijagramtoka
podataka1966
Dijagram slučajeva korišćenja
1987
Dijagramaktivnosti
1997
Dijagramsaradnje
Funkcionalni pogled Pogled orijentisanka podacima
Objektno-Orijentisani
pogled
Algoritamskipogled
Funkcionalnahijerarhija
Poslovniproces
Tok informacija
Struktureklasa
Strukturepodataka
Pogled baziran na pravilima
Pogled orijentisanna stanja
Kontrolnestrukture
If-Thenstrukture
Tipovi entiteta i odnosa
Konačniautomat
Paralelnestrukture
Interaktivnestrukture
Pogled baziran nascenariju
koncepti i pogledi
Alte
rnat
ivne
not
acije
Čes
to k
orišće
ne
Ret
ko k
orišće
ne
6
DAAD project „Joint Course on Software Engineering“ © 6
Osnovni koncepti … razvoja softveraBalzert vol. 1, 2-go izdanje 2001
Funkcij-skodrvo
Rečnik podataka
1979
Dijagram klasa1980/1990
Box dijagram
1973
Dijagram toka
programa
1966
Pseudokod
Tabele odluke
1957
Pravila Petrimreže1962
Sekven-cijalni
dijagram
1987
Konačni automat
1954
Modelobjekti veze1976
Dijagramtoka
podataka1966
Dijagram slučajeva korišćenja
1987
Dijagramaktivnosti
1997
Dijagramsaradnje
Funkcionalni pogled Pogled orijentisanka podacima
Objektno-Orijentisani
pogled
Algoritamskipogled
Funkcionalnahijerarhija
Poslovniproces
Tok informacija
Structureklasa
Strukturepodataka
Pogled baziran na pravilima
Pogled orijentisanna stanja
Kontrolnestrukture
If-Thenstrukture
Tipovi entiteta i odnosa
Konačniautomat
Paralelnestrukture
Interaktivnestrukture
Pogled baziran nascenariju
koncepti i pogledi
Alte
rnat
ivne
not
acije
Čes
to k
orišće
ne
Ret
ko k
orišće
ne
elementarni formalizovanimehanizmi opisa
Klasifikacija na tri nivoa:
Koji pogled na softver?
UML
osnovni koncepti
XKoji aspekt tog pogleda?
Koja stvarna vrsta notacije?
7
DAAD project „Joint Course on Software Engineering“ © 7
Osnovni koncepti … razvoja softveraBalzert vol. 1, 2-go izdanje 2001
Funkcij-skodrvo
Rečnik podataka
1979
Dijagram klasa1980/1990
Box dijagram
1973
Dijagram toka
programa
1966
Pseudokod
Tabele odluke
1957
Pravila Petrimreže1962
Sekven-cijalni
dijagram
1987
Konačni automat
1954
Modelobjekti veze1976
Dijagramtoka
podataka1966
Dijagramsaradnje
Funkcionalni pogled Pogled orijentisanka podacima
Objektno-Orijentisani
pogled
Algoritamskipogled
Funkcionalnahijerarhija
Poslovniproces
Tok informacija
Structureklasa
Strukturepodataka
Pogled baziran na pravilima
Pogled orijentisanna stanja
Kontrolnestrukture
If-Thenstrukture
Tipovi entiteta i odnosa
Konačniautomat
Paralelnestrukture
Interaktivnestrukture
Pogled baziran nascenariju
koncepti i pogledi
Alte
rnat
ivne
not
acije
Čes
to k
orišće
ne
Ret
ko k
orišće
nerazvoj1996 2001
Jacksondijagram1975
Warnier-Orr-dijagram1972
Sintaksnidijagram1964
Jacksondijagram1975
8
DAAD project „Joint Course on Software Engineering“ © 8
Computer-Zeitung 25/96 (20. June 96)
Razvoj softveraostaje mešavina metodaRazvoj softvera kao nauka i kao praktična aktivnost imaju nešto zajedničko: raznovrsnost
Razvoj softveraostaje mešavina metodaRazvoj softvera kao nauka i kao praktična aktivnost imaju 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)
9
DAAD project „Joint Course on Software Engineering“ © 9
Osnovni koncepti: principi
Nezavisni od područja primenevrsta primene određuje izbor pogodnogosnovnog koncepta
Nezavisni od metodaosnovni koncepti se mogu kombinovatiu opštim metodama (npr. strukturnaanaliza, OOA sa UML ...)
Nezavisni od fazeupotrebljivi u raznim fazama
10
DAAD project „Joint Course on Software Engineering“ © 10
Osnovni koncepti ifaze razvoja softvera
Faza definisanja
pseudo kod
pravila
tabala odlučivanja
RP (rečnikpodataka)
dijagramklasa
konačniautomat
funkcijskodrvo
sekvencijalnidijagram
dijagramsaradnje
OV (objektiveze)
Petri mreže
dijagramtoka podataka
dijagram slučajeva korišćenja
boxdijagram
dijagram toka programa
Faza implementacije
Faza projektovanja
Legenda: A B: A se koristi u B
11
DAAD project „Joint Course on Software Engineering“ © 11
Klasifikacija osnovnih koncepatau skladu sa njihovom notacijom
teks
tual
nigr
afič
ki
verbal
box dijagramdijagramklasa
dijagramtoka podataka
tabela odluči-vanja
OV
Petri mrežedijagramstanja
dijagram toka programa
RPPetri mreže(tekst)pravila
pseudo kod
tabela odlučivanja
konačniautomat
sekveencijalnidijagram
neformalni poluformalni/formalizovani formalni
dijagramsaradnje
nabrojanizahtevi
klasifikacionašematekst
use case diagr.
funkcijsko drvo
konačniautomat
(tekstualni)
12
DAAD project „Joint Course on Software Engineering“ © 12
Osnovni koncepti i njihova područja primenepodručja primene složenost ... osnovni koncepti
...podataka
...funkcija
...algoritama
... sistemskog okruženja
... vremenski-zavisnog ponašanja
... korisničkog interfejsa
rečnik podatakaOV (objekti veze)(konačni automat)dijagram klasadijagram studijskog primeradijagram toka podatakafunkcijsko drvopseudo koddijagram toka programabox dijagramtabela odlučivanjapravila
dijagram toka podatakaPetri mrežekonačni automatdijagram aktivnostisekvencijalni dijagramdijagram saradnjegrafička specifikacija(Petri mreže)(konačni automat)kontrolne strukturepravila
tehn
ički
-na
učni
real
no-
vrem
ead
min
istra
tivni
interakcija čovek-računar
legenda: ( ) = ograničeno
13
DAAD project „Joint Course on Software Engineering“ © 13
Funkcij-sko drvo
Rečnik podataka1979
Dijagram klasa1980/1990
Box dijagram
1973
Dijagram toka
programa1966
Pseudokod
Tabele odluke1957
Pravila Petri mreže1962
Sekven-cijalni
dijagram1987
Konačniautomat 1954
Modelobjekti veze1976
Dijagramtoka
podataka1966
Dijagram slučajeva korišćenja
1987
Dijagramaktivnost
i 1997
Dijagramsaradnje
Funkcionalni pogled Pogled orijentisanka podacima
Objektno-Orijentisanipogled
Algoritamskipogled
Funkcionalnahijerarhija
Poslovniproces
Tok informacija
Structureklasa
Strukturepodataka
Pogled baziran na pravilima
Pogled orijentisanna stanja
Kontrolnestrukture
If-Thenstrukture
Tipovi entiteta i odnosa
Konačniautomat
Paralelnestrukture
Interaktivnestrukture
Pogled baziran nascenariju
Osnovni koncepti … Razvoja softvera: poboljšanjaBalzert vol. 1, 2-go izdanje 2001
Struk-turnidijagram
SDLEBNFGrama-tike
Paketnidijagr.
Kompo-nentnidijagr.
osnovna koncepti:• kompletni?• dodatne notacije?
Dijagram stanja1987
ZAlgebarskaspecifika-cija 1972
Hoare-ovalogika1969
3 nivoa klasifikacijeŠema je fleksibilna
14
DAAD project „Joint Course on Software Engineering“ © 14
Funkcij-sko drvo
Rečnik podataka1979
Dijagram klasa1980/1990
Box dijagram
1973
Dijagram toka
programa1966
Pseudokod
Tabele odluke1957
Pravila Petri mreže1962
Sekven-cijalni
dijagram1987
Konačniautomat 1954
Modelobjekti veze1976
Dijagramtoka
podataka1966
Dijagram slučajeva korišćenja
1987
Dijagramaktivnost
i 1997
Dijagramsaradnje
Funkcionalni pogled Pogled orijentisanka podacima
Objektno-Orijentisanipogled
Algoritamskipogled
Funkcionalnahijerarhija
Poslovniproces
Tok informacija
Structureklasa
Strukturepodataka
Pogled baziran na pravilima
Pogled orijentisanna stanja
Kontrolnestrukture
If-Thenstrukture
Tipovi entiteta i odnosa
Konačniautomat
Paralelnestrukture
Interaktivnestrukture
Pogled baziran nascenariju
Osnovni koncepti … klasifikacija poboljšanja
Struk-turnidijagram
SDLEBNFGrama-tike
Paketnidijagr.
Kompo-nentnidijagr.
Dijagram stanja1987
ZAlgebarskaspecifika-cija 1972
Hoare-ovalogika1969 ?
15
DAAD project „Joint Course on Software Engineering“ © 15
Osnovni koncepti: detaljna klasifikacija poboljšanja
Funkcij-sko drvo
Rečnik podataka1979
Dijagram klasa1980/1990
Bodij
Dijtokpro
Psko
OVObjekti-veze1976
Dijagramtoka podataka1966
Dijagramslučajeva korišćenja1987
Funkcionalni pogled Pogled orijentisanka podacima
Objektno-Orijentisanpogled
Algsk
Funkcionalnahijerarhija
Poslovniproces
Tokinforma-cija
Struktureklasa
Strukturepodataka
Kostru
Tipovi objekata i veza
Structure Chart
EBNF
Grama-tike
Z
Algebar-skaspecifi-kacija1972
Hoare-ovalogika
Paketni dijagr.
Kompo-nentnidijagr.
Pogled orijentisanka komponentama
Efectifunkcija
Interakcijameđufunkcijama
Efektifunkcijana podatke
podsistemi izvodnogkoda
podsistemibinarnogkoda
Proširenje pogleda ...
Proširenje aspekata ...
16
DAAD project „Joint Course on Software Engineering“ © 16
Kombinacija osnovnih koncepatau objektno-orijentisanoj analizi
legenda: A B: A se sadrži u BA B: A se implicitno sadrži u B
Pseudokod
Konačniautomat
Dijagramklasa
OOA1990
OV(Objektiveze)
Dijagramsaradnje
Sekvenci-jalni dijagram
Dijagramslučajeva korišćenja
objekti &veze
struktureklasa
kontrolnestrukture
konačniautomat
struktureinterakcije
tokposla
17
DAAD project „Joint Course on Software Engineering“ © 17
Kombinacija osnovnih koncepatau strukturnoj analizi
SA1979
Tabelaodlučivanja
Drvoodlučivanja
Pseudokod
Rečnik podataka
Dijagramtoka podataka
Funkcijskodrvo
funkcionalnahijerarhija
tokinformacija
strukturepodataka
kontrolnestrukture
legenda: A B: A se sadrži u BA B: A se implicitno sadrži u B
18
DAAD project „Joint Course on Software Engineering“ © 18
Kombinacija osnovnih koncepatau strukturnoj analizi i analizi u realnom vremenu
SA1979
tabela odlučivanja
drvo odlučivanja
pseudo-kod
rečnikpodataka
dijagramtoka podataka
automatstanja
OV(objektiveze)
RT1987
tokinformacija
strukturepodataka
kontrolnestrukture
konačniautomati
objekti &veze