• Nie Znaleziono Wyników

Wstęp do inżynierii oprogramowania.

N/A
N/A
Protected

Academic year: 2021

Share "Wstęp do inżynierii oprogramowania."

Copied!
16
0
0

Pełen tekst

(1)

Wykład 1

Inżynieria Oprogramowania

Wstęp do inżynierii oprogramowania.

Cykle rozwoju oprogramowania- iteracyjno-rozwojowy cykl

oprogramowania

Autor: Zofia Kruczkiewicz

(2)

System Informacyjny =Techniczny SI

zorganizowany zespół środków technicznych (komputerów, oprogramowania, urządzeń teletransmisyjnych itp.)

służący do gromadzenia, przetwarzania i przesyłania informacji

Techniczny system informacyjny:

Sprzęt

Oprogramowanie

Bazy danych, bazy wiedzy Formalny system informacyjny:

procedury zarządzania, bazy wiedzy

Nieformalny system informacyjny:

zasoby osobowe - ludzie System

informatyczny

jest to zbiór

powiązanych ze sobą elementów

nieformalnych, formalnych i technicznych,

którego funkcją jest

przetwarzanie danych przy użyciu techniki komputerowej

(3)

I. Obszar inżynierii oprogramowania

Charakterystyka kryzysu oprogramowania:

1. Przekraczanie terminów

1.1. brak właściwych technik budowy oprogramowania

1.2. brak właściwych języków programowania umożliwiających specyfikacje oprogramowania i tworzenie kodu źródłowego 1.3. brak doświadczeń w tworzeniu zespołów specjalistów,

zajmujących się tworzeniem programów

1.4. nieumiejętne kierowanie przedsięwzięciem programistycznym 2. Przerywanie prac z powodu utraty aktualności przez realizowany

projekt

2.1. wydłużony czas tworzenia oprogramowania, 2.2. szybki rozwój sprzętu

3. Tworzenie programów niezgodnych z wymaganiami klienta

3.1. brak właściwego sposobu porozumiewania się klienta z zespołem informatyków

3.2. brak odpowiednich norm jakości oprogramowania 3.3. niska niezawodność sprzętu i oprogramowania

(4)

Źródła powstania inżynierii oprogramowania - działu informatyki:

• metody opanowania kryzysu oprogramowania, trwającego od połowy lat sześćdziesiątych

• tworzenie oprogramowania na skalę produkcyjną.

Inżynieria oprogramowania jest wiedzą techniczną, która zajmuje się:

• procesem wytwarzania (produkcją) oprogramowania i jakością tego procesu

• budową oprogramowania i jakością oprogramowania (czyli uzyskanego produktu)

(5)

II. Zagadnienia inżynierii oprogramowania

1. Zarządzanie przedsięwzięciem programistycznym obejmujące:

1.1. techniki planowania, szacowania kosztów, harmonogramowania i monitorowania

1.2. sposoby przygotowania dokumentacji technicznej i użytkowej

1.3. techniki pracy zespołowej

1.4. określanie poziomu umiejętności specjalistów

1.5. zastosowanie narzędzi CASE (Computer Aided System Engineering)

2. Metody analizy, projektowania i implementacji (programowania)

(6)

3. Pomiary oprogramowania

3.1. Wyznaczanie i badanie atrybutów wewnętrznych

oprogramowania obejmujących właściwości struktury oprogramowania ⇒ metryki oprogramowania

3.2. Wyznaczanie i badanie atrybutów zewnętrznych oprogramowania:

3.2.1. jakości oprogramowania, obejmującej:

» niezawodność (testowalność)

» konserwowalność

» zrozumiałość

» wieloużywalność

» stopień osiągniętej abstrakcji 3.2.2. funkcjonalności

3.3.3. kosztu

(7)

4. Kształtowanie jakości oprogramowania:

4.1. sposoby poprawy niezawodności, konserwowalności, wieloużywalności, zrozumiałości, stopnia osiągniętej abstrakcji

4.2. sposoby testowania i walidacji systemów

4.3. badanie zależności między atrybutami wewnętrznymi i jakością oprogramowania (wyrażoną za pomocą

atrybutów zewnętrznych oprogramowania)

5. Rozwój środowisk i narzędzi programistycznych

(8)

Warstwy aplikacji (Java EE)*

(9)

Pięciowarstwowy model logicznego rozdzielania zadań (wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.)

W arstwa klienta

Klienci aplikacji, aplety, aplikacje i inne elementy z graficznym interfejsem użytkownika

W arstwa prezentacji

Strony JSP, serwlety i inne elementy interfejsu użytkownika

W arstwa biznesowa

Komponenty EJB i inne obiekty biznesowe

Warstwa integracji

JMS, JDBC, konektory i połączenia z systemami zewnetrznymi

W arstwa zasobów

Bazy danych, systemy zewnętrzne i pozostałe zasoby

Interakcja z użytkownikiem, urządzenia i prezentacja

interfejsu użytkownika

Logowanie, zarządzanie sesją, tworzenie zawartości,

formatowania i dostarczanie

Logika biznesowa, transakcje, dane i usługi

Adaptery zasobów, systemy zewnętrzne, mechanizmy zasobów, przepływ sterowania

Zasoby, dane i usługi zewnętrzne

(10)

III. Modele procesu wytwarzania oprogramowania - czyli modele cyklu życia oprogramowania

Tworzenie systemu informacyjnego jest powiązane z:

 budową oprogramowania: co i jak wykonać?

 zarządzaniem procesem tworzenia oprogramowania: kiedy wykonać?

 wdrażaniem oprogramowania

programowanie

(specyfikacja programu : deklaracje, definicje;

dodatkowe struktury danych:

struktury „pojemnikowe”, pliki, bazy danych)

testy oprogramowania

wdrażanie

testy wdrażania

projektowanie

(model projektowy:

architektura sprzętu i oprogramowania;

dostęp użytkownika;

przechowywanie danych)

testy projektu

model przedsiębiorstwa

• wymagania

analiza

(model konceptualny )

testy modelu

jak należy wykonać?

co należy wykonać?

i dynamiki systemu generowanie kodu UML)

Implementacja struktury ( diagramy,

Modelowanie struktury i dynamiki systemu

( diagramy UML )

(11)

Co i jak wykonać? - perspektywy projektowania obiektowych systemów informacyjnych

(wg Alan Shalloway, James R.Trott)

 koncepcji (model analizy)

( co obiekty powinny powinny robić?)



specyfikacji interfejsów (model projektowy)

( jak używać obiektów?)



implementacji (implementacja)

( w jaki sposób zaimplementować interfejs ?)



tworzenia i zarządzania obiektami (implementacja)

(obiekt A tworzy lub zarządza obiektem B )



używania obiektów (implementacja)

( obiekt A tylko używa obiektu B;

Niedozwolone jest, aby obiekt A używał i jednocześnie tworzył obiekty)

(12)

Metoda identyfikacji obiektów i klas

Analiza wspólności

Analiza zmienności

Perspektywa koncepcji

Perspektywa specyfikacji

Perspektywa implementacji

Klasa abstrakcyjna +Metody()

Klasa konkretna1

+Metody()

Klasa konkretna2

+Metody()

Związek między perspektywą specyfikacji, koncepcji i

implementacji

(13)

Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania – kiedy?

Z a rzą d za n ie zm ia n a m i P rzep ły w

d zia ła ń

W ym a g a n ia

A n a liza , P ro jek to w a n ie P ro g ra m o w a n ie

W d ro żen ie T esto w a n ie

Itera cje (cza s )

1 -a 2 -a - - - - - n -1 n

E ta p 1 : P o czą tek

E ta p 2 : O p ra co w a n ie

B u d o w a Z a k o ń czen ie

M o d elo w a n ie p rzed sięb io rstw a

Ś ro d o w isk o Z a rzą d za n ie p rzed sięw zięciem

(14)

Rola diagramów UML 2

 praca zespołowa

 pokonanie złożoności projektu

 formalne, precyzyjne prezentowanie projektu

 tworzenie wzorca projektu

 możliwość testowania oprogramowania we

 wczesnym stadium jego tworzenia

(15)

Diagramy UML modelowania strukturalnego

• Diagramy pakietów

• Diagramy klas

• Diagramy obiektów

• Diagramy mieszane

• Diagramy komponentów

• Diagramy wdrożenia

UML – język wspierający zunifikowany iteracyjno

- przyrostowy proces tworzenia oprogramowania

(16)

Diagramy UML modelowania zachowania

• Diagramy przypadków użycia

• Diagramy aktywności

• Diagramy stanów

• Diagramy komunikacji

• Diagramy sekwencji

• Diagramy czasu

• Diagramy interakcji

Cytaty

Powiązane dokumenty

2) Testowalność oprogramowania Testab HV jest prawdopodobieństwem, że program jest uszkodzony (błędnie wykonany) dla danego wejścia określonego funkcją

Zewnętrzna encja reprezentuje źródło danych na diagramie (jedna z encji lub jej część z diagramu encji, określająca dane wejściowe w procesie przepływu danych lub

Wybór inżynierii odwrotnej – tworzenie diagramów UML na podstawie kodu źródłowego programu... Zofia Kruczkiewicz, Podstawy inż

Wybór inżynierii odwrotnej – tworzenie diagramów UML na podstawie kodu źródłowego programu... Zofia Kruczkiewicz, Podstawy inż

Należy unikać wartości poniżej 2 x prądu znamionowego silnika, gdyż w tych warunkach moment obrotowy obciążonego silnika jest zwykle niewystarczający dla

o biblioteka współdzielona – pliki obiektów są połączone w jeden plik, współużywany przez wiele programów; zmiana biblioteki nie wymaga ponownej kompilacji każdego programu,

Należy skopiować potrzebne pliki na flash dysk używając dostarczonego przez producenta dysku skryptu copy2doc. Przygotowanie pliku inicjacji systemu sysinit dla systemu docelowego

Gdy pamięć NAND podłączona jest bezpośrednio do procesora do obsługi tej pamięci stosuje się specjalny system plików dla pamięci (ang. Flash File System).. 5 Instalacja