Inżynieria Oprogramowania-pytania i wątpliwości

0

Wspolnie z kolega tworzymy projekt i chcemy go zrobic zgodnie z teoria
inzynierii oprogramowania. Bazujemy glownie na ksiazce Andrzeja Jaszkiewicza,
wiedze uzupelniamy takze ze znalezionych materialow w internecie. Wybralismy
model kaskadowy, ale analizujac poszczegolne fazy pojawiaja sie tam punkty
ktorych do konca nie rozumiemy lub nie jestesmy pewni- bylibysmy wdzieczni za
pomoc w rozwianiu tych watpliwosci (odpowiednich przykladow nie ma w ksiazce,
a na internecie swoboda interpretacji wybranych terminow jest dosc duza).

FAZA STRATEGICZNA:

  1. Wykonanie ogólnego modelu systemu oraz zgrubnej analizy - rozumiemy
    ze chodzi o jakis prosty, ogolny diagramp rezentujacy budowany system oraz
    krotki jego opis czyli analiza?
  2. Wykonanie zgrubnego projektu systemu - jezeli powyzej byla mowa o
    modelu czyli jak my to rozumiemy takim prostym schemacie blokowym w tej fazie,
    to co to jest tutaj projekt systemu i czym on sie rozni od modelu systemu ?
  3. Propozycje kilku możliwych rozwiązań, sposobów realizacji systemu - o
    jaki poziom rozwazan tutaj chodzi? - dla przykladu powiedzmy ze naszym celem
    jest promowanie miasta i dostarczanie informacji o tym miescie i chodzi np o
    to ze mozemy to zrobic albo zakladajac biuro informacji albo robiac portal
    informacyjny? zapewne nie tak to nalezy rozumiec bo tak by mozna pisac o
    sposobie realizacji danego celu, a nie "systemu", ale nie mam pojecia jak
    tutaj podac jakies inne alternatywne sposoby realizacji tego portalu (systemu)
  • moze mi ktos podac jakis przyklad w przypadku projektow webowych? bo chyba
    na pewno nie jest tu mowa o projektowaniu czy tymbardziej sposobie
    implementacji funkcjonalnosci systemu
  1. Wybór technik stosowanych w dalszych fazach - o jaka kategorie
    technik tu chodzi ? mile widziane jakies przyklady
  2. Wybór środowiska implementacji - chodzi o srodowisko w ktorym bedzie
    pisany kod ? np visual studio? czy moze o to w jakim srodowisku bedzie system
    implemenowany, w jakim srodowisku bedzie funkcjonowal - np srodowisko
    wirtualnej maszyna java, serwer aplikacyjny itd
  3. Określenie stopnia wykorzystania gotowych komponentów - czy faza
    strategiczna to juz ten moment na tego typu rozwazania ? faza projektowania
    jest chyba bardziej opowiednia? a jesli tutaj ma byc mniejszy poziom
    szczegolowosci to o czym mozna tutaj napisac w przypadku projektu webowego ? a
    moze w ogole ten punkt pominac ?

FAZA OKRESLANIA WYMAGAN:

  1. Ogólny model systemu - czym ten ogolny model systemu ma sie roznic od
    takiego samego modelu systemu tworzonego w fazie strategicznej ? moze chodzi o
    poprawienie tamtego modelu ?
  2. Plan testów, którego podstawą są określone w tej fazie wymagania -
    juz teraz plan testow? nie mam pojecia o czym tutaj napisac :/ przeciez jesli
    chodzi o testowanie to ma to swoja osobna faze w modelu kaskadowym
  3. Określanie wymagań - czy ktos moglby nam podac jakis przyklad jak
    takie wymagania tworzyc ? pan Jaszkiewicz proponuje polaczyc jezyk naturalny z
    zapisami formalnymi poprzez stworzenie formularza dla kazdego wymagania z
    osobna - wynikiem tego jest mnÓstwo tabelek w dokumentacji robiacych za
    formularze - jak to sie odpowiednio pogrupuje to moze nie bedzie zle, ale moze
    macie jakas lepsza metode na ich przedstawienie?

FAZA ANALIZY:

  1. Słownik danych (przechowuje praktycznie wszystkie informacje
    dotyczące tworzonego systemu, także te zawarte na diagramach graficznych) -
    rozumiem ze ten slownik nalezy bardziej kojarzyc z jakims repozytorium plikow
    i dokumentow zwiazanych z projektem? czy znacie jakies darmowe narzedzia do
    prowadzenia takiego slownika danych ? czy blog zawierajacy opisy i pliki
    moglby pelnic role takiego slownika danych ? slownik mi sie kojarzy bardziej
    ze slownikiem terminow, ale bys moze nieslusznie, zreszta slownik terminiow to
    osobny punkt w tym modelu

pozdrawiam i z gory dziekuje za pomoc
Lukasz

0

Przyjrzyj się w tej książce kolejności etapów - zauważysz, że fazy strategiczna i określania wymagań się nakładają.

FAZA STRATEGICZNA

  1. Tak na prawdę jest faza w stylu: co?, dla kogo? robisz (na razie nie ważne jak?). Modelem systemu może być model środowiskowy (DFD kontekstowy - system jako jeden wielki proces)
  2. Zgrubny projekt to też określenie celu przedsięwzięcia, korzyści dla klienta (na tym etapie trwają jeszcze negocjacje, czy on to kupi), określenie granicznego zakresu przedsięwzięcia (w stylu: program nie zajmuje się już analizą kosztów zakupu książek do biblioteki, bo on je tylko kataloguje, od kosztów jest inny program)
  3. Propozycje rozwiązań - tu możesz wybrać na przykład między zrobieniem portalu, a prezentacji. Reklama miasta jest mało bogata w możliwe rozwiązania. Ale system kadrowy możesz zbudować w oparciu o serwer HTTP i przeglądarki (cienki klient), w oparciu o model serwer dedykowany i klienci (gruby klient), system peer to peer, albo program samodzielny, albo w ogóle jako zbiór makr do Office.
  4. Wybierasz, czy obiektowo, czy proceduralnie, czy z zastosowaniem bazy danych SQL, czy z możliwością zastosowania bibliotek DLL, itp
  5. Środowisko implementacji, ale nie tylko kompilator: IDE programistyczne, kompilator, debuger, edytor i ewentualnie kompilator HELPa, edytor i ewentualnie kompilator instalatora - po prostu zbiór narzędzi do stworzenia
    6.Komponenty - tu ogólnie - które główne funkcje możesz zbudować z prefabrykatów - tworzysz program kadrowy z komunikacją pracowników? Może komunikację zrobić w oparciu o komponent THGG (czy jak mu tam - ten od GG). - Głównie komponenty zewnętrzne, a nie te dostępne ze środowiska (chyba, że kluczowe).

W tej fazie ma być ogólnie, konceptowo. Jako, że jest to faza w trakcie negocjacji, tu się też określa koszt przedsięwzięcia.

FAZA OKREŚLENIA WYMAGAŃ

A. Wymagania funkcjonalne {czyli konkretne funkcje dla użytkowników}

Przykładowe wymaganie F1

Nazwa: Edycja dokumentu
Opis: Użytkownik nacisnął odpowiedni przycisk i był zalogowany {to później trzeba wyjaśnić lub zdefiniować oczywiście}
Dane wejściowe: ID użytkownika, ID dokumentu
Warunki dodatkowe: ID użytkownika w liście zalogowanych
Rezultat: dokument o zmienionej treści w miejscu starego
Efekty dodatkowe: dodany log o zmianie dokumentu

Najlepiej wrzucić do tabelki. Warto określić jakąś hierarchię, czyli w jakich opcjach dostępne są inne np.:

F1. Przeglądanie departamentów
F2. Zaplanowanie audytu
F3. Przeglądanie audytów
F4. Dodanie not obserwacyjnych
F5. Dodanie not korygujących
F6. Usuwanie audytu
F7. Przeglądanie not obserwacyjnych
F8. Edycja not obserwacyjnych
F9. Przeglądanie not korygujących
F10. Edycja not korygujących
F11. Zmiana roli

B. Wymagania niefunkcjonalne {czyli oczekiwania w stostunku do systemu}

? Rozmiar ? nie może przekraczać 25MB pamięci dyskowej (nie licząc rozmiaru bazy
danych); do uruchomienia powinien wystarczyć system wykorzystujący 32MB
pamięci RAM.
? Bazy danych - system musi obsługiwać bazy danych w postaci plików lokalnych w
standardach XML, INI oraz własnym umożliwiającym podpisanie cyfrowe.
? Intuicyjność obsługi ? osoby bez żadnego przeszkolenia muszą być w stanie korzystać
z oprogramowania jako użytkownik; przeszkolenie audytorów może trwać
maksymalnie 1 dzień.
? Sterowanie ? nie jest konieczne dodawanie obsługi wyłącznie za pomocą klawiatury
? Odporność ? oprogramowanie musi być w stanie robić automatyczne kopie zapasową 1 dziennie.

SŁOWNIK DANYCH

To bardzo konkretne definicje (widać w książce Yourdona). Dzieli się na 2 części: definicje pojęć kluczowych {ujednolicenie terminologii klienta i developerów}, definicje typów {określenie postaci danych}

Definicje pojęć kluczowych użytych w systemie:

Nota obserwacyjna ? w rozumieniu normy Systemów Zarządzania Jakością: opis niezgodności systemu z normą ABC.XYZ lub z istniejącą już w firmie inną dokumentacją Systemów Zarządzania Jakością (ustalenia SDF13 oraz SDF14).

Definicje typów

Adres = miasto + kraj
Miasto = Nazwa
Kraj = Nazwa
Nazwisko = Nazwa
Data = [0-31] + ?/? + [0-12] + ?/? + [0-2100]
Czas = [0-23] + ?:? + [0-59] + ?:? + [0-59] + ?:? + [0-999]
Id_osoby = [1-9]
Opis sesji = id_osoby + data + czas

Wszystkie dane i typy, którymi posługujesz się na DFD oraz ERD powinny być tu zdefiniowane.

0
Szczawik napisał(a)

Przyjrzyj się w tej książce kolejności etapów - zauważysz, że fazy strategiczna i określania wymagań się nakładają.

owszem, ale sa mimo wszystko niezalezne, autor opisuje ja jako dodatkowa faze, taka podfaze specyfikacji wymagan. Zgadza sie ze czesc punktow z fazy specyfikacji wymagan rowniez tu wystepuje tylko w ujeciu bardzo ogolnym i pewnie to miales na mysli ?

Szczawik napisał(a)
  1. Tak na prawdę jest faza w stylu: co?, dla kogo? robisz (na razie nie ważne jak?).

zgadzam sie, bardzo trafne stwierdzenie, lepiej bym tego nie ujal ;)

Szczawik napisał(a)

Modelem systemu może być model środowiskowy (DFD kontekstowy - system jako jeden wielki proces)

mozesz jasniej to opisac ? czy jesli ja mam do wykonania portal informacyjny dla miasta to modelem bedzie tutaj taki maly diagram obejmujacy sam portal jako glowny komponent polaczony z ew kilkoma modulami, a do tego zewnetrzne instytucje i uzytkownicy jako osobne elementy na tym rysunku? bo tak to wlasnie zrobilismy
a mozesz rozszyfrowac skrot: DFD kontekstowy ?

Szczawik napisał(a)
  1. Zgrubny projekt to też określenie celu przedsięwzięcia, korzyści dla klienta (na tym etapie trwają jeszcze negocjacje, czy on to kupi),

okreslenie celow to jeden podpunkt fazy strategicznej, a zrobienie tego zgrubnego modelu to drugi no i tu mam niejasnosc bo oba punkty chce wypelnic

Szczawik napisał(a)
  1. Propozycje rozwiązań...

oki, to juz calkowicie mi sie wyjasnilo:)

Szczawik napisał(a)
  1. Środowisko implementacji, ale nie tylko kompilator: IDE programistyczne, kompilator, debuger, edytor i ewentualnie kompilator HELPa, edytor i ewentualnie kompilator instalatora - po prostu zbiór narzędzi do stworzenia

czyli ogolnie rzecz biorac narzedzia CASE ? no i to mam inny podpunkt tej fazy ktory wlasnie te narzedzia okresla czyli wymienione przez Ciebie wyzej rzeczy wlasnie do niego by sie nadawaly, a srodowisko implementacji dalej nie jest dla mnie do konca zrozumiale :/

Szczawik napisał(a)

6.Komponenty - tu ogólnie - które główne funkcje możesz zbudować z prefabrykatów - tworzysz program kadrowy z komunikacją pracowników? Może komunikację zrobić w oparciu o komponent THGG (czy jak mu tam - ten od GG). - Głównie komponenty zewnętrzne, a nie te dostępne ze środowiska (chyba, że kluczowe).

czyli to nie chodzi o takie komponenty jak w delphi ktore sa jakby rozszerzeniem srodowiska implementacji czy jakies moduly do systemow cmsowych, a o zupelnie autonomiczne systemy zewnetrzne ktore mozemy potraktowac jako element naszego przyszlego systemu ?

prezentacja wymagan funkcjonalnych i niefunkcjonalnych bardzo mi do gustu przypadla - zbiega sie bardzo z moimi wyobrazeniami ;)

Szczawik napisał(a)

SŁOWNIK DANYCH
To bardzo konkretne definicje (widać w książce Yourdona). Dzieli się na 2 części: definicje pojęć kluczowych {ujednolicenie terminologii klienta i developerów},

czyli to jest u mnie punkt w specyfikcji wymagan:
-Słownik terminów informatycznych oraz terminów z dziedziny klienta

natomiast opisana przez Ciebie definicja typow jak najbardziej tu chyba pasuje, jesli bym przyjal ze punkt o slowniku terminow zawiera sie w slowniku danych to by bylo ok jednak w ksiazce pana Jaszkiewicza sa to 2 osobne punkty

pozdrawiam

0

{Reszta rozmowy potoczyła się przez GG}

Jak macie jakieś komentarze do powyższego, zachęcam jednak do dopisania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1