Technologia programowania

Podobne dokumenty
Agenda. Cele projektu Wizja projektu Modelowanie biznesowe Wymagania użytkownika Przypadki użycia

Podstawy modelowania programów Kod przedmiotu

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

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

PRZEWODNIK PO PRZEDMIOCIE

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Wykład 1 Inżynieria Oprogramowania

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

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

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

Język UML w modelowaniu systemów informatycznych

INŻYNIERIA OPROGRAMOWANIA

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Podstawy programowania III WYKŁAD 4

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Świat rzeczywisty i jego model

Diagram przypadków użycia

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

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

PRZEWODNIK PO PRZEDMIOCIE

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Metodyki zwinne wytwarzania oprogramowania

Programowanie Zespołowe

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Inżynieria oprogramowania. Jan Magott

Egzamin / zaliczenie na ocenę*

Ogólne określenie wymagań. Ogólny projekt. Budowa systemu. Ocena systemu. Nie. Tak. System poprawny. Wdrożenie. Określenie.

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

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Diagramy przypadków użycia

WPROWADZENIE DO UML-a

Modelowanie i analiza systemów informatycznych

Programowanie zwinne

Inżynieria oprogramowania

Modelowanie i Programowanie Obiektowe

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Wzorce projektowe i refaktoryzacja

UPEDU: Analiza i projektowanie (ang. analysis and design discipline)

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Projektowanie logiki aplikacji

Lista przykładowych pytań do egzaminu z przedmiotu Inżynieria Oprogramowania

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

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

Projektowanie systemów informatycznych. wykład 6

Inżynierski Projekt Zespołowy

Specyfikowanie wymagań przypadki użycia

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

Inzynieria Oprogramowania 2... nazwa przedmiotu SYLABUS A. Informacje ogólne. Wydział Ekonomiczno-Informatyczny w Wilnie

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Testowanie w procesie Scrum

Diagramy klas. dr Jarosław Skaruz

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Feature Driven Development

Opis metodyki i procesu produkcji oprogramowania

PRZEWODNIK PO PRZEDMIOCIE

Dokument Detaliczny Projektu

Wytwarzanie oprogramowania

Zasady organizacji projektów informatycznych

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Programowanie obiektowe

Tworzenie warstwy zasobów projektowanie metodą strukturalną

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

REFERAT PRACY DYPLOMOWEJ

Dokument Detaliczny Projektu

Modelowanie obiektowe - Ćw. 3.

WOJSKOWA AKADEMIA TECHNICZNA

Spis treúci. 1. Wprowadzenie... 13

Wykład 5. Inżynieria oprogramowania MIS s MIO s MIS n Listopad 2014

Analiza i projektowanie obiektowe 2016/2017. Wykład 1: Wprowadzenie oraz cykl życia oprogramowania i faza określenia wymagań

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Inżynieria oprogramowania (Software Engineering)

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Inżynieria oprogramowania (Software Engineering) Wykład 1

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Scala - programowanie obiektowo-funkcyjne

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Wstęp. Modelowanie. Metody projektowania. Dokumentacja programowa. Wymagania funkcjonalne i niefunkcjonalne Cykl życia systemu

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

MODELOWANIE SYSTEMU INFORMATYCZNEGO WSPOMAGAJĄCEGO DZIAŁALNOŚĆ USŁUGOWĄ W ŚRODOWISKU OBIEKTOWO ZORIENTOWANYM.

problem w określonym kontekście siły istotę jego rozwiązania

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Inżynieria Oprogramowania w Praktyce

Wytwórstwo oprogramowania. michał możdżonek

Techniki i rozwiązania IT w optymalizacji procesów

Procesowa specyfikacja systemów IT

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

Transkrypt:

Wykład 1 2 październik 2018

Cel kursu Znacie język programowania oraz umiecie tworzyć proste aplikacje. Nie macie doświadczenia w tworzeniu dużych i złożonych systemów. Aby stworzyć duży system należy: zrobić analizę, zaprojektować a następnie zaimplementować system. Na kursie będziemy uczyć się systematycznego podejścia do analizowania i projektowania systemów. Nie można robić inaczej, bo: złożoność dziedziny i systemu zmiany wymagań i koncepcji

Aspekty poruszane na wykªadzie Analiza i projektowanie aplikacji Diagramy UML Metodyki wytwarzania oprogramowania Zasady GRASP Testowanie Wzorce projektowe Repozytoria: GIT, SVN Frameworki: Spring, Hibernate, JDBC Pewnie coś jeszcze ponadto...

Literatura Gamma, Helm, Johnson, Vlissides: "Wzorce projektowe. Elementy programowania obiektowego wielokrotnego użytku" Craig Larman: "UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji" Robert C. Martin: Zwinne wytwarzanie oprogramowania. Najlepsze zasady wzorce i praktyki

Metody walki ze zªo»ono±ci Złożoność dziedziny programowanie obiektowe (rzeczywistość -> obiekty) OOAD - Object Oriented Analysis and Design (usystematyzowane podejście do analizy i projektowania) Złożoność systemu - przekracza pojmowanie systemu przez jedna osobę. Trzeba więc podzielić system na mniejsze części. Dobranie odpowiedniej metodyki projektowej (np. agile) Systemy kontroli wersji: Git, SVN Diagramy UML

Metody walki ze zmianami Przyczyny zmian nieprecyzyjne wymagania klienta (klient nie wie czego chce) nieprecyzyjna analiza wymagania zmieniajace się w czasie czynniki zewnętrzne: nowe prawo, nowe technologie Jak z tym walczyć? Wykorzystanie metodyk zwinnych: Scrum, XP, Kanban

Object Oriented Analysis and Design(OOAD) >>

Analiza i projektowanie Analiza i projektowanie Analiza skupia się na badaniu problemu i wymagań a nie na rozwiazaniu. Projektowanie skupia się na koncepcji rozwiazania która spełnia wymagania a nie na implementacji. Do the right thing(analysis), and do the thing right (design) Analiza i projektowanie obiektowe Podczas analizy obiektowej skupiamy się na znalezieniu obiektów i pojęć w dziedzinie problemu. Np. czytelnik, ksiażka, biblioteka. Podczas projektowania obiektowego skupiamy się na definiowaniu obiektów oraz współpracy pomiędzy nimi w celu zrealizowania wymagań. Np. obiekt Ksiazka ma atrybut tytul oraz metodę PobierzRozdzial.

Po co analizowa wymagania klienta? >>

Wymagania u»ytkownika FURPS (requirements) Funkcjonalność (Functionality) - co system będzie robił? Używalność (Usability) - ergonomia, własności estetyczne, jakie elementy powinny działać tak samo,... Niezawodność (Reliability) - poprawność wyników, czas pomiędzy awariami,... Wydajność (Performance) - jak duże obciażenia system jest w stanie przetrwać, czas systemu na odpowiedź, prędkość działania,... Wsparcie (Supportability) - adaptowalność do innych warunków, zgodność z poprzednimi wersjami systemu, łatwość konfiguracji i instalacji,...

Dokument analizy - przykªad TrackNet - system do obsługi błędów w procesie tworzenia systemu

System rejestrowania bª dów przykªad systemu System do obsługi błędów w procesie tworzenia systemu: służy do obsługi błędów powstajacych podczas tworzenia oprogramowania i zarzadzania nimi. system wewnętrzny: wymagania użytkownika nie pochodza od klienta.

System rejestrowania bª dów wymagania Wymagania funkcjonalne: Wprowadzanie zgłoszeń Przegladanie zgłoszeń Obsługa zgłoszenia Definiowanie obiegu błędów dla projektu Zarzadzanie użytkownikami systemu Wymagania systemowe: Integracja z podsystemami Przyjazny interfejs użytkownika

Wprowadzanie zgªosze«- szczegóªowe wymagania wprowadzanie nowego zgłoszenia do systemu, przypisanie zgłoszenia do projektu lub modułu, ustalenie dla zgłoszenia wersji realizacji oraz priorytetu, przypisanie typu zgłoszenia, wymuszone przypisanie osoby prowadzacej zgłoszenie, edycję treści zgłoszenia i pozostałych jego parametrów wraz z zapisem wszelkich zmian w historii zgłoszenia, edycję informacji dodatkowych, ale tylko z zapisem w tekście, kto i kiedy dokonał zmiany, tworzenie duplikatu zgłoszenia, z możliwościa zmiany dowolnego z parametrów lub zmiany w treści, tworzenie powiazań między zgłoszeniami, potrzebne sa dwa typy powiazań jedno nie wpływajace na kolejność realizacji zgłoszeń, a drugie określajace kolejność realizacji, czyli nie można przejść w zgłoszeniu nadrzędnym do następnego stanu przed zamknięciem zgłoszenia podrzędnego, ustalenie, kto ma się zajać zgłoszeniem w przypadku, gdy dotrze ono do wybranego stanu z WorkFlow

Przypadek u»ycia. Co to jest? Sekwencja akcji niezbędna do wykonania pewnej funkcjonalności. Używany do odkrycia i opisu poszczególnych wymagań (funkcjonalnych) systemu. Nie jest zorientowany obiektowo.

Przypadek u»ycia. Z czego si skªada? Nazwa; Identyfikator (ID); Opis; Warunki wstępne (ang. precondition); Warunki końcowe (ang. postconditions); Sekwencja akcji

Sekwencja akcji >>

Sekwencja akcji cd. >>

Rola przypadków u»ycia Opisuja zachowanie się systemu z punktu widzenia użytkownika. Definiuja granice systemu oraz relacje pomiędzy systemem a jego otoczeniem. Pokazuja ogólny obraz funkcjonalności systemu nie ma na tym etapie żadnych decyzji odnośnie technologii. Pokazuja co się będzie działo w systemie. Umożliwia to przemyślenie badź przeprojektowanie całego procesu na wczesnym etapie.

Dlaczego si robi przypadki u»ycia? Sponsorzy sa w stanie stwierdzić, co będzie zrobione, a co nie. Użytkownicy wiedza, co system będzie robił, a co nie (ewentualne sugestie sa możliwe na tym etapie). Developerzy wiedza, nad czym będa pracować.

Jakie powinny by przypadki u»ycia? Kompletne Zrozumiałe Niezależne od implementacji i używanej technologii Dobrze zaprojektowane z punktu widzenia użytkownika

Elementy diagramu przypadków u»ycia Aktorzy (ang. actors) - osoba, organizacja, system wewnętrzny wchodzacy w interakcję z danym systemem. Przypadki użycia (ang. use cases) - sekwencja akcji wykonywana przez aktora (-ów). Asocjacje (ang. associations) - powiazanie pomiędzy aktorem a przypadkiem użycia.

Diagram przypadków u»ycia >>

Zwi zki pomi dzy komponentami Relacja rozszerzania («extend») - polega na dodaniu dodatkowych sekwencji akcji do sekwencji przypadku bazowego. Relacja zawierania («include» wcześniej «uses») - polega na wywoływaniu jednego przypadku przez drugi. Dziedziczenie aktorów - bardziej wyspecjalizowany aktor dziedziczy zachowanie mniej wyspecjalizowanego aktora.

Przykªad zwi zków pomi dzy komponentami >>

Przykład Rysunek: Lepiej Rysunek: Kiepsko Przypadek użycia powinien odzwierciedlać cel aktora. Ważny jest odpowiedni poziom szczegółowości.

Modelowanie koncepcyjne (Domain Model) Znalezienie obiektów i koncepcji istotnych dla systemu Modelowanie za pomoca klas i atrybutów oraz powiazań pomiędzy nimi (asocjacji). Przedstawione za pomoca diagramu klas na wysokim poziomie szczegółowości (tylko koncepcja - NIE PROJEKT!!!) Zmniejsza rozdźwięk pomiędzy naszym obrazem rzeczywistości a modelem projektowym Inspiracja dla obiektów programistycznych

Przykªad modelowania dziedziny >>

Gªówne elementy notacji: Klasa z atrybutami >> W modelowaniu dziedziny używamy mniej szczegółowej notacji

Gªówne elementy notacji: Asocjacja >> Asocjacja jest relacja pomiędzy dwiema lub więcej klasami, specyfikujac a połaczenie pomiędzy instancjami tych klas.

Liczno± >>

Klasa asocjacyjna >> Asocjacja jako klasa z atrybutami Używa się gdy zachodzi relacja wiele do wielu.

Następny wykład: diagramy UML