Podstawy programowania III WYKŁAD 5

Podobne dokumenty
Podstawy programowania III WYKŁAD 4

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Podstawy technologii WWW

W dowolnej przeglądarce internetowej należy wpisać poniższy adres:

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

WPROWADZENIE DO BAZ DANYCH

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Bazy danych - wykład wstępny

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

I. Raport wykonywalności projektu

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Biblioteka. Bazy danych I dokumentacja projektu. Cel projektu:

PROJEKT Z BAZ DANYCH

Projektowanie systemów baz danych

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Systemy baz danych. 1. Plan: 2. Zadania: Projekt Bazy Danych - wybór tematów, wstępna kategoryzacja 8. Projekt Bazy Danych - diagram ER

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Autor: Joanna Karwowska

Program dla praktyki lekarskiej. Instrukcja Modułu Importu Dokumentacji Zewnętrznej

Aplikacja Dodatkowe zakładki Shoper Appstore REALIZACJA

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Podstawowe zagadnienia z zakresu baz danych

Programowanie w Ruby

Materiały szkoleniowe Moduł Mapa inwestora. Starostwo Powiatowe w Chełmie

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Przykładowa baza danych BIBLIOTEKA

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Przykład 1 Iteracja 1 tworzenia oprogramowania

Inżynieria oprogramowania II

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Modelowanie i analiza systemów informatycznych Spis treści

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Programowanie w Ruby

Inżynieria oprogramowania. Wykład 6 Analiza i specyfikowanie wymagań

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Wprowadzenie do Doctrine ORM

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

BAZA DANYCH SIECI HOTELI

Dla kas Nano E w wersjach od 3.02 oraz Sento Lan E we wszystkich wersjach.

ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Programowanie obiektowe

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

PODSTAWOWE POJĘCIA BAZ DANYCH

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania do wydania

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

ECDL/ICDL Zarządzanie projektami Moduł S5 Sylabus - wersja 1.0

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

ZSE - Systemy baz danych 1 ZASADY PROJEKTOWANIA BAZ DANYCH

Wykład 1 Inżynieria Oprogramowania

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

mmontaż oprogramowanie do zarządzania produkcją, montażem wyrobów

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Zalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Joyce Cox Joan Lambert. Microsoft Access Krok po kroku. Przekład: Jakub Niedźwiedź

Scenariusze obsługi danych MPZP

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Ustawienia personalne

Instrukcja użytkownika systemu medycznego

Bazy danych. Polecenia SQL

Encje w Drupalu. Tworzenie własnych encji i ich wpływ na poprawę wydajności

Skrypt wideo Pierwsze kroki z IBM TRIRIGA - Obiekty biznesowe i formularze

Wdrożenie modułu płatności eservice. dla systemu Magento

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Rok akademicki: 2014/2015 Kod: CCB s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Modelowanie procesów biznesowych w ADONIS. dr Marek Zborowski

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

1. Logowanie się do panelu Adminitracyjnego

System Gokart Timing

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

7. Formularze master-detail

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Laboratorium A: Zarządzanie ustawieniami zabezpieczeń/klucz do odpowiedzi

SIECI KOMPUTEROWE I BAZY DANYCH

Instrukcja portalu TuTej24.pl

2017/2018 WGGiOS AGH. LibreOffice Base

Database Connectivity

Transkrypt:

Podstawy programowania III WYKŁAD 5 Jan Kazimirski 1

Projekt: Katalog książek elektronicznych 2

Założenia projektu Aplikacja będzie służyła do zarządzania zbiorem książek w postaci elektronicznej. Aplikacja będzie przechowywała informacje o książkach oraz kategoriach do których książka została przypisana. Aplikacja będzie umożliwiała zarządzanie książkami (CRUD), kategoriami (CRUD), przypisywaniem książek do kategorii, oraz wyszukiwaniem książek według zadanych kryteriów 3

Założenia projektu c.d. W celu zabezpieczenia przed przypadkowym usunięciem lub edycją danych, aplikacja będzie działała w dwóch trybach: dodawanie/wyszukiwanie (domyślnie) lub edycja. Edytowanie i usuwanie rekordów będzie dostępne tylko w trybie edycji. Przechowywane informacje o książce: ID, autor, tytuł, wydawca, rok wydania, słowa kluczowe, ścieżka do pliku, typ pliku. Każdą książkę będzie można przypisać do jednej lub wielu kategorii (relacja wiele-do-wielu). 4

Model obiektowy vs. model relacyjny Stosowany obecnie obiektowy paradygmat programowania nie ma zastosowania do baz danych. Obiektowe bazy danych istnieją, ale nie cieszą się popularnością. Stosowane obecnie bazy danych są bazami relacyjnymi. 5

Model obiektowy vs. model relacyjny c.d. Tworzenie aplikacji wykorzystującej bazę danych wymaga zastosowania obu paradygmatów i punktów łączenia MODEL RELACYJNY MODEL OBIEKTOWY 6

Diagram ERD Model danych aplikacji Diagram ERD (Entity- Relationship Diagram) Tabela bookshelf_booklist - informacje o książkach Tabela bookshelf_catlist - lista kategorii Tabela bookshelf_bookcat - Realizacja powiązania wieledo-wielu przypisywanie ksiażek do kategorii. 7

Tworzenie tabel w bazie danych create table bookshelf_booklist ( id_b serial primary key, author text, title text, publisher varchar(80), year int, keywords text, fpath varchar(80), ftype varchar(3) ); 8

Tworzenie tabel w bazie danych c.d. create table bookshelf_catlist ( id_c serial primary key, cname varchar(80) unique not null ); create table bookshelf_bookcat ( id_bc serial primary key, id_b int references bookshelf_booklist(id_b), id_c int references bookshelf_catlist(id_c) ); 9

Aktorzy i przypadki użycia Aktorzy: Użytkownik Przypadki użycia: Zarządzaj książkami (CRUD) Zarządzaj kategoriami (CRUD) Szukaj książki (ogólny) 10

Przypadki użycia c.d. Przypadek CRUD Zarządzaj <obiektem>: Dodaj <obiekt> Wyświetl <obiekt> Edytuj <obiekt> Usuń <obiekt> Przypadek Szukaj książki : Wyszukiwanie po numerze ID, autorze, tytule, słowach kluczowych (częściowe dopasowanie) Możliwość ograniczenia wyszukiwania do określonych kategorii. 11

Diagram przypadków użycia 12

Scenariusz 1 Nazwa scenariusza: Włącz tryb edycji Warunki wstępne: Wyłączony tryb edycji, wyświetlony przycisk włączania trybu edycji. Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk włączania trybu edycji 2. System włącza tryb edycji i wyświetla przycisk wyłączenia trybu edycji Warunki końcowe: Tryb edycji włączony, wyświetlony przycisk wyłączania edycji. 13

Scenariusz 2 Nazwa scenariusza: Wyłącz tryb edycji Warunki wstępne: Włączony tryb edycji, wyświetlony przycisk wyłączania edycji. Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk wyłączania trybu edycji 2. System wyłącza tryb edycji i wyświetla przycisk włączenia trybu edycji Warunki końcowe: Tryb edycji wyłączony, wyświetlony przycisk włączania edycji. 14

Tryby pracy aplikacji diagram stanów 15

Scenariusz 3 Nazwa scenariusza: Dodaj książkę Warunki wstępne: Wyświetlony główny panel aplikacji. Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk dodania książki. 2. System wyświetla formularz wprowadzania danych książki i listę kategorii. 3. Użytkownik wprowadza dane książki i zaznacza kategorie do których książka należy. Użytkownik zatwierdza dane. Warunki końcowe: Nowa książka wprowadzona do systemu. 16

Scenariusz 4 Nazwa scenariusza: Dodaj kategorię Warunki wstępne: Wyświetlony główny panel aplikacji. Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk dodania kategorii 2. System wyświetla formularz dodawania nowej kategorii 3. Użytkownik wprowadza nazwę kategorii i zatwierdza dane Warunki końcowe: Nowa kategoria wprowadzona do systemu. 17

Scenariusz 5 Nazwa scenariusza: Wyświetl listę kategorii Warunki wstępne: Wyświetlony główny panel aplikacji. Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk wyświetlenia listy kategorii 2. System wyświetla listę zdefiniowanych kategorii Warunki końcowe: Wyświetlona lista kategorii Rozszerzenia: Usuń kategorię, edytuj kategorię 18

Scenariusz 6 Nazwa scenariusza: Usuń kategorię Warunki wstępne: Wyświetlona lista zdefiniowanych kategorii, włączony tryb edycji. Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk usunięcia określonej kategorii 2. System usuwa podaną kategorię 3. System ponownie wyświetla listę kategorii Warunki końcowe: Wybrana kategoria zostaje usunięta. 19

Scenariusz 7 Nazwa scenariusza: Edytuj kategorię Warunki wstępne: Wyświetlona lista zdefiniowanych kategorii, włączony tryb edycji Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk edycji wybranej kategorii 2. System wyświetla formularz edycji wybranej kategorii 3. Użytkownik zmienia nazwę kategorii i zatwierdza zmianę 4. System ponownie wyświetla listę kategorii. Warunki końcowe: Nazwa wybranej kategorii została zmieniona. 20

Scenariusz 8 Nazwa scenariusza: Szukaj książek Warunki wstępne: Wyświetlony główny panel aplikacji. Główny przebieg zdarzeń: 1. Użytkownik wybiera przycisk szukania książki 2. System wyświetla formularz określający warunki wyszukiwania 3. Użytkownik wprowadza warunki wyszukiwania 4. System wyświetla listę książek spełniających warunki wyszukiwania Warunki końcowe: Wyświetlona lista książek spełniająca warunki wyszukiwania. Rozszerzenia: Usuń książkę, edytuj książkę 21

Scenariusz 8 c.d. Notatki: 1. Przypadek ogólny. Przypadki szczegółowe - szukaj w kategoriach - szukaj po autorze - szukaj po tytule - szukaj po słowach kluczowych pozwalają określić kryteria szukania 2. Przypadek użycia rozpoczynany automatycznie w momencie startu aplikacji. 22

Scenariusz 9 Nazwa scenariusza: Usuń książkę Warunki wstępne: Wyświetlona lista książek, włączony tryb edycji. Główny przebieg zdarzeń: 1. Użytkownik wybiera przycisk usunięcia wybranej książki 2. System usuwa wybraną książkę i ponownie wyświetla listę książek Warunki końcowe: Wybrana książka usunięta z systemu 23

Scenariusz 10 Nazwa scenariusza: Edytuj książkę Warunki wstępne: Wyświetlona lista książek, włączony tryb edycji. Główny przebieg zdarzeń: 1. Użytkownik naciska przycisk edycji wybranej książki 2. System wyświetla formularz edycji wybranej książki 3. Użytkownik wprowadza i zatwierdza zmiany 4. System ponownie wyświetla listę książek Warunki końcowe: Dane wybranej książki zostały zmodyfikowane. 24

Dygresja przypadki użycia i scenariusze Źródło: Alistair Cockburn, Inżynieria oprogramowania. Jak pisać efektywne przypadki użycia, WNT, 2004 1. Przypadek użycia to pisane prozą opowiadanie. 2. Przypadki użycia powinny być czytelne. 3. Czynności powinny być wyrażone w sposób czytelny (kto robi co?) 4. Długie przypadki użycia powinny być upraszczane (pow. 9 kroków scenariusza głównego). 25

Dygresja przypadki użycia i scenariusze c.d. 5. Przypadek użycia powinien jasno określać warunki początkowe. 6. Przypadek użycia nie powinien definiować szczegółów interfejsu graficznego. 7. Liczne konstrukcje Jeżeli... to... w scenariuszu należy zastępować rozszerzeniami. 8. Nie należy zastępować scenariuszy diagramami. 26

Dygresja przypadki użycia i scenariusze c.d. 9. Scenariusze powinny uwzględniać sytuacje awaryjne (co może pójść źle?). 10. Lepiej napisać trochę za mało niż zbyt dużo. 11. Diagram przypadków użycia to tylko widok z lotu ptaka. Ważne są scenariusze. 12. Uwaga na narzędzia. Często najlepszy jest papier i ołówek. 27

Diagram sekwencji scenariusze 1,2 Zmiana trybu pracy: tryb edycji wyłączony lub włączony 28

Diagram sekwencji scenariusz 3 Dodanie ksiązki 29

Diagram sekwencji scenariusz 4 Dodanie kategorii 30

Diagram sekwencji scenariusze 5-7 Lista kategorii, dodaj, usuń kategorię 31

Diagram sekwencji scenariusze 8-10 Lista książek zgodna z kryteriami szukania, usuń, edytuj ksiazkę. 32

Identyfikacja klas, atrybutów i metod Metoda Rzeczowników i czasowników Z poszczególnych scenariuszy wynotowujemy rzeczowniki i związane z nimi czasowniki Usuwamy powtórzenia Ustalamy potencjalnych kandydatów na klasy (rzeczowniki) i metody (czasowniki). 33

Identyfikacja... c.d. Książka Kategoria Lista książek Lista kategorii Tryb edycji Panel główny Kryteria wyszukiwania F. nowej książki F. nowej kategorii F. edycji kategorii F. edycji książki F. kryteriów szukania. P. włączenia trybu edycji P. wyłączenia trybu edycji P. szukania książki P. dodania książki P. dodania kategorii P. wyświetlenia listy kategorii P. usunięcia kategorii P. edycji kategorii P. usunięcia książki P. edycji książki 34

Identyfikacja... c.d. Czynności: wszystkie przyciski wyświetlanie, wybór wszystkie formularze wyświetlanie, odbiór (zatwierdzanie) panel główny wyświetlanie tryb edycji włączanie wyłączanie książka/lista książek wyświetlanie, usuwanie, dodawanie, aktualizacja, szukanie wg. kryteriów kategoria/lista kategorii - wyświetlanie, usuwanie, dodawanie, aktualizacja kryteria wyszukiwania 35

Struktura logiczna i fizyczna aplikacji Struktura logiczna systemu podział systemu na klasy i opis ich wzajemnych interakcji architektura systemu. Struktura fizyczna podział systemu na fizyczne jednostki pliki, komponenty, biblioteki, oraz ich wzajemne relacje sposób realizacji systemu. Komponent najmniejszy element struktury fizycznej może zawierać klasy, funkcje, wyliczenia itp. 36

Dygresja Hierarchia fizyczna projektu Źródło: John Lakos, C++. Projektowanie systemów informatycznych. Vademecum profesjonalisty, Helion, 2004 Hierarchia fizyczna projektu zbiór relacji zależy od między komponentami. Złożoność i struktura relacji między komponentami wpływ na czas kompilacji/wykonania, a przede wszystkim na możliwości testowania ( testowalność ). 37

Dygresja Hierarchia fizyczna projektu c.d. Analogia samochodowa - Klient kupuje samochód interesuje go działanie auta jako całości, nie musi (i nie chce znać szczegółów) - Mechanik testuje poszczególne elementy, w miarę możliwości w oderwaniu od całości. - Samochód jako system skomplikowany system złożony z wielu komponentów. - Komponenty powinny być w miarę możliwości niezależne (możliwość uruchomienia/testowania pod nieobecność innych komponentów) 38

Dygresja Hierarchia fizyczna projektu c.d. Projekt ze ściśle powiązanymi komponentami, w tym zależności cykliczne. Długi czas kompilacji/wykonania Trudne testowanie K2 K3 K1 K4 39

Dygresja Hierarchia fizyczna projektu c.d. Mało zależności między komponentami ale sztywna struktura. Wymagana kolejność testowania: K4, K3, K2, K1 K1 K2 K3 K4 40

Dygresja Hierarchia fizyczna projektu c.d. Brak zależności między komponentami. Szybka kompilacja/wykonanie. Dowolna kolejność testowania. K1 K2 K3 K4 41

Dygresja Hierarchia fizyczna projektu c.d. Typowy dobry projekt Struktura drzewiasta. Brak zależności cyklicznych Niewiele zależności. Pewna swoboda testowania z możliwością częściowego zrównoleglenia testów K2 K1 K4 K3 42

Dygresja Hierarchia fizyczna projektu c.d. Przykład podziału struktury fizycznej na poziomy. Poziom 2 Poziom 3 K2 K1 K4 Poziom 1 K3 K5 K6 Poziom 0 LIB 1 LIB 2 43

PRACA DOMOWA ZAPROPONOWAĆ STRUKTURĘ LOGICZNĄ I FIZYCZNĄ DLA APLIKACJI E-BOOKSHELF 44