U ovoj lekciji obrađivaćemo:

  • Osnovne pojmove i tehnike vezane za sistem obezbeđenja kvaliteta softvera;
  • Six Sigma strategije poboljšanja kvaliteta softverskog proizvoda i procesa;
  • Uloge koji ima Six Sigma u softverskom inženjerstvu

 

Obezbeđenje kvaliteta softvera

Sistem obezbeđenja kvaliteta softvera je skup sistematski postavljenih aktivnosti koje se brinu o:

  • Definisanju procesa projektovanja softverskog proizvoda
  • Merenju i poboljšanju procesa projektovanja softverskog proizvoda
  • Usklađenosti svih procesa u toku projektovanja softvera
  • Kvalitetu softverskog proizvoda koji se ugrađuje tokom svih faza razvoja softvera
  • Uspešnoj prevenciji generisanja grešaka (kroz smanjenje složenosti dizajna, modelovanju i simulaciji, izradi prototipova itd.)
  • Uspešnoj detekciji softverskih grešaka kroz inspekcije, preglede i efikasno testiranje softvera.

 

Sistem kvaliteta kompanije treba izgraditi kroz organizacionu strukturu, izradu procedura, procesa i obezbeđenje potrebnih resursa za implementaciju menadžmenta kvaliteta.

Menadžment kvaliteta mora da obavlja aktivnosti vezane za kvalitet procesa i proizvoda kao važne aktivnosti ukupnih menadžerskih funkcija kroz uspostavljenu politiku kvaliteta, uspostavljenu odgovornost svih zaposlenih, planiranje, kontrolu i unapređenje sistema kvaliteta u kompaniji.

Klasičan pristup testiranju softvera, kao najvažnije aktivnosti u obezbeđenju kvaliteta softvera, je neefikasan u pogledu otkrivanja i uklanjanja grešaka u fazi izrade projektnih zahteva i dizajna softverskog proizvoda. Kao rezultat, naučena lekcija u dosadašnjim pristupima testiranja softvera može pomoći da se preventivno deluje u cilju izbegavanja tj. ponavljanja istih grešaka u narednim projektima i kao osnova za poboljšanje procesa testiranja softvera, a time i sistema obezbeđenja kvaliteta kompanije.

Umesto da je cilj testiranja softvera da se preko otkrivanja grešaka oceni kvalitet softvera, kvalitet softvera se mora ugraditi tj. dizajnom obezbediti. Zato se mora od početka dizajnirati kvalitetan softver kroz dizajn procesa testiranja i pojedinačnih test procedura softvera tj. aktivnosti testiranja kojima se ugrađuje kvalitet softvera, odnosno deluje aktivno.

Inženjerstvo kvaliteta softvera predstavlja naprednu inženjersku oblast koja se primenjuje u svim fazama ciklusa procesa razvoja softvera i procesa testiranja. Schulmeyer, definiše obezbeđenje kvaliteta softvera kao “skup sistematizovanih aktivnosti koje obezbeđuju da se na kraju procesa razvoja softvera dobije softverski proizvod prema postavljenim projektnim zahtevima”. Obezbeđenje znači da se osigura, uz minimalni rizik, zahtevani nivo kvaliteta softvera, a uz stalno merenje efikasnosti i efektivnosti procesa testiranja softvera kao najvažnije aktivnosti u procesu obezbeđenja kvaliteta softverskog proizvoda.
To dovodi do implementacije sledećih komponenti inženjerstva kvaliteta softvera: Obezbeđenja kvaliteta (OKv), upravljanja konfiguracijama (UK), verifikacije i validacije (V&V) i evaluacije procesa testiranja softvera (EPTS). Treba obratiti pažnju da se radi o obezbeđenju kvaliteta i proizvoda, ali i procesa razvoja softvera.

 

Six Sigma strategija poboljšanja kvaliteta

Da bismo obezbedili stabilan, a to znači obzervabilan, kontrolabilan, odnosno prediktabilan proces razvoja, implementirana je metodologija inženjerstva kvaliteta softvera poznata pod imenom Six Sigma (6σ).

Six Sigma je biznis menadžment strategija, inicijalno predstavljena od Motorole, danas široko rasprostranjena u mnogim industrijskim granama. Nastoji da poboljša kvalitet izlaza procesa, putem identifikovanja i uklanjanja uzroka defekata u proizvodnim i poslovnim procesima.

Six Sigma je vizija, strategija, metodologija, skup alata koja insistira na aktivnoj ulozi menadžmenta. Ona insistira na poboljšanju finansijskih i poslovnih rezultata, fokusiranju na najveće probleme poslovanja kompanije kroz precizno definisanje uloge svakog učesnika u procesu poboljšanja, potrebnih alata, procedura i efikasne metrike koja obezbeđuje uspeh projekta.

 

Sigma nivoi

Ime Six Sigma, je izvedeno iz statističke mere uspešnosti obezbeđenja kvaliteta procesa, da na uzorku od million napravi grešku (defect) u 3.4 slučaja (3.4 defects per million opportunities – 3.4 DPMO). Danas se sve češće koristi kao atribut uspešnosti kompanija.

Sigma nivoi odgovaraju sledećim DPMO (Defects Per Million Opportunities) vrednostima:

  • 1 sigma = 690,000 DPMO = 31% efikasnost
  • 2 sigma = 308,000 DPMO = 69.2% efikasnost
  • 3 sigma = 66,800 DPMO = 93.32% efikasnost
  • 4 sigma = 6,210 DPMO = 99.379% efikasnost
  • 5 sigma = 230 DPMO = 99.977% efikasnost
  • 6 sigma = 3.4 DPMO = 99.9997% efikasnost

 

Six Sigma metode

Six Sigma ima dva ključna metoda: DMAIC i DMADV. DMAIC se koristi da poboljša postojeći poslovni proces, dok se DMADV koristi da kreira novi proizvod ili dizajn procesa.

DMAIC je skraćenica od pet faza implementacije: definiši, meri, analiziraj, poboljšaj i kontroliši tj. (engl. “Define, Measure, Analyze, Improve, and Control”).

DMADV je skraćenica od definiši, meri, analiziraj, dizajniraj i verifikuj tj. (engl. “Define, Measure, Analyze, Design, and Verify”).


 
Slika 1. Six Sigma model
(izvor: www.sixsigmainstitute.com)

 

Kakvu ulogu ima Six Sigma u softverskom inženjerstvu?

Glavna ideja, jeste činjenica da se objavljeni rezultati iz prakse veoma razlikuju u pogledu ocene troškova, kašnjenja, realizovanih funkcija i performansi, odnosno kvaliteta softverskih proizvoda i utvrđivanje razloga za to. Već smo istakli visok stepen rizika uspeha softverskih projekata. Poznata američka kompanija Standish Group je u svom poznatom izveštaju Standish Group Chaos Report 2001, na osnovu prikupljenih podataka o 8000 velikih projekata analizirala uspeh softverskih kompanija u Americi, i utvrdila da je u proseku oko 90% više potrošeno novca nego što je iznosio planirani budžet kompanija, trajanje razvoja je duže 120% od planiranog i 25% je prekinuto i nikad nije završeno usled kašnjenja, većih troškova od planiranih, neprihvatljivog kvaliteta softvera ili njihove kombinacije.

Six Sigma metodologija i skup alata koji su na raspolaganju, mogu značajno smanjiti rizik realizacije projekta u planiranim okvirima. U mnogim oblastima gde je 6σ primenjena, objavljeni su evidentni pozitivni efekti i da veličina uspeha zavisi od kvaliteta implementacije 6σ metodologije. Treba očekivati da pozitivni efekti primene 6σ metodologije u softverskom inženjerstvu budu slični uspesima u drugim industrijskim granama i da na taj uspeh takođe najviše utiče kvalitet implementacije 6σ metodologije. Doprinos je u uspešnom mapiranju najboljih u praksi potvrđenih strategija i tehnika softverskog inženjerstva, planiranog eksperimenta, statističkog procesa upravljanja kvalitetom, upravljanja rizicima, i 6σ metodologije u optimizovanom procesu testiranja softvera.  

U procesa razvoja softvera postoje četiri evidentne oblasti softverskog inženjerstva čiji proizvod nije izvestan (određen): nepouzdan je korak analize zahteva i izrada specifikacije softverskog proizvoda, nepouzdan je proces projektovanja od sistemskih zahteva pa do implementacije softverskog rešenja (koda), nepouzdanost u ponovnoj upotrebi projektovanog softvera i nepouzdanost u korišćenju inženjerskih tehnika i metoda.

Proces testiranja softvera, kao paralelan proces koji prati sve navedene oblasti softverskog inženjerstva, takođe je nepouzdan, jer je čovek dominantno uključen u sprovođenje procesa testiranja i podleže maksimi neizvesnosti MUSE (engl. Maxim of Uncertainty in Software Engineering). Kao rezultat sledi činjenica da su softverski projekti veoma rizični, da su objavljeni podaci o proceni troškova, trajanja pojedinih aktivnosti u procesa razvoja i testiranja softvera, ostvareni kvalitet softverskog proizvoda veoma neusaglašeni. Takođe je jasno da je nemoguće sprečiti pravljenje grešaka u procesa razvoja i testiranja kompleksnih softverskih sistema.

Međutim, postoji širok repertoar tehnika i strategija inženjerstva kvaliteta softvera koje, ako se na valjan, efikasan i efektan način primene, obezbeđuju zahtevan nivo kvaliteta softvera. Testiranje softvera je među drugim uobičajenim aktivnostima inženjerstva kvaliteta softvera najproduktivnija aktivnost. Ona otkriva greške i probleme kvaliteta softverskog proizvoda i ukazuje na slabosti procesa razvoja softvera u cilju preduzimanja korektivnih aktivnosti kao prevencije u pravljenju grešaka u procesu razvoja softvera. Ostale alternative inženjerstva kvaliteta softvera, kao što je formalna verifikacija, inspekcija, tehnike tolerisanja grešaka bore se sa greškama u softveru na svoj način, koje treba znati da bi se efikasno upotrebile u aplikacijama gde najbolje odgovaraju.

Kako se može uspostaviti proces koji daje visok prinos tj. proizvodni rezultat? Jedan od odgovora u inženjerstvu kvaliteta softvera je 6σ metodologija koja može da:

  • Obezbedi visok kvaliteta softvera
  • Pokaže rezultat u “uspešno” izvršenim inspekcijama u otkrivanju i otklanjanju grešaka i otkaza
  • Oceni kvantitativne troškove i efikasnost procesa testiranja
  • Identifikuje i primeni najbolje primere iz prakse
  • Sprovede stalni process poboljšanja procesa testiranja.

 

U realizaciji visokog proizvodnog rezultata inženjerstva kvaliteta softvera, treba razmotriti sledeće principe i rezultate iz prakse:

  • Ključne inženjerske principe (pragmatičan iterativni i inkrementalni proces, orijentacija na zadovoljnog klijenta, detaljne inspekcije projektnih aktivnosti, visoko produktivan proces testiranja, dobar i integrisan projektni tim kvalifikovanih eksperata, praćeno i integrisano upravljanje i dr.)
  • Postavljanje eksplicitnih ciljeva menadžmentu (u pogledu kvaliteta, produktivnosti i resursa)
  • Integrisani proces merenja (definisanje i merenje parametara procesa i proizvoda)
  • Predikcije, ocenjivanja i praćenja troškova i kvaliteta
  • Primene konstantnog procesa poboljšanja zasnovanog na tehnikama optimizacije: kvaliteta proizvoda, troškova razvoja, trajanja razvoja i resursa (ljudstvo i infrastruktura).

 

Od više opcija treba napraviti ispravnu politiku primene u softverskom inženjerstvu, koja se mora zasnivati na statističkim metodama analize i na osnovu rezultata iz prakse, korektno i konzistentno implementiranim u proces razvoja softvera.

Jedno od rešenja koje se nameće je Six Sigma. Za razliku od drugih do sada razvijenih i primenjivanih pristupa poboljšanja procesa razvoja i testiranja softvera, Six Sigma insistira na aktivnoj ulozi menadžmenta u aktivnostima testiranja, na poboljšanju rezultata detekcije i prevencije grešaka u softveru, na finansijskoj uštedi fokusiranjem na najveće probleme u procesa razvoja softvera.

Six Sigma obezbeđuje detaljne i precizne mehanizme kroz jasno definisane DMAIC faze. DMAIC je strategija upravljana podacima o postignutim rezultatima, a ne na osnovu statičkih planova i mišljenja učesnika o uspehu realizacijie projekta. Svaki korak u skraćenici DMAIC, koji se ciklično primenjuje u procesu poboljšanja procesa razvoja softvera, zahteva osiguranje najboljih rezultata.

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Sistem obezbeđenja kvaliteta softvera 1
  • Sistem obezbeđenja kvaliteta softvera 2
  • Sistem obezbeđenja kvaliteta softvera 3