L1 Introduction1 02


Wstęp
Inżynieria oprogramowania. Wykład 1 Slide 1
Literatura
1. M.Kliszewski, Inżyneria oprogramowania
obiektowego, t.1-2, Wydawnictwa Naukowo-
Technicznego, Respekt, 1994.
2. G.Booch, Object-oriented analysis and design
with applications, Addison-Wesley, 1994.
3. M.Flasiński, Wstęp do analitycznych metod
projektowania systemów informatycznych,
Wydawnictwa Naukowo-Technicznego, Warszawa,
1997.
4. A.Jaszkiewicz, Inżyneria oprogramowania,
Wydawnictwo Helion, 1997.
Inżynieria oprogramowania. Wykład 1 Slide 2
Literatura
5. J.Górski, Inżyneria oprogramowania,
Wydawnictwo, Mikom 1999.
6. G.Booch, Jezyk UML. Podrecznik uzytkownika,
2001.
7. C.Larman. Applying UML and Patterns.
Prentice Hall, 1999.
8. I.Jacobson, G.Booch, J.Rumbaugh. The unified
software development process. Addison-Wesley,
1999.
9. A.Shalloway, J.R.Trott. Design patterns
Explained. Addison-Wesley, 2002.
Inżynieria oprogramowania. Wykład 1 Slide 3
Literatura
10. A.Alexandrescu. Modern C++ design. Addison-
Wesley, 2001.
11. E.Gamma, R.Helm, R.Johnson, J.Vlissides.
Design Patterns. Addison-Wesley, 1995.
12. M.Fowler, K.Scott. UML destiled (UML w
kropelce). Addison-Wesley, 1997.
13. J.Rumbaugh, I.Jacobson, G.Booch. The unified
modeling language reference manual. Addison-
Wesley, 2001.
Inżynieria oprogramowania. Wykład 1 Slide 4
Literatura
14. I.Sommerville. Sofware engineering.
Pearson Education Limited, 2001
15. D.Leffingwell, D.Widrig. Managing
software requirements (ZarzÄ…dzanie
wymaganiami). Addison-Wesley, 2000.
16. S. McConnel After the gold rush.
Microsoft Press, 1999.
17. www.omg.org
18. www.rational.org
Inżynieria oprogramowania. Wykład 1 Slide 5
Cele
Wprowadzenie do inżynierii oprogramowania i
wyjaśnienie jej wagi
Odpowiedzi na pytania kluczowe zwiÄ…zane z
inżynierią oprogramowania
Inżynieria oprogramowania. Wykład 1 Slide 6
Inżynieria oprogramowania i
ekonomika
Ekonomiki WSHYSKICH krajów rozwiniętych
uzależnione od softu
SE jest zwiÄ…zana z teoriami, metodami i
zasobami programistycznymi dla profesjonalnego
tworzenia oprogramowania
ZnaczÄ…ce koszty NPB na SE w krajach
rozwiniętych.
Inżynieria oprogramowania. Wykład 1 Slide 7
Inżynieria oprogramowania i
ekonomika
Inżynieria oprogramowania. Wykład 1 Slide 8
Kryzys oprogramowania
1968: Konferencja NATO poświęcona tematowi  kryzys
oprogramowania .
Bardzo duże (nawie lata) opóznienia w dostawie
oprogramowania
Ponoszone koszty byli często wyższe niż przewidywano.
Wiele programów było zawodnych.
Konserwacja oprogramowania stawała się co raz
bardziej złożona.
Oprogramowanie bardzo często zle wykonywało zadania
w celu rozwiązania których właśnie zostało stworzone.
Ò! UkazaÅ‚ siÄ™ termin  inżynieria oprogramowania
Inżynieria oprogramowania. Wykład 1 Slide 9
Ariane-5 flight 501
Background
" European Space Agency s
reusable launch vehicle
" Ariane-4 a major success
" Ariane-5 developed for larger
payloads
Launched
" 4 June 1996
Mission
" $500 million payload to be
delivered to orbit
Fate:
" Veered off course during launch
" Self-destructed 40 seconds
after launch
Cause:
" Unhandled floating point
exception in Ada code
Inżynieria oprogramowania. Wykład 1 Slide 10
Ocena sukcesu i porażek projektów
software-owych
Ukończone na czas i w ramach określonego budżetu
16.2%
Projekty anulowane na pewnym etapie cyklu życia
31.1%
Przekroczyli budżet, czas oraz/lub zredukowana
funkcjonalność 52.7%
Inżynieria oprogramowania. Wykład 1 Slide 11
Oznaki zagrożeń
powodujÄ…ce kryzys
Organizacja projektująca podejmuje się wykonania największego w
swojej praktyce projektu.
Uczestnicy projektu mają bardzo zróżnicowany poziom
doświadczenia oraz umiejętności.
Project jest mocno zintegrowany.
Najnowsze technologii sÄ… wykorzystywane.
Nie było wcześniej precedensu stosowania oprogramowania tego
typu w przemyśle.
Oprogramowanie wymaga stałych modyfikacji żeby odpowiadać
wyzwaniom rynku.
Inżynieria oprogramowania. Wykład 1 Slide 12
Mity
Manadżer
" Mam standardy
" Mam najlepszy komputery
" Zawsze można dodać ludzi do projektu
" Jeśli co skorzystam z outsorsingu (angl. outsourcing).
Klient
" Już wiemy ogólne cele, więc możemy zaczynać projekt
" Zmiany to żaden problem, łatwo je dostosujemy.
Projektant
" Moja sprawa napisać kod
" I tak nie sprawdzę jakość kodu dopóki go nie uruchomię
" Mi tylko należy dostarczyć kod
" Inżynieria oprogramowania to jest jakaś bezsensowna
rzecz zwiÄ…zana z dokumentacjÄ….
Inżynieria oprogramowania. Wykład 1 Slide 13
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. Wykład 1 Slide 14
FAQs o inżynierii
oprogramowania
Co to jest jest oprogramowanie?
Co to jest inżynieria oprogramowania ?
Jaka jest różnica pomiędzy inżynierią
oprogramowania a informatykÄ… ?
Jaka jest różnica pomiędzy inżynierią a inżynierią
systemów oprogramowania ?
Co to jest proces tworzenia oprogramowania ?
Co to jest model procesu tworzenia
oprogramowania ?
Inżynieria oprogramowania. Wykład 1 Slide 15
FAQs o inżynierii
oprogramowania
Jakie są koszty inżynierii oprogramowania ?
Co to jest CASE (Computer-Aided Software
Engineering) ?
Jakie właściwości ma dobre oprogramowanie ?
Jakie są najistotniejsze wyzwania dla inżynierów
oprogramowania ?
Inżynieria oprogramowania. Wykład 1 Slide 16
Co to jest oprogramowanie ?
SÄ… to programy komputerowe razem z
dokumentacjÄ…
kod, dane, dokumentacja
Oprogramowanie produkuje siÄ™ dla
" potrzeb pojedynczego klienta zgodnie z opracowanÄ…
przez niego specyfikacjÄ…
lub
" na rynek
Inżynieria oprogramowania. Wykład 1 Slide 17
Dziedziny zastosowania
oprogramowania
" Oprogramowanie systemowe
" Systemy czasy rzeczywistego
" Systemy informacyjne dla przedsiębiorstw
" Oprogramowanie inżynierskie i naukowe
" Systemy wbudowane
" Oprogramowanie internetowe
" Oprogramowanie komputerów osobistych
" Sztuczna inteligencja
Inżynieria oprogramowania. Wykład 1 Slide 18
Co to jest inżynieria
oprogramowania ?
Inżynieria oprogramowania jest to dziedzina
wiedzy która związana ze wszystkimi aspektami
produkcji oprogramowania
Inżynierzy z inżynierii oprogramowania powinni
wykorzystywać usystematyzowane i
zorganizowane podejście do swej pracy jak
również właściwych narzędzi i technik w
zależności od problemu który się rozwiązuje,
ograniczeń i zasobów dostępnych
Inżynieria oprogramowania. Wykład 1 Slide 19
Co to jest inżynieria
oprogramowania ?
IEEE Standard: InOp to jest stosowanie
systematycznego zdyscyplinowanego i wymiernego
podejścia do tworzenia, użytkowania i konserwacji
oprogramowania, tj. stosowanie zasad inżynierskiego
podejścia.
InOp obejmuje wszystkie praktyczne aspekty
tworzenia, konserwacji i rozwijania wyrobów
programowych. Jej zadania można rozdzielić z grubsza
na dwa nakładające się działania
1. działania techniczne składające się na procesy wytwarzania i
pózniejszego rozwoju produktu
2. zarządzanie przedsięwzięciami programistycznymi.
Inżynierskie podejście dotyczy w jednakowym stopniu
docelowego obiektu oraz procesu jego tworzenia.
Inżynieria oprogramowania. Wykład 1 Slide 20
Jaka jest różnica między inżynierią
oprogramowania a informatykÄ… ?
Informatyka jest to teoria; inżynieria
oprogramowania jest to praktyka
tworzenia i dostarczenia oprogramowania
Dzisiaj samej teorii informatycznej zbyt
mało aby wykorzystać ją we wszystkich
aspektach inżynierii oprogramowania
Inżynieria oprogramowania. Wykład 1 Slide 21
Jaka jest różnica między inżynierią
oprogramowania a inżynierią systemów ?
Inżynierią systemów ( system engineering)
jest zwiÄ…zana ze wszystkimi aspektami
tworzenia systemów bazowanych na
wykorzystaniu komputerów : hardware,
oprogramowanie i proces jego tworzenia.
Inżynieria oprogramowania jest częścią tego
procesu.
Inżynieria oprogramowania. Wykład 1 Slide 22
Co to jest proces tworzenia
oprogramowania ?
Inżynieria oprogramowania. Wykład 1 Slide 23
Co to jest proces tworzenia
oprogramowania ?
To jest zbiór rodzajów działalności celem których
jest tworzenie i rozwój oprogramowania (I)
To jest zbiór rodzajów działalności koniecznych dla
przetwarzania wymagań użytkownika w
oprogramowanie (II)
Bazowe rodzaje działalności dla wszystkich procesów
tworzenia oprogramowania to sÄ…:
" Specyfikacja  co system powinien robić + jego ograniczenia
" Projektowanie  produkcja oprogramowania
" Atestowanie  sprawdzanie czy oprogramowanie odpowiada
wymogom klienta
" Evolucja  zmiana oprogramowania  w odwet na zmiany wymagań
Inżynieria oprogramowania. Wykład 1 Slide 24
Co to jest proces tworzenia
oprogramowania ?
Inżynieria oprogramowania. Wykład 1 Slide 25
Co to jest proces tworzenia
oprogramowania ?
Stosowanie dobrego procesu
Inżynieria oprogramowania. Wykład 1 Slide 26
Co to jest model procesu tworzenia
oprogramowania ?
Uproszczona reprezentacja procesu tworzenia
oprogramowania która jest przedstawiona ze
specyficznej perspektywy
Przykłady różnych punktów widzenia na proces
" Sekwencja działań (Workflow)
" Przepływ danych (Data-flow)
" Rola/akcja (Role/Action)  kto i co robi
Przykładowe modeli procesów
" Kaskadowy
" Realizacja kierowana dokumentami
" Prototypowanie
" Ewolucyjny
" Formalne transformacji
" Integracja (montaż) z gotowych elementów
" Zunifikowany proces korporacji Rational Rose...itd
Inżynieria oprogramowania. Wykład 1 Slide 27
Koszty na wytwarzanie
oprogramowania ?
Z grubsza 60% kosztów to są koszty
projektowania, 40% - testowania. Koszty
ewolucji oprogramowania na zamówienie
często przekraczają koszt projektowania
Koszty zalezÄ… od typu systemu
projektowanego i wymagań do systemu np.
takich jak efektywność i niezawodność
Koszty zależą od wybranego modelu
procesu projektowania
Inżynieria oprogramowania. Wykład 1 Slide 28
Czym są metody inżynierii
oprogramowania?
Strukturalne podejście do projektowania oprogramowania
które zawiera modele systemu, notacje, reguly, porady do
projektowania i wykorzystania procesu. Na rzecz pojęcia
 metody się składają następne komponenty:
Opisy modelu
" Opisy modeli graficznych które ma być opracowane (np. Modele
obiektów, modele przepływów danych, modele ).
Reguły
" Ograniczenia i reguły których trzeba konieczne wykonywać przy
opracowaniu modeli systemów (np. Każdy element powinien mieć imię
unikalne)
Rekomendacje
" Heurystyczne porady i rekomendacje odzwierciedlajÄ…ce
doświadczenia ich praktycznego wykorzystania (np. Każdy obiekt w
modeli nie może mieć więcej niż 7 obiektów mu podrzędnych)
Inżynieria oprogramowania. Wykład 1 Slide 29
Czym są metody inżynierii
oprogramowania?
Porady do zastosowania procesu
" Opisuje czynności które trzeba wykonać aby stworzyć
model systemu zarówno jak i rekomendacje dla
organizacji tych czynności (np. Atrybut każdego
obiektu powinien być zadokumentowany przed
opracowaniem operacji tego obiektu)
Inżynieria oprogramowania. Wykład 1 Slide 30
Co to jest CASE (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Ä… implementowanie i testowanie
Inżynieria oprogramowania. Wykład 1 Slide 31
Jakie właściwości ma dobre
oprogramowanie?
Konkretny zbiór właściwości zależy od
zastosowania, niemniej można podąć 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. Wykład 1 Slide 32
Jakie sÄ… najistotniejsze wyzwania
dla inżynierów oprogramowania?
Wyzwanie dziedzictwa
" Pielęgnacja i modyfikacji 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. Wykład 1 Slide 33
10 głównych przyczyn
klęski projektów
Niepełne wymagania
Brak uczestnictwa klienta
Brak zasobów
Nierealistyczne oczekiwania
Brak wsparcia kierownictwa
Ciągła zmiana wymagań oraz specyfikacji
Brak planowania
Oprogramowanie już nie jest aktualne
Brak informatycznych technologii zarzÄ…dzania
Technologiczna nieumiejętność
Inżynieria oprogramowania. Wykład 1 Slide 34


Wyszukiwarka

Podobne podstrony:
L1 Fakultet 2013 glossary English Introduction
CSharp Introduction to C# Programming for the Microsoft NET Platform (Prerelease)
IMiR NM2 Introduction to MATLAB
Introduction
Acer gatunki introdukowane
L1 III Pol Normy okluzji hend out(1)
introductiontoal00dayjiala
01 07 Engine Introduction
Introduction to multivariate calibration in analytical chemistry
Growing Up in the Universe Introduction
Smirnov, A V Introduction to tensor calculus (2004)
ArchiCAD Step 0 Introduction
Introduction to Lean for Poland
BST L1 teoria
Introducing the ICCNSSA Standard for Design and Construction of Storm Shelters

więcej podobnych podstron