Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne. Inżynieria oprogramowania

Podobne dokumenty
2005 Andrzej Jaszkiewicz. Wyłącznie dla użytku studentów Politechniki Poznańskiej, kierunek Informatyka

Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne. Inżynieria oprogramowania

Zasady organizacji projektów informatycznych

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

INŻYNIERIA OPROGRAMOWANIA

Etapy życia oprogramowania

Egzamin / zaliczenie na ocenę*

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Wykład 1 Inżynieria Oprogramowania

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Metodyka projektowania komputerowych systemów sterowania

Modelowanie i analiza systemów informatycznych

PRZEWODNIK PO PRZEDMIOCIE

mgr inŝ. Jacek Kołodziej, mgr inŝ. Grzegorz Młynarczyk

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Wykład 7. Projektowanie kodu oprogramowania

Jak daleko jesteśmy od standardu? ankieta dla twórców produktów informatycznych o podwyższonych wymaganiach bezpieczeństwa

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

DOKUMENTACJA. Przeznaczenie dokumentacji użytkowej. Użytkownicy końcowi Administratorzy SKŁADNIKI DOKUMENTACJI. Synteza Dokumentacja.

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

INŻYNIERIA OPROGRAMOWANIA. Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Systemy Kontroli Wersji

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Wytwarzanie, integracja i testowanie systemów informacyjnych

Opis metodyki i procesu produkcji oprogramowania

Narzędzia CASE dla.net. Łukasz Popiel

Program szkolenia: Continuous Integration i Git

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Inżynieria oprogramowania - opis przedmiotu

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Dr Katarzyna Grzesiak-Koped

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

Techniki CAx. dr inż. Michał Michna. Politechnika Gdańska

Testowanie oprogramowania

Podstawy modelowania programów Kod przedmiotu

Zarządzaj projektami efektywnie i na wysokim poziomie. Enovatio Projects SYSTEM ZARZĄDZANIA PROJEKTAMI

Dokument Detaliczny Projektu

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

Faza Określania Wymagań

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

INŻYNIERIA OPROGRAMOWANIA Wykład 6 Organizacja pracy w dziale wytwarzania oprogramowania - przykład studialny

Spis treúci. 1. Wprowadzenie... 13

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

ZARZĄDZANIE DOKUMENTACJĄ. Tomasz Jarmuszczak PCC Polska

Web frameworks do budowy aplikacji zgodnych z J2EE

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Wykaz zmian w programie WinAdmin Replikator

Spis treści. Wstęp... 9

Techniki CAx. dr inż. Michał Michna. Politechnika Gdańska

Dokument Detaliczny Projektu

KARTA MODUŁU KSZTAŁCENIA

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

Pytania z przedmiotów kierunkowych

udokumentowanych poprzez publikacje naukowe lub raporty, z zakresu baz danych

Inżynieria Programowania Zarządzanie projektem

Inżynieria Oprogramowania w Praktyce

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Dlaczego testowanie jest ważne?

Wstęp do zarządzania projektami

Jak powstaje model biznesowy? Co to jest? Modelowanie biznesowe. Model biznesowy. Jak powstaje model biznesowy? Jak firma generuje przychody?

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

Konfiguracja modelowania w procesie wytwarzania oprogramowania

Wykład I. Wprowadzenie do baz danych

Spis treści Wstęp 1. Wprowadzenie 2. Zarządzanie ryzykiem systemów informacyjnych

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

PRZEWODNIK PO PRZEDMIOCIE

Ogólne określenie wymagań. Ogólny projekt. Budowa systemu. Ocena systemu. Nie. Tak. System poprawny. Wdrożenie. Określenie.

Projektowanie oprogramowania

Zapewnij sukces swym projektom

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Cykle życia systemu informatycznego

Inżynieria Programowania Zarządzanie projektem. Plan wykładu. Motto. Motto 2. Notatki. Notatki. Notatki. Notatki.

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

Prezentacja specjalności Inżynieria Systemów Informatycznych

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Procedury techniczne modułu Forte Kontroling. Środowisko pracy programu i elementy konfiguracji

Podstawy programowania

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska

Inżynieria oprogramowania I

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Inżynieria oprogramowania

Inżynieria Oprogramowania. Inżynieria Oprogramowania 1/36

2.11. Monitorowanie i przegląd ryzyka Kluczowe role w procesie zarządzania ryzykiem

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

METODY REPREZENTACJI INFORMACJI

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

INŻYNIERIA OPROGRAMOWANIA

Transkrypt:

Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne Inżynieria oprogramowania 20 maja 2012

Dostarczanie i pielęgnacja

Instalacja oprogramowania Szkolenia użytkowników końcowych i administratorów systemu Instalacja sprzętu i przeniesienie oprogramowania Wypełnienie baz danych Uruchomienie oprogramowania Plany awaryjne

Instalacja oprogramowania Nadzorowane korzystanie z systemu, często równoległe z tradycyjnym sposobem pracy Usuwanie błędów w oprogramowaniu i dokumentacji użytkowej Przekazanie systemu klientowi Klient powinien otrzymać także dokumentację techniczną

Konserwacja oprogramowania Modyfikacje poprawiające/korygujące ulepszające dostosowujące

Źródła żądań zmian Klienci Wytwórcy oprogramowania Zarząd

Narzędzia zarządzania żądaniami zmian Keystone (Freeware) JitterBug (Freeware, Open Source) GNATS (Freeware) Visual Intercept (commercial) Bugzilla (Open source) Mantis (Open source)

Funkcje narzędzi zarządzania żądaniami Zarządzanie projektami/podprojektami i przydziałami odpowiedzialności Wprowadzanie żądań zmian Powiadamianie osób odpowiedzialnych, osób wprowadzających żądania Śledzenie żądań zmian Raporty, statystyki

Ocena żądanej zmiany Znaczenie wprowadzenia zmiany dla użytkowników Koszt wprowadzenia zmiany Wpływ zmiany za poszczególne składowe systemu Wpływ zmiany na poszczególne składowe dokumentacji technicznej Propagacja zmian

Zarządzanie żądaniami zmian Całościowa ocena i decyzja Kolejkowanie żądań zmian Zlecenie wykonania zmiany Przydział osoby/zespołu do wykonania zmiany Monitorowanie realizacji zmiany

Czynniki wpływające na koszty konserwacji Niezależne od firmy Stabilność środowiska, w którym pracuje system Stabilność platformy sprzętowej i oprogramowania systemowego Czas użytkowania systemu

Czynniki wpływające na koszty konserwacji Zależne od firmy Znajomość dziedziny problemu Wysoka jakość modelu i projektu Wysoka jakość dokumentacji technicznej pełna zgodność z systemem wystarczająca szczegółowość zgodność ze standardami Stabilność personelu

Dokumentacja techniczna Dokumentacja techniczna a projekt Jakość dokumentacji a jakość projektu Dobra dokumentacja Zły projekt Dobra dokumentacja Dobry projekt Zła dokumentacja Zły projekt Zła dokumentacja Dobry projekt

Inżynieria odwrotna Typowa składowa narzędzi CASE Generowanie kodu Synchronizacja projektu z kodem Narzędzia niezależne JavaDoc, Doxygen, NDoc,...

Reinżynieria oprogramowania Generowanie kodu CASE Kod Inżynieria odwrotna

Ponowne wykorzystanie oprogramowania Zalety Redukcja kosztów Wzrost niezawodność Narzucenie standardów

Przygotowanie kodu do ponownego wykorzystania Budowa klockowa Niezależność składowych Spójność składowych Odpowiednia złożoność Przejrzystość Dobra dokumentacja

Wzorce projektowe związane z ponownym wykorzystanie oprogramowania Mediator Adapter Decorator Template method

Dokumentacja użytkowa Odbiorcy dokumentacji Potencjalni użytkownicy Użytkownicy początkujący Użytkownicy zaawansowani Administratorzy

Składowe dokumentacji użytkowej Opis funkcjonalny Podręcznik użytkownika Kompletny opis (reference) Opis instalacji Podręcznik administratora systemu Słownik używanych terminów Indeks

Podręcznik użytkownika Sposoby uruchamiania oraz kończenia pracy z systemem Sposoby realizacji najczęściej wykorzystywanych funkcji systemu Metody obsługi błędów, np. sposoby odwoływania błędnych operacji wykonanych przez użytkownika Sposoby korzystania z systemu pomocy Podręcznik użytkownika powinien przedstawiać prosty przykład(y) korzystania z systemu.

Kompletny opis Szczegółowy opis wszystkich funkcji systemu Informacje o wszystkich sposobach wywoływania tych funkcji Opisy formatów danych Opisy wszystkich błędów, które mogą się pojawiać podczas pracy z systemem Informacje o wszelkich ograniczeniach dotyczących np. zakresów danych

Jakość dokumentacji użytkowej Struktura Zachowanie standardów Sposób pisania Stosowanie formy aktywnej oraz zwracanie się do czytelnika. Poprawność gramatyczna i ortograficzna. Krótkie zdania. Krótkie akapity. Oszczędność słów. Precyzyjna definicja używanych terminów. Powtarzanie trudnego opisu. Stosowanie tytułów i podtytułów sekcji, wyliczeń i wyróżnień. Zrozumiałe odwołania do innych rozdziałów.

Bezpieczeństwo użytkowników oprogramowania Zagrożenie dla życia lub zdrowia systemy medyczne, systemy sterowania Bezpieczeństwo prawne Bezpieczeństwo finansowe

Bezpieczeństwo niezawodność Program zawodny może być bezpieczny Program niezawodny może nie być bezpieczny

Jak zapewnić bezpieczeństwo Należy określić potencjalne zagrożenia Przykład - program sporządzający PIT-y błędne rozliczenie podatnika z urzędem podatkowym niezłożenie zeznania podatkowego złożenie wielu zeznań dla jednego podatnika, być może w różnych urzędach

Określanie potencjalnych przyczyn zagrożeń Analiza drzewa błędów Błędne rozliczenie podatnika Wprowadzenie błędnych danych Błąd obliczeniowy Błędny wydruk rozliczenia Błędnie obliczona podstawa opodatkowania Błędnie obliczony podatek Błędnie obliczona nadpłata - dopłata Błędnie zsumowane dochody Błędnie zsumowane ulgi

Unikanie zagrożeń Szczególny nacisk na niezawodność najważniejszych fragmentów systemu - unikanie błędów, testowanie Weryfikacja wprowadzonych danych Sprawdzanie warunków poprawności

Zapewnianie jakości Zapewnianie jakości a inżynieria oprogramowania Główne działania składające się na zapewnianie jakości: Standaryzacja Kontrole jakości formalne przeglądy techniczne

Standaryzacja Standardy dotyczące artefaktów: Kod, projekt, specyfikacja wymagań, dokumentacja techniczna, dokumentacja użytkowa Procedury standardy dotyczące działań Sposób zatwierdzania dokumentacji technicznej, sposób przekazywania modułu do testowania Cele: Promowanie dobrych praktyk Wymuszenie spójności Możliwość automatyzacji

Inne typowe problemy Czy wszystko zostało skompilowanie? Przetestowane? Jak usunąć niekompletną/błędną modyfikację? Nie mogę odtworzyć tego błędu. Jakie zmiany zostały uwzględnione w tej wersji? Muszę połączyć 250 plików? Jaką wersję ma ten klient? Czy dostarczyliśmy właściwą wersję? Czy klient zmodyfikował nam kod? Czy można klientowi dostarczyć najnowszą wersję jeżeli na zakupił dwóch poprzednich?

Praca grupowa

Praca grupowa Gdzie jest najnowsza wersja!!! Czy Kowalski cokolwiek robi w tym projekcie?!!! Kto popełnił ten błąd?!!! Nie ja!!! Przecież już raz poprawiłem ten błąd!!! Przecież poprzednio to działało!!! Ktoś nadpisał moje zmiany!!!

Praca grupowa i zarządzanie konfiguracjami Równoległa pracy wielu osób nad tym samym projektem Ryzyko nadpisywania zmian Problem najnowszej wersji Potrzeba odwoływania się do poprzednich wersji Monitorowanie prac

CVS concurrent versioning system Najpopularniejsze narzędzie zarządzania konfiguracjami w projektach open-source Często wykorzystywany komercyjnie Unix, Windows, WINCVS, WebCVS Komponenty pliki, przede wszystkim tekstowe Wypierany przez SVN (Subversion)

CVS - struktura Server CVS Centralne repozytorium

Podstawowy model pracy Server CVS Centralne repozytorium 1: Pobranie pliku(ów) (check-out) 3: Zapis pliku(ów) (check-in/commit) 2: Edycja pliku(ów)

Podstawowy model pracy Dołączanie komentarzy nt. wprowadzonych zmian podczas zapisu pliku(ów) Porównywanie lokalnej pliku(ów) z zawartością repozytorium Jaka powinna być częstotliwość zapisu do repozytorium?

Wersja bazowa Przed powstaniem wersji bazowej samodzielna praca osoby/zesołu Wersja bazowa od tego momentu komponent może być wykorzystywany przez inne osoby/zespoły i podlega zarządzaniu konfiguracjami

Praca równoległa unikanie konfliktów Blokowanie pliku(ów) lub pobieranie bez wyłączności (unreserved check-out) Synchronizacja lokalnej kopii pliku(ów) Wykrywanie konfliktów bez interpretacji zawartości pliku tekstowego Informowanie innych użytkowników o zapisie Możliwość sprawdzenia kto korzysta z pliku Obserwowanie wybranych plików - powiadamianie

Ochrona danych Użytkownicy Hasła Prawa dostępu

Wersjonowanie Jednostką wersjonowania jest plik Każda zmiana powoduje powstanie nowej wersji pliku Możliwość opisywania wersji etykietami Pobieranie poprzednich wersji na podstawie daty lub etykiety Porównywanie różnych wersji

Sposób zapisu wersji Wersja bazowa 01.05 Zmiany 04.05 Zmiany 07.05 Zmiany 11.05 Wersja 04.05 Wersja 07.05 Wersja 11.05

Rozgałęzianie i łączenie gałęzi Wersja 1.1b Wersja 1.2b Wersja 1.3b Wersja 1 Wersja 1.1a Wersja 1.2a Wersja 1.3

Przyczyny rozgałęzień Niezależne ścieżki rozwoju, np. konserwacja komponentu vs. jego dalszy rozwój Warianty np. konfiguracje na różne platformy Eksperymentalne ścieżki rozwoju Równoległa praca dwóch programistów/zespołów trudna do bieżącej synchronizacji

Śledzenie prac Obserwacja komentarzy Monitorowanie pracy użytkowników Analiza danych

System Subversion Praktycznie wszystkie cechy CVS-a Wersjonowanie operacji na katalogach (drzewach) katalogów Dołączanie i wersjonowanie metadanych Atomowe operacje zapisu Zapis danych w bazie danych Lepsza obsługa plików binarnych Łatwe i tanie rozgałęzianie Lepsza struktura kodu

Inne modele pracy w systemach zarządzania konfiguracjami Composition Model Long Transaction Model Change Set Model

Narzędzia wspomagające wytwarzanie oprogramowania Narzędzia programistyczne Narzędzia wspomagające pracę nad oprogramowaniem Narzędzia zarządzania i pracy grupowej Zaawansowane narzędzia wspomagające wytwarzanie oprogramowania

Narzędzia programistyczne Kompilatory Edytory kodu Debuggery IDE Narzędzia projektowania interfejsu użytkownika Biblioteki Narzędzia formatujące Analizatory kodu Narzędzia wspomagające refaktoryzację

Narzędzia wspomagające pracę nad oprogramowaniem Narzędzia zarządzania wymaganiami Narzędzia CASE modelowanie, projektowanie, generowanie i dokumentowanie oprogramowania Narzędzia zarządzania konfiguracjami Narzędzia wspomagające testowanie Narzędzia dokumentacji technicznej Narzędzia zarządzania zgłoszeniami zmian/błędów

Narzędzia zarządzania i pracy grupowej Narzędzia harmonogramowania przedsięwzięć Personalne plany zadań Narzędzia rozproszonego zarządzania przedsięwzięciami Narzędzia generujące metryki Narzędzia szacowania kosztów oprogramowania Narzędzia komunikacji Narzędzia zarządzania konfiguracjami

Zaawansowane narzędzia wspomagające wytwarzanie oprogramowania Narzędzia typu workflow Narzędzia śledzenia powiązań Narzędzia analizy danych

Narzędzia CASE Computer Assisted/Aided Software/System Engineering CAD dla inżynierów oprogramowania Upper-CASE głównie analiza Lower-CASE projektowanie, generowanie kodu, inżynieria odwrotna I-CASE, Integrated-CASE

Składowe narzędzi CASE Słownik danych repozytorium Edytor(y) notacji graficznych Generator raportów Generator dokumentacji technicznej Generator(y) kodu Moduł projektowania interfejsu użytkownika Moduł(y) inżynierii odwrotnej

Składowe narzędzi CASE Moduł kontroli poprawności Moduł kontroli jakości Moduł importu/eksportu danych Moduł zarządzania wersjami Moduł zarządzania pracą grupową

Główne zalety narzędzi CASE Wspomaganie analizy i projektowania Opracowywanie dokumentacji Wspomaganie pracy grupowej A co z generowaniem kodu?

Główne problemy we wdrażaniu narzędzi CASE Traktowanie narzędzi CASE wyłącznie jako generatorów kodu Nieznajomość metodyki analizy i projektowania Niewłaściwa organizacja i zarządzanie przedsięwzięciem Zbyt wysokie oczekiwania związane z wdrożeniem narzędzi CASE

Podsumowanie

Ważne trendy w inżynierii oprogramowania Lekkie metodyki Wpływ na podejścia klasyczne Narzędzia Integracja Zaawansowane narzędzia typu workflow, śledzenia powiązań, analizy danych Wolne oprogramowanie Wytwarzanie rozproszone Ponowne wykorzystanie oprogramowania W tym Applications framework Architektura/inżynieria kierowana modelem

Inżynieria oprogramowania Wiedza techniczna, dotycząca wszystkich faz cyklu życia oprogramowania, której celem jest uzyskanie wysokiej jakości produktu - oprogramowania.

Tanie Użyteczne Niezawodne Bezpieczne Dobre oprogramowanie Ergonomiczne Łatwe w konserwacji Zapewnianie jakości Efektywne

Określanie celów i wymagań Niezawodne Prototypowanie Użyteczne Ergonomiczne Analiza - modelowanie Projektowanie, implementacja, testowanie

Dobrze zaprojektowane Unikanie błędów Dobrze zaprojektowane Ponowne wykorzystanie oprogramowania Niezawodne Odporność na błędy Dobrze udokumentowane Testowanie Warunki poprawności

Projektowanie interfejsu użytkownika Ergonomiczne Dokumentacja użytkowa

Wzorce projektowe np. Proxy Efektywne Optymalizacja efektywności

Dobrze udokumentowane Inżynieria odwrotna Notacje Łatwe w konserwacji UML Refaktoryzacja Metody analizy i projektowania Dobrze zaprojektowane Przejrzyste Wzorce projektowe Zgodne z rzeczywistością Modularne

Zapewnianie bezpieczeństwa Bezpieczne Niezawodne

Łatwe w konserwacji Niezawodne Lekkie metodyki Ponowne wykorzystanie oprogramowania re-use Unikanie błędów Tanie Praca grupowa Narzędzia Modularne Narzędzia Notacje Wzorce projektowe

Standardy, procedury Zapewnianie jakości Przeglądy techniczne

http://zajecia.predki.com