Dziś obroniłem pracę magisterską i otrzymałem tytuł magistra inżyniera

Opublikowane przez Szymon Jeż prawie 2 lat temu

Dziś zostałem formalnie uznany magistrem inżynierem przez komisję państwową. Finalne osiągnięcie po wymaganych 5,5 latach studiów (prawie jak medycyna :P).

Moja praca dyplomowa (pt. “System Informatyczny Wspomagający Działalność Agencji Handlowej”) została bardzo dobrze odebrana. Szczególnie doceniony został mój wkład w analizę biznesową oraz kompletne, nie pomijające niczego istotnego, podejście do projektowania. Recenzent, w trakcie obrony, nazwał nawet pracę wzorem do naśladowania. Cóż, starałem się poświęcić dużo uwagi każdemu z aspektów tworzenia systemu informatycznego, jaki i wcielić się w szerokie spektrum ról, występujących podczas tworzenia oprogramowania, od analityka biznesowego, poprzez architekta oprogramowania, kierownika projektu do programisty i testera, i widocznie się udało.

Oprócz tego udało mi się osiągnąć między innymi jeszcze jeden ważny cel, a mianowicie przeprowadziłem reengineering poprzedniej wersji oprogramowania stworzonego w ramach pracy inżynierskiej. Nie miał bym takiej okazji zaczynając coś kompletnie nowego. Dzięki temu mogłem też dużo więcej uwagi poświęcić analizie biznesowej przedsiębiorstwa, dla którego przeznaczony był tytułowy system informatyczny.

Gdy znajdę czas, postaram się napisać na podstawie pracy kilka artykułów (może również naukowych, z pomocą promotora) i opublikować je tutaj.

Dla ciekawych tego czym zajmowałem się w ramach pracy dyplomowej zamieszczam poniżej jej streszczenie i spis treści.

Streszczenie pracy dyplomowej

Celem pracy było opracowanie systemu informatycznego wspomagającego działalność agencji handlowej. W pracy ukazano sposób realizacji tego celu poczynając od przedstawienia analizy biznesowej, która cechuje się elementami badawczymi. Następnie zaprezentowano analizę konkurencyjnych rozwiązań. Po czym pokazano przygotowany projekt systemu informatycznego, oparty o analizę wymagań, składający się z projektu architektury systemu, modelu danych i projektu graficznego interfejsu użytkownika. Wymieniono wykorzystane narzędzia i technologie wraz z uzasadnieniem ich wyboru i opisem sposobu ich użycia. W ostatniej części zasadniczej pracy omówiono implementację z wyszczególnieniem najistotniejszych problemów i ich rozwiązań oraz zaprezentowano sposób testowania systemu, podsumowany oceną jego funkcjonalności i użyteczności. Stworzony system oparto o wcześniej stworzoną przez autora aplikację webową do zarządzania przedstawicielami handlowymi, która była przedmiotem obrony jego dyplomowej pracy inżynierskiej.

Spis treści

  • 1. Wstęp 7
  • 2. Analiza biznesowa przedsiębiorstwa 10
  • 2.1. Definicja zakresu domeny problemowej 10
  • 2.2. Model biznesowy 11
  • 2.3. Stanowiska 13
  • 2.4. Struktura organizacyjna firmy 16
  • 2.5. Systemy biznesowe występujące w ramach przedsiębiorstwa 18
  • 2.6. Analiza funkcjonalna – biznesowe przypadki użycia 19
  • 2.7. Obiektowy model dziedziny 25
  • 2.8. Analiza procesowa 29
  • 2.9. Podsumowanie 36
  • 3. Analiza konkurencji 37
  • 3.1. Klasy aplikacji 37
  • 3.2. Rozwiązania konkurencyjne 39
  • 3.3. Uzasadnienie stworzenia własnego oprogramowania 43
  • 3.4. Podsumowanie 44
  • 4. Projekt systemu informatycznego 45
  • 4.1. Opis aktorów (Klasy użytkowników) 46
  • 4.2. Przypadki użycia 48
  • 4.3. Scenariusze przypadków użycia 49
  • 4.3.1. Kontaktowanie się z Klientem 49
  • 4.4. Wymagania niefunkcjonalne 51
  • 4.5. Architektura 51
  • 4.5.1. Zobrazowanie architektury na diagramie 53
  • 4.5.2. Modele klas 55
  • 4.6. Model danych 58
  • 4.6.1. Diagram relacji między encjami 58
  • 4.7. Projekt graficznego interfejsu użytkownika 59
  • 4.8. Podsumowanie 60
  • 5. Wykorzystane narzędzia i technologie 61
  • 5.1. Kryteria wyboru 61
  • 5.2. Modelowanie biznesowe 62
  • 5.3. Wymagania, analiza i projekt systemu informatycznego 63
  • 5.3.1. Notacja – język UML 2.0 63
  • 5.3.2. Narzędzie do rysowania diagramów – Gliffy 64
  • 5.3.3. Narzędzie do modelowania – Power Designer 64
  • 5.3.4. Zbieranie wymagań – mechanizm wiki 65
  • 5.3.5. Zbieranie wymagań – mapy myśli 65
  • 5.4. Implementacja 66
  • 5.4.1. Web framework 66
  • 5.4.2. Język programowania 66
  • 5.4.3. Ruby on Rails 67
  • 5.4.4. Biblioteki Ruby i wtyczki do Ruby on Rails 69
  • 5.4.5. System zarządzania bazą danych 70
  • 5.4.6. Technologie webowe 70
  • 5.5. Testowanie 70
  • 5.5.1. Uprząż testowa 70
  • 5.5.2. Debugery 71
  • 5.6. Wdrożenie 73
  • 5.7. Zarządzanie zmianami oraz konfiguracją 73
  • 5.8. Zarządzanie projektem – Redmine 74
  • 5.9. Środowisko 76
  • 5.9.1. System operacyjny 76
  • 5.9.2. IDE – Zintegrowane Środowisko Programistyczne – NetBeans 76
  • 5.10. Inne 78
  • 5.10.1. Edycja dokumentów tekstowych 78
  • 5.11. Podsumowanie 78
  • 6. Implementacja i testowanie 79
  • 6.1. Wdrożenie 79
  • 6.1.1. Przygotowanie środowiska produkcyjnego 79
  • 6.1.2. Automatyzacja wdrażania aktualizacji 81
  • 6.2. Maszyna stanów 82
  • 6.3. Testowanie 85
  • 6.3.1. Testy automatyczne 85
  • 6.3.2. Testy akceptacyjne 92
  • 6.4. Podsumowanie 94
  • 7. Zakończenie 95
  • 8. Wykaz źródeł 97
  • 9. Załączniki 99
  • 9.1. Płyta CD 101
  • 9.2. Scenariusze przypadków użycia 102
  • 9.2.1. Zarządzanie Elementem Systemu 102
  • 9.2.2. Przeglądanie Listy Elementów Systemu 102
  • 9.2.3. Przeglądanie Pojedynczego Elementu Systemu 103
  • 9.2.4. Tworzenie Elementu Systemu 103
  • 9.2.5. Edycja Elementu Systemu 104
  • 9.2.6. Usuwanie Elementu Systemu 105
  • 9.2.7. Kontaktowanie się z Klientem 106
  • 9.2.8. Przeglądanie Statystyk Własnej Sprzedaży 107
  • 9.2.9. Przeglądanie Statystyk Sprzedaży Podwładnych 107
  • 9.2.10. Tworzenie, Zlecanie i Wykonywanie Zadań 108
  • 9.2.11. Zarządzanie Listami Kontaktów 108
  • 9.2.12. Zarządzanie Danymi Klientów 109
  • 9.2.13. Zarządzanie Kontaktami 110
  • 9.2.14. Zarządzanie Zgłoszeniami Sprzedaży 110
  • 9.2.15. Zgłaszanie Sprzedaży 111
  • 9.3. Diagramy sekwencji 112
  • 9.4. Wymagania niefunkcjonalne 123
  • 9.4.1. Wymagania bezpieczeństwa 123
  • 9.4.2. Wymagania zabezpieczeń 124
  • 9.4.3. Wymagania wydajności 124
  • 9.4.4. Atrybuty jakości oprogramowania 125
  • 9.5. Słownik danych 126
  • 9.6. Implementacja 129
  • 9.6.1. Konwencje przyjęte w trakcie implementacji 129
  • 9.6.2. Wykorzystanie bibliotek i wtyczek 129
  • 9.6.3. Autoryzacja 130
  • 9.6.4. Uwierzytelnianie 133
  • 9.6.5. Duża ilość danych 134
  • 9.6.6. Fizyczna implementacja modelu danych 136
  • 9.6.7. Integralność danych 137
  • 9.6.8. Sprawdzanie poprawności wprowadzanych danych 138
  • 9.6.9. Podział na warstwy 139
  • 9.6.10. Zarządzanie konfiguracją aplikacji 142
  • 9.6.11. Wysyłanie wiadomości e-mail 142
  • 9.6.12. Nawigacja 143
  • 9.6.13. Spójność interfejsu użytkownika 145
  • 9.7. Raporty wygenerowane z systemu do zarządzania projektem 148
  • 9.7.1. Raport czasu przeznaczonego na daną aktywności 148
  • 9.7.2. Raport czasu przeznaczonego na daną kategorię zagadnienia 148
  • 9.7.3. Raport czasu przeznaczonego na daną typ zagadnienia z wyszczególnieniem stanu rozwiązania defektów 149
  • 9.7.4. Raport czasu przeznaczonego w poszczególnych miesiącach z podziałem na kategorie i aktywności. 149
  • 9.7.5. Lista zagadnień 151

Opublikowano w  | Tagi , , , ,  | 2 komentarze | brak trackbacków

Komentarze

  1. Avatar terra@incokogoto.eu powiedział ponad rok later:

    chój ci w dupę za ten bełkot!

  2. Avatar 1 powiedział ponad rok later:

    dokładnie!

Trackbacki

Użyj następującego trackbacka na swojej stronie:
http://szymon.jez.net.pl/trackbacks?article_id=43

(zostaw url/email »)

   Pomoc języka formatowania Obejrzyj komentarz