systemy diagramowe

69
2013Z Inżynieria Oprogramowania WYKŁAD 1: Wprowadzenie do inżynierii oprogramowania

Upload: kamsus0102

Post on 05-Jan-2016

14 views

Category:

Documents


0 download

DESCRIPTION

Prezentacja dot. systemów diagramowych

TRANSCRIPT

Page 1: Systemy diagramowe

2013Z

Inżynieria Oprogramowania

WYKŁAD 1: Wprowadzenie do inżynierii oprogramowania

Page 2: Systemy diagramowe

2

0

1

3

Rozkład jazdy

1. Pojęcie inżynierii oprogramowania

2. Oprogramowanie jako produkt

3. Rodzaje oprogramowania

4. Inżynieria oprogramowania w sieci

5. Etyka inżynierii oprogramowania

WYKŁAD 1 2

Page 3: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii

oprogramowania

WYKŁAD 1 3

Page 4: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

WYKŁAD 1 4

Pojęcie inżynierii oprogramowania zostało

zaproponowane po raz pierwszy w latach 1960, podczas

konferencji poświęconej tak zwanemu wówczas

"kryzysowi oprogramowania"

Wynikał on bezpośrednio z wprowadzenia sprzętu

komputerowego trzeciej generacji.

Page 5: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

WYKŁAD 1 5

W odróżnieniu od komputerów drugiej generacji,

współczesne systemy oprogramowania charakteryzują

się następującymi cechami:

modelują elementy świata rzeczywistego

są duże i złożone

są abstrakcyjne

Page 6: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

WYKŁAD 1 6

muszą być wysoce niezawodne

muszą być łatwe w utrzymaniu: w miarę zmian zachodzących w

świecie, oprogramowanie powinno nadążać za zmieniającymi się

wymaganiami

powinny być przyjazne dla użytkownika, co oznacza istotną rolę

interfejsu użytkownika

Page 7: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

WYKŁAD 1 7

Rozwój oprogramowania znajdował się w kryzysie ponieważ

wykorzystywane wówczas metody (jeżeli jakiekolwiek były

stosowane) były niewystarczające, ponieważ:

techniki wykorzystywane przy małych systemach były nieskalowalne

duże projekty miały paroletnie opóźnienia, co pociągało za sobą

większe koszty niż pierwotnie przewidywano

wytwarzane oprogramowanie często było zawodne i trudne do

utrzymania

Page 8: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

WYKŁAD 1 8

Fakt, że koszty sprzętu nieproporcjonalnie malały w

stosunku do wzrostu kosztów oprogramowania, jak i

wspomniane wcześniej problemy, wpłynęły na

konieczność stworzenia nowych teorii, metod i

narzędzi w celu zarządzania procesem wytwarzania

oprogramowania

Page 9: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

WYKŁAD 1 9

„Inżynieria oprogramowania" zajmuje się zatem teoriami,

metodami i narzędziami wykorzystywanymi do wytwarzania

oprogramowania.

Celem jest wytworzenie niezawodnego oprogramowania,

dostarczonego na czas oraz w ramach przewidywanego

budżetu, zgodnego z wymaganiami użytkownika

Page 10: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

Metody inżynierii oprogramowania, to ustrukturalizowane

podejście do tworzenia oprogramowania, które zawiera modele

systemu, notacje, zasady, wskazówki projektowe i opis procedury

opis modelu – graficzne prezentacja modeli, które zostaną

wytworzone

zasady – ograniczenia stosowane do modeli systemu

zalecenia – porady dotyczące dobrych praktyk projektowania

opis procedury – jakie działania należy kolejno podejmować

10 WYKŁAD 1

Page 11: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

CASE (Computer-Aided Software Engineering) stanowi

rodzaj oprogramowania służącego zapewnieniu

zautomatyzowanego wsparcia dla czynności związanych z

procesem wytwarzania oprogramowania

Upper-CASE - narzędzia dla wspierania wczesnych działań procesu w

zakresie wymagań i projektowania

Lower-CASE - narzędzia wspierające późniejsze działania, takie jak

programowanie, debuggowanie i testowanie

11 WYKŁAD 1

Page 12: Systemy diagramowe

2

0

1

3

Pojęcie inżynierii oprogramowania

WYKŁAD 1 12

Inżynieria oprogramowania nie polega wyłącznie na

stworzeniu działającego systemu,

lecz również pełnej dokumentacji, takiej jak projekt

systemu, czy instrukcja obsługi.

Page 13: Systemy diagramowe

2

0

1

3

WYKŁAD 1 13

Istnieje wiele różnych rodzajów systemów

komputerowych, od prostych systemów wbudowanych

do wysoce złożonych. Należy pamiętać, że nie istnieją

uniwersalne notacje, metody, czy techniki tworzenia

oprogramowania, ponieważ różne typy wymagają

różnych podejść.

Pojęcie inżynierii oprogramowania

Page 14: Systemy diagramowe

2

0

1

3

WYKŁAD 1 14

Na przykład, projektowanie systemu informacyjnego

dla organizacji całkowicie różni się od budowy

sterownika dla zautomatyzowanej aparatury naukowej.

Wszystkie aplikacje wymagają inżynierii

oprogramowania, lecz nie wszystkie będą

wykorzystywać te same techniki.

Pojęcie inżynierii oprogramowania

Page 15: Systemy diagramowe

2

0

1

3

WYKŁAD 1 15

W dalszym ciągu istnieje wiele projektów kończących się

porażkami tworzonego oprogramowania. Istnieją dwa podstawowe

czynniki stanowiące powody niepowodzeń:

1. Rosnące wymagania – w miarę, jak nowe techniki inżynierii

oprogramowania pozwalają na tworzenie większych i bardziej

złożonych systemów, zmieniają się również i potrzeby. Systemy

powinny być tworzone i dostarczane szybciej, jednocześnie przy

większej skali i złożoności.

Pojęcie inżynierii oprogramowania

Page 16: Systemy diagramowe

2

0

1

3

WYKŁAD 1 16

Ponadto oczekuje się, że będą posiadały właściwości,

które do tej pory wydawały się nie do osiągnięcia.

Sprawia to, że istniejące metody nie są w stanie

sprostać nowym oczekiwaniom, co wymaga tworzenia

nowych technik, które byłyby w stanie wyjść im

naprzeciw.

Pojęcie inżynierii oprogramowania

Page 17: Systemy diagramowe

2

0

1

3

WYKŁAD 1 17

2. Niskie oczekiwania – stosunkowo łatwo jest napisać

program komputerowy bez użycia metod i technik

inżynierii oprogramowania. Wiele firm weszło w

tworzenie oprogramowania, w miarę jak ich produkty

i usługi ewoluowały.

Pojęcie inżynierii oprogramowania

Page 18: Systemy diagramowe

2

0

1

3

WYKŁAD 1 18

Nie stosują jednak metod inżynierii oprogramowania

w ich codziennej pracy. W związku z tym, ich

oprogramowanie jest często bardziej kosztowne, lecz

mniej niezawodne. Potrzeba zatem lepszej edukacji i

szkoleń w zakresie inżynierii oprogramowania.

Pojęcie inżynierii oprogramowania

Page 19: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 19

Page 20: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 20

Wiele osób pisze programy komputerowe na własny

użytek, lecz większość aplikacji to profesjonalne

oprogramowanie tworzone w celach biznesowych,

włączając w to oprogramowanie urządzeń, jak i gotowe

produkty, takie jak systemy informatyczne dla

organizacji, czy aplikacje wykorzystywane do

projektowania (CAD).

Page 21: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 21

Profesjonalne oprogramowanie jest przeznaczone do

wykorzystania przez innych użytkowników, niż jego

twórca i raczej jest tworzone przez zespoły, a nie

poszczególnych inżynierów. Jest utrzymywane i

rozwijane przez cały cykl życia.

Page 22: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 22

Celem inżynierii oprogramowania jest stworzenie

oprogramowania wysokiej jakości.

Produkt końcowy stanowią systemy dostarczone do

klienta wraz z dokumentacją opisującą sposób

instalacji i obsługi systemu.

Page 23: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 23

Jakość oprogramowania jest definiowana poprzez (za wyjątkiem

zakresu funkcjonalnego samego produktu) cechy wdrożonego

systemu, który został zainstalowany i uruchomiony.

Krytyczne cechy oprogramowania obejmują:

Użyteczność

Utrzymanie

Niezawodność

Wydajność

Page 24: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 24

Użyteczność:

Oprogramowanie powinno być użyteczne i wykorzystywane

do ułatwiania oraz ulepszania ludzkiego życia.

W tym celu oprogramowanie powinno posiadać odpowiedni

interfejs użytkownika oraz wyczerpująca dokumentację

Page 25: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 25

Utrzymanie:

Powinna istnieć możliwość rozwoju oprogramowania, w celu

bieżącego zaspokajania zmieniających się potrzeb

użytkowników.

Oprogramowanie powinno być elastyczne w stosunku do

potencjalnie pojawiających się zmian.

Page 26: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 26

Niezawodność:

Zawiera szereg cech, takich jak: stabilność, poziom

zabezpieczeń i bezpieczeństwo użycia.

Niezawodne oprogramowanie nie powinno powodować

żadnej fizycznej, ani ekonomicznej szkody w przypadku

awarii systemu.

Page 27: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 27

Wydajność:

Oprogramowanie nie powinno przyczyniać się do

marnotrawienia zasobów systemowych, takich jak pamięć,

czy moc obliczeniowa.

Page 28: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 28

Należy zauważyć, że względne znaczenie tych parametrów

zmienia się w zależności od systemu, a optymalizacja wszystkich

cech jest bardzo trudna, ponieważ niektóre z nich się częściowo

wykluczają.

Również zależność miedzy ponoszonymi kosztami a osiąganymi

usprawnieniami w ramach każdej z charakterystyk nie jest

proporcjonalna.

Page 29: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 29

Oprogramowanie jest kosztowne

Każdy projekt stanowi kompromis między:

funkcjonalnością

zasobami (koszty)

terminarzem

Page 30: Systemy diagramowe

2

0

1

3

Koszty oprogramowania:

Około 60% to koszty rozwoju (wytworzenia), 40% stanowią koszty

testowania.

W przypadku oprogramowania dedykowanego koszty rozwoju często

przewyższają koszty wytworzenia

Koszty różnią się w zależności od rodzaju systemu i wymagań systemu w

zakresie cech takich jak wydajność i niezawodność

Podział kosztów uzależniony jest od przyjętego modelu tworzonego systemu

Oprogramowanie jako produkt

30 WYKŁAD 1

Page 31: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 31

Wytwarzanie dobrego oprogramowania wymaga:

dobrze zdefiniowanego procesu rozwoju, z przejrzystymi

etapami działań, z których każdy posiada produkt końcowy

metod i technik do przeprowadzenia etapów działań oraz do

modelowania ich produktów końcowych

narzędzi do tworzenia produktów

Page 32: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 32

Oprogramowanie jest bardzo zróżnicowane

Różni się wymaganiami klienta (użytkownika)

Nie istnieje ustandaryzowany proces wytwarzania

oprogramowania

Nie istnieje „najlepszy” język programowania, system

operacyjny, platforma sprzętowa, system bazy danych, czy

środowisko deweloperskie

Page 33: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 33

Rodzaje oprogramowania w zależności od klienta:

powielarne (generic)

dedykowane (bespoke / customized)

Istnieje również wiele systemów stanowiących

skastomizowaną wersję modułów produktów generycznych

Page 34: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 34

Klienci dostarczają zasobów a w zamian

oczekują produktów

Satysfakcja klienta stanowi podstawową miarę

sukcesu

Page 35: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 35

Doświadczeni inżynierowie znają szeroki zakres

podejść, metod i narzędzi

Sztuka inżynierii oprogramowania polega na wyborze

odpowiednich metod dla danego projektu i efektywnym

ich zastosowaniu

Page 36: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 36

Systemowe podejście do inżynierii oprogramowania

jest nazywane również procesem oprogramowania

(software process).

Proces stanowi sekwencję działań prowadzących do

wytworzenia produktu aplikacyjnego.

Page 37: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 37

Istnieje kilka podstawowych czynności, które są

wspólne dla wszystkich procesów wytwarzania

oprogramowania:

1. Specyfikacja, gdzie klient przy pomocy inżynierów

definiuje jakie oprogramowanie ma zostać stworzone,

wraz z wiążącymi się z tym ograniczeniami

Page 38: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 38

2. Tworzenie oprogramowania, gdzie oprogramowanie jest

projektowane i programowane

3. Walidacja, gdzie oprogramowanie jest sprawdzane pod

kątem wymagań użytkownika

4. Rozwój systemu, gdzie oprogramowanie jest

modyfikowane w miarę zmieniających się potrzeb

klienta i wymagań rynkowych

Page 39: Systemy diagramowe

2

0

1

3

Oprogramowanie jako produkt

WYKŁAD 1 39

Różne rodzaje systemów wymagają odmiennego podejścia do procesu

tworzenia. Przykładowo, systemy czasu rzeczywistego

wykorzystywane w lotnictwie powinny być całościowo doprecyzowane

przed rozpoczęcia etapu tworzenia oprogramowania.

W systemach e-commerce, specyfikacje i program są zazwyczaj

tworzone jednocześnie. W związku z tym, te podstawowe działania

mogą być zorganizowane na różne sposoby i opisane na różnych

poziomach szczegółowości, w zależności od rodzaju oprogramowania.

Page 40: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 40

Page 41: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 41

Istnieją różne rodzaje oprogramowania. Pomimo, że

nie ma jednej uniwersalnej metody wytwarzania

oprogramowania, to jednak istnieją wspólne

przesłanki, które można odnieść do każdego z typów

aplikacji.

Page 42: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 42

Heterogeniczność

Coraz częściej oprogramowanie musi funkcjonować na

zasadzie systemów rozproszonych w całej sieci,

obejmujących różne rodzaje komputerów i urządzeń

mobilnych.

Page 43: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 43

Zmiany społeczne i biznesowe

Społeczeństwo i otoczenie biznesowe zmieniają się

dosyć szybko, w miarę jak powstają nowe modele

ekonomiczne a nowe technologie stają się dostępne.

Muszą być w stanie zmieniać istniejące

oprogramowanie oraz szybko rozwijać nowe.

Page 44: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 44

Zaufanie i bezpieczeństwo

W związku z tym, że różnego rodzaju aplikacje są

wplecione w codzienne życie osobiste i biznesowe, jest

szczególnie istotne, aby oprogramowanie było

bezpieczne i godne zaufania.

Page 45: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 45

Aplikacje autonomiczne (Stand-alone applications)

systemy aplikacji, które uruchamiane są na komputerze

lokalnym. Obejmują one wszystkie niezbędne funkcje i

nie muszą być podłączone do sieci.

Page 46: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 46

Interaktywne aplikcje systemów transakcyjnych

(Interactive transaction-based applications)

aplikacje wykonywane na zdalnym komputerze,

dostępne dla użytkowników z ich komputerów

personalnych lub terminali. Zaliczają się do nich

aplikacje internetowe, takie jak np. e –commerce.

Page 47: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 47

Wbudowane systemy sterowania (Embedded control

systems)

systemy sterowania oprogramowaniem, kontrolujące i

zarządzające urządzeniami sprzętowymi. Jest to

najliczniejsza grupa systemów.

Page 48: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 48

Systemy przetwarzania wsadowego (Batch processing

systems)

systemy biznesowe, które są przeznaczone do

przetwarzania danych w dużych partiach wsadowych.

Przetwarzają duże ilości poszczególnych wejść w celu

transformacji w odpowiednie wyjścia.

Page 49: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 49

Entertainment systems

systemy, które służą przede wszystkim do użytku

osobistego w celach rozrywkowych.

Page 50: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 50

Systemy do modelowania i symulacji (Systems for

modeling and simulation)

systemy, które zostały opracowane przez naukowców i

inżynierów do modelowania fizycznych procesów lub

sytuacji, obejmujących wiele oddzielnych,

współdziałających ze sobą obiektów.

Page 51: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 51

Systemy zbierania danych (Data collection systems)

systemy, które zbierają dane z otoczenia za pomocą

zestawu czujników i przesyłają te dane do innych

systemów do dalszego przetwarzania.

Page 52: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 52

Nadsystemy (Systems of systems)

układy, które są złożone z wielu innych systemów

komputerowych.

Page 53: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 53

Niektóre podstawowe zasady stosuje się do wszystkich

rodzajów oprogramowania, niezależnie od

zastosowanych technik:

Systemy powinny być tworzone z wykorzystaniem

przejrzystego, dobrze zarządzanego procesu rozwoju.

Same procesy mogą się różnić w zależności od typu

oprogramowania.

Page 54: Systemy diagramowe

2

0

1

3

Rodzaje oprogramowania

WYKŁAD 1 54

Niezawodność i wydajność są istotne z punktu widzenia

wszystkich rodzajów systemów.

Istotna jest przejrzystość oraz zarządzanie specyfikacją

wymagań oprogramowania (co program powinien robić).

W stosownych przypadkach, należy ponownie użyć

oprogramowania, które zostało już raz opracowane,

zamiast tworzyć nowe.

Page 55: Systemy diagramowe

2

0

1

3

Inżynieria oprogramowania

w sieci

WYKŁAD 1 55

Page 56: Systemy diagramowe

2

0

1

3

Inżynieria oprogramowania w sieci

WYKŁAD 1 56

Sieć obecnie stanowi podstawową platformę

uruchomieniową dla wielu aplikacji i w coraz większym

stopniu organizacje rozwijają systemy sieciowe, niż

lokalne.

Usługi sieciowe pozwalają na dostęp do funkcjonalności

aplikacji w ramach sieci.

Page 57: Systemy diagramowe

2

0

1

3

Inżynieria oprogramowania w sieci

WYKŁAD 1 57

Cloud computing stanowi podejście do świadczenia

usług informatycznych, w którym aplikacje

uruchamiane są zdalnie "w chmurze".

Użytkownicy nie dokonują zakupu oprogramowania lecz

płacą za jego użytkowanie.

Page 58: Systemy diagramowe

2

0

1

3

Inżynieria oprogramowania w sieci

WYKŁAD 1 58

Ponowne wykorzystanie oprogramowania stanowi

dominujące podejście do tworzenia systemów opartych

na WWW.

Podczas tworzenia tych systemów należy zastanowić się,

jak można zestawić je z komponentów istniejącego już

oprogramowania i systemów.

Page 59: Systemy diagramowe

2

0

1

3

Inżynieria oprogramowania w sieci

WYKŁAD 1 59

Systemy webowe powinny być tworzone i wdrażane

stopniowo.

Obecnie powszechnie uznaje się, że nie jest możliwym

określenia z góry wszystkich wymagań dla takich

systemów.

Page 60: Systemy diagramowe

2

0

1

3

Inżynieria oprogramowania w sieci

WYKŁAD 1 60

Interfejsy użytkownika są ograniczone przez możliwości

przeglądarek internetowych.

Technologie takie jak AJAX pozwalają na tworzenie

znacznie bogatszych interfejsów w ramach przeglądarek,

lecz nadal są trudne do wykorzystania. Znacznie częściej

stosowane są formularze internetowe wykorzystujące

lokalne skrypty.

Page 61: Systemy diagramowe

2

0

1

3

Etyka inżynierii

oprogramowania

WYKŁAD 1 61

Page 62: Systemy diagramowe

2

0

1

3

Etyka inżynierii oprogramowania

WYKŁAD 1 62

Organizacje muszą pokładać ufność w inżynierach

oprogramowania z zakresie:

kompetencji: oprogramowanie, które nie działa prawidłowo

i efektywnie może zaburzyć funkcjonowanie organizacji

poufności: programiści i administratorzy mogą mieć dostęp

do ściśle poufnych informacji (tajemnice handlowe, dane

osobowe)

Page 63: Systemy diagramowe

2

0

1

3

Etyka inżynierii oprogramowania

WYKŁAD 1 63

otoczenia prawnego: oprogramowanie osadzone jest w

złożonym otoczeniu prawnym (prawa własności

intelektualnej, etyka zawartości elektronicznej)

dopuszczalnego wykorzystania i nadużyć: nadużycia i

wrogie działania mogą sparaliżować funkcjonowanie

organizacji

Page 64: Systemy diagramowe

2

0

1

3

Kodeks Etyki

The ACM/IEEE Code of Ethics

64

Software Engineering Code of Ethics and Professional Practice

ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices

PREAMBLE

The short version of the code summarizes aspirations at a high level of the abstraction; the clauses

that are included in the full version give examples and details of how these aspirations change the

way we act as software engineering professionals. Without the aspirations, the details can become

legalistic and tedious; without the details, the aspirations can become high sounding but empty;

together, the aspirations and the details form a cohesive code.

Software engineers shall commit themselves to making the analysis, specification, design,

development, testing and maintenance of software a beneficial and respected profession. In

accordance with their commitment to the health, safety and welfare of the public, software

engineers shall adhere to the following Eight Principles:

WYKŁAD 1

Page 65: Systemy diagramowe

2

0

1

3

Zasady etyki

65

1. PUBLIC - Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests

of their client and employer consistent with the public interest.

3. PRODUCT - Software engineers shall ensure that their products and related modifications meet

the highest professional standards possible.

4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional

judgment.

5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an

ethical approach to the management of software development and maintenance.

6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession

consistent with the public interest.

7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their

profession and shall promote an ethical approach to the practice of the profession.

WYKŁAD 1

Page 66: Systemy diagramowe

2

0

1

3

Etyka inżynierii oprogramowania

WYKŁAD 1 66

Dylematy etyczne:

Brak porozumienia w kwestii zasad polityki kierownictwa.

Pracodawca postępuje w sposób nieetyczny i pozwala na

użytkowanie nie sprawdzonego pod względem bezpieczeństwa

systemu, przed zakończeniem testów.

Udział w tworzeniu rozwiązań systemów uzbrojenia i systemów

jądrowych.

Page 67: Systemy diagramowe

2

0

1

3

Pytania

WYKŁAD 1 67

1. Rozważyć konkretne oprogramowanie, które zapewnia

komfort/dyskomfort w używaniu. Pod jakim względem jest to

system wysokiej/niskiej jakości?

2. Podać przykład znanych przykładów porażek w zakresie

pożądanych cech oprogramowania, które pociągnęły za sobą

poważne konsekwencje.

Page 68: Systemy diagramowe

2

0

1

3

Zadanie domowe

WYKŁAD 1 68

Przedstawić cechy koncepcji

Sofware as a Service

(oprogramowanie jako usługa)

Page 69: Systemy diagramowe

WYKŁAD 1 69

Na dzisiaj koniec…