Inżynieria jakości

Inżynieria jakości to dyscyplina inżynierii związana z zasadami i praktyką zapewniania i kontroli jakości produktów i usług. W rozwoju oprogramowania jest to zarządzanie, rozwój, obsługa i konserwacja systemów informatycznych i architektur korporacyjnych o wysokim standardzie jakości.

Opis

Inżynieria jakości to dyscyplina inżynierii, która tworzy i wdraża strategie zapewnienia jakości w rozwoju i produkcji produktów, a także rozwoju oprogramowania.

Inżynierowie Jakości skupiają się na optymalizacji jakości produktu, którą W. Edwards Deming zdefiniował jako:

Zasób wiedzy z zakresu inżynierii jakości obejmuje:

  • Zarządzanie i przywództwo
  • System jakości
  • Elementy systemu jakości
  • Projektowanie produktu i procesu
  • Klasyfikacja cech jakościowych
  • Projektowanie danych wejściowych i przegląd
  • Weryfikacja projektu
  • Niezawodność i łatwość konserwacji
  • Kontrola produktu i procesu
  • Ciągłe doskonalenie
  • Narzędzia kontroli jakości
  • Narzędzia zarządzania jakością i planowania
  • Techniki ciągłego doskonalenia
  • Działania naprawcze
  • Akcja prewencyjna
  • Statystyczna kontrola procesu (SPC)
  • Zarządzanie ryzykiem

Role

Audytor : Inżynierowie ds. jakości mogą być odpowiedzialni za audytowanie własnych firm lub ich dostawców pod kątem zgodności z międzynarodowymi standardami jakości, takimi jak ISO9000 i AS9100 . Mogą być także niezależnymi audytorami podlegającymi organowi audytowemu.

Jakość procesu : Inżynierom ds. jakości można powierzyć zadanie mapowania strumienia wartości i statystycznej kontroli procesu w celu ustalenia, czy istnieje prawdopodobieństwo, że w procesie powstanie wadliwy produkt. Mogą tworzyć plany i kryteria inspekcji, aby zapewnić wykrycie wadliwych części przed ukończeniem.

Jakość dostawcy : Inżynierowie ds. jakości mogą być odpowiedzialni za audyt dostawców lub przeprowadzanie pierwotnych przyczyn i działań naprawczych w ich zakładzie lub nadzorowanie takich działań, aby zapobiec dostawie wadliwego produktu.

Oprogramowanie

Usługi IT są w coraz większym stopniu powiązane w przepływach pracy przekraczających granice platform, urządzeń i organizacji, na przykład w systemach cyberfizycznych, przepływach pracy między przedsiębiorstwami lub podczas korzystania z usług w chmurze. W takich kontekstach inżynieria jakości ułatwia niezbędne, wszechstronne uwzględnienie atrybutów jakości.

W takich kontekstach niezbędne jest całościowe spojrzenie na jakość, od zarządzania po działalność. Inżynieria jakości integruje metody i narzędzia z architekturą korporacyjną , zarządzania produktem oprogramowania , zarządzania usługami IT , inżynierią oprogramowania i inżynierią systemów , a także z zarządzania jakością oprogramowania i zarządzania bezpieczeństwem informacji . Oznacza to, że inżynieria jakości wykracza poza klasyczne dyscypliny inżynierii oprogramowania, zarządzania bezpieczeństwem informacji czy zarządzania produktem oprogramowania, ponieważ integruje zagadnienia związane z zarządzaniem (takie jak strategia biznesowa i IT, zarządzanie ryzykiem, widoki procesów biznesowych, zarządzanie wiedzą i informacjami, zarządzanie wydajnością operacyjną). , względy projektowe (w tym proces tworzenia oprogramowania , analiza wymagań , testowanie oprogramowania ) i względy operacyjne (takie jak konfiguracja, monitorowanie, zarządzanie usługami IT ). W wielu dziedzinach, w których jest stosowana, inżynieria jakości jest ściśle powiązana ze zgodnością z wymogami prawnymi i biznesowymi, zobowiązaniami umownymi i standardami. Jeśli chodzi o atrybuty jakości, dominującą rolę odgrywa niezawodność, bezpieczeństwo i ochrona usług IT.

W inżynierii jakości cele jakościowe są realizowane w procesie współpracy. Proces ten wymaga interakcji w dużej mierze niezależnych aktorów, których wiedza opiera się na różnych źródłach informacji.

Inżynieria jakości

Cele dotyczące jakości

Cele jakościowe opisują podstawowe wymagania dotyczące jakości oprogramowania . W inżynierii jakości często zajmują się atrybutami jakości, takimi jak dostępność, bezpieczeństwo, niezawodność i wydajność. Za pomocą modeli jakości, takich jak ISO/IEC 25000 i metod, takich jak metryki pytania o cel, możliwe jest przypisanie metryk do celów jakościowych. Pozwala to zmierzyć stopień osiągnięcia celów jakościowych. Jest to kluczowy element procesu inżynierii jakości, a jednocześnie warunek jego ciągłego monitorowania i kontroli. Aby zapewnić skuteczny i wydajny pomiar celów jakościowych, integracja kluczowych liczb, które zostały zidentyfikowane ręcznie (np. na podstawie szacunków ekspertów lub przeglądów) i automatycznie zidentyfikowanych wskaźników (np. poprzez analizę statystyczną kodów źródłowych lub automatyczne testy regresji) jako podstawa decyzji -robienie jest korzystne.

Aktorzy

Kompleksowe podejście do zarządzania jakością w inżynierii jakości wymaga wielu aktorów o różnych obowiązkach i zadaniach, różnej wiedzy specjalistycznej i zaangażowania w organizacji.

Różne role zaangażowane w inżynierię jakości:

  • Architekt biznesowy,
  • architekt IT,
  • Ochroniarz,
  • Inżynier wymagań,
  • Menedżer jakości oprogramowania,
  • kierownik testów,
  • Menadżer projektu,
  • Menedżer produktu i
  • Architekt bezpieczeństwa.

Zazwyczaj role te są rozproszone ponad granicami geograficznymi i organizacyjnymi. Dlatego należy podjąć odpowiednie środki w celu koordynowania heterogenicznych zadań różnych ról w inżynierii jakości oraz konsolidacji i synchronizacji danych i informacji niezbędnych do realizacji zadań, a także udostępnienia ich każdemu aktorowi w odpowiedniej formie.

Zarządzanie wiedzą

Zarządzanie wiedzą odgrywa ważną rolę w inżynierii jakości. Baza wiedzy inżynierii jakości obejmuje różnorodne ustrukturyzowane i nieustrukturyzowane dane , począwszy od repozytoriów kodu, poprzez specyfikacje wymagań, standardy, raporty z testów, modele architektury korporacyjnej, aż po konfiguracje systemów i dzienniki wykonawcze. Modele oprogramowania i systemów odgrywają ważną rolę w mapowaniu tej wiedzy. Dane z bazy wiedzy o inżynierii jakości są generowane, przetwarzane i udostępniane zarówno ręcznie, jak i za pomocą narzędzi, w kontekście rozproszonym geograficznie, organizacyjnie i technicznie. Najważniejsze jest skupienie się na związane z zapewnianiem jakości , wczesne rozpoznawanie zagrożeń i odpowiednie wsparcie współpracy aktorów.

Skutkuje to następującymi wymaganiami dotyczącymi bazy wiedzy z zakresu inżynierii jakości:

  • Wiedza jest dostępna w wymaganej jakości. Do ważnych kryteriów jakości należy spójność i aktualność wiedzy, a także kompletność i adekwatność pod względem szczegółowości w odniesieniu do zadań odpowiednich podmiotów.
  • Wiedza jest ze sobą powiązana i identyfikowalna, aby wspierać interakcję między podmiotami i ułatwiać analizę danych. Taka identyfikowalność dotyczy nie tylko wzajemnych powiązań danych na różnych poziomach abstrakcji (np. powiązanie wymagań z realizującymi je usługami), ale także ich identyfikowalności w okresach czasu, co jest możliwe tylko wtedy, gdy istnieją odpowiednie koncepcje wersjonowania. Dane mogą być łączone zarówno ręcznie, jak i (pół)automatycznie.
  • Informacje muszą być dostępne w formie zgodnej z wiedzą dziedzinową odpowiednich podmiotów. Dlatego baza wiedzy musi zapewniać odpowiednie mechanizmy transformacji informacji (np. agregacji) i wizualizacji. Koncepcja RACI jest przykładem odpowiedniego modelu przypisywania aktorów do informacji znajdujących się w bazie wiedzy inżynierii jakości.
  • W kontekstach, w których podmioty z różnych organizacji lub poziomów współdziałają ze sobą, baza wiedzy na temat inżynierii jakości musi zapewniać mechanizmy zapewniające poufność i integralność.
  • Bazy wiedzy inżynierii jakości oferują cały szereg możliwości analizy i wyszukiwania informacji w celu wsparcia zadań podmiotów zajmujących się kontrolą jakości.

Procesy współpracy

Proces inżynierii jakości obejmuje wszystkie zadania realizowane ręcznie i w sposób (pół)automatyczny, których celem jest identyfikacja, spełnienie i pomiar dowolnych cech jakościowych w wybranym kontekście. Proces ten wymaga wysoce współpracy w tym sensie, że wymaga interakcji aktorów, działających w dużej mierze niezależnie od siebie.

Proces inżynierii jakości musi integrować wszelkie istniejące podprocesy, które mogą obejmować procesy o dużej strukturze, takie jak zarządzanie usługami IT , oraz procesy o ograniczonej strukturze, takie jak zwinne tworzenie oprogramowania . Innym ważnym aspektem jest procedura oparta na zmianie, w której zdarzenia związane ze zmianą, takie jak zmienione wymagania, rozpatrywane są w lokalnym kontekście informacji i podmiotów, na które taka zmiana ma wpływ. Warunkiem tego są metody i narzędzia, które wspierają propagację zmian i obsługę zmian.

Celem efektywnego procesu inżynierii jakości jest koordynacja zautomatyzowanych i ręcznych zadań zapewnienia jakości . Przegląd kodu lub wyznaczanie celów jakościowych to przykłady zadań wykonywanych ręcznie, natomiast testy regresyjne i zbieranie metryk kodu to przykłady zadań wykonywanych automatycznie. Proces inżynierii jakości (lub jego podprocesy) można wspomóc takimi narzędziami jak systemy biletowe czy narzędzia do zarządzania bezpieczeństwem.

Zobacz też

Wspomnienia

Linki zewnętrzne

  • Txture to narzędzie do tekstowej dokumentacji i analizy architektury IT.
  • mbeddr to zestaw zintegrowanych i rozszerzalnych języków do inżynierii oprogramowania wbudowanego oraz zintegrowane środowisko programistyczne (IDE).
  • qeunit.com to blog poświęcony kwestiom związanym z QE