Inżynieria Programowania

Temat projektu (Np. System zarządzania biblioteką)

Autorzy

Opis systemu

Opis systemu w języku polskim

Kolejne zadania wynikające z laboratoriów należy wpisywać w odpowiednie artykuły w szablonie.

Proszę zwrócić uwagę na użyte klasy i identyfikatory w dokumencie. Nie należy ich zmieniać.

Szczególną uwagę należy zwrócić na klasę uml, która pozwala na automatyczne generowanie diagramów uml. W celu jej wykorzystania należy w oznaczonym nią znaczniku p wpisać komendy plantUml. Więcej informacji o narzędziu można znaleźć na stronie głównej projektu. W celu uniknięcia problemów z polskimi znakami na diagramach proszę tworzyć je wykorzystując nazwy w języku angielskim.

Kody źródłowe należy umieszczać w znacznikach pre oraz code. Dla znacznika code została zdefiniowana klasa lang-java pozwalająca na formatowanie kodu. Poniżej w tym dokumencie znajdują się odpowiednie przykłady.

Tekst sprawozdania należy wpisywać w odpowiednich artykułach poniżej w znacznikach p. Do znaczników p ze zwykłym tekstem proszę nie dodawać żadnych dodatkowych klas i identyfikatorów.

Znaczniki p oznaczone klasą guidelines należy usunąć.

System description

Text of system description in english

Słownik pojęć

Lista wykorzystywanych pojęć wraz z opisem

Dictionary

List of used terms with description

User Stories (po polsku)

User stories w języku polskim

Jako zwykay czytelnik chcę wypożyczyć książkę w taki sposób, aby móc ją czytać.

User Stories (in english)

User stories in english

As a regular reader I want to borrow a book so that I can read it.

Diagram przypadków użycia

@startuml left to right direction Reader -- (Borrow book) Reader -- (Give back book) Reader -- (Find book) Worker -- (Add book) Worker -- (Update book) Worker -- (Delete book) Worker -- (Register new reader) Manager -- (Block reader) (Give back book) <.. (Charge penalty) : <> (Borrow book) ..> (Find book) : <> Manager --|> Worker @enduml

Scenariusze przypadków użycia

Scenariusze przypadków użycia w języku polskim. Do wygenerowania tabeli scenariusza należy wykorzystać generator dostępny tutaj.

Author name: Adam
Author surname: Krechowicz
Author group: Group 1
Subject: System zarządzania biblioteką
Use Case: Dodaj książkę
Language: Polish
Preconditions:
  • Użytkownik musi być zalogowany do systemu
Postconditions:
  • Dodano nową książkę
Actors:
  • Pracownik
  • Kierownik
Main flow:
  1. Użytkownik wybiera opcję dodaj nową książkę
  2. System wyświetla formularz dodania nowej książki
  3. Użytkownik wypełnia formularz dodania nowej książki
  4. Użytkownik wysyła formularz
  5. System dokonuje walidacji formularza
  6. System dodaje nową książkę
Alternate flow:
  • 5 Książka o podanym tytule już istnieje. GOTO 2
  • 5 Nie wszystkie wymagane pola zostały wpisane GOTO 2
Author name: Adam
Author surname: Krechowicz
Author group: Group 1
Subject: System zarządzania biblioteką
Use Case: Dodaj książkę
Language: Polish
Preconditions:
  • Użytkownik musi być zalogowany do systemu
Postconditions:
  • Dodano nową książkę
Actors:
  • Pracownik
  • Kierownik
Main flow:
  1. Użytkownik wybiera opcję dodaj nową książkę
  2. System wyświetla formularz dodania nowej książki
  3. Użytkownik wypełnia formularz dodania nowej książki
  4. Użytkownik wysyła formularz
  5. System dokonuje walidacji formularza
  6. System dodaje nową książkę
Alternate flow:
  • 5 Książka o podanym tytule już istnieje. GOTO 2
  • 5 Nie wszystkie wymagane pola zostały wpisane GOTO 2

Use case scenarios

Use case scenarios in english

Diagramy aktywności

Dodaj książkę

Adam Krechowicz

@startuml start :Add new book; repeat repeat :Show form; :Filling form; :Sending form; :Form validation; repeat while (Book exists?) is (yes) ->no; repeat while (Form complete?) is (no) ->yes; :Add book; stop @enduml

Dodaj książkę

Adam Krechowicz

@startuml start :Add new book; repeat repeat :Show form; :Filling form; :Sending form; :Form validation; repeat while (Book exists?) is (yes) ->no; repeat while (Form complete?) is (no) ->yes; :Add book; stop @enduml

Diagram klas

@startuml skinparam classAttributeIconSize 0 class Book{ +title +author -validate() +borrow() +giveBack() {static} findBooks() } abstract class User User <|-- Reader User <|-- Worker Worker <|-- Manager Reader ..> Book Reader *-- ReadersCard @enduml

Wzorce projektowe

Singleton

Adam Krechowicz

Problem

Opis problemu, jaki będzie rozwiązany za pomocą wzorca, który występuje w projekcie

Rozwiązanie

Opis zaproponowanego rozwiązania wynikającego z charakterystyki wzorca. W tym punkcie należy zarówno opisać wzorzec zastosowany wzorzec projektowy jak równizeż umotywować dlaczego pasuje on do rozwiązania zadanego problemu

Diagram klas

@startuml skinparam classAttributeIconSize 0 class Singleton{ {static} -instance -Singleton() {static} +getInstance() } Singleton ..> Singleton : << create >> @enduml

Kod wzorca

class Singleton{

	public void Test(){

	}

	public static void main(String args[]){

	}
}
			
Kod testowy wzorca

class SingletonTest{

	public void Test(){

	}

	@Test
	public void testSingleton(){
	}
}

			

Diagramy sekwencji

Nazwa diagramu

Adam Krechowicz

@startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Another authentication Request Alice <-- Bob: Another authentication Response @enduml