Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:ztb:2010:projekty:naturalnie_pl:start [2010/06/16 22:37]
ztb2010
pl:dydaktyka:ztb:2010:projekty:naturalnie_pl:start [2019/06/27 15:50] (aktualna)
Linia 66: Linia 66:
 ==== Przypadki użycia ==== ==== Przypadki użycia ====
  
-== 1. Gość ​== +  - Gość: 
-1.1. Wyszukiwanie użytkowników +    ​- ​Wyszukiwanie użytkowników 
-1.2. Rejestracja z potwierdzeniem +    ​- ​Rejestracja z potwierdzeniem 
-1.2.1. ​Zaproponowanie loginu +      ​- ​Zaproponowanie loginu 
-1.2.2. ​Podanie hasła +      ​- ​Podanie hasła 
-1.2.3. ​Podanie adresu email +      ​- ​Podanie adresu email 
-1.2.4. ​Podanie danych na swój temat +      ​- ​Podanie danych na swój temat 
-1.3. Przeglądanie wyników ankiety +    ​- ​Przeglądanie wyników ankiety 
-1.4. Przeglądanie istniejących metod planowania rodziny +    ​- ​Przeglądanie istniejących metod planowania rodziny 
-1.4.1. ​Wysłanie powiadomienia mailowego o metodzie do znajomego  +      ​- ​Wysłanie powiadomienia mailowego o metodzie do znajomego  
-1.4.2. ​Wyświetlanie danych na temat wybranej metody+      ​- ​Wyświetlanie danych na temat wybranej metody
  
-== 2. Użytkownik: ​== +  - Użytkownik:​ 
-2.1. Zarządzanie kontem +    ​- ​Zarządzanie kontem 
-2.1.1. ​Przypomnienie hasła/​wygenerowanie nowego +      ​- ​Przypomnienie hasła/​wygenerowanie nowego 
-2.1.2. ​Aktualizacja profilu +      ​- ​Aktualizacja profilu 
-2.1.2.1. ​Zmiana hasła +        ​- ​Zmiana hasła 
-2.1.2.2. ​Zmiana adresu email +        ​- ​Zmiana adresu email 
-2.1.2.3. ​Zmiana danych na swój temat +        ​- ​Zmiana danych na swój temat 
-2.2. Wyszukiwanie użytkowników +    ​- ​Wyszukiwanie użytkowników 
-2.3. Przeglądanie istniejących metod planowania rodziny +    ​- ​Przeglądanie istniejących metod planowania rodziny 
-2.3.1. ​Wysłanie powiadomienia mailowego o metodzie do znajomego  +      ​- ​Wysłanie powiadomienia mailowego o metodzie do znajomego  
-2.3.2. ​Wyświetlanie danych na temat wybranej metody +      ​- ​Wyświetlanie danych na temat wybranej metody 
-2.4. Przeglądanie danych nt cyklów owulacyjnych +    ​- ​Przeglądanie danych nt cyklów owulacyjnych 
-2.4.1. ​Przeglądanie wykresów z naniesionymi danymi +      ​- ​Przeglądanie wykresów z naniesionymi danymi 
-2.4.2. ​Wprowadzanie danych +      ​- ​Wprowadzanie danych 
-2.5. Przeglądanie danych pomiarowych i obserwacyjnych +    ​- ​Przeglądanie danych pomiarowych i obserwacyjnych 
-2.5.1. ​Przeglądanie wykresów z naniesionymi danymi, w tym danych na temat obliczonych dni płodnych/​niepłodnych +      ​- ​Przeglądanie wykresów z naniesionymi danymi, w tym danych na temat obliczonych dni płodnych/​niepłodnych 
-2.5.2. ​Wprowadzanie danych+      ​- ​Wprowadzanie danych
  
-== 3. Administrator: ​== +  - Administrator:​ 
-  - Zarządzanie kontami użytkowników +    - Zarządzanie kontami użytkowników 
-    - Kasowanie/​banowanie użytkowników +      - Kasowanie/​banowanie użytkowników 
-    - Wysyłanie mailingu do użytkowników +      - Wysyłanie mailingu do użytkowników 
-3.2. Kasowanie/​dodawanie artykułów +    ​- ​Kasowanie/​dodawanie artykułów 
-3.3. Przeglądanie uwag od użytkowników +    ​- ​Przeglądanie uwag od użytkowników 
-3.4. Przeglądanie statystyk serwisu +    ​- ​Przeglądanie statystyk serwisu 
-3.5. Powiadamianie o informacjach dotyczących serwisu+    ​- ​Powiadamianie o informacjach dotyczących serwisu
  
 ==== Identyfikacja funkcji ==== ==== Identyfikacja funkcji ====
Linia 119: Linia 119:
  
  
-==== Analiza ​hierarchii funkcji ​projektowanej aplikacji ​====+==== FHD — diagramy ​hierarchii funkcji ====
  
 +{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​fhd.png}}
 +==== WBS (Work Break-down Structure) ====
  
-==== Budowa i analiza diagramu przepływu danych ====+{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​wbs.jpg}}
  
 +==== DFD (Data Flow Diagram) ====
 +
 +{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​dfd.png|}}
  
 ==== Wybór encji (obiektów) i ich atrybutów ==== ==== Wybór encji (obiektów) i ich atrybutów ====
  
 +W systemie będą istniały nastepujace encje: Udostepnianie danych, dane pomiarowe, info o uzytkownikach,​ techniczna klasa o uzytkownikach.
 +
 +
 +
 +^Pole ^Typ ^Możliwy null ^Klucz ^Extra ^Opis^
 +|  **nfp_SHARES** ​ |||||||
 +| ID_ |int| |PK|Autoincrement|Identyfikator udostępniania|
 +|OWNER_ID|uniqueidentifier| |FK|aspnet_Users.UserId|Użytkownik udostępniający|
 +|OBSERVER_ID|uniqueidentifier| |FK|aspnet_Users.UserId|Osoba otrzymująca dostęp|
 +|PRIVILAGES|nchar(30)| | | |Zakres udostępnionych danych|
 +|  **nfp_MEASUREMENT_DATA** ​ |||||||
 +|ID_|int| |PK|Autoincrement|Identyfikator pomiaru|
 +|USER_ID|uniqueidentifier| |FK|aspnet_Users.UserId|Identyfikator użytkownika|
 +|TEMP|float| ​ X  | | |Zmierzona temperatura|
 +|CERV_FLUID|int| ​ X  | | |Rodzaj obserwowanego śluzu|
 +|SPOTTING|int| ​ X  | | |Rodzaj krwawienia|
 +|INTERCOURSE|int| ​ X  | | |Typ odbytych stosunków|
 +|DATE|smalldatetime| | | |Data pomiaru|
 +|FERTILE|int| ​ X  | | |Obliczona płodność|
 +|  **nfp_USERS_INFO** ​ |||||||
 +|USER_ID|Uniqueidentifier| |PK,​FK|aspnet_Users.UserId | |
 +|EMAIL|varchar(50)| ​ X  | | |Adres email|
 +|NAME|varchar(20)| ​ X  | | |Imię|
 +|SURNAME|varchar(20)| ​ X  | | |Nazwisko|
 +|BIRTHDATE|datetime| ​ X  | | |Data urodzenia|
 +|STATE|varchar(20)| ​ X  | | |Województwo|
 +|POSTCODE|varchar(10)| ​ X  | | |Kod pocztowy|
 +|CITY|nchar(10)| ​ X  | | |Miasto|
 +|FEMALE|bit| | | |Płeć|
 +|STREET|varchar(40)| ​ X  | | |Ulica|
 +|  **aspnet_Users** ​ |||||||
 +|ApplicationId|uniqueidentifier| |FK|aspnet_Applications.ApplicationId|Identyfikator aplikacji|
 +|UserId|uniqueidentifier| |PK| |Identyfikator użytkownika|
 +|UserName|nvarchar(256)| | | |Nazwa użytkownika|
 +|LoweredUserName|nvarchar(256)| | | |Nazwa użytkownika małymi literami|
 +|MobileAlias|nvarchar(16)| ​ X  | | | |
 +|IsAnonymous|bit| | | | |
 +|LastActivityDate|datetime| | | |Data ostatniej aktywności|
 +
 +==== ERD — diagramy zwiazków encji ====
 +
 +
 +{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​alltables.jpg}}
 +
 +==== DFD — diagramy przepływu danych ====
 +==== STD (State Transition Diagram) ====
 +
 + ​{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​std.jpg}}
 +
 +==== Projekt logiczny ====
 +=== Projekt tabel ===
 +
 +Patrz pkt. 9
 +
 +=== Normalizacja ===
 +Tak proste tabele spełniają założenia 3. postaci normalnej.
 +=== Mapowanie bazy danych ===
 +
 +Zastosowalismy technologię LINQ TO SQL, ktora dostarcza ​ zintegrowany język zapytań pozwalający na mapowanie relacyjnych baz danych na model obiektowy. ​ Jest to technologia napisana pod bazy MS SQL Server. Dostepne jest narzędzie dblinq udostępniające podaną funkcjonalność na pozostałe bazy, jednak obecnie nie jest ono jeszcze wystarczająco rozwinięte by uzywać je w dużych komercyjnych projektach. ​
 +
 +Cała koncepcja opiera się na mapowaniu do tabeli konkretnych.
 +Stosujemy model trójwarstwowy,​ caly projekt opiera sie na frameworku MVC (model view controller). Komunikacja z bazą danych odbywa się za pośrednictwem klasy repozytorium. ​
 +Proste zapytanie w LINQ to SQL: 
 +<​code>​from nfp_MEASUREMENT_DATA in db.nfp_MEASUREMENT_DATAs
 +                      where nfp_MEASUREMENT_DATA.USER_ID == user_id
 +                      orderby nfp_MEASUREMENT_DATA.DATE ascending
 +                      select nfp_MEASUREMENT_DATA;</​code>​
 +LINQ zamienia na: 
 +<​code>​SELECT [t0].[ID], [t0].[USER_ID],​ [t0].[TEMP],​ [t0].[CERV_FLUID],​ [t0].[SPOTTING],​ [t0].[INTERCOURSE],​ [t0].[DATE],​ [t0].[FERTILE]
 +FROM [dbo].[nfp_MEASUREMENT_DATA] AS [t0]
 +WHERE [t0].[USER_ID] = @p0
 +ORDER BY [t0].[DATE]</​code>​
 +
 +{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​linqklasy.jpg}}
 +
 +==== Projekt fizyczny: implementacja ====
 +=== Platforma===
 +Zdecydowalismy się uzywać platformy .NET, dokładnie frameworka MVC. 
 +Jako bazę danych wybraliśmy SQL Server 2008, hosing będziemy mieli zewnętrzny.
 +
 +=== Implementacja bazy===
 +Baza została na czas testów zainstalowana razem z serwerem Team Foundation Server na dedykowanym serwerze wewnątrz sieci AGH. Docelowo zostanie przeniesiona na zewnętrzny hosting.
 +=== Interfejsy===
 +
 +== Podstawowe interfejsy: ​ ==
 +  * Wprowadzanie danych:
 +
 + ​{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​enter_data.jpg}}
 +
 +  * Wyswietlanie wykresow:
 +
 +{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:​chart.jpg}}
  
-==== Projektowanie powiązań (relacji) pomiędzy encjami ====+  * Kalendarz obrazujący stan płodności dla poszczególnych dni:
  
-{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​upr_krakow:diagram_relacji.png|}}+{{:​pl:​dydaktyka:​ztb:​2010:​projekty:​naturalnie_pl:calendar.jpg}}
  
-==== Projekt diagramów STD (State Transition Diagram – diagramy przejść pomiędzy stanami) ​====+=== Wprowadzanie danych ​=== 
 +Wprowadzanie danych do bazy nie stanowi żadnego problemu, na poziomie mapowania LINQ bazy danych mamy pełną walidację
 +==Użytkowanie systemu===
  
-=== Diagram stanów dla użytkownika zalogowanego ​gościa ===+Użytkownik pierwszy raz odwiedzający serwis powinien zarejestrować się, wprowadzić przykładowe dane, już po paru dniach może odczytać pierwsze wyniki. Dodatkowo powinien odwiedzic dział „Dowiedz się więcej” gdzie może zaczerpnąc więcej wiedzy teoretycznej na temat użytkowania serwisu oraz stosowanych metod.
  
 +=== Utrzymywanie i administracja systemu===
 +Ponieważ serwis będzie na wykupionej platformie hostingowej nie musimy się martwić administracją.
 +=== Kierunki rozwoju===
 +Przede wszystkim będziemy dążyć do zaimplementowania możliwości rejestrowania danych z urządzeń mobilnych (telefon, palmtop). ​
  
-=== Diagram stanów dla redaktora i administratora ​===+==== Literatura==== 
 +[1] Design Patterns: Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2), ​ Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides 
 +[2] http://​msdn.microsoft.com/​
pl/dydaktyka/ztb/2010/projekty/naturalnie_pl/start.1276720658.txt.gz · ostatnio zmienione: 2019/06/27 15:56 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0