Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Inżynieria Oprogramowania 12. Zarządzanie jakością Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW www.lchmiel.pl.

Podobne prezentacje


Prezentacja na temat: "Inżynieria Oprogramowania 12. Zarządzanie jakością Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW www.lchmiel.pl."— Zapis prezentacji:

1 Inżynieria Oprogramowania 12. Zarządzanie jakością Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW

2 Inżynieria oprogramowania 12. Zarządzanie jakością 2/49 Źródła Ian Sommerville, Inżynieria Oprogramowania, WNT, Warszawa 2003 Ian Sommerville Chapter 24: Quality Management tekst przetłumaczony i zaadaptowany przez Leszka J Chmielewskiego, WZIM SGGW Paul Drath, Singleimage Co., UK. Workshops on EC FP Research Programmes,

3 Inżynieria oprogramowania 12. Zarządzanie jakością 3/49 Plan Wstęp Jakość oprogramowania Standardy Pomiary oprogramowania i metryki Podsumowanie

4 Inżynieria oprogramowania 12. Zarządzanie jakością 4/49 Plan Wstęp Jakość oprogramowania Standardy Pomiary oprogramowania i metryki Podsumowanie

5 Inżynieria oprogramowania 12. Zarządzanie jakością 5/49 Wstęp Jakość jest ważna – trzeba zarządzać jakością Trzy główne zagadnienia: Poziom organizacyjny: 1.ustalenie ram organizacyjnych dla procesów i norm, które wesprą produkcję oprogramowania o wysokiej jakości Poziom projektu: 2.zastosowanie procesów i ich kontroli 3.ustalenie planu jakości – celów jakości i sposobów ich osiągnięcia

6 Inżynieria oprogramowania 12. Zarządzanie jakością 6/49 Plan Wstęp Jakość oprogramowania Standardy Pomiary oprogramowania i metryki Podsumowanie

7 Inżynieria oprogramowania 12. Zarządzanie jakością 7/49 Działania dla zarządzania jakością Zarządzanie jakością to osobny, niezależny element kontroli procesu produkcji oprogramowania Sprawdza zgodność z celami i normami Zespół zarządzania jakością powinien być niezależny od zespołu wytwarzającego, aby mieć obiektywne zdanie, niezależne od zagadnień wytwarzania

8 Inżynieria oprogramowania 12. Zarządzanie jakością 8/49 Zarządzanie jakością a wytwarzanie

9 Inżynieria oprogramowania 12. Zarządzanie jakością 9/49 Planowanie jakości Plan jakości ustala wymagane aspekty jakościowe, sposoby ich oceny, oraz najważniejsze cechy jakościowe Plan powinien definiować proces oceny jakości Plan powinien ustalać, które normy organizacyjne powinny być zastosowane i ewentualnie definiować dodatkowe normy

10 Inżynieria oprogramowania 12. Zarządzanie jakością 10/49 Plany jakości Struktura Wprowadzenie o produkcie Plany związane z produktem Cele i cechy jakości Opisy procesów jakości Ryzyka i zarządzanie ryzykiem Plany jakości powinny być krótkie i zwięzłe przeciwnie – nikt ich nie będzie czytał

11 Inżynieria oprogramowania 12. Zarządzanie jakością 11/49 Zakres zarządzania jakością Ważne szczególnie dla dużych, złożonych systemów Dokumentacja jest zapisem postępu prac i ułatwia ciągłość produkcji na wypadek zmian w zespole Dla mniejszych systemów zarządzanie jakością wymaga mniej dokumentacji i powinno skupiać się na tworzeniu kultury jakości Zasadniczo, celem zarządzania jakością jest właśnie wytworzenie pożądanej kultury jakości

12 Inżynieria oprogramowania 12. Zarządzanie jakością 12/49 Jakość oprogramowania Prosto: zgodność produktu ze specyfikacją Dla systemów oprogramowania jest to problematyczne Napięcie pomiędzy wymaganiami jakości ze strony klienta (wydajność, niezawodność,...) i producenta (zdatność do pielęgnacji, wielokrotne użycie,...) Niektóre wymagania trudno jednoznacznie wyrazić Specyfikacja jest zwykle niepełna i często niekonsekwentna Kryterium może być raczej przydatność produktu do celów klienta

13 Inżynieria oprogramowania 12. Zarządzanie jakością 13/49 Przydatność do celów Czy standardy programowania i dokumentacji były stosowane? Czy oprogramowanie zostało odpowiednio przetestowane? Czy oprogramowanie jest wystarczająco niezawodne, aby je wprowadzić do użytkowania? Czy wydajność oprogramowania jest do przyjęcia dla normalnej eksploatacji? Czy oprogramowanie jest łatwe w użyciu? Czy oprogramowanie ma dobrą strukturę i jest zrozumiałe? Czy oprogramowanie realizuje to, czego po nim oczekiwano? Obciążenie helpdesku nie jest miarą jakości

14 Inżynieria oprogramowania 12. Zarządzanie jakością 14/49 Atrybuty jakości SafetyUnderstandabilityPortability SecurityTestabilityUsability ReliabilityAdaptabilityReusability ResilienceModularityEfficiency RobustnessComplexityLearnability

15 Inżynieria oprogramowania 12. Zarządzanie jakością 15/49 Atrybuty jakości BezpieczeństwoZrozumiałośćPrzenośność ZabezpieczenieTestowalnośćŁatwość użycia NiezawodnośćAdaptowalnośćZdatn. do wielokr. uż. ElastycznośćModularnośćWydajność OdpornośćZłożonośćŁatwość uczenia

16 Inżynieria oprogramowania 12. Zarządzanie jakością 16/49 Konflikty jakości Nie można zoptymalizować wszystkich atrybutów jednocześnie – na przykład, odporność (na co?; krzepkość) jest zwykle sprzeczna z wydajnością Plan jakości powinien zatem definiować cechy najważniejsze Plan powinien także zawierać definicję procesu oceny jakości – uzgodnionego sposobu oceny, czy konkretne atrybuty, takie jak np. zdatność do pielęgnacji lub odporność, są obecne w produkcie

17 Inżynieria oprogramowania 12. Zarządzanie jakością 17/49 Jakość procesu a jakość produktu Jakość produktu jest pod wpływem jakości procesu produkcyjnego W tworzeniu oprogramowania jest to istotne, gdyż niektóre atrybuty jakościowe oprogramowania są trudne do oszacowania Jednakże, relacja pomiędzy procesem produkcyjnym a jakością produktu jest mało zrozumiała i słabo zbadana W produkcji ważne są indywidualne zdolności i doświadczenie Czynniki zewnętrzne, jak nowość aplikacji lub wymaganie przyspieszonego dostarczenia mogą źle wpływać na jakość produktu

18 Inżynieria oprogramowania 12. Zarządzanie jakością 18/49 Tak Jakość produktu oparta na procesie Zdefiniuj proces Rozwiń produkt Oceń jakość produktu Popraw proces Opracuj standard procesu Jakość produktu odpowiednia ? Nie

19 Inżynieria oprogramowania 12. Zarządzanie jakością 19/49 Plan Wstęp Jakość oprogramowania Standardy Pomiary oprogramowania i metryki Podsumowanie

20 Inżynieria oprogramowania 12. Zarządzanie jakością 20/49 Standardy oprogramowania Standardy (normy) definiują wymagane cechy produktu lub procesu. Są ważne w zarządzaniu jakością. Normy mogą być międzynarodowe, narodowe, firmowe lub projektowe Normy produktowe definiują cechy, które mają charakteryzować wszystkie komponenty oprogramowania, na przykład wspólny styl programowania jednolity styl dokumentowania jednolity styl komunikacji z użytkownikiem... Normy procesowe definiują jak należy realizować proces

21 Inżynieria oprogramowania 12. Zarządzanie jakością 21/49 Ważność standardów Obudowanie najlepszych praktyk – unikanie powtarzania błędów Są ramą dla określenia co oznacza jakość w konkretnym przypadku, tzn. jakość z punktu widzenia organizacji Zapewniają ciągłość – nowi pracownicy rozumieją organizację rozumiejąc używane w niej standardy

22 Inżynieria oprogramowania 12. Zarządzanie jakością 22/49 Standardy produktu i procesu Standardy produktuStandardy procesu Formularz przeglądu projektuPostępowanie w czasie przeglądu Struktura dokumentu wymagańDostarczenie nowego kodu Format nagłówka metodyProces wydania wersji Styl programowania w JavieProces zatwierdzania planu projektu Format planu projektuProces sterowania zmianą Formularz wymagania zmianyProces zapisu przebiegu testu

23 Inżynieria oprogramowania 12. Zarządzanie jakością 23/49 Problemy ze standardami Mogą być uważanie za nieistotne lub nieaktualne przez inżynierów Często wymagają biurokratycznego wypełniania formularzy Jeśli nie są wsparte oprogramowaniem narzędziowym, pielęgnacja dokumentacji jakości często wymaga nudnego wypełniania formularzy Sposób? Dalej.

24 Inżynieria oprogramowania 12. Zarządzanie jakością 24/49 Rozwój standardów Zaangażuj praktyków w rozwój standardów Inżynierowie powinni rozumieć uzasadnienie dla standardu Regularnie przeglądaj standardy i ich użycie Standardy mogą się szybko starzeć Obniża to ich wiarygodność wśród praktyków Szczegółowe standardy powinny mieć wsparcie w postaci wyspecjalizowanych narzędzi Nadmierna praca urzędnicza powoduje najwięcej narzekań na standardy Formularze w sieci nie wystarczą

25 Inżynieria oprogramowania 12. Zarządzanie jakością 25/49 Standardy ISO 9001 Do budowy systemów zarządzania jakością można użyć międzynarodowego zbioru norm ISO 9001, najbardziej ogólna z norm tego rodzaju, stosuje się do organizacji które projektują, rozwijają i obsługują produkty w tym oprogramowanie Norma ISO 9001 jest ramą dla budowy standardów oprogramowania Ustala ogólne zasady jakości, opisuje procesy jakości w ogólności i przedkłada standardy i procedury organizacyjne, które należy zdefiniować. Należy je opisać w firmowym podręczniku jakości

26 Inżynieria oprogramowania 12. Zarządzanie jakością 26/49 Główne procesy ISO 9001 Procesy dostarczania produktu przyjmowanie zamówienia projektowanie i rozwój testowanie produkcja i dostarczanie serwis i wsparcie Procesy wspierające zarządzanie biznesowe zarządzanie dostawcami zarządzanie zasobami zarządzanie konfiguracjami

27 Inżynieria oprogramowania 12. Zarządzanie jakością 27/49 ISO 9001 i zarządzanie jakością Model jakości ISO 9001 jego egzemplarzem jest Firmowy podręcznik jakości dokumentuje Firmowy proces jakości Zarządzanie jakością projektów Plan jakości projektu 2 Plan jakości projektu 1 Plan jakości projektu 3 wspomaga jego egzemplarzem jest jest użyty przy opracowaniu

28 Inżynieria oprogramowania 12. Zarządzanie jakością 28/49 Certyfikacja ISO 9001 Standardy jakości i procedury powinny być udokumentowane w firmowym podręczniku jakości Zewnętrzna instytucja certyfikuje, że formowy podręcznik jakości jest zgodny z normą ISO 9001 Niektórzy klienci wymagają, by dostawcy mieli certyfikat ISO 9001, jakkolwiek potrzeba elastyczności jest uważana za coraz ważniejszą

29 Inżynieria oprogramowania 12. Zarządzanie jakością 29/49 Plan Wstęp Jakość oprogramowania Standardy Pomiary oprogramowania i metryki Podsumowanie I

30 Inżynieria oprogramowania 12. Zarządzanie jakością 30/49 Podsumowanie Zarządzanie jakością oprogramowania jest związane z zapewnieniem, że oprogramowanie ma mało defektów i że spełnia wymagane standardy niezawodności, zdatności do pielęgnacji, przenośności itd. Zarządzanie obejmuje standardy dla procesu i produktu oraz sposoby sprawdzania zgodności z tymi standardami Standardy oprogramowania są ważne, ponieważ reprezentują najlepsze praktyki Procedury zarządzania jakością mogą być udokumentowane w firmowym podręczniku jakości Można skorzystać z ogólnego modelu podręcznika jakości zasugerowanego przez normę ISO 9001

31 Inżynieria oprogramowania 12. Zarządzanie jakością 31/49 Plan Wstęp Jakość oprogramowania Standardy Pomiary oprogramowania i metryki (UK) Podsumowanie II

32 Inżynieria oprogramowania 12. Zarządzanie jakością 32/49 Software measurement and metrics Software measurement is concerned with deriving a numeric value for an attribute of a software product or process. This allows for objective comparisons between techniques and processes. Although some companies have introduced measurement programmes, most organisations still dont make systematic use of software measurement. There are few established standards in this area. 32Chapter 24 Quality management

33 Inżynieria oprogramowania 12. Zarządzanie jakością 33/49 Software metric Any type of measurement which relates to a software system, process or related documentation Lines of code in a program, the Fog index, number of person-days required to develop a component. Allow the software and the software process to be quantified. May be used to predict product attributes or to control the software process. Product metrics can be used for general predictions or to identify anomalous components. 33Chapter 24 Quality management

34 Inżynieria oprogramowania 12. Zarządzanie jakością 34/49 Predictor and control measurements 34Chapter 24 Quality management

35 Inżynieria oprogramowania 12. Zarządzanie jakością 35/49 Use of measurements To assign a value to system quality attributes By measuring the characteristics of system components, such as their cyclomatic complexity, and then aggregating these measurements, you can assess system quality attributes, such as maintainability. To identify the system components whose quality is sub-standard Measurements can identify individual components with characteristics that deviate from the norm. For example, you can measure components to discover those with the highest complexity. These are most likely to contain bugs because the complexity makes them harder to understand. 35Chapter 24 Quality management

36 Inżynieria oprogramowania 12. Zarządzanie jakością 36/49 Metrics assumptions A software property can be measured. The relationship exists between what we can measure and what we want to know. We can only measure internal attributes but are often more interested in external software attributes. This relationship has been formalised and validated. It may be difficult to relate what can be measured to desirable external quality attributes. 36Chapter 24 Quality management

37 Inżynieria oprogramowania 12. Zarządzanie jakością 37/49 Relationships between internal and external software attributes 37Chapter 24 Quality management

38 Inżynieria oprogramowania 12. Zarządzanie jakością 38/49 Problems with measurement in industry It is impossible to quantify the return on investment of introducing an organizational metrics program. There are no standards for software metrics or standardized processes for measurement and analysis. In many companies, software processes are not standardized and are poorly defined and controlled. Most work on software measurement has focused on code-based metrics and plan-driven development processes. However, more and more software is now developed by configuring the enterprise resource planning systems (ERP) or commercial-off-the-shelf systems (COTS). Introducing measurement adds additional overhead to processes. 38Chapter 24 Quality management

39 Inżynieria oprogramowania 12. Zarządzanie jakością 39/49 Product metrics A quality metric should be a predictor of product quality. Classes of product metric Dynamic metrics which are collected by measurements made of a program in execution Static metrics which are collected by measurements made of the system representations Dynamic metrics help assess efficiency and reliability Static metrics help assess complexity, understandability and maintainability. 39Chapter 24 Quality management

40 Inżynieria oprogramowania 12. Zarządzanie jakością 40/49 Dynamic and static metrics Dynamic metrics are closely related to software quality attributes It is relatively easy to measure the response time of a system (performance attribute) or the number of failures (reliability attribute). Static metrics have an indirect relationship with quality attributes You need to try and derive a relationship between these metrics and properties such as complexity, understandability and maintainability. 40Chapter 24 Quality management

41 Inżynieria oprogramowania 12. Zarządzanie jakością 41/49 Static software product metrics Software metricDescription Fan-in/Fan-out Fan-in is a measure of the number of functions or methods that call another function or method (say X). Fan-out is the number of functions that are called by function X. A high value for fan-in means that X is tightly coupled to the rest of the design and changes to X will have extensive knock-on effects. A high value for fan-out suggests that the overall complexity of X may be high because of the complexity of the control logic needed to coordinate the called components. Length of codeThis is a measure of the size of a program. Generally, the larger the size of the code of a component, the more complex and error-prone that component is likely to be. Length of code has been shown to be one of the most reliable metrics for predicting error-proneness in components. 41Chapter 24 Quality management

42 Inżynieria oprogramowania 12. Zarządzanie jakością 42/49 Static software product metrics Software metricDescription Cyclomatic complexity This is a measure of the control complexity of a program. This control complexity may be related to program understandability. I discuss cyclomatic complexity in Chapter 8. Length of identifiers This is a measure of the average length of identifiers (names for variables, classes, methods, etc.) in a program. The longer the identifiers, the more likely they are to be meaningful and hence the more understandable the program. Depth of conditional nesting This is a measure of the depth of nesting of if-statements in a program. Deeply nested if-statements are hard to understand and potentially error-prone. Fog indexThis is a measure of the average length of words and sentences in documents. The higher the value of a documents Fog index, the more difficult the document is to understand. 42Chapter 24 Quality management

43 Inżynieria oprogramowania 12. Zarządzanie jakością 43/49 The CK object-oriented metrics suite Object-oriented metric Description Weighted methods per class (WMC) This is the number of methods in each class, weighted by the complexity of each method. Therefore, a simple method may have a complexity of 1, and a large and complex method a much higher value. The larger the value for this metric, the more complex the object class. Complex objects are more likely to be difficult to understand. They may not be logically cohesive, so cannot be reused effectively as superclasses in an inheritance tree. Depth of inheritance tree (DIT) This represents the number of discrete levels in the inheritance tree where subclasses inherit attributes and operations (methods) from superclasses. The deeper the inheritance tree, the more complex the design. Many object classes may have to be understood to understand the object classes at the leaves of the tree. Number of children (NOC) This is a measure of the number of immediate subclasses in a class. It measures the breadth of a class hierarchy, whereas DIT measures its depth. A high value for NOC may indicate greater reuse. It may mean that more effort should be made in validating base classes because of the number of subclasses that depend on them. 43Chapter 24 Quality management

44 Inżynieria oprogramowania 12. Zarządzanie jakością 44/49 The CK object-oriented metrics suite Object-oriented metricDescription Coupling between object classes (CBO) Classes are coupled when methods in one class use methods or instance variables defined in a different class. CBO is a measure of how much coupling exists. A high value for CBO means that classes are highly dependent, and therefore it is more likely that changing one class will affect other classes in the program. Response for a class (RFC) RFC is a measure of the number of methods that could potentially be executed in response to a message received by an object of that class. Again, RFC is related to complexity. The higher the value for RFC, the more complex a class and hence the more likely it is that it will include errors. Lack of cohesion in methods (LCOM) LCOM is calculated by considering pairs of methods in a class. LCOM is the difference between the number of method pairs without shared attributes and the number of method pairs with shared attributes. The value of this metric has been widely debated and it exists in several variations. It is not clear if it really adds any additional, useful information over and above that provided by other metrics. 44Chapter 24 Quality management

45 Inżynieria oprogramowania 12. Zarządzanie jakością 45/49 Software component analysis System component can be analyzed separately using a range of metrics. The values of these metrics may then compared for different components and, perhaps, with historical measurement data collected on previous projects. Anomalous measurements, which deviate significantly from the norm, may imply that there are problems with the quality of these components. 45Chapter 24 Quality management

46 Inżynieria oprogramowania 12. Zarządzanie jakością 46/49 Measurement surprises Reducing the number of faults in a program leads to an increased number of help desk calls The program is now thought of as more reliable and so has a wider more diverse market. The percentage of users who call the help desk may have decreased but the total may increase; A more reliable system is used in a different way from a system where users work around the faults. This leads to more help desk calls. 46Chapter 24 Quality management

47 Inżynieria oprogramowania 12. Zarządzanie jakością 47/49 Plan Wstęp Jakość oprogramowania Standardy Pomiary oprogramowania i metryki Podsumowanie II

48 Inżynieria oprogramowania 12. Zarządzanie jakością 48/49 Key points Software measurement can be used to gather data about software and software processes. Product quality metrics are particularly useful for highlighting anomalous components that may have quality problems. 48Chapter 24 Quality management

49 Inżynieria oprogramowania 12. Zarządzanie jakością 49/49 Mapa Molea Przywództwo Organizacja Indywidualne Grupowe Organiczna (Biologiczna) Systematyczna Rosja Grecja Hiszpania Portugalia Włochy Holandia Dania USA Niemcy Francja Belgia UK Irlandia Luksemburg Polska? Komisja Europejska? System jakości Zaadaptowano na podstawie: Paul Drath, Singleimage Co., Workshops on EC FP Research Programmes, (z pamięci)


Pobierz ppt "Inżynieria Oprogramowania 12. Zarządzanie jakością Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW www.lchmiel.pl."

Podobne prezentacje


Reklamy Google