Projektowanie systemu, Semestr 5, Inżynieria oprogramowania


PROJEKTOWANIE SYSTEMU:

Zadania wykonywane podczas projektowania

- Uszczegółowienie opracowanego modelu logicznego; projekt musi być wystarczająco szczegółowy, aby mógł być podstawą implementacji, przy czym stopień szczegółowości zależy od poziomu zaawansowania programistów

- Projektowanie składowych systemów, które nie są związane z dziedziną problemu

- Optymalizacja systemu

- Dostosowanie do ograniczeń i możliwości środowiska implementacji

- Określenie fizycznej struktury systemu

Uszczegółowienie modelu:

- Określenie poziomów widoczności atrybutów i dostępu do nich

- Podanie reguł odwzorowania notacji w struktury konkretnego języka programowania (np. polegające na dokładnym określeniu typów danych)

- Wybór sposobu implementacji konstrukcji, które mogą być zrealizowane na wiele sposobów (np. zgodnie ze standardami przyjętymi w firmie)

- Podanie nagłówków metod oraz ich parametrów

- Określenie, które z metod będą realizowane jako funkcje wirtualne a które jako zwyczajne funkcje

- Zastąpienie niektórych prostych metod bezpośrednim dostępem do atrybutów

- Zastąpienie niektórych atrybutów redundantnych przez odpowiednie metody, np. Wiek = BieżącaData - DataUrodzenia;

Określenie sposobów implementacji związków (asocjacji), gdyż zwykle można je zaimplementować na wiele sposobów, z reguły poprzez wprowadzenie dodatkowych atrybutów (pól):

obiekty powiązanej klasy

wskaźniki (referencje) do obiektów powiązanej klasy

identyfikatory obiektów powiązanej klasy

Składowe systemów, które nie są związane z dziedziną problemu:

Interakcja z użytkownikiem: Za pomocą linii komend (w niektórych sytuacjach szybsza od interfejsu graficznego):

- nieduże systemy lub prototypy

- programy typowo obliczeniowe dla zaawansowanych żytkowników

Za pomocą plików skryptowych: celem automatyzacji powtarzanych wielokrotnie tych samych działań

Przez graficzny interfejs okienkowy: większe systemy doceniane zwłaszcza przez początkujących i średnio zaawansowanych użytkowników

Złote zasady projektowania interfejsu użytkownika

Spójność - wygląd oraz obsługa interfejsu powinny być podobne podczas korzystania z różnych funkcji; poszczególne programy tworzące system powinny mieć zbliżony interfejs, podobnie powinna wyglądać praca z rozmaitymi dialogami, podobnie powinny być interpretowane operacje wykonywane przy pomcy myszy;

Skróty dla doświadczonych użytkowników - możliwość zastąpienia komend menu przez kombinację klawiszy

Potwierdzenie przyjęcia polecenia użytkownika - realizacja niektórych operacji może trwać stosunkowo długo; w takich sytuacjach, aby użytkownik nie był zdezorientowany, należy potwierdzić przyjęcie polecenia, oraz informować o przebiegu operacji (np. jakiś wskaźnik lub najlepiej czas do zakończenia)

Zrozumiała terminologia komunikacji - nawet (zwłaszcza) w sytuacjach krytycznych oprogramowanie powinno posługiwać się terminologią zrozumiałą dla użytkownika

Eliminacja prostych błędów edycji - oprogramowanie nie powinno dopuszczać do wprowadzenia niepoprawnych danych; jeżeli użytkownik wprowadzi dane, które dopiero po zweryfikowaniu można zakwalifikować jako błędne, wówczas należy zasygnalizować rodzaj błędu oraz umożliwić poprawienia wprowadzonych wartości lub umożliwić powrótu do wartości startowych (poprzednich)

Odwoływanie poprzednio wykonanych operacji - możliwość cofnięcia ostatnio wykonanej operacji lub cofnięcie się „dowolnie” daleko (w granicach rozsądku)

Wrażenie kontroli nad systemem - nikt nie lubi, kiedy system sam zaczyna robić coś, czego użytkownik nie zainicjował,

Dostępność powiązanych informacji - w momencie wypełniania konkretnej informacji, użytkownik powinien zawsze mieć możliwość podejrzenia (lub wyboru z listy)

Nieobciążanie pamięci krótkotrwałej użytkownika - użytkownik może zapomnieć o tym po co i z jakimi danymi uruchomił dialog; system powinien w miarę możliwości wyświetlać stale te informacje, które są niezbędne do tego, aby użytkownik wiedział, co aktualnie dzieje się, i w którym miejscu interfejsu znajduje się.

Grupowanie powiązanych operacji -jeżeli zadanie nie da się zamknąć w prostym dialogu lub oknie, wówczas trzeba je rozbić na szereg powiązanych dialogów; użytkownik powinien być prowadzony przez ten szereg, z możliwością łatwego powrotu do wcześniej wprowadzanych informacji

Optymalizacja:

Optymalizacja (rozumiana jako poprawa efektywności) może być dokonana na poziomie:

• projektu

• implementacji

Kluczowe zagadnienia na etapie projektowania:

Zmiana algorytmu przetwarzania - np. zmiana algorytmu sortującego poprzez wprowadzenie pośredniego pliku zawierającego tylko klucze i wskaźniki do sortowanych obiektów może przynieść nawet 100-krotny zysk.

Wykrycie potencjalnych “wąskich gardeł” w przetwarzaniu i staranne ich zaprojektowanie; stosuje się tutaj twierdzenie, że 20% kodu jest wykonywane przez 80% czasu; możliwe jest również rozwiązanie polegające na zleceniu implementacji kluczowego przetwarzania na niższym poziomie

Świadoma denormalizacja relacyjnej bazy danych - wprowadzenie nadmiarowości danych w celu zwiększenia efektywności (np. łączenie dwóch lub więcej tablic w jedną)

Stosowanie struktur pomocniczych - indeksów, tablic wskaźników, ...

Analiza mechanizmów buforowania danych w pamięci operacyjnej i ewentualna zmiana tego mechanizmu (np. zmniejszenie liczby poziomów)

Poprawność projektu:

Poprawność oznacza jedynie, że opis projektu jest zgodny z notacją; nie gwarantuje, że projekt jest zgodny z wymaganiami użytkownika

Poprawny projekt musi być:

kompletny

niesprzeczny

spójny

zgodny z przyjętą notacją

Kompletność - zdefiniowane są wszystkie klasy, pola, metody oraz dane złożone i elementarne, a także opisany jest sposób realizacji wszystkich wymagań funkcjonalnych

Spójność - semantyczna zgodność informacji zawartych na diagramach i w specyfikacji

Kluczowe czynniki sukcesu projektowania:

Wysoka jakość modelu projektowego

Dobra znajomość środowiska implementacji

Zachowanie przyjętych standardów (konsekwentne stosowanie notacji i formularzy)

Sprawdzenie poprawności projektu w ramach zespołu projektowego

Optymalizacja projektu we właściwym zakresie (powinna być ograniczona do istotnych, krytycznych miejsc, gdzie rzeczywiście jest potrzebna)

Poddanie projektu ocenie przez niezależne ciało oceniające jego jakość pod względem formalnym i merytorycznym



Wyszukiwarka

Podobne podstrony:
Modelowanie systemu, Semestr 5, Inżynieria oprogramowania
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
sciaga io świder, Studia, Semestr 4, Inżynieria Oprogramowaia
Implementacja, Semestr 5, Inżynieria oprogramowania
2006 09 Wielozadaniowość w systemach operacyjnych [Inzynieria Oprogramowania]
piekarnia, Studia - Politechnika Opolska, Semestr 4, Inżynieria Oprogramowania
przydział, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania
Dokumentacja projektowa, Studia infa, Inżynieria oprogramowania
system rezerwacji, inżynieria oprogramowania
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
2006 08 Zarządzanie pamięcią w systemach operacyjnych [Inzynieria Oprogramowania]
2006 07 Jądro systemu operacyjnego [Inzynieria Oprogramowania]
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania

więcej podobnych podstron