inżynieria oprogramowania AA6BLK3QKW7XXIT7K6HM65PE5WYE2UGC7DVOS3Q


Inżynieria oprogramowania - 1 Slide 1

Inżynieria oprogramowania

dr inż. Tomasz Piaścik . (Zakład Informatyki Stosowanej)

E-mail: TAP@amu.edu.pl

Literatura:

1. Górski J., Inżynieria oprogramowania w projektach

informatycznych, Mikom

2. Jaszkiewicz A., Inżynieria oprogramowania, Helion

3. Sommerville I., Inżynieria oprogramowania, WNT

4. Booch G., Rumbaugh J., Jacobson I., UML przewodnik

użytkownika, WNT

Inżynieria oprogramowania - 1 Slide 2

Cele wykładu

. Wprowadzenie do inżynierii oprogramowania i

wyjaśnienie jej znaczenia

. Odpowiedź na kluczowe pytania dotyczące

inżynierii oprogramowania

. Przedstawienie etycznych i zawodowych kwestii

i wyjaśnienie dlaczego są one ważne dla

inżynierów oprogramowania

Inżynieria oprogramowania - 1 Slide 3

Zawartość

. Najczęściej zadawane pytania (FAQ) dotyczące

inżynierii oprogramowania

. Odpowiedzialność etyczna i zawodowa

Inżynieria oprogramowania - 1 Slide 4

. Funkcjonowanie gospodarek krajów rozwiniętych

jest zależne od oprogramowania

. Coraz więcej systemów kontrolowanych jest przy

pomocy oprogramowania

. Inżynieria oprogramowania interesuje się teorią,

metodologią i narzędziami do profesjonalnego

rozwoju oprogramowania

. Wydatki na inżynierię oprogramowania stanowią

znaczną część GNP we wszystkich rozwiniętych

krajach

Inżynieria oprogramowania

Inżynieria oprogramowania - 1 Slide 5

. Koszty oprogramowania są dominującymi

kosztami całego systemu. Koszt oprogramowania

przeznaczonego dla PC jest często większy niż

koszt sprzętu

. Utrzymanie oprogramowania kosztuje więcej niż

jego rozwój. Dla systemów o długim czasie życia

koszty utrzymania mogą być kilkukrotnie wyższe

niż koszty rozwoju oprogramowania

. Inżynieria oprogramowania skupia się na

efektywnym kosztowo rozwoju oprogramowania

Koszty oprogramowania

Inżynieria oprogramowania - 1 Slide 6

FAQ o inżynierii oprogramowania

. Co to jest oprogramowania?

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

oprogramowania a inżynierią systemów?

. Co to jest proces tworzenia oprogramowania?

. Co to jest model procesu tworzenia

oprogramowania?

Inżynieria oprogramowania - 1 Slide 7

FAQ o inżynierii oprogramowania

. Jakie są koszty inżynierii oprogramowania?

. Co to są metody inżynierii oprogramowania?

. Co to jest CASE (Computer-Aided Software

Engineering)?

. Jakie są atrybuty dobrego oprogramowania?

. Jakie są najistotniejsze wyzwania dla inżynierii

oprogramowania?

Inżynieria oprogramowania - 1 Slide 8

Co to jest oprogramowanie?

. Programy komputerowe i związana z nimi

dokumentacja

. Oprogramowanie może być tworzone dla

poszczególnych klientów lub jako produkt

rynkowy

. Produkty programowe mogą być:

. Ogólnodostępne - tworzone dla szerokiego zakresu różnych

klientów

. Dedykowane - wytwarzane dla konkretnego klienta zgodnie z

jego wymaganiami

. Predefiniowane . dostosowywane do potrzeb użytkownika

Inżynieria oprogramowania - 1 Slide 9

Co to jest inżynieria oprogramowania?

. Inżynieria oprogramowania jest dyscypliną

inżynierii która obejmuje wszystkie aspekty

tworzenia oprogramowania

. Inżynierowie oprogramowania powinni przyjąć

uporządkowany i zorganizowany sposób

podejścia do pracy oraz używać odpowiednich

narzędzi i metod zależnie od problemu jaki mają

do rozwiązania, ograniczeń i dostępnych zasobów

Inżynieria oprogramowania - 1 Slide 10

Jaka jest różnica pomiędzy inżynierią

oprogramowania a informatyką?

. Informatyka obejmuje teorię i podstawy;

inżynieria oprogramowania obejmuje praktyczne

stronę rozwoju i dostarczania użytecznego

oprogramowania

. Teorie informatyczne są niewystarczające do

stworzenia kompletnych podstaw inżynierii

oprogramowania

Inżynieria oprogramowania - 1 Slide 11

Jaka jest różnica pomiędzy inżynierią

oprogramowania a inżynierią systemów?

. Inżynieria systemów obejmuje wszystkie aspekty

rozwijania systemów komputerowych (sprzęt,

oprogramowanie, proces tworzenia

oprogramowania). Inżynieria oprogramowania

jest częścią inżynierii systemów

. Inżynierowie systemów biorą udział w

specyfikacji systemu, projektowaniu jego

architektury, integracji i wdrożeniu

Inżynieria oprogramowania - 1 Slide 12

Co to jest proces tworzenia oprogramowania?

. Zbiór czynności, których celem jest rozwój lub

ewolucja oprogramowania

. Ogólne czynności w procesie tworzenia

oprogramowania:

. Specyfikacja - co powinien robić system i jakie są jego

ograniczenia

. Rozwój - produkcja oprogramowania

. Zatwierdzenie - sprawdzanie czy oprogramowanie jest zgodne z

oczekiwaniem klienta

. Ewolucja - zmiana oprogramowania w odpowiedzi na

zmieniające się wymagania klienta

Inżynieria oprogramowania - 1 Slide 13

Co to jest model procesu tworzenia

oprogramowania?

. Uproszczona prezentacja procesu tworzenia

oprogramowania przedstawiona z określonej perspektywy

. Przykłady modeli procesów tworzenia oprogramowania:

. Model przepływu prac - sekwencja czynności

. Model przepływu danych - przepływ informacji

. Model rola/akcja - kto co robi?

. Ogólne modele tworzenia oprogramowania:

. Kaskadowy (ang. waterfall)

. Tworzenie ewolucyjne

. Formalne przekształcania

. Składanie systemu z komponentów ponownego użycia

Inżynieria oprogramowania - 1 Slide 14

Jakie są koszty inżynierii oprogramowania?

. W przybliżeniu 60 % to koszty związane z

rozwojem oprogramowania a 40% to koszty

testowania. W przypadku oprogramowania na

zamówienie koszty ewolucji często przewyższają

koszty tworzenia oprogramowania.

. Koszty zmieniają się w zależności od typu

tworzonego oprogramowania i stawianych mu

wymagań takich jak wydajność czy

niezawodność

. Rozdział kosztów zależy od używanego modelu

tworzenia oprogramowania

Inżynieria oprogramowania - 1 Slide 15

Co to są metody inżynierii oprogramowania?

. Uporządkowane podejście do tworzenia oprogramowania

które obejmuje modele systemu, notacje, reguły, wskazówki

projektowe i poradnictwo na temat procesu tworzenia

. Opisy modeli

. Opisy graficznych modeli które powinny być wyprodukowane

. Reguły

. Ograniczenia którym podlegają modele systemu

. Rekomendacje

. Rady dotyczące praktyki dobrego projektowania

. Poradnictwo na temat procesu tworzenia

. Czynności jakie należy kolejno wykonać

Inżynieria oprogramowania - 1 Slide 16

Co to jest CASE (Computer-Aided

Software Engineering)?

. Systemy oprogramowania przeznaczone do

wspomagania czynności procesu tworzenia

oprogramowania. Systemy CASE są często

używane do wspomagania metod inżynierii

oprogramowania

. Upper-CASE

. Narzędzia do wspomagania początkowych faz procesu

tworzenia oprogramowania (wymagania, projektowanie)

. Lower-CASE

. Narzędzia do wspomagania późniejszych faz procesu tworzenia

oprogramowania takich jak programowanie i testowanie

Inżynieria oprogramowania - 1 Slide 17

Jakie są atrybuty dobrego oprogramowania?

. Oprogramowanie powinno dostarczać wymaganą

funkcjonalność, być wydajne, łatwe w utrzymaniu, niezawodne,

efektywne i użyteczne

. Łatwe w utrzymaniu

. Oprogramowanie musi ewoluować zgodnie ze zmieniającymi się

potrzebami

. Niezawodność

. Oprogramowanie powinno być solidne i dobrze zabezpieczone

. Efektywność

. Oprogramowanie nie powinno marnotrawić zasobów systemu

. Użyteczność

. Oprogramowanie musi być użyteczne (łatwe w obsłudze) dla

użytkowników, dla których zostało zaprojektowane

Inżynieria oprogramowania - 1 Slide 18

Jakie są najistotniejsze wyzwania dla

inżynierii oprogramowania?

. Borykanie się z systemami dziedziczonymi,

wzrastającążnorodnością i żądaniem redukcji

czasu doręczania oprogramowania

. Systemy dziedziczone

. Stare, wartościowe systemy muszą być utrzymywane i

uaktualniane

. żnorodność

. Systemy są rozproszone i obejmują sprzęt i oprogramowanie

. Doręczenie

. Istnieje coraz większy nacisk na szybsze dostarczanie

oprogramowania

Inżynieria oprogramowania - 1 Slide 19

Odpowiedzialność etyczna i zawodowa

. Inżynieria oprogramowania pociąga za sobą dużo

większą odpowiedzialność niż proste

zastosowanie umiejętności technicznych

. Inżynierowie oprogramowania muszą

postępować w sposób uczciwy, etyczny i

odpowiedzialny jeśli chcą być uważani za

profesjonalistów

. Etyczne zachowanie to więcej niż proste

przestrzeganie prawa

Inżynieria oprogramowania - 1 Slide 20

Kwestia odpowiedzialności zawodowej

. Poufność

. Inżynierowie powinni zawsze dochowywać tajemnic

powierzonych przez swych pracodawców lub klientów bez

względu na to czy zawarto formalną umowę o ochronie

tajemnicy.

. Kompetencje

. Inżynierowie nie powinni zawyżać poziomu swoich

kompetencji. Nie powinni podejmować zleceń które

przekraczają ich kompetencje.

Inżynieria oprogramowania - 1 Slide 21

Kwestia odpowiedzialności zawodowej

. Prawa własności intelektualnej

. Inżynierowie powinni znać miejscowe prawo regulujące

korzystanie z własności intelektualnej takiej jak patenty, prawa

autorskie itd. Powinni szczególnie dbać o poszanowanie

intelektualnej własności swoich pracodawców i klientów.

. Niewłaściwe użycie komputera

. Inżynierowie oprogramowania nie powinni używać swoich

technicznych umiejętności w celu niewłaściwego używania

cudzych komputerów. Niewłaściwe użycie komputera może być

dość banalne (granie na maszynie pracodawcy) lub skrajnie

poważne (rozpowszechnianie wirusów).

Inżynieria oprogramowania - 1 Slide 22

ACM/IEEE kodeksy etyczne

. Stowarzyszenia zawodowe współpracują przy

tworzeniu kodeksu etycznego postępowania

. Członkowie tych organizacji zobowiązują się do

przestrzegania takiego kodeksu

. Kodeks zawiera osiem zasad odnoszących się do

postępowania i decyzji podejmowanych przez

profesjonalnych inżynierów oprogramowania,

włączając praktyków, nauczycieli, menedżerów,

jak również praktykantów i studentów tego

zawodu

Inżynieria oprogramowania - 1 Slide 23

Kodeks etyki - preambuła

. Preambuła

. Wersja skrócona kodeksu streszcza jego cele na wysokim

poziomie abstrakcji; postanowienia zawarte w wersji pełnej

zawierają przykłady i szczegółowe informacje o tym jak

powinniśmy postępować będąc prawdziwie profesjonalnymi

inżynierami oprogramowania. Bez określenia celów szczegóły

mogą wydawać się drobiazgowe i nudne. Bez szczegółów cele

będą brzmiały górnolotnie ale pusto. Cele i szczegóły razem

wzięte stanowią spójny kodeks.

. Inżynierowie oprogramowania muszą przyjąć na siebie

zobowiązanie utwierdzenia analizy, specyfikacji, projektowania,

budowy, testowania i pielęgnacji oprogramowania jako zawodu

pożytecznego i szanowanego. Zgodnie z tym zobowiązaniem

wobec zdrowia, bezpieczeństwa i dobrobytu społeczeństwa,

inżynierowie oprogramowania powinni stosować się do

następujących Ośmiu Zasad:

Inżynieria oprogramowania - 1 Slide 24

Kodeks etyki - zasady

1. SPOŁECZEŃSTWO

Inżynierowie oprogramowania powinni postępować dla dobra

społeczeństwa

2. KLIENT I PRACODAWCA

Inżynierowie oprogramowania powinni postępować zgodnie z

interesami swojego klienta lub pracodawcy zgodnymi z dobrem

społeczeństwa

3. PRODUKT

Inżynierowie oprogramowania powinni zapewnić że ich produkty i

związane z nimi zmiany spełniają najwyższe standardy

profesjonalizmu

Inżynieria oprogramowania - 1 Slide 25

Kodeks etyki - zasady

4. ROZSADEK

Inżynierowie oprogramowania powinni zachować rozsądek i

niezależność swoich sądów

5. ZARZĄDZANIE

Zarządzający inżynierami oprogramowania i zwierzchnicy powinni

przyjąć i promować etykę w zarządzaniu tworzeniem i pielęgnacją

oprogramowania

6. PROFESJA

Inżynierowie oprogramowania powinni podnosić wiarygodność i

reputację profesji zgodnie z dobrem społeczeństwa

Inżynieria oprogramowania - 1 Slide 26

Kodeks etyki - zasady

7. KOLEŻEŃSTWO

Inżynierowie oprogramowania powinni być uczciwi i chętni do

pomocy swoim kolegom

8. JA SAM

Inżynierowie oprogramowania powinni brać udział w długofalowej

nauce praktyki swojego zawodu. Powinni także promować etyczne

działanie w praktyce swojej profesji

Inżynieria oprogramowania - 1 Slide 27

Etyczne dylematy

. żnica zdań w stosunku do polityki zarządu

. Twój pracodawca działa w sposób nieetyczny i

wypuszcza system krytyczny z punktu widzenia

bezpieczeństwa bez zakończenia fazy testowania

systemu

. Uczestnictwo w tworzeniu systemów broni

wojskowej i systemów nuklearnych

Inżynieria oprogramowania - 1 Slide 28

System oprogramowania jako produkt

Program

System

oprogramowania

(interfejsy, integracja

Systemu)

Produkt

programowy

(uogólnienie, testowanie,

dokumentacja, pielęgnacja)

System oprogramowania

jako produkt

x3

x3

Inżynieria oprogramowania - 1 Slide 29

Radość programowania

. Rozkosz tworzenia

. Przydatność tworzenia czegoś przydatnego dla

innych ludzi

. Fascynacja tworzeniem złożonych przedmiotów

. Ciągłe uczenie i niepowtarzalność istoty zadania

. Radość pracy z łatwym do obróbki tworzywem

.Programowanie sprawia radość, bo zaspokaja

tkwiące w nas pragnienie twórcze i porusza naszą

wrażliwość, wspólną wszystkim ludziom.

Inżynieria oprogramowania - 1 Slide 30

Ból programowania

. Należy działać perfekcyjnie

. Ktoś inny ustala cele, przydziela zasoby i

dostarcza informacji

. Wyszukiwanie podstępnych, drobnych błędów to

tylko żmudna praca

. Poprawianie programu ma tylko liniową

zbieżność

. Świadomość przestarzałości produktu w chwili

jego ukończenia

Inżynieria oprogramowania - 1 Slide 31

Główne tezy

. Inżynieria oprogramowania to dziedzina inżynierii, która

obejmuje wszystkie aspekty tworzenia oprogramowania

. Produkty programowe składają się z utworzonych programów

oraz związanej z nimi dokumentacji. Zasadniczymi atrybutami

produktów są zdatność do pielęgnacji, niezawodność,

efektywność i użyteczność

. Procesy tworzenia oprogramowania składają się z czynności

prowadzących do utworzenia produktu programowego.

Głównymi czynnościami są: specyfikacja oprogramowania,

tworzenie, zatwierdzenie i ewolucja.

. Metody to uporządkowane sposoby budowy oprogramowania.

Obejmują one sugestie wyboru procesu tworzenia, notacji,

reguły określające jakie opisy systemu opracować, a także

wskazówki projektowe

Inżynieria oprogramowania - 1 Slide 32

Główne tezy

. Narzędzia CASE to systemy komputerowe, które są

przeznaczone do wspomagania rutynowych czynności procesu

tworzenia oprogramowania takich jak praca nad diagramami

projektowymi, sprawdzanie poprawności diagramów oraz

śledzenie wykonania testów

. Inżynierowie oprogramowania ponoszą odpowiedzialność

przed kolegami po fachu i społeczeństwem. Nie powinni

zajmować się jedynie aspektami technicznymi.

. Stowarzyszenia zawodowe publikują kodeksy postępowania,

które obejmują standardy zachowania oczekiwane od swoich

członków



Wyszukiwarka

Podobne podstrony:
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
zagadnienia egzaminacyjne z przedmiotu inżynieria oprogramowania zIO
Inżynieria oprogramowania Diagramy ERD
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
2007 05 Mechanizm koncepcji w języku C nowe oblicze szablonów [Inzynieria Oprogramowania]
Inżynieria oprogramowania syllabus IV niestac 07 08, Prywatne, WAT, SEMESTR IV, IO, io, Materiały od
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
inżynieria oprogramowani5s 3D2LFW6JYNMO6D276CSZQV5ONUNVXOTKWFXHA3A
inżynieria oprogramowani1 2EM7Y2ON72DKTCAQF3UOSCLXHY5636FZE7C7PUQ
inżynieria oprogramowani5 G46UQE27RE6UDINZWBW2TXNEOUUYOYV2MMVZ2NI
2008 06 Java Microedition – metody integracji aplikacji [Inzynieria Oprogramowania]
Inżynieria oprogramowania II
Opracowanie na Inżynierie Oprogramowania
Przykład diagramu sekwencji, Inżynieria oprogramowania
Inżynieria oprogramowania, Studia, Informatyka, Informatyka, Informatyka

więcej podobnych podstron