1. Wymienić interakcje, o których musi pamiętać programista tworząc interfejs.
2. Wymienić 3 główne modele
3. Prototypowanie z porzuceniem a prototypowanie ewolucyjne [pokaz 8]
4. Porównanie metody algebraicznej ze struktura schematu Z
1. Wyjaśnij, dlaczego inne systemy w środowisku pewnego systemu mogą mieć nieoczekiwany wpływ na funkcjonowanie tego systemu
2. Wyjaśnij, dlaczego specyfikowanie systemów dla służb ratowniczych do zwalczania skutków katastrof jest ze swej natury problemem złośliwym
3. Zaproponuj jak sys. Oprog sa samochodu mógłby pomóc w likwidacji całego systemu
4. Wyjaśnij, dlaczego tak ważne jest opracowanie ogólnego opisu architektury systemu we wczesnej fazie procesu specyfikacji systemu
5. Przedstaw rozmaite systemy wewnątrz budynku
6. Przedstaw diagram procesu projektowania systemu
Prototypowanie ewolucyjne zaczyna się od zbudowania dość prostego systemu, który spełnia najważniejsze wymagania użytkownika. Jest on następnie zmieniany i uzupełniany w miarę odkrywania nowych wymagań. Ostatecznie staje się systemem, którego oczekiwano. Idea prototypowania ewolucyjnego polega na opracowywaniu wstępnej implementacji, wystawianiu jej na krytykę użytkowników i udoskonalaniu jej w wielu krokach aż do chwili zbudowania odpowiedniego systemu.Prototypowanie ewolucyjne ma wiele wspólnego z metodami błyskawicznego tworzenia programów użytkowych.
Celem prototypowania ewolucyjnego jest dostarczenie użytkownikom działającego systemu. Oznacza to, że powinno się rozpocząć od tych wymagań użytkownika, które są najlepiej rozpoznane i mają najwyższy priorytet. Wymagania mniej jasne lub o mniejszym priorytecie są implementowane jedynie wówczas, gdy zażądają tego użytkownicy.
Zalety prototypowania ewolucyjnego:
Przyspieszone dostarczanie systemu. W niektórych wypadkach błyskawiczne dostarczanie i użyteczność są znacznie ważniejsze niż funkcjonalność lub zdatność do pielęgnacji w długim okresie.Włączenie użytkownika w budowę systemu. Udział użytkowników w procesie budowania powoduje że system ma więcej szans spełnienia ich wymagań, użytkownicy akceptują system.
Metody prototypowania ewolucyjnego -specyfikowanie,projektowanie,implementacja przeplatają się.
-System jest budowany w postaci ciągu przyrostów. Użytkownicy i inni udziałowcy systemu są włączeni w projektowanie i ocenę każdego przyrostu.
-Stosuje się metody błyskawicznego tworzenia systemów. Mogą to być narzędzia CASE i języki czwartej generacji.
-Systemowe interfejsy użytkownika są zwykle budowane za pomocą interakcyjnego systemu wytwórczego, który umożliwia szybkie tworzenie projektu interfejsu przez rysowanie i rozmieszczanie ikon.
Problemy z prototypowaniem ewolucyjnym
Kłopoty z zarządzaniem -Prototypy ewoluują tak szybko, że opracowywanie dużej ilości dokumentacji jest zbyt kosztowne,trudności z wykorzystaniem dostępnego personelu z powodu braku odpowiednich umiejętności.
Kłopoty z pielęgnacją ciągłe zmiany powodują uszkodzenia struktury prototypowego systemu. Kłopoty z umową
Weryfikacja i zatwierdzanie systemu zbudowanego z zastosowaniem prototypownia ewolucyjnego
-Stwierdzenie,że program jest odpowiedni -nie jest mierzalne można jedynie przeprowadzić subiektywną ocenę.
Opracuj abstrakcyjną specyfikację -> Zbuduj prototyp systemu-> Użytkuj prototyp Systemu -> System jest odpowiedni?->Dostarcz system
Prototypowanie z porzuceniem służy do udoskonalenia i wyjaśnienia specyfikacji systemu. Prototyp jest budowany, oceniany i modyfikowany. Ocena prototypu inspiruje opracowywanie szczegółowej specyfikacji systemu, która jest częścią dokumentacji wymagań systemowych. Po napisaniu tej specyfikacji prototyp nie jest potrzebny i odrzuca się go.
Celem prototypowania z porzuceniem jest zatwierdzenie lub dostarczenie wymagań systemowych. Należy zacząć od tych wymagań, które nie są dobrze rozpoznane, ponieważ trzeba dowiedzieć się o nich więcej. Wymagania, które są oczywiste, nie muszą podlegać prototypowaniu.
Prototypowanie z porzuceniem -umożliwia uniknięcie niektórych trudności związanych z ustawicznymi zmianami charakterystycznymi dla prototypowania ewolucyjnego.
-Prototyp porzucany oprogramowania najczęściej nie służy jednak do oceny projektu, ale pomaga w opracowaniu wymagań systemu. Projekt prototypu jest zwykle całkowicie odmienny od końcowej wersji gotowego systemu.
-W prototypie porzucanym można pominąć dobrze rozpoznaną funkcjonalność, rozluźnić standardy jakościowe i pominąć kryteria efektywnościowe.
-Język oprogramowania użyty do budowy takiego prototypu jest zwykle inny niż język implementacji gotowego systemu.
Wady prototypowania z porzuceniem
-Dostrojenie prototypu tak, aby spełniał wymagania niefunkcjonalne dotyczące efektywności, zabezpieczenia, solidności i niezawodności, może być niemożliwe.
-Gwałtowne zmiany zachodzące w czasie budowania nieuchronnie powodują, że prototyp nie jest udokumentowany.
-Firmowe standardy jakości zwykle nie są rygorystycznie przestrzegane w czasie budowania prototypu.
Rozdz. 7
Modelowanie systemu - Graficzne prezentacje, w których przedstawia się problem do rozwiązania i system do zbudowania.
modelowanie zachowania, modelowanie danych i modelowanie obiektowego
Przykłady różnych typów modeli systemu
Model przetwarzania danych. Na diagramach przepływu danych obrazuje się, jak dane są przetwarzane w różnych krokach pracy systemu.
Model składania. Na diagramach encja-związek przedstawia się, w jaki sposób encje systemu są złożone z innych encji.
Model architektoniczny. W modelach architektonicznych obrazuje się zasadnicze podsystemy, z których składa się system.
Model klasyfikacyjny. Na diagramach klas obiektów i dziedziczenia przedstawia się wspólne cechy encji.
Model bodziec-reakcja. Na diagramach stanów obrazuje się, w jaki sposób system reaguje na zdarzenia wewnętrzne i zewnętrzne.
Modele zachowania
Modele zachowania są używane do ogólnego opisywania zachowania systemu.
Dwa typy modeli:
modele przepływów danych, w których opisuje się przetwarzanie danych w systemie;
modele maszyn stanowych, w których opisuje się reakcje systemu na zdarzenia.
Modele przepływu danych
Są intuicyjnym sposobem przedstawienia, jak dane są przetwarzane przez system.
Na etapie analizy należy ich użyć do modelowania przetwarzania danych w istniejącym systemie.
Notacje używane w tych modelach służą do przedstawiania przetwarzania funkcjonalnego, magazynów danych i przekazywania danych między funkcjami.
Modele przepływu danych są powszechnie stosowane w analizie o analizie strukturalnej systemów.
Elementy UML-a
w diagramach przepływu danych
Owale oznaczają kroki przetwarzania.
Strzałki z nazwami danych to przepływy.
Prostokąty są magazynami danych lub źródłami danych.
Rozdz. 8
Prototypowanie w procesie tworzenia oprogramowania
Prototypowanie ewolucyjne zaczyna się od zbudowania dość prostego systemu, który spełnia najważniejsze wymagania użytkownika. Jest on następnie zmieniany i uzupełniany w miarę odkrywania nowych wymagań. Ostatecznie staje się systemem, którego oczekiwano.
Prototypowanie z porzuceniem służy natomiast do udoskonalenia i wyjaśnienia specyfikacji systemu. Prototyp jest budowany, oceniany i modyfikowany. Ocena prototypu inspiruje opracowywanie szczegółowej specyfikacji systemu, która jest częścią dokumentacji wymagań systemowych. Po napisaniu tej specyfikacji prototyp nie jest potrzebny i odrzuca się go.
Cele prototypowania:
Celem prototypowania ewolucyjnego jest dostarczenie użytkownikom działającego systemu. Oznacza to, że powinno się rozpocząć od tych wymagań użytkownika, które są najlepiej rozpoznane i mają najwyższy priorytet. Wymagania mniej jasne lub o mniejszym priorytecie są implementowane jedynie wówczas, gdy (i pod warunkiem, że) zażądają tego użytkownicy.
Celem prototypowania z porzuceniem jest zatwierdzenie lub dostarczenie wymagań systemowych. Powinieneś zacząć od tych wymagań, które nie są dobrze rozpoznane, ponieważ potrzebujesz dowiedzieć się o nich więcej. Wymagania, które są oczywiste, nie muszą podlegać prototypowaniu.
Zalety stosowania prototypowania ewolucyjnego
Przyspieszone dostarczanie systemu. W niektórych wypadkach błyskawiczne dostarczanie i użyteczność są znacznie ważniejsze niż funkcjonalność lub zdatność do pielęgnacji w długim okresie.
Włączenie użytkownika w budowę systemu. Udział użytkowników w procesie budowania powoduje nie tylko to, że system ma więcej szans spełnienia ich wymagań. Oznacza także akceptację systemu przez użytkowników, którzy będą chcieli, żeby dobrze działał.
Wady prototypowania z porzuceniem
Dostrojenie prototypu tak, aby spełniał wymagania niefunkcjonalne dotyczące efektywności, zabezpieczenia, solidności i niezawodności, może być niemożliwe.
Gwałtowne zmiany zachodzące w czasie budowania nieuchronnie powodują, że prototyp nie jest udokumentowany.
Firmowe standardy jakości zwykle nie są rygorystycznie przestrzegane w czasie budowania prototypu.
Rozdz. 10
Procesu projektowania architektonicznego
Proces projektowania architektonicznego polega na ustaleniu podstawowego zrębu systemu.
Podział architektoniczny jest niezbędny do strukturalizacji i porządkowania specyfikacji.
Model architektoniczny jest zwykle punktem początkowym do specyfikowania rozmaitych części systemu.
Obejmuje identyfikację najważniejszych komponentów systemu i komunikacji między nimi.
Trzy zalety jawnego projektowania
Komunikacja z uczestnikami
Analiza systemu
Użycie wielokrotne w wielkiej skali
Czynności procesy projektowania architektonicznego
Strukturalizacja systemu
System jest dzielony na kilka podstawowych podsystemów, przy czym podsystem jest niezależną jednostką oprogramowania. Identyfikuje się tu komunikację między podsystemami.
Modelowanie sterowania
Określa się ogólny model związków sterowania między częściami systemu.
Podział na moduły
Każdy zidentyfikowany podsystem jest dzielony na moduły. Architekt musi wskazać typy modułów i ich połączenia.
Podsystemy i moduły
Podsystem jest systemem na swoich własnych prawach; jego usługi nie zależą od usług oferowanych przez inne podsystemy. Podsystemy składają się z modułów i mają interfejsy używane do komunikacji z innymi podsystemami.
Moduł jest zwykle komponentem systemu, który oferuje co najmniej jedną usługę innym modułom. Korzysta z usług innych modułów. Zwykle nie jest traktowany jako niezależny system. Moduły są zwykle zbudowane z kilku innych, prostszych komponentów systemu.
Rozdz. 11
Trzy najważniejsze rodzaje systemów
Systemy osobiste, które nie są rozproszone i są przeznaczone do pracy na komputerze osobistym lub stacji roboczej. Przykładami takich systemów są m.in. procesory tekstów, arkusze kalkulacyjne, systemy graficzne itd..
Systemy wbudowane, które działają na jednym procesorze lub na zintegrowanej grupie procesorów. Przykładami takich systemów są m.in. systemy sterowania sprzętem domowym i systemy sterujące przyrządami.
Systemy rozproszone, w których oprogramowanie systemowe działa na luźno zintegrowanej grupie współpracujących procesorów połączonych siecią. Przykładami takich systemów są m.in. systemy bankomatów, systemy rezerwacji, systemy pracy grupowej itd.
Istotne cechy systemu rozproszonego
Współdzielenie zasobów
Otwartość
Współbieżność
Skalowalność
Odporność na awarie
Przezroczystość
Wady systemów rozproszonych
Złożoność
Zarządzanie zabezpieczeniem
Trudności z zarządzaniem i pielęgnacją
Nieprzewidywalność czasu reakcji
Rozdz. 15
Zalety GUI
Są dość łatwe do nauczenia się i do użytkowania. Użytkownicy bez doświadczeń z komputerami mogą nauczyć się używania interfejsu w ciągu krótkiego szkolenia.
Użytkownik ma kilka ekranów (okien) do interakcji z systemem. Można przejść od jednego zadania do innego bez utraty oglądu informacji przygotowanej w trakcie pierwszego zadania.
Szybka interakcja za pomocą pełnego ekranu daje dostęp do każdego miejsca na ekranie.
Zasady projektowania interfejsu użytkownika
Projektanci interfejsu użytkownika muszą brać pod uwagę psychiczne i umysłowe zdolności osób używających oprogramowania.
Ludzie mają ograniczoną pamięć krótką i robią błędy zwłaszcza wówczas, gdy muszą obsłużyć dużą ilość informacji lub są pod presją.
Mają różne możliwości psychiczne.
Projektując interfejsy użytkownika, trzeba to wszystko wziąć pod uwagę.
Rodzaje interakcji z użytkownikiem
Działanie bezpośrednie.
Wybór z menu.
Wypełnianie formularza.
Język poleceń.
Język naturalny.
Jak należy korzystać z kolorów w interfejsach użytkownika?
Ogranicz liczbę stosowanych kolorów i używaj ich ostrożnie.
Zmiany kolorów używaj do oznaczenia zmiany stanu systemu.
Skorzystaj z kodu kolorów, który pomoże użytkownikowi w realizacji zadań.
Korzystaj z kodu kolorów spójnie i rozsądnie.
Uważaj na związki między kolorami.
2