mgr in. Jarosław Kuchta
|
|
- Paulina Wysocka
- 9 lat temu
- Przeglądów:
Transkrypt
1 POLITECHNIK GDŃSK WYDZIŁ ELEKTRONIKI TELEKOMUNIKCJI I INFORMTYKI Katedra rchitektury Systemów Komputerowych Rozprawa doktorska Integracyjna metoda wytwarzania aplikacji obiektowych w rodowisku graficznym z uwzgl dnieniem wymaga jako ciowych mgr in. Jarosław Kuchta promotor: prof. dr hab. in. Henryk Krawczyk Gda sk, 2008
2 Pracę wykonano w ramach projektu badawczego MNiSW N /2949
3 Spis tre ci Rozdział 1. Trendy integracyjne w inŝynierii oprogramowania Geneza i integracja metod analizy i projektowania Integrowanie środowisk implementacji Problemy pełnej integracji Propozycja metody integracyjnej Tezy rozprawy Struktura rozprawy...18 Rozdział 2. Koncepcja integracyjnej metody konstruowania aplikacji (IMC) Koncepcja języka modelowania i implementacji IML Geneza języka Cechy charakterystyczne języka IML Wybrane elementy procesu wytwarzania Przebieg procesu wytwarzania Podstawowe mechanizmy usprawniające proces wytwarzania Metody zapewnienia jakości Koncepcja systemu oceny jakości projektu Zapewnienie spójności projektu Szybkie przejście od wymagań do implementacji Warstwa danych IML Metajęzyk IML Podstawowe klasy projektowe Zasady zapisu danych projektowych Wybrane elementy warstwy semantyki IML Semantyka modelu klas Semantyka modelu wymagań Semantyka modelu przypadków uŝycia Semantyka modelu akcji Semantyka modelu aktywności Semantyka modelu implementacji Warstwa prezentacji IML Środowisko graficzne Symbole graficzne Relacje między elementami graficznymi Elementy tekstowe języka Wybrane zasady składni i konstrukcje językowe Rodzaje diagramów Rozdział 4. Kompilacja diagramów aktywności Odwzorowanie diagramu w model aktywności Zasady tworzenia grafu odwzorowania Zasady wstępnego przygotowania grafu odwzorowania Zasady analizy semantycznej grafu odwzorowania Transformacja modelu aktywności w model implementacji w języku IML Zasady podziału modelu aktywności na procedury Wybrane zasady syntezy instrukcji Wybrane zasady ustalenia kolejności instrukcji Translacja modelu implementacji na konkretny kod wykonywalny Zasady translacji typów danych Zasady odwzorowania komponentów abstrakcyjnych w konkretne
4 Zasady translacji instrukcji IML na instrukcje języka implementacji Rozdział 5. Studium przypadku Wybrane elementy projektu systemu rozproszonego Opis dziedziny problemu Specyfikacja wymagań naliza przypadków uŝycia Projekt architektury systemu Projektowanie logiki na poziomie operacji Generowanie kodu Odwzorowanie diagramu aktywności w model aktywności Transformacja modelu aktywności w model implementacyjny Translacja kodu wykonywalnego z IML do Javy Wykrywanie błędów i wprowadzanie modyfikacji Rozdział 6. Ocena jakości projektu Metoda oceny jakości projektu Model jakości projektu Sposoby pomiaru jakości Program oceny jakości Definicje metryk i miar Metryki i miary kompletności Metryki i miary poprawności Metryki i miary spójności Metryki i miary zrozumiałości Metryki i miary modyfikowalności Metryki i miary weryfikowalności Ocena jakości przykładowego projektu Tworzenie i ocena specyfikacji wymagań Wnioski z oceny Rozdział 7. Podsumowanie Spełnienie wymagań strategicznych Wymagania co do efektywności Wymagania co do jakości Metoda IMC na tle innych metod Warunki stosowalności Wnioski i perspektywy rozwoju Bibliografia Indeksy
5 Rozdział 1. Trendy integracyjne w in ynierii oprogramowania W dziedzinie inŝynierii oprogramowania moŝna zauwaŝyć są są wyraźne dąŝenie do integracji róŝnych metod i narzędzi wytwarzania oprogramowania. Dominujące dwa trendy. Z jednej strony następuje łączenie rozmaitych metod analizy i projektowania oprogramowania, z drugiej strony następuje łączenie narzędzi i środowisk implementacji oraz podnoszenie ich na coraz wyŝszy poziom abstrakcji. Wynikiem pierwszego trendu jest zunifikowany język modelowania UML [13][14]. Produktami drugiego trendu zintegrowane środowiska programowania wizualnego, takie jak Delphi [17] czy Visual Studio [68]. Naturalnym podejściem jest połączenie obu trendów i stworzenie jednej, spójnej metody obejmującej cały proces wytwarzania oprogramowania (p. rys. 1). integracja metod analizy i projektowania UML metoda integracyjna IDE są integracja narzędzi implementacji Rys. 1. Trendy integracyjne w inŝynierii oprogramowania Prace nad zintegrowanym podejściem do procesu wytwarzania oprogramowania cały czas trwają. Podejmowane próby włączenia narzędzi modelowania do zintegrowanych środowisk implementacji, np. Rational XDE [7] do Visual Studio [64]. Na drodze do pełnej integracji tych występują środowisk jednak powaŝne problemy. NaleŜy tu wymienić niezgodność aparatów pojęciowych stosowanych w 1. Trendy integracyjne w inŝynierii oprogramowania 5
6 modelowaniu i w implementacji, niejednoznaczność odwzorowania jednych pojęć na drugie, niezgodność są notacji [45]. Te problemy powodują, Ŝe dotychczas stosowane metody dalekie od doskonałości. Integracyjna metoda konstrukcji aplikacji IMC (ang. Integrated Method of pplication Construction) jest autorską propozycją rozwiązania tych problemów. UmoŜliwia ona przeprowadzenie analizy, projektowania i implementacji w środowisku graficznym. Dzięki połączeniu modelu wymagań, projektu oprogramowania i modelu implementacji w jedno, spójne rozwiązanie, moŝna zwiększyć efektywność tworzenia oprogramowania, zmniejszyć ryzyko błędów, a dzięki zintegrowanemu systemowi oceny jakości dokumentacji poprawić jakość tworzonego oprogramowania. Siła metody IMC leŝy w wielowarstwowym dostępie do wspólnej dla wszystkich faz procesu wytwarzania oprogramowania bazy danych projektowych. Podstawą rozwiązania jest specyfikacja wymagań wprowadzana do bazy danych. Dzięki odpowiednim regułom odwzorowania specyfikacja ta umoŝliwia półautomatyczne wygenerowanie modelu analitycznego. W fazie projektowania na podstawie modelu analitycznego jest tworzony projekt aplikacji, często z podziałem na kilka warstw architektonicznych. W fazie implementacji dokonuje się uściślenia i udoskonalenia rozwiązań aŝ projektowych do uzyskania odpowiedniego modelu implementacyjnego, z którego następnie jest automatycznie generowany kod wykonywalny aplikacji. Całość pracy realizuje się w jednym, spójnym środowisku projektowym. Podczas implementacji stosuje się te same graficzne formy prezentacji, co w czasie analizy i projektowania. Wygenerowany kod (np. w Javie lub w języku maszynowym) nie jest juŝ modyfikowany. Wszelkie modyfikacje sposobu implementacji przeprowadza się na diagramach implementacyjnych. Unika się aŝ są tym samym transformacji wyników modelowania na kod implementacyjny i z powrotem, co jest potencjalnym źródłem błędów. Produkty kaŝdej z faz poddawane ocenie przez system kontroli jakości obliczający szereg miar statystycznych. PowyŜsze aktywności mogą być podejmowane wielokrotnie, do zapewnienia odpowiedniej jakości wynikowej aplikacji Geneza i integracja metod analizy i projektowania Współczesny proces wytwarzania oprogramowania jest procesem bardzo złoŝonym. Składa się z kilku faz, a kaŝda z tych faz obejmuje kilka róŝnych aspektów (p. rys. 2). Przez dłuŝszy czas metody i narzędzia wspomagające proces wytwarzania oprogramowania rozwijały się niezaleŝne dla róŝnych faz i aspektów tego procesu. Szczególnie przed wprowadzeniem technik obiektowych istniało wiele róŝnych metod analizy i projektowania skupiających się na poszczególnych, wybranych aspektach. 6
7 Proces wytwarzania oprogramowania Planowanie Opracowanie specyfikacji wymagań naliza ryzyka i analiza ekonomiczna Szacowanie pracochłonności i kosztów Opracowanie harmonogramu naliza wymagań naliza strukturalna naliza funkcjonalna naliza behawioralna naliza dynamiczna Projektowanie Projektowanie architektury systemu Projektowanie obiektowoproceduralne Projektowanie struktury danych Projektowanie interfejsu uŝytkownika Implementacja Implementacja obiektowoproceduralna Implementacja struktury danych Implementacja interfejsu uŝytkownika Opracowanie systemu pomocy Testowanie W projektowaniu proceduralnym najstarszą z metod była metoda z lat 60-tych oparta o diagramy przepływu sterowania wykresy operacyjne [8]. Ze względu na Testowanie jednostkowe Testowanie integracyjne Testowanie systemowe Testowanie akceptacyjne swoją uniwersalność metoda ta jest uŝywana do dzisiaj, chociaŝ raczej do celów ilustracyjnych i to do prostych algorytmów. Wykresy operacyjne mają pewną wadę nie bardzo nadają się do opisu sterowania strukturalnego. Dlatego w latach 70-tych duŝe nadzieje niosła metoda oparta o strukturalne diagramy sterowania Nassi- Shneidermana i Chapina [60][19]. Rys. 2. Fazy i aspekty procesu wytwarzania oprogramowania W aspekcie strukturalnym duŝe znaczenie miała analiza bazująca diagramach na diagramach związków encji ERD (ang. Entity-Relationship Diagrams) opracowanych w połowie lat 70 przez Chena [20]. W tym czasie pojęcie obiektu w informatyce nie było jeszcze znane, dlatego teŝ Chen wprowadził pojęcie encji dla oznaczenia rzeczy lub przedmiotu mającego znaczenie dla systemu. Metoda analizy związków encji w późniejszym czasie miała stać się podstawą dla rozwoju metod obiektowych. spekt funkcjonalny był domeną metody opartej o diagramy przepływu danych (DFD ang. Data Float Diagram). Metoda opracowana pod koniec lat 70 przez Yourdona i Constantine a [75] oraz przez DeMarco [25] umoŝliwiała strukturalny podział funkcjonalności systemu na procesy. spekt behawioralny często był opisywany przy pomocy diagramów przejść stanów. ChociaŜ samo pojęcie stanów i tabel przejść jest tak stare jak maszyna Turinga, pierwsze zastosowania do opisu złoŝonych systemów sięgają początku lat 80 [37]. Współcześnie stosuje się notację Harela [31]. Harel wprowadził pojęcia stanów złoŝonych, stanów równoległych oraz akcji i aktywności stanu. spekt dynamiczny często był utoŝsamiany z behawioralnym i stosowano w nim te same metody. Dla podkreślenia ujęcia czasowego diagram stanów mógł zostać 1. Trendy integracyjne w inŝynierii oprogramowania 7
8 przedstawiony w alternatywnej postaci zwanej diagramem sekwencji zdarzeń [4], porządkującej zdarzenia wzdłuŝ wspólnej osi czasu. Sporą popularnością w projektowaniu cieszyły się teŝ metody formalne oparte o języki formalne, np. PDL lub Z [16][30][35][69]. Nie były to metody graficzne i chociaŝ zapewniały moŝliwość ścisłej, formalnej specyfikacji systemu, to jednak czytelność tak wykonanych projektów pozostawiała wiele do Ŝyczenia. Wprowadzenie technik obiektowych zapoczątkowało proces integracji róŝnych metod analizy wokół modelu obiektowego. Początek lat 90 przyniósł Ŝywiołowy rozwój metod obiektowych. Jedną tę z pierwszych metod obiektowych opracowali Coad i Yourdon [21][22]. Ich wkładem do modelowania był diagram klas i obiektów w formie moŝliwej do zastosowania zarówno w analizie jak i projektowaniu. W analizie Coad i Yourdon skoncentrowali się na aspekcie statycznym. W zakresie projektowania zastosowali samą formę diagramu klas i obiektów do czterech aspektów projektowych. UmoŜliwiało to wprost przeniesienie diagramów analitycznych do projektowania i następnie ich uszczegółowienie. Inne podejście zostało zaprezentowane w metodzie Wirfs-Brocka [74]. W metodzie tej do opisu klas zastosowano karty CRC (ang. Class Responsibility-Collaboration cards). Do pokazania struktury klas zastosowano grafy hierarchii klas, natomiast do pokazania kontraktów między klasami, podsystemami i klientami-serwerami uŝyto diagramów kolaboracji. Bardzo duŝo w analizę obiektową włoŝył Booch. Jego metoda rozwijała się stopniowo od projektowania obiektowego, przez obiektowe projektowanie aplikacji, do obiektowej analizy i projektowania aplikacji [9][10][11][12]. W swojej metodzie Booch wykazał, Ŝe moŝna połączyć proces analizy i projektowania w jeden proces modelowania. Stwierdził, Ŝe analiza obiektowa tworzy model logiczny, w którym tworzy się architekturę klas i obiektów. Podczas projektowania powstaje model fizyczny, który obejmuje architekturę modułów i architekturę procesów. W ten sposób model logiczny i model fizyczny tworzą dwa poziomy modelowania. Na kaŝdym poziomie powstają dwa modele rozpatrywane w innym wymiarze: model statyczny i model dynamiczny. W sumie Booch wyróŝnił cztery modele: statyczny model logiczny, dynamiczny model logiczny, statyczny model fizyczny oraz dynamiczny model fizyczny. Udane połączenie analizy obiektowej, jaką znamy z prac Coada i Yourdona, z analizą opartą o diagramy przepływu danych i analizą przejść stanów stanowi metoda OMT (ang. Object Modeling Technique) opracowana przez Rumbaugha i innych [65]. Metoda OMT objęła trzy aspekty analizy: aspekt statyczny, aspekt dynamiczny i aspekt funkcjonalny oraz dwa poziomy projektowania: projektowanie systemowe i projektowanie obiektowe. W kaŝdym z trzech aspektów analizy tworzony został odpowiedni model: model obiektowy, model dynamiczny i model funkcjonalny. Model obiektowy opisywany jest przez diagramy klas i obiektów (bardzo zbliŝone do diagramów Coada i Yourdona). Model dynamiczny opisywany jest przez diagramy przejść stanów wg Harela [31] oraz diagramy sekwencyjne (zwane diagramami scenariuszy). Model funkcjonalny opisywany jest przez diagramy przepływu danych. Faza projektowania, chociaŝ jest równieŝ bardzo dokładnie opisana, nie ma tak precyzyjnej notacji graficznej, jak faza analizy. Całkowicie odmienne podejście do analizy reprezentuje Jacobson. Jest on twórcą metody OOSE (ang. Object-Oriented System Engineering) [38] znanej raczej jako 8
9 podejście przez przypadki uŝycia (ang. Use Case Driven pproach). W swojej metodzie proponuje rozpoczęcie analizy od określenia tzw. przypadków uŝycia. Pod pojęciem przypadku uŝycia Jacobson definiuje spójną jednostkę funkcjonalności systemu lub klasy manifestującą się wymianą sekwencji komunikatów pomiędzy systemem a zewnętrznymi, współdziałającymi z nim obiektami zwanymi aktorami. Podejście Jacobsona jest o tyle róŝne od innych metod, Ŝe do dziś trwają działania mające na celu lepsze dopasowanie przypadków uŝycia do innych aspektów modelu obiektowego. Pierwsze metody obiektowe powstawały w sposób Ŝywiołowy. Powstało co najmniej kilka równoprawnych metod niezgodnych pod względem aparatu pojęciowego i stosowanej notacji. Ponadto Ŝadna z tych metod nie obejmowała całego cyklu Ŝycia oprogramowania. Dlatego w połowie lat 90 zaczęły powstawać metody obiektowe drugiej generacji, jak Fusion i MOSES. Metoda Fusion [23] obejmuje trzy fazy: analizę, projektowanie i implementację. W fazie analizy i projektowania metoda Fusion opiera się na czterech poprzednich metodach: OMT, metodach formalnych, metodzie Wirfs-Brocka i metodzie Boocha. W zakresie implementacji metoda Fusion opisuje sposób realizacji interakcji międzyobiektowej oraz maszyny stanów w języku programowania obiektowego. Metoda MOSES [33] obejmuje cały cykl Ŝycia oprogramowania. Zakłada, Ŝe cykl ten składa się są z czasu wzrostu i czasu dojrzewania. Czas wzrostu jest czasem potrzebnym na wytworzenie pierwszej wersji oprogramowania. W czasie dojrzewania wytwarzane kolejne wersje. Czas wytwarzania kaŝdej wersji składa się z trzech stopni: planowania przedsięwzięcia, budowania i dostarczenia produktu. Spośród tych najwaŝniejsze jest budowanie. Składa się ono z pięciu faz: planowania, badania, specyfikacji, implementacji i przeglądu. KaŜda z tych pięciu faz bazuje na pewnym podzbiorze aktywności ze zbioru wspólnych aktywności. W metodzie MOSES wykorzystuje się poprzednie metody, zwłaszcza karty CRC Wirfs-Brocka i diagramy stanów Harela. Bardziej intensywne działania integracyjne podjęło konsorcjum kilkunastu firm softwerowych, m.in. Microsoft, Rational, IBM, Hewlett-Packard, Oracle. Działania te doprowadziły do powstania zunifikowanego języka modelowania UML (ang. Unified Modeling Language). Na genezę języka UML złoŝyło się wiele wcześniejszych metod (p. rys. 3). Głównymi twórcami UML są: Booch, Rumbaugh i Jacobson [14]. Stąd teŝ są są są UML łączy w sobie elementy występujące w ich własnych metodach. Od Jacobsona pochodzi diagram przypadków uŝycia. Diagramy klas i obiektów w UML złoŝeniem diagramów klas z OMT, metody Boocha i wielu innych metod obiektowych. Diagramy stanów (z pewnymi modyfikacjami) oparte o pracę Harela. Diagramy aktywności podobne do diagramów przepływu pracy (ang. work flow diagrams) uŝywanych w wielu metodach (równieŝ przedobiektowych). Nad włączeniem diagramów aktywności do UML pracował Odell [56]. Diagramy sekwencji moŝna było znaleźć w wielu metodach obiektowych (m.in. w OMT i u Boocha) oraz przedobiektowych pod róŝnymi nazwami. Z metod Boocha, metody Fusion oraz kilku innych źródeł zaadaptowano diagramy kolaboracji. Diagramy implementacji (diagramy komponentów i diagramy rozwinięcia) stanowią zmodyfikowane diagramy modułów i procesów Boocha. 1. Trendy integracyjne w inŝynierii oprogramowania 9
10 metody przedobiektowe metody obiektowe 1.generacji metody obiektowe 2.generacji unifikacja metod obiektowych Wykresy operacyjne Diagramy związków encji Metoda Coada i Yourdona Strukturalne diagramy sterowania Diagramy przepływu danych Metody Boocha Fusion OMT UML Diagramy przejść stanów MOSES Metody formalnej specyfikacji Diagramy stanów Harela Metoda Wirfs- Brocka Diagramy sekwencji zdarzeń Metoda Jacobsona Extreme Programming Model Driven rchitecture rozwój metod opartych o UML 2004 Profile UML UML 2.0 Rational Unified Process UML 1997 roku rozwija się dalej. W 2004 roku opublikowano kolejną bardziej znaczącą wersję tego języka UML 2.0. Równocześnie UML, jako język otwarty, stał się podstawą dla wielu odmian tego języka profili stosowanych w rozmaitych dziedzinach [92] gile Unified Process Rys. 3.Geneza i rozwój obiektowych metod analizy i projektowania W tej samej organizacji OMG (ang. Object Modeling Group), która stworzyła UML, powstała metoda MD (ang. Model Driven rchitecture) [59] zakładająca najpierw modelowanie funkcjonalności systemu w sposób niezaleŝny od platformy implementacji za pomocą języka specyficznego dla dziedziny zastosowania, a następnie tłumaczenie tego modelu za pomocą modelu definicji platformy do modeli specyficznych dla platformy stosujących języki ogólnego zastosowania (p. rys. 4). DSL GPL PIM PDM PSM Objaśnienia: PIM Platform Independent Model model niezaleŝny od platformy implementacji PSM Platform Specific Model model specyficzny dla platformy implementacji PDM Platform Definition Model model definicji platformy implementacji (np. CORB, DotNet, Web) DSL Domain Specific Language język specyficzny dla dziedziny zastosowania (np. CSound dla zastosowań audio, DOT Language dla wizualizacji grafów), GPL General Purpose Language język ogólnego zastosowania (np. Java, C#) Rys. 4. Schemat postępowania w metodzie MD Po zastosowaniu do modelu MD języka UML powstał model RUP (ang. Rational Unified Process) [40] metoda wytwarzania oprogramowania oparta o spiralny model wytwarzania (p. rys. 5) oraz szereg zasad i praktyk inŝynierskich, takich jak: iteracyjne wytwarzanie oprogramowania, 10
11 zarządzanie wymaganiami, stosowanie architektury bazującej na komponentach, modelowanie graficzne, stosowanie systemu zarządzanie jakością, zarządzanie zmianami. Faza przekazania (transition) Faza podjęcia (inception) Faza konstrukcji (construction) Faza opracowania (elaboration) Rys. 5. Model spiralny procesu wytwarzania w metodzie RUP Metoda RUP jest często krytykowana za jej formalizm w sensie złoŝoności realizowanych zadań [3]. lternatywą są jest UP (ang. gile Unified Process) [5], lekka wersja RUP reprezentująca podejście oparte o następujące zasady [76]: 1. NajwyŜszym priorytetem jest zadowolenie klienta, które moŝna zapewnić przez szybkie i ciągłe dostarczanie działającego oprogramowania. 2. Dopuszczalne zmiany wymagań nawet w późnym stadium projektu. Projekt musi być dopasowywany do zmieniających się wymagań i warunków na korzyść są klienta. 3. Działające oprogramowanie jest dostarczane często, co kilka tygodni lub co kilka miesięcy. Im częściej tym lepiej. 4. Potrzebna jest bliska, codzienna współpraca między przedstawicielami klienta i zespołem projektowym. 5. Projekty oparte o odpowiednio zmotywowanych deweloperów, którym trzeba zapewnić środowisko pracy i zaufać, wykonają swoją Ŝe pracę. 6. Najbardziej odpowiednią i efektywną metodą zbierania informacji przez zespół projektowy jest bezpośrednia rozmowa. 7. Działające oprogramowanie jest podstawową miarą postępu prac. 8. Proces opracowywania oprogramowania powinien być stale podtrzymywany przez sponsorów, deweloperów i uŝytkowników. 9. Potrzebne jest stałe zwracanie uwagi na techniczną doskonałość i dobre projektowanie 10. Upraszczanie ma znaczenie zasadnicze 11. Najlepsze wymagania, projekty i struktury pochodzą od samoorganizujących się zespołów. 12. W regularnych odstępach zespół projektowy zastanawia się nad tym, jak zwiększyć swoją efektywność, następnie odpowiednio zmienia i dopasowuje swoje sposoby postępowania. Zarówno metody formalne, jak i lekkie mają swoje zalety i swoje wady, które predestynują je do określonych obszarów zastosowań [6] (p. tab. 1) 1. Trendy integracyjne w inŝynierii oprogramowania 11
12 Tab. 1. Porównanie obszarów zastosowań metod formalnych i metod lekkich metody formalne (np. RUP) metody lekkie (np. UP) wysoka krytyczność projektu niska krytyczność projektu dobrze określone wymagania częsta zmiana wymagań mało doświadczeni deweloperzy doświadczeni deweloperzy duŝa liczba deweloperów mała liczba deweloperów uporządkowany system pracy kreatywny system pracy 1.2. Integrowanie rodowisk implementacji są Po pierwszych metodach implementacji opartych na kompilacji liniowej (z uŝyciem osobnych programów do edycji, kompilacji, konsolidacji i testowania) nastąpił intensywny rozwój zintegrowanych środowisk implementacji (IDE). Do środowisk tych włączano są stopniowo róŝne narzędzia przenosząc jednocześnie środek cięŝkości pracy programisty na wyŝszy poziom abstrakcji, zwłaszcza na aspekt projektowania interfejsu uŝytkownika. Reprezentatywnymi produktami trendu integracyjnego w implementacji zintegrowane środowiska programowania wizualnego: Delphi, Borland C ++ Builder, Java Builder, Visual Studio [15][36][54][50]. Podejmowane równieŝ działania zmierzające do włączenia metod modelowania do zintegrowanych środowisk implementacji. Przykładem tego moŝe być Rational XDE środowisko modelowania przeznaczone do integracji z Microsoft Visual.NET Studio oraz z IBM IDE [63][64]. RównieŜ Borland włącza narzędzia modelowania do swoich środowisk IDE (p. rys. 6). Delphi modelowanie obiektowo-relacyjne Delphi projektowanie struktury danych (diagramy E-R) Delphi projektowanie interfejsu uŝytkownika Turbo Pascal edycja zasobów Turbo Pascal technika obiektowa Turbo Pascal 3.0 Edytor Kompilator Linker Debugger Rys. 6. Włączanie narzędzi projektowania i modelowania do środowisk implementacji na przykładzie IDE firmy Borland 12
13 1.3. Problemy pełnej integracji Na drodze do pełnej integracji metod wytwarzania oprogramowania występuje jeszcze szereg problemów. RozwaŜmy dla przykładu sposób wytwarzania oprogramowania za pomocą Rational XDE. Jest to środowisko modelowania wykorzystujące język UML i przeznaczone do konsolidacji m. in. z Microsoft Visual.NET Studio. Praca w takim zintegrowanym środowisku przebiega według następującego schematu (p rys. 7): 1. Na podstawie wymagań uŝytkowych projektant tworzy model aplikacji w UML posługując się narzędziami XDE. 2. Z modelu generowany jest szkielet aplikacji kod źródłowy w C#. 3. Programista wpisuje kod metod obiektowych w języku C# w oznaczone odpowiednimi komentarzami miejsca w wygenerowanym kodzie aplikacji. 4. Następnie programista uruchamia aplikację typowymi narzędziami IDE z Microsoft Visual.NET Studio. 5. Jeśli model wymaga modyfikacji, to przeprowadza się synchronizację modelu z kodem (za pomocą odpowiedniego narzędzia) i powraca do p. 1. Wymagania uŝytkowe model XDE +.NET Studio XDE Modelowanie model Synchronizacja modelu Generowanie kodu Uzupełnienie kodu kod źródłowy.net Studio Implementacja kod źródłowy plikacja Rys. 7. Schemat funkcjonalny pracy ze zintegrowanym środowiskiem Rational XDE i Microsoft Visual.NET Studio Jak wynika z powyŝszego schematu, w tej metodzie pracy występuje pewien dualizm. Z jednej strony model aplikacji jest tworzony w języku modelowania UML. Z drugiej strony kod aplikacji powstaje w obiektowym języku programowania (C#). Proces generowania kodu z modelu jest procesem mocno nieefektywnym. utomatyczny generator kodu interpretuje jedynie statyczne elementy modelu produkując strukturę są klas z nagłówkami procedur. Diagramy funkcjonalne i dynamiczne nie w ogóle rozpoznawane, choć wchodzą w skład dokumentacji projektowej i muszą być później interpretowane przez człowieka. Programista musi uzupełnić wygenerowany kod wpisując własną interpretację. W przypadku konieczności dokonania zmian w modelu proces trzeba powtarzać, a wprowadzony uprzednio przez programistę kod moŝe juŝ nie być zgodny z nową wersją modelu. Takie podejście ma zasadnicze wady: Brak pełnej interpretacji modelu przez generator kodu zmusza programistę do samodzielnej interpretacji diagramów modelowych. Interpretacja przez człowieka jest na pewno wolniejsza od interpretacji komputerowej i wpływa na zmniejszenie efektywności całego procesu wytwarzania oprogramowania. (Na 1. Trendy integracyjne w inŝynierii oprogramowania 13
14 są marginesie naleŝy zaznaczyć, nieefektywność Ŝe generatora kodu zapewne nie wynika z nieumiejętności napisania efektywnego generatora kodu przez programistów, lecz z tego, Ŝe w modelu aplikacji brak jest wielu informacji z poziomu implementacji, które potrzebne do wygenerowania pełnego kodu.) Język modelowania UML jest zasadniczo róŝny od języka programowania C#. Zupełnie róŝna jest składnia obu języków. UML jest językiem graficznym, a C# językiem tekstowym. Nawet składnia tekstowa występująca w UML róŝni się od składni C# (np. w zakresie deklaracji atrybutów). RównieŜ warstwa semantyki jest w wielu miejscach niezgodna. To wszystko powoduje, Ŝe diagramy modelowe mogą być nieczytelne dla programistów na co dzień posługujących się językiem programowania [3]. Idealnym rozwiązaniem jest metoda, w której z modelu jest generowany pełny kod aplikacji. Takie rozwiązanie wymaga jednak modelowania na kilku poziomach szczegółowości: zarówno na poziomie analizy i projektowania, jak i implementacji. Występują tu jednak powaŝne trudności: NajpowaŜniejszą trudność tworzą róŝnice pojęciowe. Pomiędzy pracą analityka a pracą programisty występują róŝnice w stosowanym aparacie pojęciowym. nalityk stosuje pojęcia z dziedziny problemu, posługuje się pojęciami encji (bytu), klasy, aktora, interakcji, stanu, aktywności. Programista posługuje się pojęciami z dziedziny programowania: klasy, instancji, interfejsu, metody, procedury. Częściowo oba zbiory pojęć nakładają są na siebie, częściowo jednak róŝne. Nawet te pojęcia, którymi posługuje się zarówno analityk, jak i programista, róŝnią się w rozumieniu jednego i drugiego. Najlepszym przykładem jest tu klasa. Klasa w rozumieniu analityka jest uogólnieniem (abstrakcją) występujących w świecie rzeczywistym obiektów (dokumentów, osób, przedmiotów). Klasa w rozumieniu programisty jest szczególnym typem danych łączącym w sobie dane i kod oraz umoŝliwiającym dziedziczenie atrybutów i metod. Z róŝnicami pojęciowymi się niejednoznaczność wiąŝe odwzorowania elementów modelowych w implementacyjne. Ponownie jako przykład moŝna podać klasę np. reprezentującą klienta w aplikacji biznesowej. Klient moŝe w ogóle nie występować jako klasa implementacyjna. Dane klienta mogą przechowywane np. w tabeli bazy danych, a dostęp do danych moŝe być zapewniany przez formularz ekranowy. Tak więc nie kaŝda klasa analityczna będzie odpowiadała jednej klasie implementacyjnej. Trudną do pokonania barierą jest niezgodność notacji. Niezgodność ta występuje zarówno w samym modelowaniu, jak i pomiędzy modelowaniem a implementacją. Ten pierwszy rodzaj niezgodności polega na tym, Ŝe do wyraŝenia takich samych pojęć w róŝnych aspektach modelowania uŝywa się róŝnych symboli graficznych (vide UML). Wynika to z wciąŝ jeszcze małej dojrzałości graficznych metod modelowania. Drugi rodzaj niezgodności polega na tym, Ŝe analityk posługuje się metodami graficznymi, programista zaś zapisuje program w notacji tekstowej. Zapis tekstowy jest w odróŝnieniu od notacji graficznej sekwencyjny i wymaga zupełnie innego podejścia. Oddzielenie modelowania od implementacji ma bardzo powaŝne konsekwencje negatywne: WydłuŜa cykl wytwarzania oprogramowania. Niektóre prace muszą być wykonywane dwukrotnie raz podczas modelowania, drugi raz podczas implementacji. 14
15 Długi czas pomiędzy modelowaniem a uzyskaniem konkretnej implementacji powoduje, Ŝe trudno jest zweryfikować poprawność modeli analitycznych. Wymusza to odejście od klasycznego paradygmatu wytwarzania kaskadowego na rzecz metod iteracyjno-przyrostowych [29][70]. nalityk i programista posługują się róŝnymi językami. Konieczność są interpretacji diagramów analitycznych przez człowieka (programistę) jest potencjalnym źródłem błędów. Wszystko to powoduje, Ŝe wczesne fazy wytwarzania oprogramowania często uwaŝane za nadmiarowe. Programiści koncentrują się na jak najszybszym uzyskaniu konkretnych efektów (a więc na implementacji). Mają skłonność do traktowania projektu jako zbioru ogólnych wskazówek i pisania kodu w sporym oderwaniu od projektu. Tymczasem starannie wykonana analiza i projektowanie powinny solidną podstawę stanowić do implementacji. Jest to warunek konieczny do zapewnienia odpowiedniej jakości oprogramowania. PoniewaŜ jakość oprogramowania jest miarą stopnia spełnienia wymagań uŝytkowników, więc poznanie i zrozumienie tych wymagań w czasie analizy jest niezbędne do uzyskania dobrej jakości. Równie istotne jest utrzymanie spójności całego projektu z wymaganiami. Brak spójności metod znacząco utrudnia utrzymanie integralności projektu, a więc zapewnienie ciągłego powiązania pomiędzy wymaganiami, a implementowanymi funkcjami przez wszystkie fazy procesu wytwarzania Propozycja metody integracyjnej Przedstawiona w tej pracy integracyjna metoda konstrukcji aplikacji IMC jest autorską propozycją są są są rozwiązania powyŝszych problemów [41][42][43]. Zakłada ona, Ŝe wszystkie informacje projektowe zapisywane w jednym, zintegrowanym projekcie informatycznym. Informacje tam zapisywane na wielu warstwach informacyjnych, przy czym kaŝda warstwa jest przypisana do określonego poziomu szczegółowości (p. rys. 8). Na najniŝszym poziomie szczegółowości zapisywane wymagania wobec systemu, na wyŝszych rozwiązania właściwe dla poziomu analizy i dla poziomu projektowania, na najwyŝszym dla poziomu implementacji. Informacje zapisane na wyŝszym poziomie szczegółowości uzupełniają, a czasami modyfikują informacje zapisane na niŝszym poziomie szczegółowości. Po zapisaniu informacji na poziomie implementacji jest generowany pełny kod aplikacji. W ujęciu metody IMC implementacja nie polega na pisaniu kodu aplikacji w wybranym języku programowania, lecz na uszczegółowieniu wyniku projektowania. Projekt jest w implementacji uzupełniony o wszystkie szczegóły potrzebne do wygenerowania efektywnego kodu. Tak więc wynikiem implementacji nie jest bezpośrednio kod wykonywalny aplikacji, lecz model implementacji zapisany w taki sam sposób, jak model wymagań i projekt oprogramowania. Ze modelu implementacji jest dopiero generowany kod wykonywalny. MoŜe on być generowany bezpośrednio, jako kod binarny, lub pośrednio, jako kod źródłowy, z którego będzie dopiero kompilowany kod binarny. Nawet jednak w tym drugim przypadku wygenerowany kod źródłowy nie podlega modyfikacji. Jeśli potrzeba zmienić np. algorytm metody, to wszelkie zmiany wprowadza się do modelu implementacji i na nowo generuje kod wykonawczy. Jeśli zmiany wymaga rozwiązanie na poziomie projektowania lub nawet na poziomie analizy, to trzeba wybrać odpowiednią warstwę informacyjną i do niej 1. Trendy integracyjne w inŝynierii oprogramowania 15
16 wprowadzić będą będą Część zmiany. Niektóre takie zmiany od razu widoczne na poziomie implementacji, inne wymagały dopracowania do implementacyjnego poziomu szczegółowości. W metodzie IMC zarówno aparat pojęciowy, jak i notacja graficzna została stworzona w oparciu o język UML. notacji musiała jednak zostać zmieniona tak, aby zapewnić spójność z notacją stosowaną w implementacji. Dla potrzeb graficznego opisywania metod obiektowych stworzono nową notację opartą o diagramy przepływu danych, diagramy przepływu sterowania (wykresy operacyjne) oraz o strukturalne diagramy przepływu sterowania. Cała notacja została ujednolicona w celu zminimalizowania liczby stosowanych symboli. by umoŝliwić wyraŝenie wszystkich szczegółów potrzebnych do wygenerowania efektywnego kodu graficzną ścisłą notację wzmocniono notacją tekstową. W wyniku powstał nowy język IML (ang. Implementable Modeling Language), którego definicję oparto ze strony graficznej na UML, a składnię tekstową na współczesnych obiektowych językach programowania: Java, C#, C ++, Object Pascal (Delphi). W procesie wytwarzania przyjęto model znany z prac Coada i Yourdona [21][22] jako model piłki bejsbolowej (rys. 8a). W tym modelu przejście pomiędzy analizą, projektowaniem i implementacją Są jest swobodne. one traktowane jako wielokrotnie podejmowane, często w dowolnej kolejności, aktywności. W metodzie IMC dodano do tego modelu zintegrowany projekt informatyczny wspólną dla wszystkich faz procesu wytwarzania bazę są danych projektowych (rys. 8b). Dostęp do informacji z tej bazy jest wielowarstwowy, tzn. informacje wprowadzone w fazie analizy dostępne równieŝ w fazie projektowania i implementacji. Na wyŝszych warstwach dokonuje się uszczegółowienia rozwiązań aŝ wprowadzonych na warstwach niŝszych do poziomu wystarczającego do wygenerowania kodu. a) naliza b) naliza Projektowanie Implementacja Projektowanie Zintegrowany projekt informatyczny Implementacja c) Implementacja Projektowanie warstwy poziom informacyjne szczegółowości naliza Zintegrowany projekt informatyczny Wymagania Rys. 8. Model pracy w metodzie IMC: a) model piłki bejsbolowej Coada i Yourdona, b) zintegrowany projekt informatyczny w metodzie IMC, c) układ wielowarstwowy rozwinięty z modelu (b) z dodaną warstwą wymagań 16
17 Koncepcja metody IMC jest bardzo zbliŝona do RUP, występują jednak pomiędzy nimi istotne róŝnice: W IMC połoŝono znacznie większy nacisk na integrację modelowania z implementacją i szybkość przejścia od modelowania do implementacji. RUP jest oparty o język UML lub xuml wykonywalną wersję UML (ang. Executable UML), który jest po prostu UML wzbogaconym o dynamiczną semantykę [58]. W IMC wprowadzono nowy język modelowania i implementacji - IML, duŝo bardziej zorientowany na implementację. W IMC ujednolicono symbolikę i semantykę dla wszystkich typów diagramów UML, co z jednej strony zmniejsza liczbę symboli do zapamiętania, a z drugiej zwiększa elastyczność są stosowania diagramów. W IMC zakłada się, Ŝe projektant będzie mógł wprowadzić do modelu implementacyjnego takie rozwiązania, jakie moŝliwe w językach obiektowych ogólnego zastosowania, dzięki temu generowany kod będzie w pełni efektywny i nie będzie wymagał korekty przez programistę. Wymagania strategiczne co do metody integracyjnej Celem proponowanego rozwiązania jest zwiększenie efektywności wytwarzania wobec metod tradycyjnych przy zapewnieniu porównywalnej lub lepszej jakości produktów końcowych Tezy rozprawy W pracy niniejszej zostaną wykazane następujące tezy: 1. Metoda IMC wykorzystująca język modelowania i implementacji IML dostarcza spójne i modyfikowalne produkty procesu wytwarzania, które być mogą graficznie prezentowane i redagowane. 2. Produkt końcowy procesu wytwarzania metodą IMC moŝe być przekształcany do kodu wykonywalnego na danej platformie programowania za pomocą kompilatora wykorzystującego semantykę i składnię języka IML 3. Metoda IMC wraz z odpowiednim systemem oceny jakości IQUEST zapewnia kontrolę jakości produktów pośrednich jak i prowadzi do uzyskania załoŝonej jakości produktu końcowego. 1. Trendy integracyjne w inŝynierii oprogramowania 17
18 1.6. Struktura rozprawy Treść dalszych rozdziałów jest następująca: W rozdziale drugim przedstawiono koncepcję metody IMC i jej trzech filarów: języka IML, zintegrowanego procesu wytwarzania oraz wykorzystywanych metod zapewnienia jakości. Rozdział trzeci opisuje podstawy języka IML w trzech warstwach: danych, semantyki i prezentacji. Rozdział czwarty jest poświęcony jednemu z elementów procesu wytwarzania: kompilacji diagramów aktywności języka IML do kodu wykonywalnego Rozdział piąty to studium przypadku. Na przykładzie aplikacji biznesowej oprogramowania Wirtualnego Domu Towarowego pokazuje wybrane elementy procesu projektowania wraz z generowaniem kodu wykonywalnego w języku Java. W rozdziale szóstym przedstawiono metodę oceny jakościowej produktów procesu wytwarzania moŝliwą do zastosowania we wczesnych fazach procesu. Rozdział siódmy zawiera podsumowanie pracy, ocenę stosowalności metody IMC i wnioski związane z rozwojem metody. Potwierdzenie tezy pierwszej zostało podzielone pomiędzy rozdziały: drugi, trzeci i piąty. Tezę drugą wykazano w teoretycznie rozdziale czwartym, a w rozdziale piątym zilustrowano na praktycznym przykładzie. Dowód tezy trzeciej znajduje się w rozdziale szóstym. Ze względu na szeroki zakres dziedziny badań, w tej pracy pokazano tylko wybrane elementy proponowanej metody. W rozdziale trzecim semantykę i składnię języka IML zaprezentowano jedynie w zakresie niezbędnym do zrozumienia pozostałej części pracy. W rozdziale czwartym zamiast całego, złoŝonego procesu wytwarzania, przedstawiono jedynie jeden z jego elementów kompilację są diagramów aktywności. Pozostałe elementy procesu wytwarzania w metodzie IMC typowe dla metod opartych o podejście iteracyjno-inkrementacyjne z zastrzeŝeniem stosowania metod zapewnienia jakości (opisanych w rozdziale drugim i szóstym), a zwłaszcza metod zapewnienia spójności projektu. Dla zapewnienia zrozumiałości metody celowo nie pokazano szczegółowo algorytmów procesu kompilacji, lecz skoncentrowano się na zasadach kompilacji i jej przykładowych wynikach. W rozdziale piątym świadomie pominięto szereg działań projektanta od specyfikacji wymagań do diagramu aktywności, tak by moŝna było pokazać działanie procesu kompilacji na konkretnym przykładzie 18
19 Rozdział 2. Koncepcja integracyjnej metody konstruowania aplikacji (IMC) Koncepcja metody IMC jest oparta o trzy główne filary: język IML, zintegrowany proces wytwarzania oprogramowania oraz system oceny jakości (p. rys. 9). Język IML z jednej strony zapewnia projektantowi moŝliwość konstruowania aplikacji poprzez graficzny interfejs projektanta, a z drugiej strony określa sposób zapisu danych projektowych w bazie danych stanowiącej podstawę informatyczną systemu. Jest wykorzystywany w dokumentacji produkowanej w procesie wytwarzania oprogramowania we wszystkich fazach tego procesu. Proces wytwarzania oprogramowania składa się z wielu aktywności, przy czym w odróŝnieniu od klasycznych metod kaskadowych nie jest wymagane zakończenie jednej aktywności przed przejściem do następnej. Cząstkowe rozwiązania projektowe w kaŝdej fazie mogą być dzięki mechanizmom automatyzacji sprawdzone poprzez szybką implementację. To podejście jest moŝliwe dzięki zastosowaniu spójnej notacji IML dla modelowania i implementacji, przez co projektant moŝe graficznie wprowadzić są są w modelu takie korekty i uzupełnienia, które niezbędne do poprawnej implementacji. Wewnątrz procesu wytwarzania zawarte mechanizmy zapewniające integralność projektu. Poszczególne modele mogą być formalnie ocenione w systemie są jakości zapewniającym wczesne wykrywanie błędów i braków. Częściowa automatyzacja procesu umoŝliwia łatwe wygenerowanie działającego kodu aplikacji. Kolejne przyrostowe wersje aplikacji poddawane ocenie klienta. Ocena ta słuŝy do weryfikacji i korekty wymagań w następnej iteracji procesu. Graficzny interfejs projektanta Język IML Baza danych projektowych Wymagania Zintegrowany proces wytwarzania Rozpoznanie naliza Projekt Implementacja plikacja System oceny jakości Ocena przez klienta Rys. 9. Schemat koncepcyjny metody IMC 2.Koncepcja metody IMC 19
20 2.1. Koncepcja j zyka modelowania i implementacji IML Geneza języka Język modelowania i implementacji IML zapewnia środki do prezentacji projektu w sposób graficzny i w sposób tekstowy. Za podstawę definicji notacji graficznej przyjęto zunifikowany język modelowania UML. Przy opracowywaniu notacji tekstowej przyjęto wiodące rozwiązania współczesnych języków obiektowych, takich jak Delphi, C#, C ++, Java i Visual Basic. Dla zapewnienia spójności notacji graficznej i tekstowej konieczne stało się wprowadzenie pewnych modyfikacji w języku IML w stosunku do UML. Za podstawowy środek graficznej prezentacji funkcjonalności przyjęto znane z UML diagramy aktywności, do których wprowadzono elementy stosowane na wykresach operacyjnych oraz elementy przepływu danych wzorowane na diagramach DFD (stosowanych np. w metodzie OMT) i na diagramach interakcji UML. Notację przepływu danych znacznie wzbogacono dla wyraŝenia szczegółów implementacyjnych. Do diagramów aktywności wprowadzono elementy sterowania strukturalnego wzorowane na diagramach Nassi-Shneidermana [60]. Połączono diagramy aktywności z diagramami interakcji i diagramami przejść stanów tak, stanowią Ŝe one bezpośrednie rozszerzenie diagramów aktywności. Diagramy aktywności UML i wykresy operacyjne Diagramy aktywności UML przypominają stosowane od lat 1960 wykresy operacyjne (ang. flowchart) [8]. W języku IML wprowadzono do definicji diagramu aktywności pewne modyfikacje w zakresie symboliki, z których najwaŝniejsze to: zastosowanie sześciokąta jako symbolu warunku, zastosowanie prostokąta zaokrąglonego jako symbolu aktywności i prostokąta zwykłego jako symbolu akcji, zastosowanie wektora przerywanego jako wektora przepływu sterowania i wektora ciągłego jako wektora przepływu danych. Sześciokąt jako symbol warunku jest bardziej pojemnym symbolem od rombu w tym sensie, Ŝe moŝna w nim zmieścić więcej tekstu. Jest to waŝne przy praktycznym wykorzystaniu tego symbolu w implementacji. Przy zastosowaniu rombu do rozgałęzienia sterowania (jak w UML), przy kaŝdym wektorze odchodzącym od tego symbolu umieszcza się wyraŝenie warunku. Jest to wygodne przy modelowaniu, tymczasem przy implementacji oblicza się jedno wyraŝenie dla warunku i w zaleŝności wartości tego wyraŝenia podejmuje się a) b) decyzje co do dalszego [x 0] T x>0 postępowania (p. rys. 10). [x<0] F Drugą modyfikacją jest wprowadzenie do diagramu Rys. 10. Oznaczenie rozgałęzienia sterowania na diagramie aktywności: a) w języku UML, b) w języku IML 20
21 b aktywności IML oprócz symbolu aktywności (prostokąta zaokrąglonego jak w diagramach UML) równieŝ symbolu akcji (zwykłego prostokąta jak na wykresach operacyjnych). ktywność jest działaniem długotrwałym, podejmowanym często cyklicznie. kcja z kolei jest działaniem krótkotrwałym, niepodzielnym w skali czasowej diagramu (p. rys. 11). a) b) Edit a + c Document Rys. 11. RóŜnice w stosowaniu prostokąta zaokrąglonego i prostego: a) symbol aktywności, b) symbol akcji PoniewaŜ diagram interakcji stanowi proste rozszerzenie diagramów aktywności, więc na tym ostatnim mogą występować dwa rodzaje przepływu: przepływ danych i przepływ sterowania. Dlatego wprowadzono dwa róŝne symbole przepływu: wektor przerywany dla przepływu sterowania i wektor ciągły dla przepływu danych. Diagram aktywności z wektorami przepływu sterowania przedstawiono na rys. 12. Dla porównania podano teŝ prezentację tego samego algorytmu w notacji UML i w notacji wykresów operacyjnych. a) b) STRT c) Preparation Preparation Preparation T F ok T Condition F [Condition] [not ok] [ok] [not Condition] T ok T Condition F F Do Something Do Something Else Do Something Do Something Else Do Something Do Something Else Finalization Finalization Finalization STRT Rys. 12. Diagram aktywności z wektorami przepływu sterowania: a) w notacji IML, b) w notacji UML, c) w notacji stosowanej na wykresach operacyjnych W definicji języka UML zabrakło diagramów przepływu danych (ang. Data Flow Diagrams DFD) opisujących funkcjonalność poprzez przetwarzanie danych między procesami [65]. Zostały one zastąpione przez diagramy interakcji, które jednak nie zawierają symboli procesów. W IML wprowadzono elementy przepływu danych do diagramów aktywności w ten sposób, Ŝe: Węzłami przepływu mogą być obiekty i operacje. Symbolem obiektu jest ikonid (zespół złoŝony z ikony i pola tekstowego identyfikującego obiekt), symbolem operacji jest prostokąt zaokrąglony (jeśli operacja jest realizowana w formie aktywności) lub prostokąt zwykły (jeśli operacja jest realizowana w formie akcji). Operacje mogą nie tylko przetwarzać dane, ale równieŝ być źródłem i miejscem Diagramy przepływu danych (DFD) są przeznaczenia danych. Węzły przepływu danych połączone wektorami przepływu danych w formie wektora ciągłego zakończonego strzałką prostą. Wektory mogą mieć trzy etykiety: główną źródłową, i docelową. Etykieta wektora przepływu danych jest 2.Koncepcja metody IMC 21
22 1: 5: 2: 3: polem tekstowym, które opisuje właściwości lub operacje obiektów źródłowych i docelowych wektora będące źródłem lub przeznaczeniem danych, albo parametry operacji źródłowych i docelowych wektora. Diagram umoŝliwia pokazanie wymiany danych między dwoma obiektami i modyfikację danych przez parametr modyfikowalny operacji. SłuŜy do tego dwukierunkowy wektor przepływu danych. Zamiast ikonidu obiektu moŝe być stosowane pole tekstowe zawierające wyraŝenie. Diagram umoŝliwia wybór róŝnych źródeł danych i róŝnych miejsc przeznaczenia danych przez umieszczenie symbolu warunku na drodze przepływu danych. Przykład pokazano na rys. 13. Dla porównania podano teŝ prezentację tego samego diagramu w notacji DFD. a) Magazyn Magazyn B stan stan a Porównanie stanów (a, b) b Raport niezgodności b) Magazyn Magazyn B Porównanie stanów Raport niezgodności Rys. 13. Diagram przepływu danych: a) w notacji IML, b) odpowiadający mu diagram DFD W UML przepływ danych wyraŝa się w formie diagramów interakcji. Interakcja reprezentuje wymianę komunikatów między obiektami współpracującymi ze sobą w ramach kolaboracji. Kolaborację wyraŝa się na diagramie kolaboracji w formie sieci powiązań między obiektami. Przekazywane wzdłuŝ tych powiązań komunikaty tworzą interakcję. W IML diagram interakcji jest toŝsamy z diagramem aktywności, na którym stosuje się wektory przepływu danych. Przekazywanie komunikatów uogólniono do przesyłania danych. Drogę przesyłania danych między dwoma obiektami wyraŝa symbol magistrali danych (strzałka blokowa). Przykład diagramu interakcji w notacji IML i UML pokazano rys. 14. Diagramy interakcji UML a) Klient Zamówienie Potwierdzenie Dział sprzedaŝy 4: Faktura Zapytanie o stan Stan towaru Dział magazynowy b) :Klient 1: Zamówienie 5: Potwierdzenie Dział spedycji :Dział sprzedaŝy 2: Zapytanie o stan 3: Stan towaru :Dział magazynowy 4: Faktura :Dział spedycji Rys. 14. Diagram aktywności z magistralami danych: a) w notacji IML, b) odpowiadający mu diagram interakcji w notacji UML 22
23 Do języka IML zaadaptowano strukturalne diagramy sterowania Nassi- Shneidermana (N-S). Diagramy te stosowano w latach 1970 dla rozwiązania problemu strukturalizacji algorytmu, czyli dopasowania notacji graficznej do strukturalnych języków programowania. by zapewnić spójność notacji diagramów N-S z stosowaną symboliką w diagramach aktywności wprowadzono pojęcie graficznej struktury sterowania konstruowanej z podstawowych symboli: bloku wykonawczego (symbolu akcji), bloku powtarzania (symbolu aktywności), symbolu warunku oraz symbolu ramki grupującej. Graficzną strukturę sterowania tworzy się poprzez nakładanie na jednego symbolu na krawędź górną albo dolną drugiego symbolu. Graficzne struktury sterowania wchodzą jako węzły do diagramów aktywności. Przykład graficznej struktury sterowania pokazano na rys. 15. Diagramy Nassi-Shneidermana (N-S) a) T Do Something Preparation ok Condition F Do Something Else b) Preparation T ok Do Something Condition Finalization Do Something Else F Finalization Diagramy przejść stanów Rys. 15. lgorytm z rys. 12. w notacji strukturalnej: a) graficznej struktury sterowania IML, b) diagramu N-S Graficzne struktury sterowania mogą być uŝyte do prezentacji złoŝonych stanów na diagramie przejść stanów. Na diagramach UML symbolem stanu jest zaokrąglony prostokąt oznaczający równieŝ aktywność. W języku IML rozdzielono symbol stanu i symbol aktywności przyjmując elipsę za symbol stanu. Prostokąt zaokrąglony symbolizuje na diagramach przejść stanów aktywność, czyli operację wykonywaną tak długo, jak długo obiekt znajduje się w określonym stanie. Z kolei prostokąt zwykły symbolizuje na diagramie przejść stanów akcję wejściową lub wyjściową stanu albo akcję przejściową (wykonywaną w czasie przejścia stanów). PoniewaŜ przejście stanów moŝe być uwaŝane za specyficzny rodzaj przepływu sterowania, więc jako symbol przejścia stanów uŝywa się wektora przepływu sterowania. Symbol warunku moŝe być równieŝ uŝyty w połączeniu z wektorem przejścia stanów do oznaczenia warunku strzegącego przejścia. Przykład diagramu stanów IML pokazano na rys. 16. Dla porównania pokazano diagram przejść stanów w notacji UML. a) Initialize State 1 DoSomething Finalize Event1 Event2 Condition Execction State 2 b) State1 entry: Initialize exit: Finalize do: DoSomething [Condition] Event1 /Execction Event2 Rys. 16. Diagram stanów: a) w notacji IML, b) w notacji UML State 2 2.Koncepcja metody IMC 23
UML w Visual Studio. Michał Ciećwierz
UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować
Projektowanie systemów informatycznych. wykład 6
Projektowanie systemów informatycznych wykład 6 Iteracyjno-przyrostowy proces projektowania systemów Metodyka (ang. methodology) tworzenia systemów informatycznych (TSI) stanowi spójny, logicznie uporządkowany
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming
Jarosław Kuchta Wymagania jakości w Agile Programming Wady klasycznych metod zapewnienia jakości Duży narzut na dokumentowanie Późne uzyskiwanie konkretnych rezultatów Trudność w odpowiednio wczesnym definiowaniu
Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego
Etapy Ŝycia systemu informacyjnego Wprowadzenie do metodologii modelowania systemów informacyjnych 1. Strategia 2. Analiza 3. Projektowanie 4. Implementowanie, testowanie i dokumentowanie 5. WdroŜenie
Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)
Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu
Etapy życia oprogramowania
Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 w prezentacji wykorzystano również materiały przygotowane przez Michała Kolano
Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania
Etapy życia oprogramowania Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 Określenie wymagań Testowanie Pielęgnacja Faza strategiczna
Wykład 1 Inżynieria Oprogramowania
Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI
Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)
Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation) Zarządzanie wymaganiami Ad hoc (najczęściej brak zarządzania nimi) Niejednoznaczna, nieprecyzyjna komunikacja Architektura
WPROWADZENIE DO UML-a
WPROWADZENIE DO UML-a Maciej Patan Instytut Sterowania i Systemów Informatycznych Dlaczego modelujemy... tworzenie metodologii rozwiązywania problemów, eksploracja różnorakich rozwiązań na drodze eksperymentalnej,
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia Materiały dla nauczyciela Projekt
Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2
Wyższa Szkoła Menedżerska w Legnicy Systemy informatyczne w przedsiębiorstwach Zarządzanie, ZIP, sem. 6 (JG) Modelowanie wymagań Wykład 2 Grzegorz Bazydło Cel wykładu Celem wykładu jest przekazanie wiedzy
Zakres wykładu. Podstawy InŜynierii Oprogramowania
Zakres wykładu Pojęcia podstawowe InŜynierii Oprogramowania Proces wytwarzania oprogramowania Artefakty procesu wytwarzania i ich modele Jakość oprogramowania Literatura: [1] Sacha K., InŜynieria oprogramowania,
Podstawy programowania III WYKŁAD 4
Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.
Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017
Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy
Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?
ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest
Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl
Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki
Technologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas
Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram
Feature Driven Development
Feature Driven Development lekka metodyka tworzenia oprogramowania Kasprzyk Andrzej IS II Wstęp Feature Driven Development (FDD) to metodyka tworzenia oprogramowania, która wspomaga zarządzanie fazami
Michał Adamczyk. Język UML
Michał Adamczyk Język UML UML I. Czym jest UML Po co UML II.Narzędzia obsługujące UML, edytory UML III.Rodzaje diagramów UML wraz z przykładami Zastosowanie diagramu Podstawowe elementy diagramu Przykładowy
Modelowanie i Programowanie Obiektowe
Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do
mgr in. Jarosław Kuchta
POLITECHNIK GD SK WYDZIŁ ELEKTRONIKI TELEKOMUNIKCJI I INFORMTYKI Katedra rchitektury Systemów Komputerowych Rozprawa doktorska Integracyjna metoda konstrukcji aplikacji obiektowych w rodowisku graficznym
Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34
Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych
Wytwarzanie oprogramowania
AiPA 6 Wytwarzanie oprogramowania Proces tworzenia oprogramowania jest procesem przekształcenia wymagań w oprogramowanie zgodnie z metodyką, która określa KTO CO robi JAK i KIEDY. - Wymagania Proces tworzenia
Modele bezpieczeństwa logicznego i ich implementacje w systemach informatycznych / Aneta Poniszewska-Marańda. Warszawa, 2013.
Modele bezpieczeństwa logicznego i ich implementacje w systemach informatycznych / Aneta Poniszewska-Marańda. Warszawa, 2013 Spis treści I. Bezpieczeństwo systemów informatycznych Rozdział 1. Wstęp 3 1.1.
Charakterystyka oprogramowania obiektowego
Charakterystyka oprogramowania obiektowego 1. Definicja systemu informatycznego 2. Model procesu wytwarzania oprogramowania - model cyklu Ŝycia oprogramowania 3. Wymagania 4. Problemy z podejściem nieobiektowym
Podstawy modelowania programów Kod przedmiotu
Podstawy modelowania programów - opis przedmiotu Informacje ogólne Nazwa przedmiotu Podstawy modelowania programów Kod przedmiotu 11.3-WI-INFP-PMP Wydział Kierunek Wydział Informatyki, Elektrotechniki
Inżynieria oprogramowania. Jan Magott
Inżynieria oprogramowania Jan Magott Literatura do języka UML G. Booch, J. Rumbaugh, I. Jacobson, UML przewodnik użytkownika, Seria Inżynieria oprogramowania, WNT, 2001, 2002. M. Fowler, UML w kropelce,
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.
Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,
Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji
Analiza i programowanie obiektowe 2016/2017 Wykład 6: Projektowanie obiektowe: diagramy interakcji Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Przejście
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram
Narzędzia CASE dla.net. Łukasz Popiel
Narzędzia CASE dla.net Autor: Łukasz Popiel 2 Czym jest CASE? - definicja CASE (ang. Computer-Aided Software/Systems Engineering) g) oprogramowanie używane do komputerowego wspomagania projektowania oprogramowania
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Faza analizy (modelowania) Faza projektowania
Faza analizy (modelowania) Faza projektowania Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie: co i przy jakich ograniczeniach system ma robić? Wynikiem tej analizy jest zbiór wymagań
Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym
Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 6 Modelowanie przypadków uŝycia i czynności. Materiały dla studentów
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 6 Modelowanie przypadków uŝycia
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa
Zasady organizacji projektów informatycznych
Zasady organizacji projektów informatycznych Systemy informatyczne w zarządzaniu dr hab. inż. Joanna Józefowska, prof. PP Plan Definicja projektu informatycznego Fazy realizacji projektów informatycznych
Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji
Diagramy związków encji (ERD) 1 Projektowanie bazy danych za pomocą narzędzi CASE Materiał pochodzi ze strony : http://jjakiela.prz.edu.pl/labs.htm Diagramu Związków Encji - CELE Zrozumienie struktury
Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania
Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Wprowadzenie O mnie dr inż. Marcin
Dr Katarzyna Grzesiak-Koped
Dr Katarzyna Grzesiak-Koped 2 Tworzenie oprogramowania Najlepsze praktyki IO Inżynieria wymagao Technologia obiektowa i język UML Techniki IO Metodyki zwinne Refaktoryzacja Mierzenie oprogramowania Jakośd
Opis metodyki i procesu produkcji oprogramowania
Opis metodyki i procesu produkcji oprogramowania Rational Unified Process Rational Unified Process (RUP) to iteracyjny proces wytwarzania oprogramowania opracowany przez firmę Rational Software, a obecnie
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Modeling and analysis of computer systems Kierunek: Informatyka Forma studiów: Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: obowiązkowy
STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe
STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe Technologie informacyjne prof. dr hab. Zdzisław Szyjewski 1. Rola i zadania systemu operacyjnego 2. Zarządzanie pamięcią komputera 3. Zarządzanie danymi
DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.
DSL w środowisku Eclipse Grzegorz Białek Architekt techniczny, Sygnity S.A. Agenda Wstęp do tematu (10 min) Sens tworzenia języków biznesowych UML jako język biznesu? Zintegrowane środowisko deweloperskie
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram
Spis treúci. 1. Wprowadzenie... 13
Księgarnia PWN: W. Dąbrowski, A. Stasiak, M. Wolski - Modelowanie systemów informatycznych w języku UML 2.1 Spis treúci 1. Wprowadzenie... 13 2. Modelowanie cele i metody... 15 2.1. Przegląd rozdziału...
Programowanie komputerów
Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych
Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2
Modelowanie i analiza systemów informatycznych 1. Warstwowa budowa systemów informatycznych 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wstęp do modelowania systemów
RUP. Rational Unified Process
RUP Rational Unified Process Agenda RUP wprowadzenie Struktura RUP Przepływy prac w RUP Fazy RUP RUP wprowadzenie RUP (Rational Unified Process) jest : Iteracyjną i przyrostową metodyka W pełni konfigurowalną
Zapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>
Załącznik nr 4.4 do Umowy nr 35-ILGW-253-.../20.. z dnia... MINISTERSTWO FINANSÓW DEPARTAMENT INFORMATYKI PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT WERSJA numer wersji
Procesowa specyfikacja systemów IT
Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram
Faza Określania Wymagań
Faza Określania Wymagań Celem tej fazy jest dokładne określenie wymagań klienta wobec tworzonego systemu. W tej fazie dokonywana jest zamiana celów klienta na konkretne wymagania zapewniające osiągnięcie
Podstawy programowania
Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II)
Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II) Jacek Cichosz www.zssk.pwr.wroc.pl Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska Narzędzia modelowania
MODELOWANIE STRUKTURY
MODELOWNIE STRUKTURY (Wykład na podstawie literatury: M.Śmiałek Zrozumieć UML 2.0, Helion 2005) Prezentacja struktury na dwóch poziomach: klas i obiektów (Na diagramach opisujących strukturę fragmentu
INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE
Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby
Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji
Inżynieria oprogramowania Jarosław Kuchta Modelowanie interakcji Podstawowe pojęcia Interakcja (interaction) Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja
Model przestrzenny Diagramu Obiegu Dokumentów. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska
Model przestrzenny Diagramu Obiegu Dokumentów Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Sposoby weryfikacji architektury oprogramowania: - badanie prototypu
STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe
STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe Technologie informacyjne Prof. dr hab. Zdzisław Szyjewski 1. Rola i zadania systemu operacyjnego 2. Zarządzanie pamięcią komputera 3. Zarządzanie danymi
Inżynieria oprogramowania (Software Engineering)
Inżynieria oprogramowania (Software Engineering) Wykład 2 Proces produkcji oprogramowania Proces produkcji oprogramowania (Software Process) Podstawowe założenia: Dobre procesy prowadzą do dobrego oprogramowania
Egzamin / zaliczenie na ocenę*
WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW33/01 KARTA PRZEDMIOTU Nazwa w języku polskim : INŻYNIERIA OPROGRAMOWANIA Nazwa w języku angielskim: SOFTWARE ENGINEERING Kierunek studiów (jeśli
Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne
Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Kierunek: Informatyka Modeling and analysis of computer systems Forma studiów: Stacjonarne Rodzaj przedmiotu: obowiązkowy w ramach specjalności:
Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego
PROJEKTOWANIE BAZ DANYCH PRZESTRZENNYCH Zgodne z ogólną metodologią projektowania baz danych Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego Proces budowy bazy danych wymaga
In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania
In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania prowadzący: dr inż. Krzysztof Bartecki www.k.bartecki.po.opole.pl Proces tworzenia oprogramowania jest zbiorem czynności i
Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu
Inżynieria wymagań Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia Część 5 Definicja systemu Opracowane w oparciu o materiały IBM (kurs REQ480: Mastering Requirements Management with Use
MODELE CYKLU śycia OPROGRAMOWANIA
MODELE CYKLU śycia OPROGRAMOWANIA Plan prezentacji: Definicja procesu i procesu programowego Model buduj i poprawiaj Model kaskadowy (czysty i z nawrotami) Modele ewolucyjne (spiralny i przyrostowy) Prototypowanie
Projektowanie logiki aplikacji
Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy
Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD
Projektowanie systemów informatycznych Roman Simiński roman.siminski@us.edu.pl siminskionline.pl Modelowanie danych Diagramy ERD Modelowanie danych dlaczego? Od biznesowego gadania do magazynu na biznesowe
SVN. 10 października 2011. Instalacja. Wchodzimy na stronę http://tortoisesvn.tigris.org/ i pobieramy aplikację. Rysunek 1: Instalacja - krok 1
SVN 10 października 2011 Instalacja Wchodzimy na stronę http://tortoisesvn.tigris.org/ i pobieramy aplikację uruchamiany ponownie komputer Rysunek 1: Instalacja - krok 1 Rysunek 2: Instalacja - krok 2
Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08
Spis treści Wstęp.............................................................. 7 Część I Podstawy analizy i modelowania systemów 1. Charakterystyka systemów informacyjnych....................... 13 1.1.
Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych
Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.
Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Diagramy interakcji Jarosław Kuchta Dokumentacja i Jakość Oprogramowania Podstawowe pojęcia Interakcja (interaction) Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania.
Język UML w modelowaniu systemów informatycznych
Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 3 Diagramy przypadków użycia Diagramy przypadków użycia (ang. use case)
Diagram przypadków użycia
Diagram przypadków użycia Diagram przypadków użycia opisuje system z punktu widzenia użytkownika, pokazuje, co robi system, a nie jak to robi. Diagram ten sam w sobie zazwyczaj nie daje nam zbyt wielu
Cykle życia systemu informatycznego
Cykle życia systemu informatycznego Cykl życia systemu informatycznego - obejmuję on okres od zgłoszenia przez użytkownika potrzeby istnienia systemu aż do wycofania go z eksploatacji. Składa się z etapów
Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014
Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80
Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)
Przepływy danych Oracle Designer: Modelowanie przepływów danych Cele: zobrazowanie funkcji zachodzących w organizacji, identyfikacja szczegółowych informacji, przetwarzanych przez funkcje, pokazanie wymiany
TECHNOLOGIE OBIEKTOWE. Wykład 3
TECHNOLOGIE OBIEKTOWE Wykład 3 2 Diagramy stanów 3 Diagram stanu opisuje zmiany stanu obiektu, podsystemu lub systemu pod wpływem działania operacji. Jest on szczególnie przydatny, gdy zachowanie obiektu
Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny
Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny mgr inż. Kajetan Kurus 15 kwietnia 2014 1 Dostępne techniki programowania Tworząc program należy
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Podniesienie poziomu wiedzy studentów z inżynierii oprogramowania w zakresie C.
KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA
KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA Przygotował: mgr inż. Radosław Adamus Wprowadzenie Podstawą każdego projektu, którego celem jest budowa oprogramowania są wymagania, czyli warunki,
Tworzenie przypadków testowych
Tworzenie przypadków testowych Prowadząca: Katarzyna Pietrzyk Agenda 1. Wprowadzenie 2. Wymagania 3. Przypadek testowy Definicja Schemat Cechy dobrego przypadku testowego 4. Techniki projektowania Czarnej
Projektowanie systemu sprzedaŝy ubezpieczeń dla T. U. Generali zgodnie z metodyką User-Centered Design
Case Study Projektowanie systemu sprzedaŝy ubezpieczeń dla T. U. Generali zgodnie z metodyką User-Centered Design Zadanie Naszym zadaniem było zaprojektowanie interfejsu aplikacji do sprzedaŝy ubezpieczeń
Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych
Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 UCD - User Centered Design 1) User Centered Design Projekt Skoncentrowany
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 1 Wprowadzenie do narzędzia CASE
System zarządzający grami programistycznymi Meridius
System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu
Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej
Analiza i projektowanie obiektowe 2017/2018 Wykład 3: Model wiedzy dziedzinowej Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Model wiedzy dziedzinowej
Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek
Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC Jarosław Świerczek Punkty funkcyjne Punkt funkcyjny to metryka złożoności oprogramowania wyznaczana w oparciu o określające to oprogramowanie
Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych
Szczególne problemy projektowania aplikacji Jarosław Kuchta Miejsce projektowania w cyklu wytwarzania aplikacji SWS Analiza systemowa Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna
Konfiguracja modelowania w procesie wytwarzania oprogramowania
Konfiguracja modelowania w procesie wytwarzania oprogramowania Anna Bobkowska Materiały pomocnicze do wykładu z Modelowania i Analizy Systemów na Wydziale ETI PG. Ich lektura nie zastępuje obecności na