• 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!
17
0
0

Pełen tekst

(1)

Wykład 1 – część pierwsza

Wstęp do inŜynierii oprogramowania.

Cykle rozwoju oprogramowania- iteracyjno-rozwojowy cykl

oprogramowania

(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

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

( co obiekty powinny powinny robić?)

 specyfikacji interfejsów

( jak uŜywać obiektow?)

 implementacji

( w jaki sposób zaimplementować interfejs ?)

 tworzenia i zarządzania

(obiekt A tworzy i zarządza B)

 zastosowania

(obiekt A tylko stosuje obiekt B;

zabronione jest, aby obiekt A tworzył i uŜywał B)

(12)

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

(13)

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

(14)

Diagramy UML modelowania zachowania

• Diagramy przypadków uŜycia

• Diagramy aktywności

• Diagramy stanów

• Diagramy komunikacji

• Diagramy sekwencji

• Diagramy czasu

• Diagramy interakcji

(15)

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

(16)

„business use case” :

a) opis „uses cases” i „actors”

odpowiadających procesowi biznesowemu (the business) oraz klientom (customers) procesu biznesowego

b) biznesowy model obiektowy

(business object model) składający się z wykonawców (workers), encji

biznesowych (business entities), jednostek pracy (work units) realizujących „use case”,

Model biznesowy (business model) -wewnętrzny model procesu biznesowego

organizacji, wyszczególniany przez klientów systemu

(customers)

diagram najwaŜniejszych klas dziedziny (domain classes) z

niewielką ilością operacji-metod (około 10-50 w notacji UML), reszta

przewidywanych klas w glosariuszu (glossary);

Model dziedziny (domain

model)-najwaŜniejsze obiekty systemu: „rzeczy” lub zdarzenia podawane przez ekspertów

zrozumienie kontekstu systemu

status, szacowany koszt, priorytety, poziom ryzyka implementacji itp.

lista znamionowa lista

kandydujących wymagań

Opis produktu wyjściowego Produkty wyjściowe

Czynności

Działanie 1: Wymagania

(17)

ograniczenia środowiska i implementacji (np. typ komputera, typ plików, rodzaj systemu operacyjnego, typ oprogramowania Internetu), zaleŜności, konserwacja, zdolność do poszerzania,

uzupełniające wymagania lub (supplementary requirements)- indywidualne wymagania

niefunkcjonalne wymagania

proces reprezentowania wymagań jako „use cases” oraz innych produktów specyfikowany za pośrednictwem języka UML:

1) model „use cases” zawierający „actors” i „use cases” oraz powiązania (np. dziedziczenia) między nimi (klasy zawierające atrybuty i operacje) oraz: dodatkowo diagramy (diagrams):

stanów(statecharts), czynności (activity ), sekwencji akcji (sequence) oraz współpracy (collaboration), przepływ zdarzeń (flow events)-opis tekstowy realizujących zachowanie systemu przy działaniu

poszczególnych „use case” lub „actors” i „use case” - czyli opis sekwencji akcji odpowiednich do modyfikacji, przeglądu,

projektowania i testowania, specjalne wymagania (spevial

requirements) zawierające niefunkcjonalne wymagania (nonfunctional requirements) w postaci opisu tekstowego,

2) opis architektury (architecture description) „use cases” ,

3) glosariusz (glossary) - definicje waŜnych termów wyprowadzanych z modelu dziedziny (domain model) lub modelu biznesowego

(business model),

4) prototyp interfejsu uŜytkownika (user-interface prototype)- interakcje między „actors” - ludźmi i oprogramowaniem

„Use-case”

model

(identyfikacja

„use cases” z modelu

biznesowego) funkcjonalne

wymagania

Cytaty

Powiązane dokumenty

Z ich punktu widzenia warto więc starać się przewidywać, jakie żądania zmian systemu prawdopodobnie się pojawią, które części systemu prawdopodobnie sprawią

Stworzenie, omówionych już, diagramu przypadków użycia i diagramu klas zwykle zapoczątkowuje proces modelowania przyszłego systemu informatycznego, a ściśle

o Metody zadeklarowane w części publicznej definicji klasy (public) są dostępne z zewnątrz klasy (mogą być wywoływane przez metody innych klas, lub

Obiekty, które mogą odbierać sygnały asynchroniczne, a także obiekty aktywne, gdyby nie miały maszyny stanowej, musiałyby ignorować te zdarzenia

Metryka CA wyznacza liczbę klas, które używają danej klasy przez wywołanie jej metod zwykłych lub wirtualnych (tyle razy liczonych, ile klas przesłania metodę),

Na podstawie aktualnych informacji o postępie realizacji Zadań (wykonana aktualizacja Dotychczasowego czasu pracy oraz Pozostałego szacowany czas) Kierownik Projektów aktualizuje

- Klient Sklepu może wykonać Rezerwację dokonując wyboru Typ Samochodu oraz wyboru Producenta Samochodu, podając konkretny okres czasu rezerwacji – utworzona Rezerwacja zawiera

Dodawanie wypożyczenia (na podstawie danych identyfikujących Klienta, danych identyfikujących Typ Produktu lub/ i Producenta poszukiwanych w rezerwacjach wyszukanego Klienta