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

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

INŻYNIERIA OPROGRAMOWANIA. laboratorium

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

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

Inżynieria oprogramowania. Jan Magott

Wykład 1 Inżynieria Oprogramowania

UML w Visual Studio. Michał Ciećwierz

Michał Adamczyk. Język UML

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

Modelowanie i analiza systemów informatycznych

WPROWADZENIE DO UML-a

Narzędzia CASE dla.net. Łukasz Popiel

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

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

Informatyczne fundamenty

Projektowanie systemów informatycznych. wykład 6

Wprowadzenie do UML, przykład użycia kolizja

Diagramy klas. WYKŁAD Piotr Ciskowski

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

Dr Katarzyna Grzesiak-Koped

Analiza i projektowanie obiektowe w UML Kod przedmiotu

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

Inżynieria Oprogramowania. Robert Szmurło

Techniki modelowania programów Kod przedmiotu

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

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

Podstawy programowania III WYKŁAD 4

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

Podstawy modelowania w języku UML

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

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

Diagramy UML, przykład problemu kolizji

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

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

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

Unified Modeling Language

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

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

Modelowanie i Programowanie Obiektowe

Język UML w modelowaniu systemów informatycznych

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

Opis metodyki i procesu produkcji oprogramowania

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

Inżynieria oprogramowania

Projekt systemu informatycznego

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

KARTA MODUŁU KSZTAŁCENIA

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

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

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

Języki Programowania Obiektowego

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

Modelowanie i analiza systemów informatycznych

Faza analizy (modelowania) Faza projektowania

Podstawy inżynierii oprogramowania

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

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

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

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

Inżynieria oprogramowania I

Analityk i współczesna analiza

Projektowanie Systemów Informatycznych 2011/2012

Podstawy modelowania programów Kod przedmiotu

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

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

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

Technologia programowania

Inżynieria Oprogramowania w Praktyce

Analiza biznesowa a metody agile owe

Projektowanie interakcji. Jarosław Kuchta

Modelowanie obiektowe - Ćw. 3.

Język UML w modelowaniu systemów informatycznych

Egzamin / zaliczenie na ocenę*

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

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

Programowanie obiektowe Object-Oriented Programming. Automatyka i Robotyka II stopień ogólnoakademicki

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

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Podstawy Programowania Obiektowego

MiASI. Modelowanie systemów biznesowych. Piotr Fulmański. 7 stycznia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Zakres wykładu. Podstawy InŜynierii Oprogramowania

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

Identyfikacja i modelowanie struktur i procesów biologicznych

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

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

WOJSKOWA AKADEMIA TECHNICZNA

Inżynieria oprogramowania - opis przedmiotu

Opis. Liczba godzin zajęć dydaktycznych z

PRZEWODNIK PO PRZEDMIOCIE. Projektowanie procesów. Logistyka (inżynierska) niestacjonarne. I stopnia. dr Aleksandra Grabińska.

Zasady organizacji projektów informatycznych

PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH 2010/2011 MGR DOROTA MIROWSKA

PRZEWODNIK PO PRZEDMIOCIE

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

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

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

Transkrypt:

Inżynieria oprogramowania Wprowadzenie WYKŁAD Piotr Ciskowski

Etapy budowy systemu informatycznego

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 o wizjonerzy - most - realizatorzy o 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

UML = diagramy źródło rysunku: Wrycza

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 - zachowanie Logiczna - statyka systemu Komponentów - oprogramowanie Rozlokowania - sprzęt

Perspektywy: źródło rysunku: Wrycza

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