IO 01 2014 2015

background image

Inżynieria Oprogramowania
Wykład 01 - Wprowadzenie

MIS-1-502-s
MIO-1-505-s
MIS-1-505-n

Kazimierz Michalik

Wydział Inżynierii Metali i Informatyki Przemysłowej

Katedra Informatyki Stosowanej i Modelowania

Kraków 2014-2015

www.agh.edu.pl

www.agh.edu.pl

background image

Pojęcie podstawowe

Oprogramowanie (software) – pojęcie podstawowe

(do oprogramowania włącza się niekiedy, oprócz

plików binarnych i z kodem źródłowym, także

dokumentację, pliki konfiguracyjne, przykładowe

dane itp..)

Inżynieria oprogramowania (Software Engineering)

– dziedzina inżynierii związana z wytwarzaniem

oprogramowania we wszystkich jego fazach cyklu

życia.
Jako dziedzina inżynierii, IO rozważa w kontekście

praktycznym rozmaite aspekty wytwarzania

oprogramowania (techniczny, organizacyjny, finansowy

itp..)

Oprogramowanie (software) – pojęcie podstawowe

(do oprogramowania włącza się niekiedy, oprócz

plików binarnych i z kodem źródłowym, także

dokumentację, pliki konfiguracyjne, przykładowe

dane itp..)

Inżynieria oprogramowania (Software Engineering)

– dziedzina inżynierii związana z wytwarzaniem

oprogramowania we wszystkich jego fazach cyklu

życia.
Jako dziedzina inżynierii, IO rozważa w kontekście

praktycznym rozmaite aspekty wytwarzania

oprogramowania (techniczny, organizacyjny, finansowy

itp..)

background image

Cele inżynierii oprogramowania

Cel podstawowy:
Dostarczenie zasad organizacji procesu

wytwarzania oprogramowania (sofware

development) w oparciu o istniejące teorie,

modele, metody i narzędzia (formalne lub

nieformalne).

• W końcowym efekcie proces wytwarzania

oprogramowania ma w sposób efektywny doprowadzić

do powstania produktu wysokiej jakości

• Inżynieria oprogramowania jest częścią szerszej

dyscypliny: inżynierii systemów (system engineering),

w jej aspekcie dotyczącym oprogramowania.

Cel podstawowy:
Dostarczenie zasad organizacji procesu

wytwarzania oprogramowania (sofware

development) w oparciu o istniejące teorie,

modele, metody i narzędzia (formalne lub

nieformalne).

• W końcowym efekcie proces wytwarzania

oprogramowania ma w sposób efektywny doprowadzić

do powstania produktu wysokiej jakości

• Inżynieria oprogramowania jest częścią szerszej

dyscypliny: inżynierii systemów (system engineering),

w jej aspekcie dotyczącym oprogramowania.

background image

Problemy inżynierii oprogramowania

• Złożoność programów
• Złożoność systemów, w ramach których

funkcjonują programy (ludzie, sprzęt, instytucje,

procesy produkcyjne etc.)

• Zmienność systemów
• Złożoność procesów składających się na

wytwarzanie oprogramowania ( w przeciwieństwie

do prostoty pisania samego kodu)

• Łatwość i praktyczna nieuniknioność popełniania

błędów przy wytwarzaniu oprogramowania

• Złożoność programów
• Złożoność systemów, w ramach których

funkcjonują programy (ludzie, sprzęt, instytucje,

procesy produkcyjne etc.)

• Zmienność systemów
• Złożoność procesów składających się na

wytwarzanie oprogramowania ( w przeciwieństwie

do prostoty pisania samego kodu)

• Łatwość i praktyczna nieuniknioność popełniania

błędów przy wytwarzaniu oprogramowania

background image

Cechy dobrego oprogramowania

Wg. Sommerville'a:

• Poprawność, zgodność z wymaganiami

użytkowników

• Łatwość pielęgnacji (konserwacji) i dokonywania

zmian

• Niezawodność (dostępność i pewność)
• Bezpieczeństwo (w obu znaczeniach – safety,

security)

• Wydajność, efektywne korzystanie z zasobów
• Łatwość stosowania, ergonomiczność

Wg. Sommerville'a:

• Poprawność, zgodność z wymaganiami

użytkowników

• Łatwość pielęgnacji (konserwacji) i dokonywania

zmian

• Niezawodność (dostępność i pewność)
• Bezpieczeństwo (w obu znaczeniach – safety,

security)

• Wydajność, efektywne korzystanie z zasobów
• Łatwość stosowania, ergonomiczność

background image

Historia Inżynierii Oprogramowania:

Prehistoria. II wojna światowa.

ABC (us.), Electronic Numerical Integrator And

Computer(us.), Colossus(uk.), Konrad Zuse(de.)

• Nowe komputery (architekturalnie) pojawiają się w

odstępach paru lat.

• Całe oprogramowanie musi być przepisane/napisane na

nowo dla nowych maszyn

• Czasy kart perforowanych i wydruków z wynikami.
• Program = Algorytm.
• 1945: Architektura von Neumanna

background image

Historia Inżynierii Oprogramowania:

Prehistoria. II wojna światowa.

background image

Historia Inżynierii Oprogramowania:

1945 – 1965: Narodziny

Język programowania:

• Komputery, wraz z oprogramowaniem, są

stworzone do konkretnych celów i rodzaju

obliczeń.

• Ciągła potrzeba przepisywania programów

doprowadza do powstania języków

programowania

• Oprogramowanie było darmowe

Język programowania:

• Komputery, wraz z oprogramowaniem, są

stworzone do konkretnych celów i rodzaju

obliczeń.

• Ciągła potrzeba przepisywania programów

doprowadza do powstania języków

programowania

• Oprogramowanie było darmowe

Era freeware:

• Wydawcy tworzyli otwarte repozytoria z

oprogramowaniem

• Na uniwersytetach nie istnieje taki przedmiot

jak Informatyka (Inżynieria Oprogramowania

też oczywiście nie)

Era freeware:

• Wydawcy tworzyli otwarte repozytoria z

oprogramowaniem

• Na uniwersytetach nie istnieje taki przedmiot

jak Informatyka (Inżynieria Oprogramowania

też oczywiście nie)

background image

Historia Inżynierii Oprogramowania:

1965 - 1985: Kryzys oprogramowania

• Przekraczanie budżetu – o miliony dolarów (OS/360)
• Przekraczanie czasu – na przykład 10 lat
• Uszkodzenie mienia – w wyniku błędów programu (Mariner 1)
• Zagrożenie zdrowia i życia – np.: śmierć w wyniku napromieniowania

(Therac-25), błędu systemu kierowania ogniem (MIM-104 Patriot)

background image

Historia Inżynierii Oprogramowania:

1968-1969: Software engineering

Software Engineering: Report of a conference

sponsored by the NATO Science Committee ,

Garmisch, Germany: Scientific Affairs Division, NATO.

• E.W. Dijkastra Go To Statement Considered Harmful

Software Engineering: Report of a conference

sponsored by the NATO Science Committee ,

Garmisch, Germany: Scientific Affairs Division, NATO.

• E.W. Dijkastra Go To Statement Considered Harmful

• 1969: Termin Inżynieria Oprogramowania

ujrzał światło dzienne

• Wczesne lata '80: Inżynieria Oprogramowania

staje się wyróżnialnym zawodem plasującym

się między informatyką a Inżynierią

• 1969: Termin Inżynieria Oprogramowania

ujrzał światło dzienne

• Wczesne lata '80: Inżynieria Oprogramowania

staje się wyróżnialnym zawodem plasującym

się między informatyką a Inżynierią

background image

Historia Inżynierii Oprogramowania:

1965 - 1985: Wciąż kryzys oprogramowania

1972: D.Parnas On the Criteria To Be Used

in Decomposing Systems into Modules

Programowanie modułowe i abstrakcyjne

typy danych były już używane.

Późne lata '80: Koszty utrzymania

oprogramowania 2x wyższe niż koszt

stworzenia nowego.

Wczesne lata '90: Koszty utrzymania nadal

wzrastają o kolejne 30%

1995: 50% programów uznawanych za

porażkę, mimo teoretycznie poprawnego

działania

Przeciętny projekt przekracza wyznaczony

czas o 50%!

background image

Historia Inżynierii Oprogramowania:

1985 - 1989: Brak panaceum

Propozycje rozwiązania problemów:

• Narzędzia: różne sposoby programowania

(strukturalne, OO), CASE, dokumentacja,

standardy

• Dyscyplina pracy programistów.
• Metody formalne z inżynierii.
• Proces wytwarzania oprogramowania

( Capability Maturity Model)

• Etyka pracy, licencje, profesjonalizm.

1986, Fred Brooks, No Silver Bullet

Brak „cudownego leku”, ale Inżynieria

Oprogramowania ma sens!

1986, Fred Brooks, No Silver Bullet

Brak „cudownego leku”, ale Inżynieria

Oprogramowania ma sens!

background image

Historia Inżynierii Oprogramowania:

1990 – 2000: Orientowane Obiektowo

• Intensywne użytkownie CASE
• Projektowanie O.O.
• Narzędzia do inżynierii wymagań
• Wzrost popularności architektur

rozproszonych

• Universal Markup Language (UML)
• Java

background image

Historia Inżynierii Oprogramowania:

2000+ : Współczesność

• Zintegrowane środowiska programistyczne

(IDE)

• UML 2.0
• Lekkie języki skryptowe
• Metodologie lekkie
• Zaawansowane metodologie hybrydowe
• Nowe platformy i języki: C# etc.

background image

Czynności w czasie produkcji

oprogramowania

Inżynieria oprogramowania stara się zidentyfikować i

opisać podstawowe fazy tworzenia i funkcjonowania

oprogramowania, a także wskazać model optymalnego

przebiegu tych faz.

Co można robić w czasie tworzenia

oprogramowania?

Planowanie
Implementacja
Testowanie
Dokumentowanie
Wdrożenie
Utrzymanie (konserwacja).

Co można robić w czasie tworzenia

oprogramowania?

Planowanie
Implementacja
Testowanie
Dokumentowanie
Wdrożenie
Utrzymanie (konserwacja).

background image

Warto przeczytać

• Sommerville I.: Inżynieria oprogramowania 8-th ed.,

Addison-Wesley, 2006 (wyd.6, WNT, 2003)

• Hunt A., Thomas D.: The Pragmatic Programmer: From

Journeyman to Master

• Yourdon, E.: Marsz ku klęsce. Poradnik dla projektantów

systemów. WNT, 2007

• Booch G., Jacobson I., Rumbaugh J.: UML przewodnik

użytkownika WNT 2002

• Gamma E., Helm R., Johnson R., Vlissides J.: Wzorce

projektowe. Elementy programowania obiektowego

wielokrotnego użytku, WNT 2005

• Sacha K.: Inżynieria oprogramowania, Wydawnictwo

Naukowe PWN, 2010

• Steve McConnel: Kod doskonały. Jak tworzy

c

oprogramowanie pozbawione błędów. Wydanie II

• Martin Fowler: UML Distilled
• Brooks, Mityczny osobomiesiąc: eseje o inżynierii

oprogramowania. WNT, 2000

www.agh.edu.pl

www.agh.edu.pl

background image

Warunki zaliczenia przedmiotu (1)

www.agh.edu.pl

www.agh.edu.pl

Sposób obliczania oceny końcowej:

Wymagania wstępne i dodatkowe:

Programowanie w języku obiektowym

Nakład pracy studenta (bilans punktów ECTS):

Udział w wykładach

30 godz

Udział w ćwiczeniach projektowych

30 godz

Przygotowanie do zajęć

30 godz

Wykonanie projektu

30 godz

Samodzielne studiowanie tematyki zajęć

30 godz

Sumaryczne obciążenie pracą studenta

150 godz

Punkty ECTS za moduł

6 ECTS

WARUNKI UZYSKANIA ZALICZENIA:

91 – 100% bardzo dobry (5.0);
81 – 90% plus dobry (4.5);
71 – 80% dobry (4.0);
61 – 70% plus dostateczny (3.5);
50 – 60% dostateczny (3.0);
poniżej 50% niedostateczny (2.0).

PUNKTACJA: nominalnie jest do zdobycia 100 punktów

Średnia ważona ocen z egzaminu (66%) i projektu (34%)
– po uzyskaniu co najmniej 3.0 z każdej z nich

(Regulamin studiów §13, pkt 1:)

background image

Warunki zaliczenia projektu (2)

www.agh.edu.pl

www.agh.edu.pl

PUNKTACJA: nominalnie jest do zdobycia 100 punktów

Wykłady: (DODATKOWO!)

Wykład

Semestr

za aktywne uczestnictwo w wykładzie

1 pkt

15 pkt

Zajęcia projektowe:

Zajęcia

Semestr

za poprawne przygotowanie do zajęć

0 do 2 pkt

30 pkt

za punktualną obecność i wykonywanie zadań

0 do 1 pkt

15 pkt

(albo za spóźnienie do 15tu minut i wykonywanie zadań

0 do 0,5 pkt

7,5 pkt)

za poprawne i samodzielne ukończenie zadań na zajęciach

0 do 2 pkt

30 pkt

rozliczanie projektów na koniec listopada

0 do 10 pkt

10 pkt

rozliczanie projektów na koniec semestru

0 do 15 pkt

15 pkt

W SUMIE

100 pkt

background image

Warunki zaliczenia projektu (3)

Terminy poprawkowe:

Termin

W sumie

Przysługują tylko tym, którzy:
- nie uzyskali zaliczenia w poprzednim terminie i
-- byli na przynajmniej 7 zajęciach w semestrze lub

I popr.

25 pkt

II popr.

25 pkt

W SUMIE DODATKOWO

50 pkt

-- przedłożyli w wymaganym terminie
usprawiedliwienie większej ilości nieobecności.

za wykonanie zadań z tematów, w których student
nie wykazał się wiedzą w czasie semestru
za wykonanie zadań z tematów, w których student
nie wykazał się wiedzą w czasie semestru
i I terminu poprawkowego.

background image

Warunki zaliczenia egzaminu (4)

Warunkiem przystąpienia do egzaminu jest

pozytywna ocena z zajęć projektowych.

Egzamin trzeba po prostu zdać (50%+).

Jeżeli w czasie semestru ktoś zdobędzie więcej niż

100 pkt, to dodatkowe punkty są doliczane do

wyniku egzaminu.

Jakie jest absolutne minimum, żeby zdać egzamin na

50%?
W każdym wykładzie, treści absolutnie wymagane do

zdania egzaminu na 3.0 będą wyróżnione w ramkach

koloru czerwonego.
(Technicznie jest to odcień bladopomarańczowego, ale

jestem pewien, że zorientujecie się które to są ramki.)

Jakie jest absolutne minimum, żeby zdać egzamin na

50%?
W każdym wykładzie, treści absolutnie wymagane do

zdania egzaminu na 3.0 będą wyróżnione w ramkach

koloru czerwonego.
(Technicznie jest to odcień bladopomarańczowego, ale

jestem pewien, że zorientujecie się które to są ramki.)

background image

Dziękuję za uwagę

W przypadku sugestii, pytań lub spostrzeżenia

błędów: kontakt mailowy to kamich@agh.edu.pl


Document Outline


Wyszukiwarka

Podobne podstrony:
IO 01 2014 2015
Wyklad 01 2014 2015
IO 02 2014 2015
Wyklad 04 2014 2015
Ekonomia ćwiczenia program PS1 2014 2015 (1)
(f) sprawozdanie do cw 3 (2014 2015) aa
28 01 2014 Lechowski id 31904 Nieznany (2)
Hm 2014 2015 INŻ KB VII Sprężone
16 01 2014 Nahotkoid 16715
Gerbera nakolosanotatki 13-01-2014, OGRODNICTWO UP LUBLIN, ROŚLINY OZDOBNE, ozdobne II semestr
Pr. KSPS BZ 2014-2015 (1), bezpieczeństwo wewnętrzne materiały, Program KSPS i materia+éy do zaj¦Ö¦ç
Podział na grupy konsultacyjne IPB 2014 2015 końcowy
BÓLE GŁOWY, WYKŁAD 2, 10 01 2014
10 01 2014 Wykład
Program projektu zintegrowanego s5 IPB BKiI 2014 2015
przewodnik po zmianach VAT 01,07,2015
TISP 01 2014
egzamin ep 01 2014

więcej podobnych podstron