Inżynieria oprogramowania. Faza implmentacji. wykład 7



Podobne dokumenty
Wykład 7. Projektowanie kodu oprogramowania

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych

Bazy danych. Andrzej Łachwa, UJ, /15

Zarządzanie transakcjami

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

przykłady problemów; realizacja dostaw części od producenta do klienta:

Zasady organizacji projektów informatycznych

Pojęcie bazy danych. Funkcje i możliwości.

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

070 TRANSAKCJE. Prof. dr hab. Marek Wisła

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych 2. Wykład 1

Transakcje. Bazy danych 155

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Wykład I. Wprowadzenie do baz danych

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS

Bazy danych 9. SQL Klucze obce Transakcje

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Adam Cankudis IFP UAM

Historia modeli programowania

SZKOLENIE: Administrator baz danych. Cel szkolenia

Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca:

Wykład 1 Inżynieria Oprogramowania

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje

Oracle PL/SQL. Paweł Rajba.

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Możliwe strategie tworzenia niezawodnego oprogramowania:

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Dokument Detaliczny Projektu

Właściwości transakcji

PODSTAWY BAZ DANYCH Wykład 9

Bazy danych w sterowaniu

Bazy danych 2. Wykład 6 Transakcje

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Dokument Detaliczny Projektu

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Oracle11g: Wprowadzenie do SQL

Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Wprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji

Database Connectivity

Spis treści. Przedmowa

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Galileo - encyklopedia internetowa Plan testów

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Wykład 0 Informacje Podstawowe

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Modelowanie i Programowanie Obiektowe

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Administracja bazami danych

PROGRAM PRAKTYKI ZAWODOWEJ. Technikum Zawód: technik informatyk

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Hbase, Hive i BigSQL

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Programowanie MorphX Ax

Podstawy Systemów Zarządzania Baz Danych

Testowanie i walidacja oprogramowania

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

Programowanie obiektowe

Bazy danych. Zasady konstrukcji baz danych

Rozproszone i obiektowe systemy baz danych

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Tadeusz Pankowski

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

15. Funkcje i procedury składowane PL/SQL

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

I. Techniki wielowersyjne sterowania współbieżnością

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Piotr Bubacz Cloud Computing

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Plan rozdziału. Wprowadzenie. Wprowadzenie. Specyfika baz danych

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Język programowania. Andrzej Bobyk

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Transkrypt:

Inżynieria oprogramowania Faza implmentacji wykład 7

Charakterystyka fazy implementacji Faza określenia wymagań: CO system ma robić? Faza analizy: JAK system ma działać? Faza projektowania: JAK system ma być zaimplementowany? Faza implementacji Wynikiem fazy analizy jest gotowy system Rola fazy implementacji maleje dzięki systemom typu RAD i automatycznym generatorom kodu (parsery, itp)

Niezawodność oprogramowania Istotne zawsze, kluczowe w zastosowaniach krytycznych. Metody zwiększania niezawodności Tolerancja występujących błędów Unikanie błędów Unikanie niebezpiecznych technik (wątki, skoki, wskaźniki, przerwania,... ) Stosowanie zasady ograniczonego dostępu (reguły zakresu, hermetyzacja, podział pamięci)

Niezawodność oprogramowania (cd) Metody zwiększania niezawodności Unikanie błędów (cd) Stosowanie języków z mocnym typowaniem statycznym Stosowanie języków o wyższym poziomie abstrakcji Stosowanie precyzyjnych interfejsów między modułami Poświęcanie uwagi sytuacjom granicznym Używanie gotowych, przetestowanych komponentów Minimalizowanie odstępu między modelem logicznym a implementacyjnym

Niebezpieczne techniki Instrukcja skoku Duże liczby stałoprzecinkowe Liczby zmiennoprzecinkowe [zmiennopozycyjne] Mechanizmy wołania parametrów procedur i funkcji Brak przejrzystości procedur (efekty uboczne ) Złożone wyrażenia bez onawiasowania

Niebezpieczne techniki (cd) Rekurencja Referencje i wskaźniki + arytmetyka wskaźników Dynamiczna alokacja pamięci (dynamiczne struktury danych oraz programowanie funkcyjne) Przerwania (wyjątki) i zdarzenia Obliczenia równoległe wątki Dzielenie zasobów między wieloma procesami

Zasada ograniczonego dostępu Wszystko co może być ukryte, powinno być zakryte Prywatne pola Listy eksportowe Listy importowe

Typy i typowanie Największy praktyczny sukces informatyki teoretycznej Wyrafinowane typy danych Zasada deklarowania zmiennych Statyczne weryfikowanie typów Eliminuje około 80% błędów semantycznych

Tolerancja błędów Wykryj błąd Wyjdź z błędu w sposób kontrolowany Spróbuj naprawić błąd Poinformuj o błędzie Techniki: Dynamiczne weryfikowanie typów sprawdzanie zgodności typów w trakcie wykonywania programu. Asercje, zgodność zakresu indeksów, itp Porównanie wykonań różnych wersji modułu Real-Time

Transakcje Transakcja to ciąg operacji (na bazie danych), które powinny być wykonane łącznie i niepodzielne Możliwe etapy wykonania transakcji Odczyt wartości zmiennej x Zapis wartości zmiennej x Wycofanie się z transakcji Zatwierdzenie transakcji Transakcje realizują atomowość złożonych operacji. Zapewniają spójność baz i poprawność obliczeń procesów wykonywanych współbieżnie.

Transakcje a bezpieczeństwo Diagram użycia system bankowy 1. Klient wkłada do ATM kartę i dokonuje autoryzacji 2. Klient określa kwotę wypłaty 3. Konto klienta jest sprawdzane 4. Konto jest pomniejszane o kwotę wypłaty 5. Wysyłane jest polecenie do kasy 6. Kasjerka odlicza kwotę od stanu kasy 7. Kasjerka wypłaca klientowi pieniądze Problem: Co się stanie, jeśli po akcji (4) nastąpi awaria zasilania?

Postulaty ACID Każda transakcja powinna spełniać: A Atomowość (atomicity) w ramach jednej transakcji się albo wszystkie operacje, albo żadna. C Spójność (consistency) transakcja zachowuje spójność bazy I Izolacja (isolation) poprawonść działania transakcji nie zależy od, ani nie ma wpływu na działanie innych transakcji D Trwałość (durability) poprawne zkończenie transakcji powoduje trwałe zapisanie jej wyników. Zdarzenia losowe (awarie) nie mogą tego odwrócić.

Transakcje w SQL Brak obsługi transkacji dyskwalifikuje system zarządzania BD BEGIN TRANSACTION początek traansakcji SELECT, INSERT, UPDATE, DELETE, CREATE rozpoczynają transakcję, jeśli nie została jeszcze rozpoczęta COMMIT albo ROLLBACK (ABORT) koniec transakcji

Zamki i zakleszczanie Zamek (ang.: lock) metoda ograniczania dostępu do danych Zamek typu X zawłaszczanie dostępu do danych na wyłączność, pozostałe procesy nia mają żadnego dostępu Zamek typu S zawłaszczanie możliwości modyfikowania danych, pozostałe procesy mogą dane odczytywać Protokół 2PL (two-phase locking) 1. Zakładanie zamków nie ma zwalniania 2. Zwalnianie zamków nie ma zakładania

Zamki i zakleszczanie Zakleszczenie (ang.: deadlock) wzajemne blokowanie dostępu procesów do potrzebnych im wzajemnie zasobów. Rodzaje zakleszczeń 1. pełen zakleszczenie wszystkich procesów 2. częściowy (ang.: livelock) zakleszczenie części procesów, niektóre działają

Metody walki z zakleszczaniem Unikanie techniki gwarantujące brak zakleszczeń Wstępne żadanie wszystkich zasobów ogranicza współbieżność Czekasz? Umieraj! (wait-die) Zasób zajęty? Zabij transakcję i zacznij ją od nowa. Wykrywanie i rozrywanie pętli zakleszczeń Wykrywanie trudny problem złożoność grafu oczekiwania (wait-for graph) jest rzędu n 2 dla n procesów Rozerwanie wymaga wyboru ofiary (np. czas oczekiwania, priorytet, pracochłonność)

Stemple czasowe Każda transakcja dostaje unikalny stempel w momencie startu. Zmiany wartości zmiennych wykonywane są na kopiach. Każdy obiekt przechowuje dwa stemple: transakcji, która ostatnio modyfikowała obiekt i transkacji, która ostatnio odczytała obiekt W momencie zapisu sprawdza się stemple na danych. Dla aktualizowanych obiektów nadpisujemy, jeśli nikt inny nie nadpisał wartości w międzyczasie. Jeśli nadpisał restart Dla odczytywanych obiektów jeśli nikt inny nie nadpisał wartości w międzyczasie, to O.K. Jeśli nadpisał restart

Ziarnistość transakcji Możliwe poziomy ziarnistości Baza danych Relacja Rekord Element rekordu Atrybut Fizyczna strona pamięci Grube ziarna = duży poziom bezpieczeństwa, mała efektywność Małe ziarna = duża efektywność, niski poziom bezpieczeństwa

Odtwarzanie systemu po awarii Back-up Przegrywanie danych na inne nośniki w bankach co 30 Log (dziennik) Rejestracja wszystkich operacji na danych, łącznie z numerami transakcji Recovery Odtwarzanie stanu bazy na podstawie backupu i logu

Odtwarzanie systemu po awarii (cd) Rollback Wycofywanie operacji w bazie na podstawie logu Checkpoint Wykorzystywane do odrabiania Replication Fizyczne powielanie informacji w celu zwiekszenia niezawodności i reaktywności systemu

Środowiska implementacyjne języki proceduralne Ciągle popularne moduł = aplikacja grupa funkcji = funkcja systemu struktury danych = składy danych aplikacji Niewielkie możliwości kontroli dostępu do danych

Środowiska implementacyjne języki obiektowe Wygodne do implementowania obiektowych projektów Początkowo dominowały hybrydy obiektowe rozszerzenia języka proceduralnego Rośnie rola języków zaprojektowanych obiektowo: Smalltalk, java, Eiffel, VisualAge, C#

Środowiska implementacyjne relacyjne BD Dominujące środowiska manipulowania dużymi zbiorami danych. Zalety: wielodostęp zróżnicowane prawa dostępu wysoka niezawodność (ograniczona) rozszerzalność możlowość rozpraszania danych abstrakcyjne języki dostępu (SQL, ODBC, JDBC)

Środowiska implementacyjne obiektowe BD Próbują skompensować wady relacyjnych systemów BD: prymitywny model pojęciowy mała efektywność w pewnych aplikacjach (kaskadowe łączenie) ograniczenia typów danych brak hermetyzacji wieksza pracochłonność kodowania brak powszechnej akceptacji skutkuje tworzeniem hybryd (Oracle 8)

Środowiska implementacyjne programów użytkowych Na przykład: Microsoft Office: proceduralny język Visual Basic rozbudowana biblioteka obiektów mikrodefinicje debugger dystrybucja aplikacji wykonywalnych obsługa standardów DLL, DDE, OLE, ODBC dialogowe projektowanie interfejsu użytkownika

Narzędzia CASE w implementacji Niektóre implementacje CASE (lower) dostarczają generatory kodu; Skrypty tworzące relacje w bazie danych definicje struktur danych nagłówki procedur i funkcji definicje klas nagłówki metod Niektóre dostarczają interfejs do narzędzi RAD

Rezultaty fazy projektowania Poprawiony dokument opisujący wymagania Poprawiony model analityczny Poprawiony projekt teraz dokumentacja techniczna Kod Raport z testowania modułów Baza danych Projekt fizycznej struktury systemu Harmonogram fazy testowania

Przykłady referatów i pytań egzaminacyjnych Omów znaczenie niezawodności oprogramowania Omów podobieństwa i różnice między unikaniem, a tolerancją błędów Wyjaśnij powody uznania wątków za niebezpieczną technikę programistyczną Omów znaczenie mocnej kontroli typów Wymień typowe środowiska implementacyjne