Inżynieria oprogramowania: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Enawrocka (dyskusja | edycje)
Nie podano opisu zmian
Enawrocka (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
==Ćwiczenia – Metody formalne, sieci Petriego==
== Forma zajęć ==
Wykład (30 godzin) + laboratorium (30 godzin)


===Informacje wstępne===
== Opis ==


Przedstawione zadania dotyczyć będą zagadnienia budowy i analizy sieci Petriego.
Zasady, metody i narzędzia prowadzenia projektów programistycznych.
Aby ułatwić tworzenie diagramów, zaleca się skorzystanie z darmowego
symulatora sieci [http://pipe2.sourceforge.net/ PIPE2].
----
===Zadanie 1. Wyznaczanie możliwych sekwencji odpaleń===
Oznacz, które z poniższych sekwencji odpaleń przejść są możliwe dla sieci Petriego zaprezentowanej na rysunku 1.
*T0, T1, T3, T4, T1
*T0, T1, T3, T2, T4, T1
*T0, T1, T2, T1, T3
*T0, T1, T2, T3, T4, T1


[[Image:io-07-lab-rys1.png|sieć Petriego do zadania 1]]
== Sylabus ==


Rys. 1. Sieć Petriego do zadania 1
=== Autor ===
* Jerzy Nawrocki


=== Wymagania wstępne ===


[[io-07-lab-odp01-wiki|Odpowiedzi do zadania 1]]
* Podstawy programowania
----
* Funkcje, relacje i zbiory. Elementy logiki matematycznej:  rachunek zdań i tautologie. Rekurencja.
===Zadanie 2. Wyznaczanie możliwych sekwencji odpaleń===
* Programowanie obiektowe.
Oznacz, które z poniższych sekwencji odpaleń przejść są możliwe dla sieci Petriego zaprezentowanej na rysunku 2.
*T1, T3, T5, T0, T3
*T1, T3, T5, T2, T0, T3
*T0, T3, T5, T1, T2
*T0, T2, T3, T5, T4
*T2, T0, T3, T5, T1, T4
*T2, T0, T3, T4, T1


[[Image:io-07-lab-rys2.png|Sieć Petriego do zadania 2]]
=== Zawartość ===


Rys. 2. Sieć Petriego do zadania 2
* Zasady skutecznego działania
* Personal Software Process
* Specyfikacja wymagań
* Kontrola jakości artefaktów
* Język UML
* Metody formalne
* Wzorce projektowe
* Zarządzanie konfiguracą
* Wprowadzenie do testowania
* Automatyzacja wykonywania testów
* Ewolucja oprogramowania i refaktoryzacja
* Programowanie Ekstremalne


===Moduły===
# Wprowadzenie do przedmiotu (flash / html / pdf) (Ćwiczenia)
# Zasady skutecznego działania  (flash / html / pdf) (Ćwiczenia)
# Specyfikacja wymagań (Ł.Olek) (flash / html / pdf) (Ćwiczenia)
# Kontrola jakości artefaktów (flash / html / pdf) (Ćwiczenia)
# Język UML, cz. I (flash / html / pdf) (Ćwiczenia)
# Język UML, cz. II (flash / html / pdf) (Ćwiczenia)
# Metody formalne (flash / html / pdf) ([[io-07-lab-wiki|Ćwiczenia]])
# Wzorce projektowe (flash / html / pdf) (Ćwiczenia)
# Zarządzanie konfiguracją (flash / html / pdf) (Ćwiczenia)
# Wprowadzenie do testowania (flash / html / pdf) (Ćwiczenia)
# Automatyzacja wykonywania testów (flash / html / pdf) (Ćwiczenia)
# Programowanie Ekstremalne (flash / html / pdf) (Ćwiczenia)
# Ewolucja oprogramowania i refaktoryzacja (flash / html / pdf) (Ćwiczenia)


[[io-07-lab-odp02-wiki|Odpowiedzi do zadania 2]]
=== Literatura ===
----
# M.Fowler, K.Scott. UML w kropelce. LTP, 2002.
===Zadanie 3.Zamiana sieci na postać symboliczną===
# S.Covey. 7 nawyków skutecznego działania. REBIS, 2002.
Możliwy jest przejście z zapisu graficznego na postać symboliczną. W tym celu stosuje się oznaczenia:
# W.Humphrey. A Discipline for Software Engineering. Addison-Wesley, 1995.
*Jeśli przejścia występują sekwencyjnie wyszczególniamy je po kolei np. T1 T2,
# K.Beck, A.Cynthia. Wydajne programowanie – Extreme Programming. Mikom, 2005.
*Jeśli przejścia mogą odpalić się równolegle oznaczamy je jako T1 || T2
*Jeśli pewna sekwencja przejść może odpalać się w pętli (T1 T2)*
Dla przykładowej sieci przedstawionej na rysunku 3, zapis ma postać
*( T0 ( T1 || T4 T5 ( T6 T7 T4 T5 )* T2 )*
 
[[Image:io-07-lab-rys3.png|Sieć Petriego do przykładu ze zamianą na notację symboliczną]]
 
Rys. 3. Sieć Petriego do przykładu ze zamianą na notację symboliczną
 
 
Stwórz zapis w notacji symbolicznej dla sieci przedstawionej na rysunku 4.  
 
[[Image:io-07-lab-rys4.png|Sieć Petriego do zadania 3]]
 
Rys. 4. Sieć Petriego do zadania 3
 
 
[[io-07-lab-odp03-wiki|Odpowiedzi do zadania 3]]
----
===Zadanie 4. Projektowanie sieci===
Należy zaprojektować sieć Petriego dla problemu czytelników i pisarzy, przy założeniach:
*jest jeden pisarz i trzech czytelników,
*jeśli pisarz pisze, żaden czytelnik nie może czytać,
*jeśli jeden czytelnik czyta, pozostali też mogą rozpocząć czytanie,
*jeśli któryś czytelnik czyta, pisarz nie może rozpocząć pisania
 
 
[[io-07-lab-odp04-wiki|Odpowiedzi do zadania 4]]
----
 
==Pytania do dyskusji==
#Czy sieci sieci Petriego nadają się do modelowania każdego oprogramowania?
#Jakie są ograniczenia stosowania metod formalnych w przemyśle?

Wersja z 23:25, 10 sie 2006

Forma zajęć

Wykład (30 godzin) + laboratorium (30 godzin)

Opis

Zasady, metody i narzędzia prowadzenia projektów programistycznych.

Sylabus

Autor

  • Jerzy Nawrocki

Wymagania wstępne

  • Podstawy programowania
  • Funkcje, relacje i zbiory. Elementy logiki matematycznej: rachunek zdań i tautologie. Rekurencja.
  • Programowanie obiektowe.

Zawartość

  • Zasady skutecznego działania
  • Personal Software Process
  • Specyfikacja wymagań
  • Kontrola jakości artefaktów
  • Język UML
  • Metody formalne
  • Wzorce projektowe
  • Zarządzanie konfiguracą
  • Wprowadzenie do testowania
  • Automatyzacja wykonywania testów
  • Ewolucja oprogramowania i refaktoryzacja
  • Programowanie Ekstremalne

Moduły

  1. Wprowadzenie do przedmiotu (flash / html / pdf) (Ćwiczenia)
  2. Zasady skutecznego działania (flash / html / pdf) (Ćwiczenia)
  3. Specyfikacja wymagań (Ł.Olek) (flash / html / pdf) (Ćwiczenia)
  4. Kontrola jakości artefaktów (flash / html / pdf) (Ćwiczenia)
  5. Język UML, cz. I (flash / html / pdf) (Ćwiczenia)
  6. Język UML, cz. II (flash / html / pdf) (Ćwiczenia)
  7. Metody formalne (flash / html / pdf) (Ćwiczenia)
  8. Wzorce projektowe (flash / html / pdf) (Ćwiczenia)
  9. Zarządzanie konfiguracją (flash / html / pdf) (Ćwiczenia)
  10. Wprowadzenie do testowania (flash / html / pdf) (Ćwiczenia)
  11. Automatyzacja wykonywania testów (flash / html / pdf) (Ćwiczenia)
  12. Programowanie Ekstremalne (flash / html / pdf) (Ćwiczenia)
  13. Ewolucja oprogramowania i refaktoryzacja (flash / html / pdf) (Ćwiczenia)

Literatura

  1. M.Fowler, K.Scott. UML w kropelce. LTP, 2002.
  2. S.Covey. 7 nawyków skutecznego działania. REBIS, 2002.
  3. W.Humphrey. A Discipline for Software Engineering. Addison-Wesley, 1995.
  4. K.Beck, A.Cynthia. Wydajne programowanie – Extreme Programming. Mikom, 2005.