OiZPI Część 1 zakres tematyczny inżynieria systemów terminologia w materiałach wykorzystano: K.Subieta: Budowa i integracja systemów informatycznych A.Kobieliński: Inżynieria Oprogramowania I.Sommerville: Software Engineering S.Wrycza, B.Marcinkowski: SySML Architektura i zastosowania IBM Rational: RUP™
Zarządzanie projektami IT kompetencje managera Metodyka Zarządzanie Technologia Osobowość Rozwój zawodowy Obszar: Technologia Obszar: Metodyka Obszar: Zarządzanie Obszar: Psychologia
Zarządzanie projektami IT obszar: technologia Języki programowania Środowiska IDE Bazy danych Systemy operacyjne Narzędzia CASE Modelowanie, notacje
Zarządzanie projektami IT obszar: metodyka Inżynieria systemów Cykl wytwórczy oprogramowania Poszczególne modele cyklów wytwórczych Implementacja metodyki
Zarządzanie projektami IT obszar: zarządzanie Dobór kadry Organizacja pracy zespołu Wyodrębnienie i podział zadań Kosztorysowanie Harmonogramowanie Raportowanie Taktyka i polityka informacyjna Zarządzanie zmianami
Zarządzanie projektami IT obszar: psychologia Elementy analizy transakcyjnej Stany ego Transakcje Typy osobowości Rodzaje postaw życiowych Rodzaje gier Zarządzanie relacją dostawca – odbiorca Zarządzanie relacją podwładny – pracownik Zarządzanie „czynnikiem ludzkim” w projektach IT
Zarządzanie projektami IT Składowe projektu 1. Pracownicy 2. Produkt 3. Proces 4. Przedsięwzięcie Utrzymanie kompetentnego i zmotywowanego zespołu Zdefiniowanie celów, sposobów ich osiągnięcia, identyfikacja problemów, poszukiwanie rozwiązań. Wybór, wdrożenie i dostosowanie modelu procesu wytwórczego. Planowanie, monitorowanie, zarządzanie jakością.
Zarys problematyki inżynierii systemów Objaśnienie podstawowych pojęć Omówienie trudności związanych z budowaniem systemów Krótka charakterystyka procesu tworzenia systemu
Przedmiot inżynierii systemów Przedmiotem inżynierii systemów są zagadnienia związane z projektowaniem, implementacją oraz instalacją systemów zawierających sprzęt, oprogramowanie oraz czynnik ludzki.
Co to jest SYSTEM ? Zbiór powiązanych ze sobą składników współpracujących ze sobą dla osiągnięcia określonego celu. Na system składają się następujące elementy: oprogramowanie, urządzenia elektroniczne, urządzenie elektryczne i mechaniczne, ludzie obsługujący i korzystający z usług systemu. przykłady systemów: Łopata :) Odtwarzacz Video, System alarmowy w budynku, Linia produkcyjna, Sieć telefonii kom.
Inżynier systemowy Osoba dokonująca przekształcenia wymagań interesariuszy w zharmonizowane rozwiązanie systemowe Ujmuje projekt całościowo – niezależnie od uwarunkowań sprzętowych, kadrowych czy poszczególnych perspektyw Organizacja zrzeszająca : INCOSE (International Council on System Engineering) przykłady systemów: Łopata :) Odtwarzacz Video, System alarmowy w budynku, Linia produkcyjna, Sieć telefonii kom.
Problemy związane z tworzeniem systemów Systemy tworzy się przeważnie z myślą o rozwiązaniu trudnych i złożonych zagadnień. Budowanie systemu wymaga koordynacji działań w obrębie różnych dziedzin wiedzy: wzajemny brak zaufania, wzajemny brak zrozumienia. System powinien zostać tak zaprojektowany, aby mógł funkcjonować przez lata w warunkach zmieniającego się otoczenia.
System i jego otoczenie System funkcjonuje w określonym otoczeniu (środowisku). Celem działania systemu może być zmiana istniejącego otoczenia. Środowisko systemu wpływa w znaczący sposób na jego działanie i funkcjonowanie. Dla systemu istotne są zarówno organizacyjne, jak i fizyczne cechy otoczenia.
Rola oprogramowania w systemie Udział warstwy oprogramowania w tworzonych systemach wzrasta. Programowalne urządzenia ogólnego przeznaczenia zastępują urządzenia wyspecjalizowane. Zagadnienia i problemy z zakresu inżynierii systemów i inżynierii oprogramowania są podobne. Uważa się (niestety), że oprogramowanie jest jednym ze słabszych elementów systemu, a jego tworzenie stwarza spore trudności. Opóźnienia w realizacji wielu projektów spowodowane były właśnie problemami z oprogramowaniem. Spośród osób uczestniczących w budowie systemu, osoby zaangażowane w sferę oprogramowania muszą posiąść największy zasób wiedzy o danym zagadnieniu; muszą przyswoić najwięcej informacji spoza swojej dziedziny.
Przykładowy system (opis) Obsługa procesu wytopu ołowiu rafinowanego Wydział rafinacji huty ołowiu otrzymuje ołów surowy (zanieczyszczony). Zadaniem procesu technologicznego jest oczyszczenie ołowiu i uzyskanie ołowiu o składzie chemicznym pożądanym przez odbiorcę. Rafinacja polega na roztopieniu ołowiu w specjalnym piecu i sekwencyjnym przeprowadzaniu określonych reakcji chemicznych. Najważniejsze cele automatyczne sterowanie pomiar i rejestracja parametrów procesu monitorowanie składu chemicznego ewidencja przebiegu procesu rozliczenie kosztów produkcji
Przykładowy system (komponenty) Obsługa procesu wytopu ołowiu rafinowanego Oprogramowanie EKT (karta) Kotły mistrz Opalanie pieców Chłodzenie pieców Czujniki/ Liczniki PC 1 Sieć komputerowa Sterowniki Przemysłowe EKT – elektroniczna karta wytopu Oprogramowanie Sterowników PC 2 operator Oprogramowanie EKT (analizy) Oprogramowanie F-K księgowy laborant PC 3 Spektrofotometr
Hierarchiczna struktura systemu Systemom nadaje się strukturę hierarchiczną: poszczególne zagadnienia rozwiązuje się w ramach podsystemów. Najczęściej realizacją podsystemów zajmują się odrębni wyspecjalizowani w danej dziedzinie podwykonawcy. System kontroli procesu rafinacji Podsystem sterowania Podsystem chłodzenia Podsystem analityczny Podsystem opalania Podsystem ewidencyjny Podsystem pomiarowy
SysML Język modelowania systemów Opracowany na bazie języka UML Opublikowany w 2006 r, aktualizacja do wersji 1.1. 2008 r Autorstwo: OMG (Object Management Group) INCOSE ISO Odniesienie do języka UML Elementy przeniesione Elementy zmodyfikowane Nowe elementy
SysML - diagramy Diagram wymagań systemowych Diagram przypadków użycia Rozszerzony diagram czynności Diagram sekwencji Diagram maszyny stanowej Diagram definiowania bloków Diagram bloków wewnętrznych Diagram parametryczny Diagram pakietów
Czynnik ludzki Użytkownikami systemu są ludzie. Istotnym elementem każdego systemu jest właściwie zaprojektowany interfejs. Interfejs w znacznym stopniu determinuje efektywne wykorzystanie oraz właściwą eksploatację systemu. To właśnie czynnik ludzki (organizacja pracy oraz sposób realizacji zadań na etapie tworzenia i eksploatacji systemu) najczęściej decyduje o powodzeniu całego przedsięwzięcia. Opis poszczególnych faz znajduje się w wykładzie Somervilla (prezentacja ch.2)
Czynnik ludzki (podstawowe problemy) System ingeruje w przyjęty sposób pracy (może się to spotkać z oporem ze strony pracowników, niektóre rozwiązania mogą nie uzyskać akceptacji) System może podnieść wymagania względem kwalifikacji pracowników (niechęć pracowników spowodowana obawami przed utratą pracy w przypadku niemożliwości podołania nowym wyzwaniom) System może obniżyć wymagania (bywa, że system wyręcza fachowców) System zmienia strukturę zarządzania w przedsiębiorstwie (menadżerowie niechętnie rezygnują z władzy) Opis poszczególnych faz znajduje się w wykładzie Somervilla (prezentacja ch.2)
Inżynieria systemów (podsumowanie) Tworzenie systemów jest zadaniem niezwykle trudnym – nie należy się spodziewać prostych rozwiązań złożonych problemów. Inżynierowie zajmujący się sferą oprogramowania z reguły mają lepsze spojrzenie na system i są autorami bardziej wartościowych rozwiązań. W procesie tworzenia systemu poszczególne dziedziny wiedzy muszą się wzajemnie uzupełniać. Osoby odpowiedzialne za różne fragmenty systemu (związane z różnymi dziedzinami) muszą współpracować i rozszerzać swoją wiedzę o zagadnienia dotyczące zagadnień, którymi zajmują się ich współpracownicy. Opis poszczególnych faz znajduje się w wykładzie Somervilla (prezentacja ch.2)
Model cyklu wytwórczego Modele tradycyjne Terminologia Model iteracyjny przyrostowy RUP™ Etapy i fazy cyklu
Model kaskadowy Określenie wymagań Cele i szczegółowe wymagania wobec systemu. Analiza Projektowanie Szczegółowy projekt systemu uwzględniający wcześniejsze wymagania. Implementacja Testowanie Modyfikacje producenta - usunięcie błędów, zmiany i rozszerzenia. Konserwacja
Model kaskadowy z iteracjami Określenie wymagań Analiza Projektowanie Implementacja Testowanie Konserwacja
Model przyrostowy Określenie wymagań Wybierany i realizowany jest podstawowy zestaw funkcji. Po realizacji pewnych funkcji następuje zrealizowanie i dostarczenie kolejnych funkcji. Ogólny projekt Proces realizowany iteracyjnie Wybór podzbioru funkcji Szczegółowy projekt, implementacja testy Taki model w nieco zmienionej postaci jest wykorzystywany przez Rational Unified Process Dostarczenie zrealizowanej części systemu
Analiza, projektowanie, modelowanie Analiza (systemów informatycznych) – odpowiada na pytanie: co robić ? Projektowanie (systemów informatycznych) – odpowiada na pytanie: jak robić ? Modelowanie – tworzenie modelu. Model – uproszczony opis rzeczywistości. Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską.
Modelowanie Modelowanie jest elementem zarówno analizy, jak i projektowania Często mówi się o modelu logicznym (analiza) i fizycznym (projektowanie) Model analityczny (logiczny) – abstrahuje od czynników technicznych związanych z realizacją takich jak: sposób reprezentacji danych, sposób zapisu danych (np. w bazie danych), sposób implementacji algorytmów, konfiguracja sprzętowa. Model projektowy (fizyczny) – uwzględnia czynniki techniczne Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską. modelowanie analiza projektowanie
Analiza Analiza – ta część procesu tworzenia systemu informatycznego, której nadrzędnym celem jest poznanie dziedziny problemowej i odwzorowanie zdobytej wiedzy w modelu (RUP ™ Glossary) Pojęcie bardziej precyzyjne – proces analizy systemu informatycznego. odwzorowanie Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską. Percepcja rzeczywistego świata Analityczny model rzeczywistości
Projektowanie odwzorowanie odwzorowanie Projektowanie – ta część procesu tworzenia systemu informatycznego, której nadrzędnym celem jest określenie jak system będzie zaimplementowany (RUP ™ Glossary) odwzorowanie odwzorowanie SYSTEM Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską. Model Logiczny Model Fizyczny
Proces analizy i faza analizy Faza analizy – termin oznaczający wyróżniony etap cyklu życiowego oprogramowania Występuje w większości modeli cyklu życiowego oprogramowania Cel fazy analizy: transformacja wymagań w model logiczny Faza analizy w tym rozumieniu jest jednym z elementów procesu analizy Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską.
Analiza (i projektowanie) Składowe procesu W nowoczesnych podejściach wchodzą: modelowanie procesów biznesowych (business modeling), formułowanie wymagań, właściwa analiza (łączona z projektowaniem). Właściwa analiza i projektowanie są ściśle ze sobą powiązane proces analizy Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską. Modelowanie procesów biznesowych Formułowanie wymagań Analiza (i projektowanie)
Modelowanie procesów biznesowych Obecnie wyróżnia się dodatkowy etap analizy, poprzedzający budowę modelu logicznego – analizę procesów biznesowych Proces biznesowy (gospodarczy) – grupa logicznie powiązanych ze sobą czynności i zasobów zapewniająca realizację celów określonej organizacji (jednostki organizacyjnej) Wynik analizy procesów biznesowych – model procesów biznesowych Stosowana notacja – diagramy przypadków użycia Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską.
Formułowanie wymagań Celem fazy określenia wymagań jest ustalenie zakresu funkcjonalnego systemu Wymaganie – opisuje warunek, jaki powinien spełnić tworzony system lub możliwość, którą system powinien posiadać Wynik formułowania wymagań – specyfikacja wymagań Stosowana notacja – strukturalna notacja tekstowa Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską.