Inżynieria oprogramowania Wprowadzenie. WYKŁAD Piotr Ciskowski



Podobne dokumenty
Inżynieria oprogramowania Wprowadzenie. WYKŁAD Piotr Ciskowski

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

UML w Visual Studio. Michał Ciećwierz

Wprowadzenie do UML Rodzaje diagramów Przeglad oprogramowania Zadania Rozwiazania zadań Bibliografia. Warsaw Dziobax

Michał Adamczyk. Język UML

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

INŻYNIERIA OPROGRAMOWANIA. laboratorium

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

Inżynieria oprogramowania. Jan Magott

Narzędzia CASE dla.net. Łukasz Popiel

Modelowanie i analiza systemów informatycznych

Wykład 1 Inżynieria Oprogramowania

Podstawy modelowania w języku UML

Dr Katarzyna Grzesiak-Koped

Identyfikacja i modelowanie struktur i procesów biologicznych

WPROWADZENIE DO UML-a

Język UML w modelowaniu systemów informatycznych

UML cz. I. UML cz. I 1/1

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

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

Diagramy klas. WYKŁAD Piotr Ciskowski

Projektowanie systemów informatycznych. wykład 6

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

Analiza biznesowa a metody agile owe

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Opis metodyki i procesu produkcji oprogramowania

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

Identyfikacja i modelowanie struktur i procesów biologicznych

Informatyczne fundamenty

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Analiza i projektowanie obiektowe w UML Kod przedmiotu

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

Inżynieria Oprogramowania. Robert Szmurło

Techniki modelowania programów Kod przedmiotu

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Wprowadzenie do UML, przykład użycia kolizja

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Podstawy programowania III WYKŁAD 4

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla nauczyciela

Projekt systemu informatycznego

Podstawy języka UML2 w realnych projektach

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

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

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

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Unified Modeling Language

Diagramy UML, przykład problemu kolizji

KARTA MODUŁU KSZTAŁCENIA

Projektowanie Systemów Informatycznych 2011/2012

Inżynieria oprogramowania

Modelowanie i Programowanie Obiektowe

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Projektowanie systemów multimedialnych

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

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Case study - bankomat. Piotr Ciskowski

STANDARD UML 2.3 W ZARZĄDZANIU WYTWARZANIEM OPROGRAMOWANIA

Projektowanie interakcji. Jarosław Kuchta

Języki Programowania Obiektowego

Inżynieria oprogramowania

Podstawy języka UML2 w realnych projektach

Analityk i współczesna analiza

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

Technologia programowania

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

Podstawy inżynierii oprogramowania

Modelowanie i analiza systemów informatycznych

Faza analizy (modelowania) Faza projektowania

5.WYBRANE METODY I NARZĘDZIA MODELOWANIA SYSTEMÓW INFORMATYCZNYCH Z UŻYCIEM JĘZYKA UML

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla studenta

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Modelowanie obiektowe - Ćw. 3.

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

MODELOWANIE OBIEKTOWE

Podstawy modelowania programów Kod przedmiotu

Projektowanie Modeli Usług dla rozwiązań typu SOA

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

WOJSKOWA AKADEMIA TECHNICZNA

Inżynieria Oprogramowania w Praktyce

Język UML w modelowaniu systemów informatycznych

Inżynieria oprogramowania I

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08

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

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Tytuł pracy: PRACA MAGISTERSKA AUTOR: KRAKÓW, Marzec 2011 Promotor pracy :

WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań

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

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

Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

Informatyzacja przedsiębiorstw WYKŁAD

Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

Transkrypt:

Inżynieria oprogramowania Wprowadzenie WYKŁAD Piotr Ciskowski

Creating a software system what the customer ordered what the analyst understood what the project described what the programmers developed after debugging and deploying what the customer payed for what the customer really needed

Inżynieria oprogramowania o tworzenie dobrych programów / systemów o Wikipedia: wszelkie aspekty produkcji oprogramowania analiza i określenie wymagań projektowanie i wdrożenie ewolucja gotowego oprogramowania informatyka = teoria inżynieria oprogramowania = praktyka informatyk człowiek znający się na komputerach

Inżynieria oprogramowania o tworzenie dobrych programów / systemów o Wikipedia o IEEE: zastosowanie - systematycznego, - zdyscyplinowanego, - ilościowego podejścia do - rozwoju, - eksploatacji - i utrzymania oprogramowania

Inżynieria oprogramowania o wymagania - projektowanie o walidacja - ewolucja o procesy zarządzanie o narzędzia interfejsy o metody formalne o systemy specjalne o komponenty o niezawodność M O D E L O W A N I E

Po co modelować? o by odzwierciedlać / upraszczać rzeczywistość o by zapanować nad złożonością o by sprostać potrzebom uchwycić wymagania o by ułatwić komunikację klient twórca twórcy o by skrócić czas: pomysł realizacja o by podnieść jakość oprogramowania niezawodność adaptacyjność

Po co modelować? o by ułatwić życie: zamawiającym i użytkownikom analitykom architektom programistom kierownikom projektów

Modelowanie o konstruowanie modeli o uproszczone kopie samochody, samoloty itp. urządzenia techniczne budynki bitwy bonzai o różne założenia: modele redukcyjne wygląd modele zdalnie sterowane zachowanie modele torów - wyścig

Modelowanie oprogramowania o różne dziedziny o różne wymagania o program = model odwzorowanie fragmentu rzeczywistości

Modelowanie oprogramowania o złożoność o zmienność rzeczywistość wymagania otoczenie (przedsiębiorstw) o abstrakcja wiele pojęć jedno pojęcie ogólne = wiele pojęć szczegółowych moduły modele - mapy

Modelowanie oprogramowania o złożoność o zmienność rzeczywistość, wymagania, otoczenie (przedsiębiorstw) o abstrakcja o modele struktura - zachowanie różne poziomy abstrakcji różni odbiorcy dostosowanie oprogramowania do środowiska, w jakim działa model środowiska tłumaczenie model systemu oprogramowania

Kryzys oprogramowania o niepowodzenia systemów informatycznych: rakieta Arianne 5 Taurus automatyczny system zawierania transakcji giełda w Londynie system obsługi bagaży na lotnisku w Denver system dysponowania karetkami pogotowia Londyn oprogramowanie urządzenia do radioterapii Therac-25

Dobry system o Powodzenie: mieści się w zaplanowanym budżecie mieści się w zaplanowanych ramach czasowych spełnia rzeczywiste potrzeby zamawiającego - złożone i zmieniające się otoczenie o Niepowodzenie: zaniechanie projektu, opóźnienie, przekroczenie budżetu produkt złej jakości, o uboższej funkcjonalności produkt nie odpowiadający na rzeczywiste potrzeby

Dobry system o Symptomy niepowodzenia: niezadowoleni zamawiający Nie o to nam chodziło Żaden pracownik tego nie zrozumie niezadowoleni wykonawcy Czego właściwie chcieliście? Przecież tyle nad tym siedzieliśmy kłótnie o zakres systemu Chcecie dwa razy więcej niż było w umowie Zrobiliście nie to, co było w umowie chaotyczna obsługa zmian wymagań Koledzy, dodajcie tu jeszcze taka małą tabeleczkę, przecież to prawie żadna zmiana

Dobry system o Przyczyny niepowodzenia: niedokładne specyfikowanie wymagań zła komunikacja brak precyzyjnej architektury brak opanowania złożoności systemu późne wykrywanie niespójności subiektywne oceny części systemu brak kontroli zmian późna weryfikacja zadowolenia klienta

Dobry system o Lekarstwo = metodyka: notacja - język modelowania U M L - poprawia komunikację w zespole - zapobiega niespójnościom - pomaga jednoznacznie zdefiniować architekturę - pomaga zapanować nad złożonością techniki proces - sposób postępowania w celu stworzenia modelu - poprawia jakość modeli - kolejność wykonywania działań - zapewnia kontrolę nad wymaganiami, zmianami, jakością - wymagania projekt wykonanie

projektowanie systemów o od lat 50 o podejście: strukturalne lata 80 - wiele koncepcji wojny metodologiczne - bałagan obiektowe - lata 90 - różnorodność i powszechność aplikacji - systemy czasu rzeczywistego i systemy wbudowane - multimedia w aplikacjach - dźwięk, głos, grafika, film

modelowanie obiektowe o obiekt object o klasa class o komunikat message - każdy byt - pojęcie lub rzecz mający znaczenie w kontekście rozwiązania problemu w danej dziedzinie - uogólnienie zbioru obiektów które mają te same atrybuty, operacje, związki, znaczenie - wymiana informacji między obiektami - zlecenie wykonania jakiejś operacji o hermetyzacja - atrybuty + metody encapsulation - różnicowanie / ograniczanie dostępu do obiektu - ujawnianie otoczeniu tylko niezbędnych informacji o polimorfizm - nadawanie tej samej nazwy różnym atrybutom i operacjom polymorphism - wykonywanie różnych akcji przez operacje o tych samych nazwach o dziedziczenie - hierarchiczna zależność klas inheritance

modelowanie obiektowe o 1989 1994 - ponad 50 metodologii zgoda o James Rumbaugh - OMT Object Modeling Technique 1991 - notacja diagramów UML - analiza i projektowanie o Grady Booch - OOAD Object Oriented Analysis and Design 1991 - analiza i projektowanie o Ivar Jacobson - OOSE - Object Oriented Software Engineering 1992 - modelowanie biznesowe - przypadki użycia o 1994 1995 - Rational Software - trzej muszkieterowie - trzej amigos

UML = diagramy o graficzna reprezentacja tworzonego systemu o logicznie powiązane ze sobą diagramy o statyka dynamika systemu o współpraca różnych grup zawodowych przy tworzeniu systemu właściciele, zamawiający, menedżerowie, użytkownicy analitycy, projektanci programiści, testerzy wizjonerzy - most - realizatorzy wizja system

UML = diagramy o graficzna reprezentacja tworzonego systemu o logicznie powiązane ze sobą diagramy o statyka dynamika systemu abstrakcyjne struktury, dynamiki, interakcji, wdrożeniowe konkretne - przypadków użycia klas czynności sekwencji stanów

our focus: UML diagram Structure diagram Behavior diagram Class diagram Component diagram Use case diagram Interaction diagram Object diagram Deployment diagram Activity diagram Sequence diagram Composite structure diagram Package diagram State machine diagram Communication diagram Profile diagram Interaction overview diagram Timing diagram

UML = diagramy spojrzenie na system o z różnych perspektyw o w różnych kontekstach o na różnym poziomie szczegółowości o na różnych etapach wymagania projekt wykonanie

Perspektywy: Przypadków użycia - zakres i funkcjonalność systemu - kluczowa, dominująca Dynamiczna Logiczna Komponentów Rozlokowania - zachowanie - budowa systemu - oprogramowanie - sprzęt

Perspectives - views: architecture class diagram object diagram composite structure diagram package diagram Logical view Use case view Dynamic View behavior sequence diagram activity diagram state machine diagram interaction overview diagram communication diagram timing diagram package diagram system scope & functionality use case diagram package diagram Deployment View Implementation View software component diagram package diagram hardware deployment diagram package diagram

Diagramy przykład - pralka: UML 1.4 o diagram klas o diagram obiektów o diagram przypadków użycia o diagram stanów

Diagramy przykład - pralka: UML 1.4 o diagram klas o diagram obiektów o diagram przypadków użycia o diagram stanów o diagram sekwencji

Diagramy przykład - pralka: UML 1.4 o diagram klas o diagram obiektów o diagram przypadków użycia o diagram stanów o diagram sekwencji o diagram czynności

Diagramy przykład - pralka: UML 1.4 o diagram klas o diagram obiektów o diagram przypadków użycia o diagram stanów o diagram sekwencji o diagram czynności o diagram kooperacji

UML Unified Modeling Language o jest językiem modelowania o nie jest językiem programowania

Urządzenia / systemy / programy / procesy są dla ludzi o ekspres do kawy o termostat o system obsługi uczelni o program do obsługi plików o program do gry na giełdzie o baza danych o bank internetowy o zakładanie firmy o prowadzenie firmy o zapisy do szkoły o wypełnianie PITa o produkcja o sklep internetowy o fora, blogi, portale o sprzęt AGD RTV o bankomat o robot

Plan wykładu o diagramy przypadków użycia klas czynności sekwencji pozostałe o modelowanie procesów biznesowych wymagań użytkownika klas dynamiki o metodyki

Literatura - książki o Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych o Stanisław Wrycza i in. UML 2.1. Ćwiczenia o Stanisław Wrycza, Bartosz Marcinkowski, Jacek Maślankowski UML 2.x. Ćwiczenia zaawansowane o Michał Śmiałek. Zrozumieć UML 2.0. Metody modelowania obiektowego o Joseph Schmuller. UML dla każdego o Martin Fowler, Kendal Scott. UML w kopelce o Grady Booch, James Rumbaugh, Ivar Jacobson. UML. Przewodnik użytkownika o P. Stevens. UML. Inżynieria oprogramowania o P. Graessle i in. UML 2.0 w akcji. Przewodnik oparty na projektach o W. Dąbrowski i in. Modelowanie systemów informatycznych w języku UML 2.1 w praktyce o R. Maksimchuk. UML dla zwykłych śmiertelników

Literatura strony, fora, blogi itp. o www.uml.com.pl o wazniak.mimuw.edu.pl/index.php?title=inżynieria_oprogramowania o msdn.microsoft.com o Visual Studio Application Lifecycle Management o Modeling the Application o channel9.msdn.com/blogs/clinted o http://www.sparxsystems.com/uml-tutorial.html o http://www.visual-paradigm.com/training/ o www.goldenline.pl/forum/inzynieria-oprogramowania

Narzędzia o kartka papieru o MS Visio o diagram modelu UML o UML 2.2 Stencils and Template o MS Visual Studio o Ultimate! o IBM Rational o Software Architect o Sparx Enterprise Architect o trial desktop professional corporate - suites o Visual Paradigm - UML o community modeler standard professional - enterprise o Business Project Visual Architect o Agilian