IO wyk1 wprowadzenie id 555840 Nieznany

background image

dr inż. Radosław Adamus

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

background image

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.

z

radamus.kis.p.lodz.pl/ dydaktyka->inżynieria oprogramowania

z

user: io_student

password: io_wyklad

Forma zaliczenia

z

Przedmiot kończy się egzaminem

z

Forma

z

test (c.a. 40 pytań)

z

2 terminy w sesji

z

1 termin w sesji poprawkowej

background image

dr inż. Radosław Adamus

Źródła wykładów

z

Wykład jest kompilacją wielu źródeł,
najważniejsze to:

z

Slajdy do książki Software Enginnering autorstwa
Ian’a Sommerville’a (dostepne w internecie)

z

Wykłady prof. Kazimierza Subiety w PJWSTK (mojego
promotora i mentora)

z

Materiały firmy IBM Rational

z

Inżynieria

Oprogramowania

Wykład 1

Wprowadzenie

background image

dr inż. Radosław Adamus

Cel:

z

Wprowadzenie w zagadnienia inżynierii
oprogramowania

z

Odpowiedź na najczęściej zadawane pytania
dotyczące Inżynierii Oprogramowania

Inżynieria Oprogramowania

z

Gospodarka większości krajów rozwijających się jest

zależna od oprogramowania.

z

Coraz więcej systemów jest kontrolowanych przez

oprogramowanie.

z

Wydatki na oprogramowanie stanowią znaczący element

kosztów jakie ponoszą kraje rozwijające się.

z

Inżynieria oprogramowania związana jest z metodami i

narzędziami pozwalającymi na profesjonalne

wytwarzanie oprogramowania.

background image

dr inż. Radosław Adamus

Koszty oprogramowania

z

Koszty oprogramowania stanowią często największy
procent kosztów systemów informatycznych
(przewyższających koszty sprzętu).

z

Koszty wsparcia (konserwacji) istniejącego
oprogramowania często przewyższają koszty jego
wytworzenia.

z

Jednym z celów inżynierii oprogramowania jest
efektywność (z punktu widzenia kosztów) procesu
wytwarzania i wsparcia oprogramowania.

Inżynieria oprogramowania - FAQ

z

Co to jest oprogramowanie?

z

Co to jest inżynieria oprogramowania?

z

Jakie są koszty wytworzenia oprogramowania?

z

Co to jest CASE?

z

Co to jest kryzys oprogramowania?

z

Co to jest proces inżynierii oprogramowania?

z

Co to jest cykl życiowy oprogramowania?

background image

dr inż. Radosław Adamus

Co to jest oprogramowanie?

z

Program komputerowy i powiązana z nim
dokumentacja

z

Oprogramowanie może być wytworzone dla
konkretnego klienta bądź jako produkt rynkowy

z

Oprogramowanie jako produkt:

z

Generyczne (ogólne) – wytworzone w celu
sprzedaży szerokiemu zakresowi klientów

z

Dopasowane – wyprodukowane dla konkretnego
klienta zgodnie z dostarczoną specyfikacją

Generic

Custom

Software

Atrybuty dobrego oprogramowania

z

Oprogramowanie powinno dostarczać
użytkownikom wymaganą funkcjonalność i
wydajność.

z

Oprogramowanie powinna cechować:

z

Zarządzalność: musi ewoluować w odpowiedzi na
zmieniające się wymagania

z

Wiarygodność: można na nim polegać

z

Sprawność: nie powinno marnować zasobów systemu

z

Użyteczność: musi być użyteczne dla użytkowników, dla
których zostało zaprojektowane

background image

dr inż. Radosław Adamus

Co to jest inżynieria
oprogramowania?

z

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.

Software engineering

Inżynieria Oprogramowania a
Informatyka

z

Informatyka zajmuje się teorią i podstawami

z

Inżynieria Oprogramowania zajmuje się praktycznymi

aspektami wytwarzania i dostarczania złożonego i

użytecznego oprogramowania

z

Teorie informatyczne uważane są obecnie za

niewystarczające do nominowania ich jako kompletnych

fundamentów inżynierii oprogramowania.

z

Inżynieria Oprogramowania jest wiedzą empiryczną

Software engineering vs.
Computer science

background image

dr inż. Radosław Adamus

Inżynieria oprogramowania a
inżynieria systemów

z

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.

z

Inżynieria oprogramowania jest częścią tego procesu.

z

Inżynieria systemów jest zaangażowana w proces
specyfikacji, projektowania architektury, integracji i
wdrażania systemów.

Software engineering vs.

system engineering

Zagadnienia inżynierii
oprogramowania

z

Sposoby prowadzenia przedsięwzięć informatycznych.

z

Techniki planowania, szacowania kosztów, harmonogramowania i monitorowania

przedsięwzięć informatycznych.

z

Metody analizy i projektowania systemów.

z

Techniki zwiększania niezawodności oprogramowania.

z

Sposoby testowania systemów i szacowania niezawodności.

z

Sposoby przygotowania dokumentacji technicznej i użytkowej.

z

Procedury kontroli jakości.

z

Metody redukcji kosztów konserwacji (usuwania błędów, modyfikacji i rozszerzeń)

z

Techniki pracy zespołowej i czynniki psychologiczne wpływające na efektywność

pracy.

background image

dr inż. Radosław Adamus

Podstawowe wyzwania Inżynierii
Oprogramowania

z

Systemy spadkowe– techniki umożliwiające
zarządzanie i wykorzystanie istniejących (starych), ale
wartościowych systemów.

z

Heterogeniczność – techniki umożliwiające współpracę
rozproszonych i różnorodnych systemów.

z

Dostarczanie – techniki umożliwiające szybkie
dostarczenie gotowego produktu.

z

Zaufanie – techniki, które umożliwiły by udowodnienie,
że oprogramowaniu można zaufać.

Legacy systems

Heterogeneity

Delivery

Trust

Co to jest CASE ?

z

Oprogramowanie (system informatyczny),

którego celem jest zautomatyzowane wsparcie

działań wykonywanych w procesie inżynierii

oprogramowania.

z

Upper-CASE: Narzędzia wspierające wczesne

działania związane z wymaganiami i

projektowaniem

z

Lower – CASE: Narzędzia wspierające późne

działania: programowanie, debugowanie,

testowanie

Computer Aided Software Engineering

background image

dr inż. Radosław Adamus

Jakie są koszty wytworzenia
oprogramowania?

z

Z grubsza 60% to koszty wytworzenia, 40% to
koszty testowania. W przypadku oprogramowania
dopasowanego do klienta koszty ewolucji często
przekraczają koszty wytworzenia

z

Koszty zależą od typu systemu, wymagań i
pożądanych atrybutów systemu (np. wydajność,
niezawodność)

z

Rozkład kosztów zależy od procesu inżynierii
oprogramowania.

Software engineering costs

Co to jest kryzys oprogramowania?
(1)

z

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.

z

Ogromne koszty utrzymania oprogramowania. Długi i

kosztowny cykl życia SI, wymagający stałych (często

globalnych) zmian.

z

Niska kultura ponownego użycia wytworzonych

komponentów projektów i oprogramowania; niski stopień

powtarzalności poszczególnych przedsięwzięć.

Software crisis

background image

dr inż. Radosław Adamus

Co to jest kryzys oprogramowania?
(2)

z

Długi i kosztowny cykl tworzenia oprogramowania,
wysokie prawdopodobieństwo niepowodzenia projektu
programistycznego.

z

Eklektyczne, niesystematyczne narzędzia i języki
programowania.

z

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)

z

Uzależnienie organizacji od systemów komputerowych i
przyjętych technologii przetwarzania informacji, które nie
są stabilne w długim horyzoncie czasowym.

z

Problemy współdziałania niezależnie zbudowanego
oprogramowania, szczególnie istotne przy dzisiejszych
tendencjach integracyjnych.

z

Problemy przystosowania istniejących i działających
systemów do nowych wymagań, tendencji i platform
sprzętowo-programowych.

background image

dr inż. Radosław Adamus

Walka z kryzysem oprogramowania

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

Korzystanie z metod wspomagających analizę

nieznanych problemów oraz ułatwiających

wykorzystanie wcześniejszych doświadczeń

Usystematyzowanie procesu

wytwarzania oprogramowania, tak aby

ułatwić jego planowanie i monitorowanie

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.

Źródła złożoności projektu informatycznego

Zespół projektantów

podlegający ograniczeniom
pamięci, percepcji, wyrażania
informacji i komunikacji.

Dziedzina problemowa,

obejmująca ogromną liczbę
wzajemnie uzależnionych
aspektów i problemów.

Środki i technologie
informatyczne
:

sprzęt, oprogramowanie, sieć,
języki, narzędzia, udogodnienia.

Oprogramowanie

:

decyzje strategiczne,

analiza,

projektowanie,

konstrukcja,

dokumentacja,

wdrożenie,

szkolenie,

eksploatacja,

pielęgnacja,

modyfikacja.

Potencjalni użytkownicy:

czynniki psychologiczne,
ergonomia, ograniczenia pamięci
i percepcji, skłonność do błędów
i nadużyć, tajność, prywatność.

background image

dr inż. Radosław Adamus

Co to jest proces inżynierii
oprogramowania?

z

Zestaw działań, których celem jest wytworzenie

lub ewolucja oprogramowania.

z

Ogólne czynności pojawiające się we wszystkich

procesach IO:

z

Specyfikacja – jakie działania powinien wykonywać

system i jakie są ograniczenia nałożone na system.

z

Rozwój – produkcja oprogramowania

z

Walidacja – sprawdzenie czy system spełnia

oczekiwania klientów

z

Ewolucja – zmiana oprogramowania w odpowiedzi na

zmieniające się wymagania

Software engineering
process

Najważniejsze cegiełki informacji

z

Oprogramowanie – produkt

z

Inżynieria Oprogramowania – wiedza

empiryczna

z

Proces inżynierii oprogramowania – dotyczy

tak tworzenia jak i ewolucji oprogramowania

z

Kryzys oprogramowania – powód: złożoność

produktów i procesów wytwarzania

background image

dr inż. Radosław Adamus

Do poczytania…

z

Sommerville: Inżynieria Oprogramowania,
rozdział 1.

z

Dąbrowski, Subieta: Podstawy Inżynierii
Oprogramowania,
rozdział 1.


Wyszukiwarka

Podobne podstrony:
biesd wprowadzenie id 85618 Nieznany (2)
PROCESORY wprowadzenie id 39370 Nieznany
IO wyk Petri id 554305 Nieznany
MATLAB AMGd wprowadzenie id 287 Nieznany
Eurokody Wprowadzenie id 165480 Nieznany
picoblaze wprowadzenie id 35654 Nieznany
etyka1 wprowadzenie id 165288 Nieznany
io lepsze odpowiedzi(1) id 2197 Nieznany
I WPROWADZENIE id 208464 Nieznany
IO lab 2 id 219711 Nieznany
IO wyk2 procesIO v1 id 556045 Nieznany
io wyklad id 219734 Nieznany
IO id 219730 Nieznany
IO lab 1 id 219710 Nieznany
IO modele id 219744 Nieznany
IO id 219697 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany

więcej podobnych podstron