DEKOMPOZYCJA ATRYBUTU ŁATWOŚĆ KONSERWACJI PRODUKTU PROGRAMOWEGO

Podobne dokumenty
Mariusz Borawski Kesra Nermend

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

Jakość w procesie wytwarzania oprogramowania

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro

Model jakości McCalla

ISO/IEC 9126 ANALIZA MODELU JAKOŚCI PRODUKTÓW PROGRAMOWYCH

Modelowanie i Programowanie Obiektowe

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

Wprowadzenie do jakości systemów informatycznych

technologii informacyjnych kształtowanie , procesów informacyjnych kreowanie metod dostosowania odpowiednich do tego celu środków technicznych.

Zarządzanie bezpieczeństwem informacji przegląd aktualnych standardów i metodyk

Wytwórstwo oprogramowania. michał możdżonek

Konsumencka ocena jakości

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

Katalog rozwiązań informatycznych dla firm produkcyjnych

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

TECHNOLOGIA JSP W TWORZENIU APLIKACJI ROZPROSZONYCH NA PRZYKŁADZIE SYSTEMU ZARZĄDZANIA NIERUCHOMOŚCIAMI W GMINIE

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 6 Modelowanie przypadków uŝycia i czynności. Materiały dla studentów

Tom 6 Opis oprogramowania

Koncepcja systemu zarządzania jakością w dużym projekcie informatycznym zgodnie z normą ISO/IEC 9001:2008

Zakład Ubezpieczeń Społecznych Departament Zamówień Publicznych ul. Szamocka 3, 5, Warszawa tel: , faks:

Projektowanie zorientowane na uŝytkownika

Wstęp do Informatyki. Klasyfikacja oprogramowania

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA PROJEKTAMI W PRZEDSIĘBIORSTWIE

Podstawy obsługi aplikacji Generator Wniosków Płatniczych

Modele sprzedaży i dystrybucji oprogramowania Teoria a praktyka SaaS vs. BOX. Bartosz Marciniak. Actuality Sp. z o.o.

Etapy życia oprogramowania

DROGA DO SUKCESU ZARZĄDZANIA ZARZĄDZANIE JAKOŚCIĄ, WYBRANE ELEMENTY

Zasady organizacji projektów informatycznych

Niezawodność elementów i systemów. Sem. 8 Komputerowe Systemy Elektroniczne, 2009/2010 1

Mariusz Nowak Instytut Informatyki Politechnika Poznańska

WARUNKI I ZASADY SERWISU APLIKACJI (OPROGRAMOWANIA UśYTKOWEGO) KRAJOWEGO REJESTRU KARNEGO

Zakres wykładu. Podstawy InŜynierii Oprogramowania

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

Metodyka projektowania komputerowych systemów sterowania

Tom 6 Opis oprogramowania

Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych

Inżynieria oprogramowania (Software Engineering) Wykład 1

Treść uwagi Propozycja zmian zapisu Stanowisko MRR

Testy poziom po poziomie

Zintegrowany System Informatyczny (ZSI)

produkować, promować i sprzedawać produkty, zarządzać i rozliczać przedsięwzięcia, oraz komunikować się wewnątrz organizacji.

WARUNKI GWARANCJI I SERWISU GWARANCYJNEGO

Charakterystyka oprogramowania obiektowego

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

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Wprowadzanie opisu przedmiotu po stronie USOSweb

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

Systemy zarządzania bezpieczeństwem informacji: co to jest, po co je budować i dlaczego w urzędach administracji publicznej

PROJEKT INTERFEJSU UśYTKOWNIKA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 7 Modelowanie klas i stanów, generacja kodu. Materiały dla studentów

Tworzenie przypadków testowych

WYKORZYSTANIE MODELU SAP TCO DO SZACOWANIA KOSZTÓW INFORMATYZACJI. Jacek Cypryjański

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

hierarchie klas i wielodziedziczenie

Architektura oprogramowania w praktyce. Wydanie II.

Faza Określania Wymagań

Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem przedsięwzięcia z wykorzystaniem metod sieciowych PERT i CPM

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Michał Gadomski. Grzegorz Poręcki

Opis metodyki i procesu produkcji oprogramowania

Przypadki użycia. Czyli jak opisywać funkcjonalność. Jerzy Nawrocki Mirosław Ochodek

ŚcieŜki Certyfikacji Testera. Karol Mioduszewski - CORRSE

WDROŻENIE ZINTEGROWANEGO SYSTEMU INFORMATYCZNEGO ZARZĄDZANIA GMINĄ - FRONT I BACK OFFICE W TYM SZKOLENIE UŻYTKOWNIKÓW

Wstęp. Inżynieria wymagań. Plan wykładu. Wstęp. Wstęp. Wstęp. Schemat procesu pozyskiwania wymagań

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)

Dlaczego testowanie jest ważne?

OPIS PRZEDMIOTU ZAMÓWIENIA w postępowaniu pn.:

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

tel. (+48 81) /22 fax (+48 81) Wykład Ćwiczenia Laboratorium Projekt

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR

Trwałość projektów 7 osi PO IG

Programowanie współbieżne i rozproszone

Przemysł farmaceutyczny: jakość, bezpieczeństwo, utrzymanie ruchu Zarządzanie przepływem informacji w systemach bezpiecznej i wydajnej produkcji

Rodzina systemów Microsoft Windows 1. Rodzina systemów Microsoft Windows

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Tom 6 Opis oprogramowania

Modele bezpieczeństwa logicznego i ich implementacje w systemach informatycznych / Aneta Poniszewska-Marańda. Warszawa, 2013.

PLANOWANIE JAKOŚCI OPROGRAMOWANIA W ŚWIETLE MIĘDZYNARODOWYCH NORM SERII ISO. POZIOM ORGANIZACYJNY ORAZ WYROBU / PROJEKTU

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Politechnika Koszalińska Wydział Informatyki i Elektroniki

Zmiany w standardzie ISO dr inż. Ilona Błaszczyk Politechnika Łódzka

Szablon Planu Testów Akceptacyjnych

UPEDU: Analiza i projektowanie (ang. analysis and design discipline)

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

evolpe Consulting Group

Instalacja oprogramowania Wonderware Application Server 3.0 na potrzeby Platformy Systemowej Wonderware

Projekt: Współpraca i dialog. Opis szkoleń językowych planowanych do realizacji w ramach projektu

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

System sprzedaŝy rezerwacji

Inżynieria wymagań. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

LearnIT project PL/08/LLP-LdV/TOI/140001

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Inżynieria oprogramowania (Software Engineering)

Transkrypt:

DEKOMPOZYCJA ATRYBUTU ŁATWOŚĆ KONSERWACJI PRODUKTU PROGRAMOWEGO Andrzej Kobyliński Wprowadzenie W procesie wytwórczym dedykowanego produktu programowego, kiedy po przejściu testów akceptacyjnych oprogramowanie trafia do klienta, albo w przypadku produktu sprzedawanego na skalę masową po przejściu testów beta, produkt wprowadzany jest do dystrybucji, dla twórców oprogramowania rozpoczyna się etap konserwacji (pielęgnacji, utrzymania, ang. maintenance). Wszystkie zmiany dokonane od tej pory w produkcie programowym 1 zaliczają się do działań konserwacyjnych. Powszechnie uwaŝa się, Ŝe istnieją trzy zasadnicze powody dokonywania zmian w oprogramowaniu, po oddaniu go do uŝytku: naprawa błędów (konserwacja korekcyjna), doskonalenie produktu, wykonywane w celu zwiększenia funkcjonalności, wydajności, łatwości uŝycia lub innych atrybutów jakości oprogramowania (konserwacja doskonaląca), dostosowanie oprogramowania do zmieniających się warunków zewnętrznych: zarówno prawnych i organizacyjnych, jak i technicznych (konserwacja adaptacyjna). Znamienne jest, Ŝe brakuje nowych danych dotyczących proporcji prac związanych z róŝnymi rodzajami konserwacji. Praktycznie wszyscy autorzy poruszający tematykę konserwacji oprogramowania powołują się na stare badanie, dokonane jeszcze w 1978 r. przez Lientza, Swansona i Tompkinsa [LST78], [Lo- Sw80]. Na przykład na rezultaty tego przeglądu powołują się autorzy najpopularniejszych podręczników z inŝynierii oprogramowania: Sommerville [Somm03, s. 606], Pressman [Pres01, s. 805], Schach [Scha93, s. 10]. Rezultaty wzmiankowanego badania przedstawia rys. 1. 1 Zgodnie z normą [ISO2382] na produkt programowy, oprócz oprogramowania, składają się równieŝ procedury, dokumentacja i dane przekazywane uŝytkownikowi. 467

ROZDZIAŁ V konserwacja adaptacyjna 18% inna 4% konserwacja korekcyjna 17% konserwacja doskonaląca 61% Rys. 1. Podział pracy przy konserwacji Źródło: opracowanie na podstawie [LST78] Pozostałe, nie opisane na wykresie 4% działań związanych z konserwacją, moŝna zakwalifikować do prac innego rodzaju, np. konserwacji prewencyjnej dokonywanej po to, by z wyprzedzeniem zapobiec moŝliwości wystąpienia błędu w systemie. Po upływie dekady, zbliŝone wyniki uzyskali w swoich badaniach Nosek i Palvia [NoPa90]. 2 O tym, jak łatwo moŝna zmienić oprogramowanie, decyduje atrybut jakości oprogramowania, zwany łatwością konserwacji. Definiuje się go następująco: Łatwość konserwacji (ang. maintainability) cecha oprogramowania odzwierciedlająca to, jak łatwo jest dokonywać w oprogramowaniu róŝnego rodzaju modyfikacji (szybko i tanim kosztem). Ten atrybut oprogramowania, choć nieistotny i niedostrzegalny dla przeciętnego uŝytkownika, ma kluczowe znaczenie dla producentów, a szczególnie programistów konserwujących i przenoszących oprogramowanie na inną platformę sprzętową lub systemową. Łatwość dokonywania w oprogramowaniu zmian róŝnego typu, jest tak waŝna ze względu na fakt, Ŝe przeciętnie firmy informatyczne 2/3 swojego budŝetu przeznaczają na konserwację oprogramowania, a tylko 1/3 na rozwój nowych produktów [Scha93, s. 8-12]. 2 Wyniki badania [LST78] dopiero ostatnio zostały skrytykowane przez S. Schacha [Scha04], który w swoich badaniach, oprócz innych ciekawych obserwacji, doszedł do wniosku, Ŝe konserwacja korekcyjna pochłania ponad 50% nakładów, doskonaląca niespełna 40%, a adaptacyjna poniŝej 5%. 468

REALIZACJA SYSTEMÓW WSPOMAGANIA ORGANIZACJI I ROZWIĄZANIA... Model atrybutu łatwość konserwacji oprogramowania Atrybut łatwości konserwacji oprogramowania jest wyjątkowo ogólny, a przez to trudny do oceny. W podobnych przypadkach, powszechnie stosowaną metodą jest opisanie takiej trudnej do zdefiniowania kategorii przy pomocy innych, bardziej konkretnych, lepiej zdefiniowanych i łatwiejszych przez to do oceny, a nawet pomiaru, atrybutów szczegółowych. PoniŜej zaprezentowana została autorska dekompozycja omawianego atrybutu na atrybuty niŝszych poziomów. Dokonując kolejnych logicznych podziałów, wynikających z przesłanek merytorycznych, uzyskany został rozbudowany model atrybutu łatwości konserwacji. NaleŜy teŝ w tym miejscu podkreślić, Ŝe w związku z niejednolitością terminologii, a miejscami nawet zupełnym brakiem odpowiedniej nomenklatury, autor zmuszony został do zaproponowania własnego nazewnictwa. Naprawialność Po oddaniu oprogramowania do uŝytku, praktycznie zawsze pozostają w nim błędy, nie zauwaŝone na etapie rozwoju. Niekiedy producenci, przynaglani przez nieprzekraczalne terminy zakończenia prac, świadomie oddają do uŝytku niedopracowane oprogramowanie (ang. good enough software) [Koby03]. Prace związane z eliminacją błędów z ukończonego i oddanego juŝ do uŝytku oprogramowania, składają się na konserwację korekcyjną. Celem konserwacji korekcyjnej jest zatem doprowadzenie do sytuacji, Ŝe oprogramowanie staje się zgodne ze swą specyfikacją. śadna bowiem specyfikacja, nigdy nie zakłada, Ŝe oprogramowanie powinno posiadać błędy. Cechę oprogramowania, która decyduje o tym, jak łatwo jest eliminować błędy z oprogramowania proponuje się nazwać naprawialnością. Naprawialność (ang. correctability) cecha oprogramowania obrazująca łatwość usuwania błędów w oprogramowaniu. Elastyczność W przeciwieństwie do omówionej konserwacji korekcyjnej, pozostałe dwa rodzaje konserwacji: doskonaląca i adaptacyjna, pociągają za sobą modyfikację specyfikacji oprogramowania. NiezaleŜnie od tego, czy trzeba rozbudować oprogramowanie, włączając doń dodatkowe funkcje, czy wymienić algorytmy przetwarzania na wydajniejsze, czy zwiększyć łatwość obsługi, czy dostosować oprogramowanie do zmieniających się warunków otoczenia, np. zmian w prawie, czy teŝ przystosować do działania na innej platformie sprzętowej lub w innym środowisku systemowym wszystkie tego rodzaju zmiany wymagają przeróbki specyfikacji oprogramowania. Jak wynika z rys. 1, spośród ogólnych 469

ROZDZIAŁ V nakładów na konserwację, zmiany pociągające za sobą modyfikację specyfikacji pochłaniają ok. 80% ogółu kosztów konserwacji. To, jak łatwo jest dokonywać zmian, polegających na doskonaleniu i adaptacji, proponuje się nazwać elastycznością oprogramowania. Elastyczność (ang. flexibility) cecha oprogramowania świadcząca o łatwości dokonywania zmian w oprogramowaniu, wymagających zmiany pierwotnej specyfikacji. Naprawialność Łatwość konserwacji Rys. 2. Łatwość konserwacji (opr. wł.) Elastyczność W dalszej części rozdziału omówiona została dekompozycja atrybutu elastyczność. Rozszerzalność Średni czas Ŝycia duŝego systemu mieści się w przedziale 5-15 lat [Four91, s. 325], chociaŝ przykładowo w Departamencie Obrony USA wykorzystywanych jest wiele systemów, których czas eksploatacji wynosi od 30 do 50 lat [Ober98, s. 6]. Aby pozostać na rynku w tak długim okresie, firma musi uzupełniać (rozszerzać) oprogramowanie o dodatkowe funkcje, wprowadzone juŝ w międzyczasie przez konkurencję do innych, podobnych produktów. Atrybut oprogramowania, który świadczy o łatwości rozbudowy oprogramowania, proponuje się nazwać rozszerzalnością. Rozszerzalność (ang. expandability, augmentability, extensibility) cecha oprogramowania decydująca o łatwości dokonywania w oprogramowaniu rozszerzeń funkcjonalności. Adaptacyjność PoniewaŜ czas Ŝycia oprogramowania jest stosunkowo długi, uŝytkownicy często domagają się przeprowadzenia w nim zmian, polegających na: dostosowaniu oprogramowania do zmieniających się warunków zewnętrznych (np. prawnych) lub zwiększeniu wydajności oprogramowania - ten rodzaj dostosowywania będzie nazwany modyfikowalnością (patrz modyfikowalność) dostosowaniu do nowego środowiska oprogramowania: nowej wersji systemu operacyjnego, innego sprzętu (procesora, urządzeń wejścia/wyjścia) ten rodzaj adaptacji zyskał nazwę przenośności (patrz przenośność). 470

REALIZACJA SYSTEMÓW WSPOMAGANIA ORGANIZACJI I ROZWIĄZANIA... Adaptacyjność (ang. adaptability) cecha oprogramowania decydująca o łatwości dokonywania w oprogramowaniu zmian dostosowawczych do warunków zewnętrznych, sprzętu i oprogramowania systemowego. Elastyczność Rozszerzalność Rys. 3. Elastyczność (opr. wł.) Adaptacyjność W kolejnych podpunktach omówiona została dekompozycja atrybutu adaptacyjność. Modyfikowalność (ang. modifiability) cecha oprogramowania obrazująca łatwość dokonywania zmian w oprogramowaniu, polegających na dostosowaniu go do zmieniającego się otoczenia organizacji (np. warunków prawnych) lub zaimplementowania nowych, sprawniejszych algorytmów. Przenośność (ang. portability) cecha oprogramowania odzwierciedlająca łatwość dokonywania zmian w oprogramowaniu tak, by mogło ono pracować w róŝnych środowiskach. Pod pojęciem środowiska rozumiany jest sprzęt, oprogramowanie systemowe oraz kombinacja obu wymienionych składników. O ile wszystkie inne rozwaŝane do tej pory atrybuty jakości miały szczególne znaczenie dla programistów konserwujących, o tyle przenośność istotna jest dla programisty, którego zadaniem jest powiększanie potencjalnego kręgu odbiorców, poprzez dostosowanie oprogramowania do pracy w innym środowisku. Oprogramowanie jest łatwo przenośne, jeśli wszystkie załoŝenia dotyczące konkretnego środowiska są skupione w jednym miejscu (komponencie, procedurze), a przeniesienie produktu do innego środowiska wymaga wyłącznie wymiany tego elementu. Tę hermetyzację osiąga się w ten sposób, Ŝe tworzy się dodatkową warstwę pośrednią oddzielającą oprogramowanie aplikacyjne od sprzętu i oprogramowania systemowego (nosi ona angielską nazwę portability leyer). Warstwa ta daje aplikacji pewien abstrakcyjny interfejs do sprzętu i oprogramowania systemowego. JeŜeli zmieni się sprzęt i oprogramowanie systemowe, aplikacja moŝe pozostać bez zmiany, wystarczy wymienić na właściwą wspomnianą warstwę pośrednią. Sama aplikacja nie komunikuje się wprost ze środowiskiem, a wyłącznie z warstwą pośrednią [BCK98, s. 83]. 471

ROZDZIAŁ V Modyfikowalność Adaptacyjność Rys. 4. Adaptacyjność (opr. wł.) Przenośność ZaleŜności między opisanymi atrybutami podrzędnymi, składającymi się na łatwość konserwacji, przedstawia rys. 5. Naprawialność Łatwość konserwacji Rozszerzalność Elastyczność Modyfikowalność Adaptacyjność Rys. 5. Model atrybutu łatwość konserwacji (opr. wł.) Przenośność Główne atrybuty jakości wg normy ISO/IEC 9126 Norma dotycząca jakości oprogramowania ISO/IEC 9126 [ISO9126] wyszczególnia sześć podstawowych atrybutów jakościowych: funkcjonalność, uŝyteczność, niezawodność, wydajność, łatwość konserwacji, przenośność. O ile cztery pierwsze odnoszą się do jakości widzianej oczami klienta/uŝytkownika, to dwie ostatnie mają znaczenie wyłącznie dla programistów konserwujących, których zadaniem jest dalsza praca nad programem, juŝ po oddaniu go do uŝytku. Wzmiankowana norma definiuje te cechy następująco: Łatwość konserwacji: łatwość w modyfikowaniu oprogramowania. Modyfikacje mogą dotyczyć poprawy, doskonalenia lub adaptacji oprogramowania 472

REALIZACJA SYSTEMÓW WSPOMAGANIA ORGANIZACJI I ROZWIĄZANIA... do zmian w otoczeniu, w wymaganiach oraz w specyfikacjach funkcjonalnych [ISO9126, s. 10]. Przenośność: łatwość w dokonywaniu transferu oprogramowania z jednego środowiska do innego [ISO9126, s. 11]. W kontekście rozwaŝań dokonanych w poprzednim rozdziale, umieszczenie w modelu jakości ISO 9126 łatwości konserwacji i przenośności na tym samym poziomie hierarchii atrybutów jakościowych produktu programowego jest niesłuszne. Przenośność jest bowiem atrybutem podrzędnym w stosunku do łatwości konserwacji i obejmuje tylko pewien niewielki (i stosunkowo mało kosztowny) wycinek działań składających się na konserwację. WyróŜnienie tego właśnie atrybutu szczegółowego przez umieszczenie go na równym poziomie z innymi pięcioma głównymi atrybutami jakości jest zatem nieuzasadnione. Podsumowanie W opracowaniu przedstawiono autorski model jednego z podstawowych atrybutów jakości oprogramowania: łatwości konserwacji. Uzasadniono budowę tego hierarchicznego modelu. W związku z nieporządkiem terminologicznym, zaproponowano ujednoliconą nomenklaturę atrybutów jakości. Uzasadniono, dlaczego umieszczenie łatwości konserwacji i przenośności oprogramowania na tym samym poziomie atrybutów jakościowych w modelu ISO/IEC 9126 jest niewłaściwe. Wszystkie wyróŝnione w modelu łatwości konserwacji atrybuty podrzędne mają charakter zewnętrzny wynikają z logicznych rozwaŝań, ale nie mają wprost swego odbicia w kodzie oprogramowania. Dlatego dalsze badania będą koncentrowały się na znalezieniu przełoŝenia między opisanymi w pracy atrybutami zewnętrznymi a atrybutami wewnętrznymi kodu oprogramowania (takimi jak np. modularność, czytelność, prostota, jednolitość itp.). Literatura [BCK98] Bass L., Clements P., Kazman R.: Software Architecture in Practice, Addison-Wesley 1998. [Four91] Fournier R.: Practical Guide to Structured System Development and Maintenance, Prentice-Hall, Englewood Cliffs 1991. [ISO2382] PN-88/T-01016/01 Przetwarzanie informacji i komputery. Terminologia. Podstawowe terminy i definicje (polskie tłumaczenie normy: ISO 2382-1:1984, Data processing - Vocabulary - Part 01: Fundamental terms) [ISO9126] ISO/IEC 9126-1:2001: Software engineering - Product quality - Part 1: Quality model. 473

ROZDZIAŁ V [Koby03] [LST78] [LoSw80] [NoPa90] [Ober98] [Pres01] [Scha93] [Scha04] [Somm03] Kobyliński A.: Koncepcja dostatecznie dobrej jakości w praktyce wytwarzania oprogramowania, w: Nowoczesne technologie informacyjne w zarządzaniu, red. E. Niedzielska, H. Dudycz, M. Dyczkowski, Prace Naukowe Akademii Ekonomicznej we Wrocławiu, nr 986, Wyd. AE we Wrocławiu, Wrocław 2003, str. 60-68. Lientz B. P., Swanson E. B., Tompkins G. E.: Characteristics of Applications Software Maintenance, Communications of the ACM, 21(6), p. 466-471, 1978. Lientz B. P., Swanson E. B.: Software Maintenance Management, Addison-Wesley, Reading (MA) 1980. Nosek J. T., Palvia P.: Software maintenance management: changes in the last decade, Software Maintenance: Research and Practice, 2(3), p. 157-174, 1990. Oberndorf P.: COTS and Open Systems, SEI Monographs on the Use of Commercial Software in Government Systems, 1998, http://www.sei.cmu.edu/cbs/papers/monographs/cotsopen-systems/cots.open.systems.htm Pressman R. S.: Software Engineering. A Practitioner s Approach, 5th Ed., McGraw-Hill, New York 2001. Schach S.: Software Engineering, 2nd Ed., Aksen & Irwin, Homewood & Boston 1993. Schach S.: Three Unexpected Results in Empirical Open-Source Software Engineering (30.05.2004), http://www.vuse.vanderbilt.edu/~srs/three.unexpected.ppt Sommerville I.: InŜynieria oprogramowania, WNT, Warszawa 2003. 474