L1 Introduction1

background image

Inżynieria oprogramowania. Wykład 1

Slide 1

Wstęp

background image

Inżynieria oprogramowania. Wykład 1

Slide 2

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

.

background image

Inżynieria oprogramowania. Wykład 1

Slide 3

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

.

background image

Inżynieria oprogramowania. Wykład 1

Slide 4

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

.

background image

Inżynieria oprogramowania. Wykład 1

Slide 5

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 6

Cele



Wprowadzenie do inżynierii oprogramowania i
wyjaśnienie jej wagi



Odpowiedzi na pytania kluczowe związane z
inżynierią oprogramowania

background image

Inżynieria oprogramowania. Wykład 1

Slide 7



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 i
ekonomika

background image

Inżynieria oprogramowania. Wykład 1

Slide 8

Inżynieria oprogramowania i
ekonomika

background image

Inżynieria oprogramowania. Wykład 1

Slide 9

Kryzys oprogramowania



1968: Konferencja NATO poświęcona tematowi

‘kryzys

oprogramowania’

.



Bardzo duże (nawiet lata) opóźnienia 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 źle wykonywało zadania

w celu rozwiązania których właśnie zostało stworzone.



Ukazał się termin

‘inżynieria oprogramowania’

background image

Inżynieria oprogramowania. Wykład 1

Slide 10

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 11

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%

background image

Inżynieria oprogramowania. Wykład 1

Slide 12

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.

background image

Inżynieria oprogramowania. Wykład 1

Slide 13

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ą.

background image

Inżynieria oprogramowania. Wykład 1

Slide 14



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.

Koszty oprogramowania

background image

Inżynieria oprogramowania. Wykład 1

Slide 15

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 ?

background image

Inżynieria oprogramowania. Wykład 1

Slide 16

FAQs o inżynierii
oprogramowania



Jakie są koszty inżynierii oprogramowania ?



Co to jest CASE ?



Jakie właściwości ma dobre oprogramowanie ?



Jakie są najistotniejsze wyzwania dla inżynierów
oprogramowania ?

background image

Inżynieria oprogramowania. Wykład 1

Slide 17

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 18

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 19

Co to jest inżynieria
oprogramowania ?



Inżynieria oprogramowania jest to dziedzina
wiedzy która jest 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

background image

Inżynieria oprogramowania. Wykład 1

Slide 20

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óźniejszego rozwoju produktu

2. zarządzanie przedsięwzięciami programistycznymi.



Inżynierskie podejście dotyczy w jednakowym stopniu

docelowego obiektu oraz procesu jego tworzenia.

background image

Inżynieria oprogramowania. Wykład 1

Slide 21

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 22

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

.

background image

Inżynieria oprogramowania. Wykład 1

Slide 23

Co to jest

proces

tworzenia

oprogramowania ?

background image

Inżynieria oprogramowania. Wykład 1

Slide 24

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ń

background image

Inżynieria oprogramowania. Wykład 1

Slide 25

Co to jest proces tworzenia
oprogramowania ?

background image

Inżynieria oprogramowania. Wykład 1

Slide 26

Co to jest proces tworzenia
oprogramowania ?



Stosowanie dobrego procesu

background image

Inżynieria oprogramowania. Wykład 1

Slide 27



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

Co to jest model procesu tworzenia
oprogramowania ?

Lekkie (agile) procesy

background image

Inżynieria oprogramowania. Wykład 1

Slide 28

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 29

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 relacji encji ).



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)

background image

Inżynieria oprogramowania. Wykład 1

Slide 30

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)

background image

Inżynieria oprogramowania. Wykład 1

Slide 31

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 32

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)

background image

Inżynieria oprogramowania. Wykład 1

Slide 33

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

background image

Inżynieria oprogramowania. Wykład 1

Slide 34

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ść


Wyszukiwarka

Podobne podstrony:
L1 - Fakultet 2013 - glossary English, Introduction
L1 Fakultet 2013 glossary English Introduction
IntroductoryWords 2 Objects English
lecture3 complexity introduction
Introduction to VHDL
ZMPST 01 Introduction
Lecture1 Introduction Femininity Monstrosity Supernatural
Introduction Gencontroller C620 Nieznany
L1-1a, Ratownictwo Medyczne, Materiały ze studiów, Medycyna Ratunkowa
268257 Introduction to Computer Systems Worksheet 1 Answer sheet Unit 2
L1 wzmacniacz opera(1)
Lab 03 C introduction
Introduction To Scholastic Ontology

więcej podobnych podstron