Inżynieria Oprogramowania. Inżynieria Oprogramowania 1/36



Podobne dokumenty
Inżynieria oprogramowania

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

Etapy życia oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Inżynieria oprogramowania I

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

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

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

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

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

Egzamin / zaliczenie na ocenę*

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

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

MODELE CYKLU śycia OPROGRAMOWANIA

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

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Narzędzia CASE dla.net. Łukasz Popiel

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

INŻYNIERIA OPROGRAMOWANIA

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Przedsięwzięcia Informatyczne w Zarządzaniu

Inżynieria oprogramowania - opis przedmiotu

Cykle życia systemu informatycznego

tel. (+48 81) /22 fax (+48 81) Wykład Ćwiczenia Laboratorium Projekt

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

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Programowanie zespołowe

Wykład 1 Inżynieria Oprogramowania

Inżynieria oprogramowania (Software Engineering)

KARTA MODUŁU KSZTAŁCENIA

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

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

INFORMATYKA. PLAN STUDIÓW STACJONARNYCH INŻYNIERSKICH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2018/19.

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Zakres wykładu. Podstawy InŜynierii Oprogramowania

INFORMATYKA. PLAN STUDIÓW STACJONARNYCH INŻYNIERSKICH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2019/2020.

INFORMATYKA. PLAN STUDIÓW NIESTACJONARNYCH INŻYNIERSKICH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2018/19.

ZASADY TWORZENIA OPROGRAMOWANIA

Podsumowanie wyników ankiety

Inżynieria oprogramowania

Inżynieria Oprogramowania w Praktyce

Gry społecznościowe. wykład 0. Joanna Kołodziejczyk. 24 lutego Joanna Kołodziejczyk Gry społecznościowe 24 lutego / 11

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

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Projekt zespołowy D1_10

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

Projektowanie systemów informatycznych. wykład 6

KARTA PRZEDMIOTU. Projekt zespołowy D1_10

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

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

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

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa, Inżynieria oprogramowania, Technologie internetowe

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria Programowania Zarządzanie projektem

DLA SEKTORA INFORMATYCZNEGO W POLSCE

KIERUNKOWE EFEKTY KSZTAŁCENIA

Zaawansowane programowanie w języku C++

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

Metodyka projektowania komputerowych systemów sterowania

Inżynieria Programowania - Wstęp

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

Modelowanie i analiza systemów informatycznych

INŻYNIERIA OPROGRAMOWANIA

INKS105 ( INK9117 ) Podstawy inżynierii oprogramowania

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Podstawy modelowania programów Kod przedmiotu

Inżynieria oprogramowania. Jan Magott

Inżynieria Programowania Inżynieria wymagań. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki. Arkadiusz Chrobot

GUI - projektowanie interfejsów

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Techniki modelowania programów Kod przedmiotu

Informatyczne fundamenty

Inżynieria Programowania Zarządzanie projektem. Plan wykładu. Motto. Motto 2. Notatki. Notatki. Notatki. Notatki.

Wykład I. Wprowadzenie do baz danych

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Wykład Ćwiczenia Laboratorium Projekt Seminarium

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

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

INŻYNIERIA OPROGRAMOWANIA

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Zespołowy projekt informatyczny. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

5 Moduył do wyboru II *[zobacz opis poniżej] 4 Projektowanie i konfiguracja sieci komputerowych Z

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Pytania z przedmiotów kierunkowych

Maciej Oleksy Zenon Matuszyk

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

Projekt systemu informatycznego

Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Efekty kształcenia dla kierunku studiów informatyka i agroinżynieria i ich odniesienie do efektów obszarowych

Transkrypt:

Inżynieria Oprogramowania Inżynieria Oprogramowania 1/36

Inżynieria Oprogramowania 2/36 Literatura 1. Gamma E. i in.: Wzorce projektowe, WNT, Warszawa 2005 2. Jaszkiewicz A.: Inżynieria oprogramowania, Helion, Gliwice 1997 3. Miles R., Hamilton K.: UML 2.0. Wprowadzenie, Helion, Gliwice 2007 4. Pressman R. S.: Praktyczne podejście do inżynierii oprogramowania, WNT, Warszawa 2004 5. Sommerville I.: Inżynieria oprogramowania, WNT, Warszawa 2003 6. Wrycza S., Marcinkowski B., Wyrzykowski K.: Język UML 2.0 w modelowaniu systemów informatycznych, Helion, Gliwice 2006

Inżynieria Oprogramowania 3/36 Plan wykładów Zagadnienia omawiane na wykładzie: Wprowadzenie do inżynierii oprogramowania. Projektowanie oprogramowania z wykorzystaniem UML. Zaawansowana inżynieria oprogramowania. Testowanie oprogramowania. Metodyka powstawania oprogramowania. Zarządzanie przedsięwzięciem informatycznym.

Inżynieria Oprogramowania 4/36 Informacje ogólne Kontakt: mail: robert.dyja@icis.pcz.pl strona: http://icis.pcz.pl/ dyja konsultacje: wtorek 10:00 12:00, piątek 11:00 12:00 Obecność na wykładach nie jest wymagana Przedmiot kończy się egzaminem pisemnym w formie testu

Inżynieria Oprogramowania 5/36 Rola inżynierii oprogramowania Gospodarki wszystkich krajów rozwiniętych polegają na oprogramowaniu. Coraz więcej systemów wymaga niezawodnego oprogramowania. Inżynieria oprogramowania zajmuje się teorią, metodami i narzędziami związanymi z wytwarzaniem oprogramowania. Obecnie wytwarzanie oprogramowania jest poważną gałęzią gospodarki narodowej rozwiniętego kraju.

Inżynieria Oprogramowania 6/36 Koszty oprogramowania Koszty oprogramowania są często dominującym składnikiem kosztów całego systemu. Zdarza się, że koszt oprogramowania znacznie przekracza samą wartość sprzętu komputerowego np. komputera osobistego. Koszt utrzymania i konserwacji oprogramowania jest większy niż koszt jego wytworzenia. Wieloletnia konserwacja oprogramowania może kosztować wielokrotnie więcej niż jego zakup. Inżynieria oprogramowania zajmuje się efektywnymi metodami wytwarzania i implementowania oprogramowania.

Inżynieria Oprogramowania 7/36 Definicja oprogramowania Oprogramowanie to programy komputerowe, cała związana z nimi dokumentacja i dane konfiguracyjne. Rodzaje produktów oprogramowania: powszechne sprzedawane na wolnym rynku, dostosowane wykonywane na zamówienie.

Inżynieria Oprogramowania 8/36 Charakterystyczne cechy oprogramowania Oprogramowanie przetwarza informacje. Rola oprogramowania znacznie wzrosła w ciągu ostatnich 50 lat. Oprogramowanie jest wytwarzane, ale nie jest fizycznie konstruowane tak jak sprzęt. Nie występuje etap fizycznego konstruowania oprogramowania. Większość kosztów związanych z tworzeniem oprogramowania ponosi się na etapie projektowania.

Inżynieria Oprogramowania 9/36 Charakterystyczne cechy oprogramowania cd. Oprogramowanie się nie zużywa Zwiększenie awaryjności spowodowane zmianami Błędy młodości Zużycie Zużycie Zużycie Zmiana Krzywa rzeczywista Krzywa idealna Czas Czas Rysunek: Krzywa awaryjności sprzętu Rysunek: Krzywa awaryjności oprogramowania

Inżynieria Oprogramowania 10/36 Charakterystyczne cechy oprogramowania cd. Chociaż firmy komputerowe coraz chętniej korzystają z komponentów dostarczonych przez innych producentów, to jednak większość swoich produktów tworzą od podstaw. Każda dziedzina inżynierii posiada standardowe rozwiązania. Już w latach 60 tych XX wieku powstały pierwsze biblioteki podprogramów.

Inżynieria Oprogramowania 11/36 Dziedziny zastosowań oprogramowania Oprogramowanie systemowe Systemy czasu rzeczywistego Systemy informacyjne dla przedsiębiorstw Oprogramowanie inżynierskie i naukowe Systemy wbudowane Oprogramowanie komputerów osobistych Oprogramowanie internetowe

Inżynieria Oprogramowania 12/36 Właściwości dobrego oprogramowania Konkretny zbiór właściwości zależy od zastosowania, niemniej można podać ogólny zbiór właściwości. Zdolność do pielęgnacji Zdolność do ewolucji zgodnie z potrzebami klientów Niezawodność Nie powinno powodować fizycznych lub ekonomicznych katastrof w przypadku awarii Efektywność Nie powinno marnotrawić zasobów systemu takich jak pamięć czy czas procesora Użyteczność Powinno być użyteczne, bez zbędnego wysiłku ze strony użytkownika (np. interfejsy)

Inżynieria Oprogramowania 13/36 Kryzys oprogramowania Porażki zyskują znacznie większą uwagę niż sukcesy. Kryzys oprogramowania przewidziany już 50 lat temu dotąd nie nastąpił. Kłopoty związane z tworzeniem oprogramowania nie dotyczą tylko problemów z nie funkcjonującymi jak należy programami, ale przede wszystkim z ich prawidłowym tworzeniem i dalszym utrzymywaniem.

Inżynieria Oprogramowania 14/36 Mity związane z tworzeniem oprogramowania Mity kierownictwa Mamy już pełną książkę standardów i procedur postępowania. Pracownicy mają najlepsze narzędzia pracy, bo pracują na najnowszych komputerach. Jeśli prace się opóźniają zawsze można przydzielić do zadania więcej programistów. Zlecenie napisania programu innej firmie zwalnia z myślenia o nim. Ogólne określenie wystarczy do rozpoczęcia prac. Szczegóły można dopracować później. Wymagania wobec systemu wciąż się zmieniają, ale to nie problem, bo oprogramowanie jest elastyczne i łatwo je zmienić.

Inżynieria Oprogramowania 15/36 Mity związane z tworzeniem oprogramowania Mity informatyków Po napisaniu i uruchomieniu programu praca jest wykonana. Jedynym wynikiem pracy nad oprogramowaniem jest działający program komputerowy. Inżynieria oprogramowania zmusi programistów do tworzenia przepastnych, zbędnych dokumentów i nieuchronnie spowolni pracę.

Inżynieria Oprogramowania 16/36 Definicja inżynierii oprogramowania Jest to dziedzina inżynierii, która obejmuje wszystkie aspekty tworzenia oprogramowania od fazy początkowej do jego pielęgnacji, Inżynierowie oprogramowania pracują w sposób systematyczny i uporządkowany, ponieważ jest to najskuteczniejszy sposób tworzenia oprogramowania wysokiej jakości.

Inżynieria Oprogramowania 17/36 Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką? Zasadniczo informatyka obejmuje teorie i podstawowe zasady działania komputerów. Inżynieria oprogramowania obejmuje praktyczne problemy związane z tworzeniem oprogramowania. Z jednej strony inżynier programowania powinien znać teorie informatyczne, z drugiej jednak nie zawsze przystają one do rzeczywistości.

Inżynieria Oprogramowania 18/36 Proces tworzenia oprogramowania Jest to zbiór czynności i związanych z nimi wyników, które zmierzają do opracowania produktu programowego. Zasadnicze czynności wspólne dla wszystkich procesów: Specyfikacja oprogramowania, Tworzenie oprogramowania, Zatwierdzanie oprogramowania, Ewolucja oprogramowania.

Inżynieria Oprogramowania 19/36 Metody inżynierii oprogramowania Metody inżynierii oprogramowania to uporządkowane podejście do tworzenia oprogramowania, które obejmuje: Opisy modeli systemu Np. Modele obiektów, modele przepływu itp. Reguły Ograniczenia, którym podlegają modele systemu Zalecenia Heurystyki, które określają dobre zwyczaje projektantów Poradnictwo Opisy czynności, które należy wykonać

Inżynieria Oprogramowania 20/36 Modele procesu tworzenia oprogramowania Model procesu tworzenia oprogramowania Jest to uproszczona prezentacja procesu tworzenia oprogramowania. Modele ze swej natury są uproszczeniami. Przykłady ogólnych modeli (paradygmatów) tworzenia oprogramowania: model kaskadowy, model oparty na prototypowaniu, programowanie odkrywcze, realizacja przyrostowa, montaż z gotowych elementów, model spiralny.

Inżynieria Oprogramowania 21/36 Model kaskadowy Rysunek: Model kaskadowy (liniowy)

Inżynieria Oprogramowania 22/36 Model kaskadowy zalety i wady Wady: Wysoki koszt błędów popełnionych we wstępnych fazach. Długa przerwa w kontaktach z klientem. Narzucenie twórcom oprogramowania ścisłej kolejności wykonywania prac.

Inżynieria Oprogramowania 23/36 Model oparty na prototypowaniu Etapy: ogólne określenie wymagań, budowa prototypu, weryfikacja prototypu przez klienta, pełne określenie wymagań, realizacja pełnego systemu zgodnie z modelem kaskadowym.

Inżynieria Oprogramowania 24/36 Model oparty na prototypowaniu zalety i wady Zalety: lepsze określenie wymagań klienta, możliwość szybkiej demonstracji pracującej wersji systemu, możliwość szkoleń zanim zostanie zbudowany pełen system. Wady: dodatkowy koszt budowy prototypu, konieczność oczekiwania na końcowy system po akceptacji prototypu.

Inżynieria Oprogramowania 25/36 Metody budowy prototypu niepełna realizacja, języki wysokiego poziomu, wykorzystanie gotowych komponentów, szybkie programowanie (ang. quick-and-dirty), generatory interfejsu użytkownika, programowanie odkrywcze.

Inżynieria Oprogramowania 26/36 Programowanie odkrywcze Wady: Niemożliwe zachowanie sensownej struktury systemu. Testowanie tylko przy udziale klienta. Rysunek: Schemat programowania odkrywczego

Inżynieria Oprogramowania 27/36 Realizacja przyrostowa Rysunek: Realizacja przyrostowa

Inżynieria Oprogramowania 28/36 Realizacja przyrostowa zalety i wady Zalety: Skrócenie przerw w kontaktach z klientem. Możliwość wczesnego wykorzystania przez klienta dostarczonych fragmentów systemu. Możliwość elastycznego reagowania na powstałe opóźnienia. Wady: Dodatkowy koszt związany z niemożnością wydzielenia podzbioru funkcji niezależnych od pozostałych.

Inżynieria Oprogramowania 29/36 Montaż z gotowych elementów Jest to wykorzystanie: bibliotek, języków czwartej generacji, pełnych aplikacji. Metody pozyskiwania gotowych komponentów: zakup od zewnętrznych dostawców, opracowanie wyników aktualnie realizowanych przedsięwzięć tak, aby mogły być wykorzystane w kolejnych przedsięwzięciach.

Inżynieria Oprogramowania 30/36 Montaż z gotowych elementów zalety i wady Zalety: wysoka niezawodność, zmniejszenie ryzyka, efektywne wykorzystanie specjalistów, narzucenie standardów, potencjalna redukcja kosztów. Wady: dodatkowy koszt przygotowania elementów do ponownego wykorzystania, ryzyko uzależnienia się od dostawcy komponentów, niedostatki narzędzi wspomagających ten rodzaj pracy.

Rysunek: Model spiralny Inżynieria Oprogramowania 31/36 Model spiralny Planowanie Analiza ryzyka Atestowanie Konstrukc ja

Inżynieria Oprogramowania 32/36 CASE ang.(computer-aided Software Engineering) CASE obejmuje rożne programy wykorzystane do wspomagania czynności procesu tworzenia oprogramowania (np. edytory notacji, generatory kodów). upper-case Związane z początkowymi fazami tworzenia oprogramowania. lower-case Wspomagają implementację i testowanie.

Inżynieria Oprogramowania 33/36 Najistotniejsze wyzwania dla inżynierów oprogramowania Wyzwanie dziedzictwa Pielęgnacja i modyfikacja działających dużych systemów, pełniących poważne funkcje gospodarcze Wyzwanie różnorodności Wymóg działania oprogramowania w systemach rozproszonych przy rożnych typach komputerów i systemów wspomagających Wyzwanie doręczenia Wymóg dostarczanie gotowego programowania w skróconym czasie bez utraty jakości

Inżynieria Oprogramowania 34/36 Zasady zawodowej odpowiedzialności Zachowywanie tajemnicy Inżynierowie powinni zawsze dochowywać tajemnic powierzonych przez pracodawców i klientów, niezależnie od tego czy podpisano formalną umowę o ochronie tajemnicy. Kompetencje Inżynierowie nie powinni zawyżać poziomu swoich kompetencji. Nie powinni świadomie przyjmować prac, które przekraczają ich możliwości.

Inżynieria Oprogramowania 35/36 Zasady zawodowej odpowiedzialności Prawo własności intelektualnej Inżynierowie powinni znać miejscowe prawo regulujące korzystanie z własności intelektualnej. Powinni szczególnie dbać o poszanowanie intelektualnej własności swoich pracodawców i klientów. Niewłaściwe użycie komputera Inżynierowie oprogramowania nie powinni używać swoich umiejętności do niewłaściwego używania cudzych komputerów. Niewłaściwe użycie może być dość banalne (np. granie na maszynie pracodawcy) lub skrajnie poważne (rozsiewanie wirusów).

Inżynieria Oprogramowania 36/36 W wykładzie wykorzystano materiały Jaszkiewicz A.: Inżynieria oprogramowania, Helion, Gliwice 1997, Pressman R. S.: Praktyczne podejście do inżynierii oprogramowania, WNT, Warszawa 2004, Sommerville I.: Inżynieria oprogramowania, WNT, Warszawa 2003