Inżynieria
Oprogramowania
Plan wykładów
Zaliczenie
Literatura
Prowadzący:
prof. dr hab. Inż. Jacek Kucharski
Dr inż. Radosław Adamus
Plan wykładów - tematy
1. Wprowadzenie dziedzina inżynierii oprogramowania
2. Procesy inżynierii oprogramowania
3. Zarządzanie projektem informatycznym
4. Wymagania stawiane oprogramowaniu i inżynieria wymagań
5. Modele systemów
6. Architektura systemów i projektowanie architektury
7. Systemy rozproszone
8. Projektowanie obiektowe
9. Rapid Application Development
10. Powtórne użycie
11. Oprogramowanie komponentowe
12. Weryfikacja i walidacja i testowanie oprogramowania
13. Zarządzanie konfiguracją oprogramowania
14. Bezpieczeństwo/ AOP/SOA
dr inż. Radosław Adamus
Literatura
1. Sommerville Ian: Inżynieria Oprogramowania, WNT,
Wa-wa, 2003.
2. Dąbrowski Włodzimierz, Subieta Kazimierz: Podstawy
Inżynierii Oprogramowania, PJWSK, Wa-wa, 2005.
3. Slajdy z wykładu oraz materiały dodatkowe.
radamus.kis.p.lodz.pl/ dydaktyka->inżynieria oprogramowania
user: io_student password: io_wyklad
Forma zaliczenia
Przedmiot kończy się egzaminem
Forma
test (c.a. 40 pytań)
2 terminy w sesji
1 termin w sesji poprawkowej
dr inż. Radosław Adamus
yródła wykładów
Wykład jest kompilacją wielu zródeł,
najważniejsze to:
Slajdy do książki Software Enginnering autorstwa
Ian a Sommerville a (dostepne w internecie)
Wykłady prof. Kazimierza Subiety w PJWSTK (mojego
promotora i mentora)
Materiały firmy IBM Rational
&
Inżynieria
Oprogramowania
Wykład 1
Wprowadzenie
dr inż. Radosław Adamus
Cel:
Wprowadzenie w zagadnienia inżynierii
oprogramowania
Odpowiedz na najczęściej zadawane pytania
dotyczące Inżynierii Oprogramowania
Inżynieria Oprogramowania
Gospodarka większości krajów rozwijających się jest
zależna od oprogramowania.
Coraz więcej systemów jest kontrolowanych przez
oprogramowanie.
Wydatki na oprogramowanie stanowią znaczący element
kosztów jakie ponoszą kraje rozwijające się.
Inżynieria oprogramowania związana jest z metodami i
narzędziami pozwalającymi na profesjonalne
wytwarzanie oprogramowania.
dr inż. Radosław Adamus
Koszty oprogramowania
Koszty oprogramowania stanowią często największy
procent kosztów systemów informatycznych
(przewyższających koszty sprzętu).
Koszty wsparcia (konserwacji) istniejącego
oprogramowania często przewyższają koszty jego
wytworzenia.
Jednym z celów inżynierii oprogramowania jest
efektywność (z punktu widzenia kosztów) procesu
wytwarzania i wsparcia oprogramowania.
Inżynieria oprogramowania - FAQ
Co to jest oprogramowanie?
Co to jest inżynieria oprogramowania?
Jakie są koszty wytworzenia oprogramowania?
Co to jest CASE?
Co to jest kryzys oprogramowania?
Co to jest proces inżynierii oprogramowania?
Co to jest cykl życiowy oprogramowania?
dr inż. Radosław Adamus
Co to jest oprogramowanie?
Software
Program komputerowy i powiązana z nim
dokumentacja
Oprogramowanie może być wytworzone dla
konkretnego klienta bądz jako produkt rynkowy
Oprogramowanie jako produkt:
Generic
Generyczne (ogólne) wytworzone w celu
sprzedaży szerokiemu zakresowi klientów
Dopasowane wyprodukowane dla konkretnego
Custom
klienta zgodnie z dostarczoną specyfikacją
Atrybuty dobrego oprogramowania
Oprogramowanie powinno dostarczać
użytkownikom wymaganą funkcjonalność i
wydajność.
Oprogramowanie powinna cechować:
Zarządzalność: musi ewoluować w odpowiedzi na
zmieniające się wymagania
Wiarygodność: można na nim polegać
Sprawność: nie powinno marnować zasobów systemu
Użyteczność: musi być użyteczne dla użytkowników, dla
których zostało zaprojektowane
dr inż. Radosław Adamus
Co to jest inżynieria
oprogramowania?
Software engineering
Inżynieria oprogramowania jest wiedzą
techniczną dotycząca wszystkich faz cyklu życia
oprogramowania. Traktuje oprogramowanie jako
produkt, który ma spełniać potrzeby techniczne,
ekonomiczne i społeczne.
Inżynieria Oprogramowania a
Informatyka
Software engineering vs.
Computer science
Informatyka zajmuje się teorią i podstawami
Inżynieria Oprogramowania zajmuje się praktycznymi
aspektami wytwarzania i dostarczania złożonego i
użytecznego oprogramowania
Teorie informatyczne uważane są obecnie za
niewystarczające do nominowania ich jako kompletnych
fundamentów inżynierii oprogramowania.
Inżynieria Oprogramowania jest wiedzą empiryczną
dr inż. Radosław Adamus
Inżynieria oprogramowania a
inżynieria systemów
Software engineering vs.
system engineering
Inżynieria systemów jest związana z wszystkimi
aspektami wytwarzania systemów komputerowych,
włączając w to produkcję sprzętu, oprogramowania i
procesów.
Inżynieria oprogramowania jest częścią tego procesu.
Inżynieria systemów jest zaangażowana w proces
specyfikacji, projektowania architektury, integracji i
wdrażania systemów.
Zagadnienia inżynierii
oprogramowania
Sposoby prowadzenia przedsięwzięć informatycznych.
Techniki planowania, szacowania kosztów, harmonogramowania i monitorowania
przedsięwzięć informatycznych.
Metody analizy i projektowania systemów.
Techniki zwiększania niezawodności oprogramowania.
Sposoby testowania systemów i szacowania niezawodności.
Sposoby przygotowania dokumentacji technicznej i użytkowej.
Procedury kontroli jakości.
Metody redukcji kosztów konserwacji (usuwania błędów, modyfikacji i rozszerzeń)
Techniki pracy zespołowej i czynniki psychologiczne wpływające na efektywność
pracy.
dr inż. Radosław Adamus
Podstawowe wyzwania Inżynierii
Oprogramowania
Legacy systems
Systemy spadkowe techniki umożliwiające
zarządzanie i wykorzystanie istniejących (starych), ale
wartościowych systemów.
Heterogeneity Heterogeniczność techniki umożliwiające współpracę
rozproszonych i różnorodnych systemów.
Delivery
Dostarczanie techniki umożliwiające szybkie
dostarczenie gotowego produktu.
Zaufanie techniki, które umożliwiły by udowodnienie,
Trust
że oprogramowaniu można zaufać.
Co to jest CASE ?
Computer Aided Software Engineering
Oprogramowanie (system informatyczny),
którego celem jest zautomatyzowane wsparcie
działań wykonywanych w procesie inżynierii
oprogramowania.
Upper-CASE: Narzędzia wspierające wczesne
działania związane z wymaganiami i
projektowaniem
Lower CASE: Narzędzia wspierające pózne
działania: programowanie, debugowanie,
testowanie
dr inż. Radosław Adamus
Jakie są koszty wytworzenia
oprogramowania?
Software engineering costs
Z grubsza 60% to koszty wytworzenia, 40% to
koszty testowania. W przypadku oprogramowania
dopasowanego do klienta koszty ewolucji często
przekraczają koszty wytworzenia
Koszty zależą od typu systemu, wymagań i
pożądanych atrybutów systemu (np. wydajność,
niezawodność)
Rozkład kosztów zależy od procesu inżynierii
oprogramowania.
Co to jest kryzys oprogramowania?
(1) Software crisis
Sprzeczność pomiędzy odpowiedzialnością, jaka
spoczywa na współczesnych SI (systemach
informatycznych), a ich zawodnością wynikającą ze
złożoności i ciągle niedojrzałych metod tworzenia i
weryfikacji oprogramowania.
Ogromne koszty utrzymania oprogramowania. Długi i
kosztowny cykl życia SI, wymagający stałych (często
globalnych) zmian.
Niska kultura ponownego użycia wytworzonych
komponentów projektów i oprogramowania; niski stopień
powtarzalności poszczególnych przedsięwzięć.
dr inż. Radosław Adamus
Co to jest kryzys oprogramowania?
(2)
Długi i kosztowny cykl tworzenia oprogramowania,
wysokie prawdopodobieństwo niepowodzenia projektu
programistycznego.
Eklektyczne, niesystematyczne narzędzia i języki
programowania.
Frustracje projektantów oprogramowania i programistów
wynikające ze zbyt szybkiego postępu w zakresie
języków, narzędzi i metod oraz uciążliwości i
długotrwałości procesów produkcji, utrzymania i
pielęgnacji oprogramowania
Co to jest kryzys oprogramowania?
(3)
Uzależnienie organizacji od systemów komputerowych i
przyjętych technologii przetwarzania informacji, które nie
są stabilne w długim horyzoncie czasowym.
Problemy współdziałania niezależnie zbudowanego
oprogramowania, szczególnie istotne przy dzisiejszych
tendencjach integracyjnych.
Problemy przystosowania istniejących i działających
systemów do nowych wymagań, tendencji i platform
sprzętowo-programowych.
dr inż. Radosław Adamus
Walka z kryzysem oprogramowania
Korzystanie z metod wspomagających analizę
Usystematyzowanie procesu
nieznanych problemów oraz ułatwiających
wytwarzania oprogramowania, tak aby
wykorzystanie wcześniejszych doświadczeń
ułatwić jego planowanie i monitorowanie
Podstawowym powodem kryzysu
oprogramowania jest
złożoność produktów informatyki i
procesów ich wytwarzania.
Stosowanie technik i narzędzi ułatwiających
pracę nad złożonymi systemami
Wytworzenie wśród producentów i nabywców
przekonania, że budowa dużego systemu
wysokiej jakości jest zadaniem wymagającym
profesjonalnego podejścia.
yródła złożoności projektu informatycznego
Zespół projektantów
Dziedzina problemowa,
podlegający ograniczeniom
obejmująca ogromną liczbę
pamięci, percepcji, wyrażania
wzajemnie uzależnionych
Oprogramowanie:
informacji i komunikacji.
aspektów i problemów.
decyzje strategiczne,
analiza,
projektowanie,
konstrukcja,
dokumentacja,
wdrożenie,
szkolenie,
eksploatacja,
pielęgnacja,
modyfikacja.
Środki i technologie Potencjalni użytkownicy:
czynniki psychologiczne,
informatyczne:
ergonomia, ograniczenia pamięci
sprzęt, oprogramowanie, sieć,
i percepcji, skłonność do błędów
języki, narzędzia, udogodnienia.
i nadużyć, tajność, prywatność.
dr inż. Radosław Adamus
Co to jest proces inżynierii
oprogramowania?
Software engineering
process
Zestaw działań, których celem jest wytworzenie
lub ewolucja oprogramowania.
Ogólne czynności pojawiające się we wszystkich
procesach IO:
Specyfikacja jakie działania powinien wykonywać
system i jakie są ograniczenia nałożone na system.
Rozwój produkcja oprogramowania
Walidacja sprawdzenie czy system spełnia
oczekiwania klientów
Ewolucja zmiana oprogramowania w odpowiedzi na
zmieniające się wymagania
Najważniejsze cegiełki informacji
Oprogramowanie produkt
Inżynieria Oprogramowania wiedza
empiryczna
Proces inżynierii oprogramowania dotyczy
tak tworzenia jak i ewolucji oprogramowania
Kryzys oprogramowania powód: złożoność
produktów i procesów wytwarzania
dr inż. Radosław Adamus
Do poczytania&
Sommerville: Inżynieria Oprogramowania,
rozdział 1.
Dąbrowski, Subieta: Podstawy Inżynierii
Oprogramowania, rozdział 1.
dr inż. Radosław Adamus
Wyszukiwarka
Podobne podstrony:
io wyk1IO wprowadzenieIO Wyklad 01 Wprowadzenieamd102 io pl09WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznejwprowadz w11java io InvalidClassExceptionio port programming 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46a 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46aMedycyna manualna Wprowadzenie do teorii, rozpoznawanie i leczenieacu 250 io pl1400 Spis treści, Wstęp, Wprowadzeniewprowadzenieczwiczenie 2 wprowadzenie62 FOR ostrzega Wprowadzenie klauzuli przeciwko unikaniu opodatkowania może być niezgodne z Konstytuwięcej podobnych podstron