Štandardy vývoja softvéru. Profesionálny prístup ku kvalite. Štandardy projektového manažmentu

  • 09.07.2019

Každý deň sa pri našej práci stretávame s dosť abstraktným pojmom „kvalita softvéru“ a ak položíte otázku testerovi alebo programátorovi – „čo je kvalita?“, tak každý má svoj vlastný výklad. Pozrime sa na definíciu „kvality softvéru“ v kontexte medzinárodných noriem:


Kvalita softvéru je miera, do akej má softvér požadovanú kombináciu vlastností.

Kvalita softvéru je súbor charakteristík softvéru súvisiacich s jeho schopnosťou uspokojovať stanovené a predpokladané potreby.

Charakteristiky kvality softvéru

Funkčnosť(Funkčnosť) - je určená schopnosťou softvéru riešiť problémy, ktoré zodpovedajú fixným a predpokladaným potrebám používateľa, za daných podmienok používania softvéru. Tie. táto vlastnosť je zodpovedná za zabezpečenie toho, že softvér funguje správne a presne, je interoperabilný, spĺňa priemyselné štandardy a je chránený pred neoprávneným prístupom.

Spoľahlivosť(Spoľahlivosť) - schopnosť softvéru vykonávať požadované úlohy za stanovených podmienok počas stanoveného časového obdobia alebo stanoveného počtu operácií. Atribútmi tejto charakteristiky sú úplnosť a integrita celého systému, schopnosť samostatne a správne sa zotaviť z prevádzkových porúch a odolnosť voči poruchám.

Pohodlie používania(Použiteľnosť) – schopnosť ľahko pochopiť, študovať, používať a urobiť softvér atraktívnym pre používateľa.

Efektívnosť(Efficiency) - schopnosť softvéru poskytovať požadovanú úroveň výkonu v súlade s pridelenými zdrojmi, časom a inými uvedenými podmienkami.

Pohodlie sprevádzania(Maintainability) – jednoduchosť, s akou je možné softvér analyzovať, testovať, meniť s cieľom opraviť chyby, splniť nové požiadavky, uľahčiť ďalšiu údržbu a prispôsobiť sa existujúcemu prostrediu.

Prenosnosť(Prenosnosť) – charakterizuje softvér z hľadiska jednoduchosti prenosnosti z jedného prostredia (softvér / hardvér) do druhého.

Model kvality softvéru

V súčasnosti najbežnejšie a najpoužívanejšie viacúrovňový model kvality softvéru prezentované v súbore noriem ISO 9126. Zvýraznené na najvyššej úrovni 6 hlavných charakteristík kvality softvéru, z ktorých každý je určený množinou atribútov, ktoré majú zodpovedajúce metriky pre následné vyhodnotenie (

Softvér musí spĺňať svoje funkcie, spĺňať stanovené kritériá kvality, bezpečnosti a spoľahlivosti. Hodnotenie produktu, požiadaviek naň, projektovej dokumentácie je úlohou inžinierov zabezpečenia kvality, prípadne inžinierov QA.

Zabezpečenie kvality softvéru zahŕňa činnosti, ktoré sa vykonávajú v každej fáze jeho vývoja. Cieľom je poskytnúť záruku, že produkt spĺňa funkčné a nefunkčné požiadavky.

Koncept kvality softvéru

Na prvý pohľad môže „softvérová kvalita“ pôsobiť ako abstraktný pojem. Pre projektových manažérov, programátorov, testerov, inžinierov kontroly kvality a ďalších, ktorí sa podieľajú na procese vývoja produktu, sú však kritériá kvality transparentné a merateľné. Najprv sa pozrime na všeobecnú definíciu.

Kvalita softvéru je súbor charakteristík softvérového produktu, ktoré určujú schopnosť vykonávať funkcie, ktoré sú mu priradené.

V súčasnosti je tento ukazovateľ regulovaný medzinárodnou normou ISO / IEC 25010: 2011. Táto norma zavádza viacúrovňový systém hodnotenia kvality softvéru založený na ôsmich základných charakteristikách.

Parametre kvality softvéru

Hlavné charakteristiky kvality softvéru podľa ISO / IEC 25010: 2011:

  1. Funkčnosť. Softvér sa považuje za funkčný, ak plní úlohy, ktoré mu boli pridelené, spĺňa špecifikované potreby používateľov. Tento aspekt predpokladá správnu a presnú prevádzku, kompatibilitu všetkých komponentov zahrnutých v kompozícii.
  2. Spoľahlivosť. Spoľahlivosťou softvéru sa rozumie nepretržité vykonávanie úloh, ktoré mu boli zverené, za stanovených podmienok počas stanoveného času.
  3. Použiteľnosť (jednoduchosť použitia). Tento parameter charakterizuje mieru používateľskej prívetivosti softvéru, jeho prehľadnosť, jednoduchosť používania a štúdia.
  4. Efektívnosť. Parameter zodpovedá miere, do akej výrobok poskytuje požadovaný výkon za daných podmienok.
  5. Pohodlie sprevádzania. Tento ukazovateľ charakterizuje jednoduchosť analýzy, testovania, opravy softvérových komponentov, jeho údržby, ako aj stupeň prispôsobenia sa novým podmienkam.
  6. Prenosnosť. Jednoduchosť, s akou sa dá preniesť na inú platformu. Zabezpečenie kvality softvéru zahŕňa kontrolu každého z uvedených parametrov, identifikáciu slabých stránok a odstraňovanie porúch.
  7. Kompatibilita. Schopnosť softvérových komponentov vzájomne pôsobiť.
  8. Bezpečnosť, t.j. minimalizácia hrozieb spojených s neoprávneným čítaním, zmenami informácií a pod.. Ohrozenie môže súvisieť aj s nesprávnym používaním softvéru, vonkajšími vplyvmi zo strany nepovolaných osôb, poruchou technických prostriedkov.

Zabezpečenie kvality a testovanie

Pojmy „testovanie“ a „zabezpečenie kvality“ spolu určite súvisia, nie sú však totožné. V čom je rozdiel?

Zabezpečenie kvality je zodpovedný za celý vývojový proces a integruje sa do všetkých jeho etáp: od vytvárania požiadaviek na budúce riešenie až po testovanie, vydanie produktu a údržbu po vydaní.

Medzi úlohy špecialistov QA patrí:

  • tvorba kritérií kvality;
  • plánovanie činností na splnenie kritérií v každej fáze vývoja produktu;
  • výber testovacích nástrojov;
  • testovanie produktov;
  • výpočet KPI;
  • predchádzanie chybám a zlepšovanie procesov.

Testovanie- kontrola súladu softvéru s požiadavkami.

Takže vidíte, že zabezpečenie kvality je širší pojem, ktorý zahŕňa testovanie.

Testovanie môže byť automatizované alebo môže byť vykonané manuálne; môže byť celý cyklus alebo zameraný na kontrolu špecifického aspektu kvality (bezpečnosť, produktivita, použiteľnosť atď.).

Testovací inžinieri pripravujú testovacie stratégie a plán na základe špecifík projektu a požiadaviek na riešenie, vytvárajú a optimalizujú súbor testovacích prípadov v budúcnosti, hľadajú defekty, vytvárajú a posielajú správy o zistených defektoch vývojárom a overujú odstránenie defektov.

Funkciu zabezpečenia kvality môže vykonávať interné oddelenie spoločnosti, alebo ju môže delegovať na nezávislého dodávateľa, ktorý objektívne zhodnotí samotné riešenie, nastaví procesy zabezpečenia kvality a umožní vám tak priniesť na trh vysoko kvalitný produkt. ktorý spĺňa obchodné požiadavky a očakávania používateľov.

Momentálne najrozšírenejší a najpoužívanejší viacúrovňový model kvality softvéru, prezentovaný v súbore noriem ISO 9126. Na najvyššej úrovni je vyzdvihnutých 6 hlavných charakteristík kvality softvéru, z ktorých každá je určená súborom atribútov, ktoré majú zodpovedajúce metriky pre následné hodnotenie

20. Hlavné vlastnosti vysokokvalitného softvéru.

Faktory kvality softvéru sú nefunkčné požiadavky na program, ktoré zvyčajne nie sú zahrnuté v zmluve so zákazníkom, ale napriek tomu sú žiaducou požiadavkou, ktorá zlepšuje kvalitu programu. Niektoré z faktorov: zrozumiteľnosť (účel softvéru musí byť jasný zo samotného programu a dokumentácie), úplnosť (musia byť prezentované a plne implementované všetky potrebné časti programu), správnosť (všetky funkcie musia byť implementované v súlade s špecifikácia), stručnosť (žiadne zbytočné, duplicitné informácie, opakované časti je potrebné previesť na funkcie, moduly, knižnice), to isté platí pre dokumentáciu, prenosnosť (prenosnosť), jednoduchosť prispôsobenia programu inému prostrediu: iná architektúra, platforma, operačný systém, konzistencia (v celom programe a v dokumentácii by sa mali používať rovnaké konvencie, identifikátory, formáty, označenia), udržiavateľnosť (ako ťažké je zmeniť program tak, aby spĺňal nové požiadavky (upraviteľnosť). Táto požiadavka tiež naznačuje, že program by mal byť dobre zdokumentované, nie príliš mätúce a mať priestor na rast využívania zdrojov (pamäť a procesor)), tester kapacita (umožňuje vám program kontrolovať akceptačné charakteristiky, podporuje schopnosť merať výkon), použiteľnosť (jednoduchosť a jednoduchosť používania programu), spoľahlivosť (žiadne zlyhania a poruchy v programe, ako aj jednoduchosť oprava defektov, chýb, podpora reštartu), efektívnosť (ako racionálne súvisí program so zdrojmi), bezpečnosť (podpora núdzových situácií).

21. Kvalita podľa: mobility a modifikovateľnosti.

Kvalita softvéru je charakteristika softvéru, ktorá popisuje mieru, do akej spĺňa požiadavky.

Jednou z požiadaviek na kvalitný softvér je prenosnosť a modifikovateľnosť.

Prenosnosť softvéru je schopnosť softvéru bežať na rôznych hardvérových platformách alebo rôznych operačných systémoch.

modifikovateľnosť, ak je štruktúrovaný tak, aby ste mohli jednoducho vykonať požadované zmeny.

Modifikovateľnosť softvéru je kvalita softvéru, v ktorej softvér má štruktúru, ktorá umožňuje jednoduché zmeny.

22. Kvalita podľa: korektnosti a spoľahlivosti.

Kvalita softvéru je charakteristika softvéru, ktorá popisuje mieru, do akej spĺňa požiadavky.

Jednou z požiadaviek na kvalitný softvér je správnosť a spoľahlivosť.

Softvérový produkt má vlastnosť spoľahlivosť, ak možno očakávať, že po určitú dobu bude uspokojivo plniť požadované funkcie.

Na zabezpečenie spoľahlivosti existujú nasledujúce prístupy:

    predchádzanie chybám;

    samodetekcia chýb;

    samooprava chýb;

    zabezpečenie odolnosti voči chybám.

Správnosť softvéru je kvalita softvéru na splnenie zadaných úloh a požiadaviek.

Kvalita softvéru (softvéru) sa určuje na základe štúdia vonkajších a vnútorných vlastností produktu. Externá kvalita je definovaná tým, ako funguje v reálnom čase, aká produktívna je pre používateľov. Druhá vlastnosť sa zameriava na interné aspekty, ktoré závisia od kvality písaného kódu. Používateľ sa viac sústredí na to, ako softvér funguje na externej úrovni, ktorého kvalitu je možné udržať len vtedy, ak odborník napísal dobrý programový kód.

Kvalita softvéru

V súčasnosti existujú dva dôležité prístupy, ktoré sa používajú na určenie kvality softvéru:

  1. Manažment defektov.
  2. Kvalitný atribút.

Čokoľvek, čo nespĺňa požiadavku klienta, je klasifikované ako vada. Vývojový tím, ktorý úplne nepochopí požiadavky klienta, sa dopustí chýb v návrhu.

Pri správe defektov sa defekty kategorizujú na základe závažnosti. Počet softvérových problémov sa počíta a opravuje podľa závažnosti. Na meranie schopností vývojového procesu je možné vytvoriť kontrolné diagramy.

Kvalita softvéru sa za posledné dve desaťročia výrazne zlepšila. Jedným z dôvodov je to, že spoločnosti prijímajú nové technológie, ako napríklad objektovo orientovaný vývoj a nástroje CASE. Okrem toho možno pozorovať rastúci význam implementácie manažérskych praktík vo výrobe.

Riadenie kvality softvéru je rozdelené do troch hlavných oblastí:

  1. Záruka. Rozvoj základov organizačných opatrení a štandardov kvality softvéru.
  2. Plánovanie. Výber vhodných štandardov a prispôsobenie pre konkrétny softvérový projekt.
  3. Kontrola. Definujte procesy, ktoré zabezpečia, aby vývoj softvéru spĺňal štandardy kvality.

Organizačná politika SQA

Politika kvality softvéru organizácie by mala spĺňať nasledujúce požiadavky:

  • Súlad s cieľmi a zámermi organizácie.
  • Záväzok dodržiavať všeobecné koncepcie zabezpečenia kvality.
  • Dodržiavanie noriem kvality prijatých organizáciou.
  • Záväzok prideliť primerané zdroje.
  • Zaviazali sa neustále zlepšovať kvalitu a výkonnosť organizácie.

Aby boli splnené všetky požiadavky normy, firmy menujú referenta kvality. Povinnosti tohto zamestnanca:

  • Zodpovedá za prípravu ročného programu činností a rozpočtu SQA.
  • Organizácia rozvojových plánov rozvoja systému SQA.
  • Všeobecná kontrola plnenia ročného programu pravidelných činností a plánovaných rozvojových projektov.
  • Stanovenie súladu programu činností s charakteristikou a rozsahom služieb a nákupov softvéru subdodávateľa plánovaných na nasledujúci rok.
  • Prezentácia a obhajoba otázok SQA výkonnému manažmentu.
  • Preskúmanie návrhov pripravených oddelením SQA pre ročný program podujatí, overenie potenciálu návrhu na dosiahnutie cieľov.

Koncepty na vysokej úrovni

Kvalitatívne charakteristiky sú koncepty na vysokej úrovni, ktoré odrážajú dôležité aspekty a nie sú priamo hodnotené z hľadiska kvality softvéru. Namiesto toho by mal plán definovať vhodné metriky, ktoré možno použiť na definovanie jednej alebo viacerých charakteristík.

Napríklad pri vyhodnocovaní analyzátora XML môžete použiť sadu testov zhody XML s W3C. Zahŕňa testy navrhnuté tak, aby spĺňali všetky oblasti kontroly, ako aj smernice W3C Extensible Markup Language (XML), s osobitným dôrazom na požiadavky na spracovanie chýb pre správnosť alebo platnosť dokumentov XML. Percento úspešných testovacích prípadov sa teda používa ako metrika na vyhodnotenie nasledujúcich charakteristík uvažovaného analyzátora XML:

  • Používateľská perspektíva.
  • Funkčnosť.
  • Spoľahlivosť a odolnosť.

Z pohľadu používateľa existuje niekoľko dôležitých charakteristík, ktoré odpovedajú na nasledujúce otázky:

  • Kto poskytuje celý rozsah požadovaných funkcií pre zamýšľaný účel?
  • Funguje softvér spoľahlivo, aby pri správnom používaní dosiahol požadované výsledky?
  • Funguje program bezpečne a spoľahlivo v prípade nesprávneho zadania?
  • Je softvérový produkt ľahko použiteľný?
  • Je softvér rýchly alebo sa vám zdá zbytočne pomalý?
  • Funguje program dobre s iným produktom, ktorý používateľ používa?

Vzhľadom na to, že problémy s kvalitou sú pre používateľa dôležité, IT tím zodpovedný za nasadenie a údržbu softvéru môže čeliť ďalším výzvam:

  1. Ochrana pred škodlivými útokmi.
  2. Kvalita využívania výpočtových zdrojov.

Slabé zdroje sú tie, ktoré vyžadujú viac pamäte a výpočtového výkonu, ako je potrebné.

ISO poskytuje tomuto modelu dve nové kategórie najvyššej úrovne súvisiace so zabezpečením technológie kvality softvéru.

Požiadavky na produkt ISO 9126

ISO 9126 je medzinárodná norma pre hodnotenie softvéru. Je rozdelená do štyroch častí, ktoré pokrývajú nasledujúce témy:

  • Vonkajšie ukazovatele.
  • Interné ukazovatele.
  • Kvalitný model.
  • Indikátory kvality softvéru.

Prvá časť ISO 9126 je rozšírením predchádzajúcej normy, ktorú vykonali McCall (1977), Boehm (1978) a FURPS pri definovaní súboru charakteristík kvality.

  • Funkčnosť.
  • Spoľahlivosť.
  • Použiteľnosť.
  • Udržiavateľnosť.
  • Prenosnosť.

Funkčnosť produktu

Funkčnosť je primárnym cieľom každého produktu alebo služby. Čím viac možností využitia produktu, tým ťažšie je definovať jeho funkčnosť. Pre softvér je možné špecifikovať zoznam toho, čo je preň dostupné.

Niektoré z uvedených softvérových charakteristík (napríklad pohodlie) sú prítomné len do určitej miery, teda nie sú len „povolené“ alebo „zakázané“. Mnoho ľudí si mýli celkovú funkčnosť procesu a softvérového produktu. Je to často preto, že diagramy toku údajov (DFD) a iné modelovacie nástroje môžu reprezentovať funkčnosť procesu ako súbor transformovaných údajov na dáta.

ISO 9126-1 a iné modely kvality nepomáhajú merať celkové náklady alebo prínosy procesu, ale skúmajú len softvérový komponent. Vzťah medzi funkčnosťou softvéru v rámci celkového obchodného procesu je mimo rozsahu pôsobnosti normy ISO 9126.

Nasledujúce vlastnosti charakterizujú užitočnosť softvéru v danom prostredí. Každý z nich je možné merať iba vtedy, ak sú k dispozícii príslušné systémové programy.

Keď je softvérový systém funkčný, charakteristika spoľahlivosti meria jeho schopnosť udržiavať svoju službu za špecifikovaných podmienok počas špecifikovaných časových období. Jedným z aspektov tejto charakteristiky je odolnosť voči chybám. Ak sa napríklad sieť vypne do 20 sekúnd, systém by sa mal dať obnoviť a pokračovať v práci.

Schopnosť naučiť sa používať systém (učenie sa) je jednou z hlavných charakteristík použiteľnosti.

Efektívnosť sa týka systémových zdrojov použitých na zabezpečenie požadovanej funkčnosti. Priestor na disku, pamäť a sieť sú dobrými ukazovateľmi efektívnosti. Rovnako ako v prípade mnohých iných kritérií sa medzi nimi prekrývajú. Napríklad použiteľnosť systému ovplyvňuje jeho výkon.

Schopnosť identifikovať a opraviť chybu v softvérovom komponente je to, na čo sa vzťahuje charakteristika udržiavateľnosti. Jeho výkon je ovplyvnený čitateľnosťou alebo zložitosťou kódu, ako aj modularitou. To pomáha identifikovať príčinu poruchy a neskôr ju odstrániť.

Vlastnosti údržby:

  • Analyzovateľnosť – identifikuje hlavnú príčinu zlyhania.
  • Volatilita – Definuje úsilie, ktoré je vynaložené na úpravu kódu na opravu chyby.
  • Stabilita – ukazuje, ako stabilný je systém, keď sa v ňom vykonajú zmeny.
  • Testovateľnosť – určuje, koľko úsilia je vynaložené na testovanie systému.
  • Prenosnosť je schopnosť systému prispôsobiť sa zmenám vo svojom prostredí.
  • Adaptabilita – Ako ľahko sa systém prispôsobuje zmenám vykonaným v špecifikáciách.
  • Rýchlosť inštalácie – ako ľahko sa dá systém nainštalovať.
  • Výmena – aké ľahké je vymeniť komponent systému.
  • Náklady na kvalitu softvéru. Je to veľmi dôležité. Keď sa vývojár rozhodne otestovať svoj produkt, v skutočnosti vynaloží čas, peniaze a úsilie na jeho testovanie.
  • Vhodnosť – určuje, či funkcie softvéru spĺňajú požiadavky.
  • Presnosť - stanovuje správnosť implementácie funkcií.
  • Interoperabilita – interakcia s ostatnými komponentmi systému.
  • Súlad softvéru s požadovanými zákonmi a usmerneniami.
  • Zabezpečenie kvality a bezpečnosti softvéru a spracovanie transakcií súvisiacich s údajmi.
  • Spoľahlivosť je schopnosť softvéru fungovať za špecifikovaných podmienok počas stanoveného časového obdobia.
  • Splatnosť je frekvencia zlyhania softvéru.
  • Obnoviteľnosť - predstava o schopnosti systému vrátiť sa po poruche do plnej prevádzky.

Prenosnosť sa týka toho, ako dobre sa softvér dokáže prispôsobiť zmenám vo svojom prostredí alebo požiadavkám. Objektovo orientovaný návrh a implementačné techniky môžu prispieť k rozsahu, v akom sú tieto charakteristiky kvality softvéru prítomné v danom systéme.

Náklady na proces analýzy

Náklady na kvalitu sa vypočítajú analýzou nákladov na zhodu a nezhodu. Cena prvého indikátora súvisí s:

  1. Náklady na prevenciu. Toto je suma vynaložená na zabezpečenie správneho dodržiavania všetkých metód. Zahŕňa vyučovacie tímy, kontroly kódov a akékoľvek ďalšie aktivity súvisiace so zabezpečením kvality.
  2. Náklady na ocenenie. Ide o množstvo peňazí vynaložených na plánovanie všetkých testovacích položiek a ich dokončenie, ako je napríklad vývoj testovacích prípadov.
  3. Náklady na nedodržanie. Ide o náklady, ktoré vznikajú z vnútorných a vonkajších porúch.

Interné zlyhania sú náklady, ktoré vznikajú pri prvom internom vykonaní testovacích prípadov, pričom niektoré z nich zlyhajú. Náklady vznikajú, keď programátor musí opraviť chyby nájdené v časti kódu počas testovania jednotky alebo komponentu.

Externé poruchy sú náklady, ktoré vznikajú, keď chybu zistí zákazník a nie tester. Tieto náklady sú oveľa vyššie ako tie, ktoré sa objavujú interne. To platí najmä vtedy, ak sa zosilní zlyhanie softvéru.

Disciplinovaná procesná analýza

Toto je stupeň procesora pre softvérový produkt. Zahŕňa identifikáciu a charakterizáciu súčasných postupov, identifikáciu silných a slabých stránok a schopnosť kontrolovať alebo sa vyhýbať významným príčinám nízkej kvality produktu. Existujú tri typy auditov programu:

  1. Sebavedomie. Vykonáva sa v rámci vlastných zamestnancov organizácie.
  2. Hodnotenie treťou stranou.
  3. Hodnotenie treťou stranou.

Softvérové ​​procesné audity sa vykonávajú v otvorenom zdieľanom prostredí na zlepšenie výkonu a pomocou programov na zabezpečenie kvality softvéru. Výsledky takéhoto auditu sú pre organizáciu dôverné.

Pokiaľ ide o zber údajov, používajú sa štyri metódy:

  1. Štandardný kontrolný zoznam otázok o zrelosti.
  2. Individuálne a skupinové rozhovory.
  3. Prehľady dokumentov.

Metodika vývoja softvéru

Elektronický manuál Karpovich E.E.

Úvod. 1

1. Softvér ako priemyselný produkt. 2

1.1 Základné pojmy. 2

1.2. Charakteristiky kvality softvéru. 3

2. Životný cyklus softvéru. 5

2.1. Koncepcia životného cyklu softvéru. 5

2.2. Procesy životného cyklu softvéru. 6

2.3. Modely životného cyklu softvéru. jedenásť

2.4. Stratégie návrhu softvéru. 15

3. Metodiky vývoja softvéru. 19

3.1 Štruktúrovaný prístup k vývoju softvéru. 19

3.2 Modulárne programovanie. 22

3.3. Objektovo orientovaný prístup k vývoju softvéru. 31

3.3. Metodológia vizuálneho programovania. 33

4. Testovanie softvéru. 34

4.1. Všeobecné ustanovenia. 34

4.2. Ciele a ciele. Základné definície. 34

4.3. Organizácia procesu testovania softvéru 35

4.4. Stratégie testovania softvéru. 36

4.5. Úrovne testovania softvéru. 38

5. Dokumentačný softvér. 39

5.1. Všeobecné ustanovenia. 39

5.2. Testovací program a metodika. 39

5.3. Popis programu .. 40

5.4. Vysvetľujúca poznámka. 41

5.5. Text programu .. 42

5.6. Popis aplikácie. 42

5.7. Príručka systémového programátora. 42

5.8. Sprievodca programátora. 43

5.9. Návod na obsluhu. 43

Literatúra. 44

Úvod

Softvér (softvér) počítačových systémov (CS) je čoraz významnejší, zložitejší a nebezpečnejší a je čoraz ťažšie ho vyvíjať, no zároveň je softvér stále jednoduchší, menší, ľahšie spravovateľný a ľahšie ovládateľný. rozvíjať.

Na jednej strane sa zvyšujú požiadavky na softvér, spojené so zdokonaľovaním a komplikovaním operačných systémov, hardvéru a používateľského rozhrania as potrebou implementácie moderných informačných technológií, predovšetkým sieťových technológií. Výsledkom je, že vnútorná štruktúra programov je čoraz zložitejšia a zvyšujú sa požiadavky na ich spoľahlivosť.



Na druhej strane sa skúsenosti s vývojom softvéru hromadia a zovšeobecňujú, objavujú sa stále flexibilnejšie a výkonnejšie metodiky a nástroje, ktoré podporujú všetky fázy vývoja softvéru. Metodológia vizuálneho programovania sa vyvíja a programovacie jazyky sa zlepšujú. Zlepšenie hardvérových nástrojov urýchľuje kompilačné procesy a tiež vám často umožňuje nestarať sa o efektivitu programov, ktoré píšete.

Účelom disciplíny „Metodika vývoja softvéru“ je naučiť študentov základné princípy tvorby softvéru, oboznámiť sa s pojmami, metodikami vývoja, testovania a dokumentácie softvéru.

Softvér ako priemyselný produkt

Základné pojmy

Je obvyklé rozlišovať sedem typov softvéru pre výpočtové systémy:

· Matematické;

· Jazykové;

· Informačné;

· Softvér;

· Technická;

· Metodický;

· Organizačné.

Spomedzi všetkých typov softvéru zaujíma softvér (softvér) osobitné miesto, pretože hlavný podiel nákladov na vybavenie a prevádzku lietadla pripadá na softvér. Definujme také základné pojmy ako program, softvérový balík, softvérový systém, softvérový produkt a softvér.

Pod program budeme rozumieť:

1) súbor kódu a údajov vhodných na vykonávanie procesormi (spustiteľný program);

2) nezávislý komponent relatívne malej veľkosti, určený na riešenie lokálneho problému (program ako komponent systému).

Softvérový balík alebo softvérový systém je súbor konzistentne fungujúcich programov pod spoločnou kontrolou, navrhnutých na riešenie zložitého problému alebo množstva vzájomne súvisiacich problémov.

Testovaný softvérový balík, kompletne pripravený na predaj (dodanie) a dodávaný so všetkou potrebnou dokumentáciou, je tzv softvérové ​​produkty (produkt) alebo softvér.

softvér- najvšeobecnejší pojem, ktorým sa rozumejú programy, softvérové ​​systémy alebo produkty súhrnne alebo samostatne, v závislosti od kontextu použitia tohto pojmu.

Softvérové ​​produkty podmienečne rozdelíme na malé, stredné a veľké. Objem zdrojového textu malých programov je niekoľko stoviek operátorov vysokoúrovňového jazyka, stredných - do desaťtisícov a veľkých - do milióna.

V mnohých prípadoch sa programy vytvárajú v jednej kópii na riešenie konkrétnych výskumných problémov, na urýchlenie výpočtov, na simuláciu procesov atď. Takéto programy nie sú široko používané a sú dostupné len tým, ktorí ich vyvinuli. Sú predmetom vedeckej a technickej tvorivosti a len vo výnimočných prípadoch sa stávajú priemyselnými výrobkami.

Úplne inou triedou programov sú plnohodnotné softvérové ​​nástroje, ktoré sú dnes akceptované ako produkty na priemyselné a technické účely. Softvérové ​​produkty ako také sú priamou výrobnou silou a nelíšia sa od žiadneho iného priemyselného produktu.

Vytvorenie dobrého softvérového produktu je časovo veľmi náročná úloha, ktorej riešenie je spravidla nad sily jedného človeka. Osamelí programátori („hackeri“) môžu mať geniálny dar rýchlej algoritmizácie a kódovania netriviálnych úloh, vytváranie nových metód a nápadov na programovanie, pričom si získajú značnú slávu. Samy však nedokážu vyriešiť celý komplex problémov vývoja stredných a veľkých softvérových produktov v prijateľnom časovom rámci.

V súčasnosti tak akékoľvek významné produkty vytvárajú tímy programátorov. V takýchto tímoch sa u programátora-vývojára oceňujú také vlastnosti ako gramotnosť, disciplína, spoľahlivosť a komunikačné schopnosti. Gramotnosť znamená znalosť a pochopenie pokročilých metód a nástrojov na vývoj softvéru, ich účelu a vlastností, ako aj schopnosť aplikovať tieto poznatky v praxi.

Charakteristiky kvality softvéru

Súbor vlastností softvéru, ktorý tvorí pre používateľa vyhovujúcu kvalitu softvéru, závisí od podmienok a charakteru prevádzky tohto softvéru, t.j. z pozície, z ktorej by sa mala posudzovať kvalita tohto softvéru. Preto by pri popise kvality softvéru mali byť v prvom rade stanovené kritériá pre výber požadovaných vlastností softvéru. V súčasnosti kritériá kvality softvéru(kritériá kvality softvéru) sa považuje:

Funkčnosť;

Spoľahlivosť;

Jednoduchosť použitia;

efektívnosť;

Údržba;

Mobilita.

Funkčnosť je schopnosť softvéru vykonávať súbor funkcií, ktoré uspokojujú špecifikované alebo predpokladané potreby používateľov. Súbor týchto funkcií je definovaný v popise externého softvéru.

Spoľahlivosť (reliability) softvéru je jeho schopnosť spoľahlivo vykonávať určité funkcie za daných podmienok počas daného časového obdobia s dosť vysokou pravdepodobnosťou. V tomto prípade sa odmietnutie softvéru chápe ako prejav chyby v ňom. Spoľahlivý softvér teda nevylučuje prítomnosť chýb v ňom – dôležité je len to, aby sa tieto chyby pri praktickej aplikácii tohto softvéru za daných podmienok objavovali skôr zriedkavo. O tom, že softvér má túto vlastnosť, sa môžete presvedčiť pri testovaní testovaním, ako aj pri praktickej aplikácii. V skutočnosti teda môžeme vyvinúť iba spoľahlivý, nie správny softvér.

Pri posudzovaní miery spoľahlivosti softvéru treba brať do úvahy aj dôsledky každého zlyhania. Niektoré chyby v softvéri môžu spôsobiť len určité nepríjemnosti pri jeho používaní, zatiaľ čo iné chyby môžu mať katastrofálne následky, napríklad ohroziť ľudský život. Preto sa na posúdenie spoľahlivosti softvéru niekedy používajú dodatočné ukazovatele, ktoré zohľadňujú náklady (škodu) pre používateľa pri každej poruche.

Jednoduchosť používania je vlastnosť softvéru, ktorá minimalizuje úsilie používateľa pripraviť počiatočné údaje, používať softvér a vyhodnocovať získané výsledky, ako aj vytvárať pozitívne emócie pre konkrétneho alebo implikovaného používateľa.

Efektívnosť je pomer úrovne služieb poskytovaných softvérom používateľovi za daných podmienok k množstvu použitých zdrojov.

Udržateľnosť je softvérová charakteristika, ktorá minimalizuje námahu pri vykonávaní zmien na opravu chýb a ich úpravu tak, aby vyhovovala meniacim sa potrebám používateľov.

Mobilita je schopnosť softvéru prenášať sa z jedného prostredia (prostredia) do druhého, najmä z jedného počítača do druhého.

Funkčnosť a spoľahlivosť sú povinné kritériá kvality Softvér a zabezpečenie spoľahlivosti sa bude niesť ako červená niť vo všetkých fázach a procesoch vývoja softvéru. Ostatné kritériá sa používajú v závislosti od potrieb používateľov v súlade s požiadavkami na softvér. Na konkretizáciu kvality softvéru pre každé z kritérií sa používa štandardizovaný súbor pomerne jednoduchých vlastností softvéru, ktoré vývojári jednoznačne interpretujú. Takéto vlastnosti budeme nazývať primitívy kvality softvéru... Niektoré z primitív je možné použiť podľa niekoľkých kritérií. Nižšie je uvedená závislosť kritérií kvality od primitív kvality softvéru.

Funkčnosť: úplnosť.

Spoľahlivosť: úplnosť, presnosť, autonómia, stabilita, bezpečnosť.

Jednoduché použitie: P-dokumentované, informatívne (iba vo vzťahu k aplikačnej dokumentácii), spoločenskosť, stabilita, bezpečnosť.

Efektivita: Časová efektívnosť, efektívnosť zdrojov (pamäť), efektívnosť zariadenia.

Údržba. S týmto kritériom sa spája mnoho rôznych kvalitatívnych primitívov. Možno ich však rozdeliť do dvoch skupín, pričom zdôrazňujú dve podkritériá kvality: učenie a modifikovateľnosť.

Naučiť sa sú vlastnosti softvéru, ktoré minimalizujú úsilie na učenie a pochopenie softvéru a softvérovej dokumentácie.

Modifikovateľnosť je charakteristika softvéru, ktorá mu umožňuje automaticky sa prispôsobiť podmienkam používania softvéru alebo zjednodušiť manuálne zavádzanie potrebných zmien a vylepšení.

Naučiť sa: zdokumentované C, informatívne (tu vo vzťahu k dokumentácii údržby), zrozumiteľnosť, štruktúrovanosť, čitateľnosť.

Modifikovateľnosť: rozšíriteľnosť, modifikovateľnosť (v užšom zmysle ako primitív kvality), štruktúrovanosť, modulárnosť.

Mobilita: nezávislosť od zariadenia, autonómia, štruktúrovanosť, modularita.

Definície použitých primitív kvality softvéru sú uvedené nižšie.

Úplnosť je vlastnosť, ktorá charakterizuje stupeň vlastníctva všetkých potrebných častí a funkcií softvéru potrebných na vykonávanie jeho explicitných a implicitných funkcií.

Presnosť je miera, ktorá charakterizuje prijateľnosť chyby vo výsledkoch vytvorených softvérovými programami z hľadiska ich zamýšľaného použitia.

Samostatnosť je vlastnosť, ktorá charakterizuje schopnosť softvéru vykonávať predpísané funkcie bez pomoci alebo podpory iných softvérových komponentov.

Robustnosť je vlastnosť, ktorá charakterizuje schopnosť softvéru naďalej správne fungovať napriek nesprávnym (chybným) vstupným údajom.

Bezpečnosť (defenzivita) – vlastnosť, ktorá charakterizuje schopnosť softvéru odolávať úmyselnému alebo neúmyselnému deštruktívnemu (deštruktívnemu) konaniu používateľa.

P-dokumentácia (u. Documentation) je vlastnosť charakterizujúca prítomnosť, úplnosť, zrozumiteľnosť, dostupnosť a prehľadnosť vzdelávacej, náučnej a referenčnej dokumentácie potrebnej na používanie softvéru.

Zodpovednosť je vlastnosť, ktorá charakterizuje prítomnosť informácií v softvéri, ktoré sú potrebné a postačujúce na pochopenie účelu softvéru, prijatých predpokladov, existujúcich obmedzení, vstupných údajov a výsledkov prevádzky jednotlivých komponentov, ako aj aktuálneho stavu programov. počas ich prevádzky.

Komunikácia (komunikatívnosť) - vlastnosť charakterizujúca mieru, do akej softvér uľahčuje úlohu alebo popis vstupných údajov, a schopnosť poskytnúť užitočné informácie v pomerne jednoduchej forme a so zrozumiteľným obsahom.

Časová efektívnosť je miera, ktorá charakterizuje schopnosť softvéru vykonávať pridelené funkcie počas určitého časového obdobia.

Efektívnosť zdrojov je miera, ktorá charakterizuje schopnosť softvéru vykonávať funkcie, ktoré sú mu priradené, za určitých obmedzení použitých zdrojov (použitej pamäte).

Účinnosť podľa zariadenia (účinnosť zariadenia) - miera, ktorá charakterizuje efektívnosť používania zariadení stroja na riešenie daného problému.

C-dokumentácia je vlastnosť, ktorá charakterizuje z hľadiska dostupnosti dokumentácie, ktorá odráža požiadavky na softvér a výsledky rôznych etáp vývoja tohto softvéru, vrátane možností, obmedzení a iných vlastností softvéru, ako aj ako ich odôvodnenie.

Zrozumiteľnosť je vlastnosť, ktorá charakterizuje mieru, do akej softvér umožňuje osobe, ktorá ho študuje, pochopiť jeho účel, predpoklady a obmedzenia, vstupné údaje a výsledky práce jeho programov, texty týchto programov a stav ich implementáciu.

Štruktúrovanosť je vlastnosť, ktorá charakterizuje softvérové ​​programy z hľadiska usporiadania ich vzájomne súvisiacich častí do jedného celku určitým spôsobom (napríklad v súlade s princípmi štruktúrovaného programovania).

Čitateľnosť je vlastnosť, ktorá charakterizuje ľahkosť vnímania textu softvérových programov (odsadenie, fragmentácia, formátovanie).

Rozšíriteľnosť (augmentability) - vlastnosť, ktorá charakterizuje schopnosť softvéru využívať viac pamäte na ukladanie dát alebo rozširovať funkcionalitu jednotlivých komponentov.

Modifikovateľnosť je miera, ktorá charakterizuje softvér z hľadiska jednoduchosti vykonávania potrebných zmien a vylepšení vo všetkých fázach a štádiách životného cyklu softvéru.

Modularita je vlastnosť, ktorá charakterizuje softvér z hľadiska organizácie svojich programov z takých diskrétnych komponentov, že zmena jedného z nich má minimálny vplyv na ostatné komponenty.

Nezávislosť na zariadení je vlastnosť, ktorá charakterizuje schopnosť softvéru bežať na rôznom hardvéri (rôzne typy, značky, modely počítačov).

Vývoj softvérového nástroja končí jeho certifikáciou. Validácia softvéru - je to smerodajné potvrdenie jeho kvality. Na certifikáciu sa spravidla vytvára komisia odborníkov. Táto komisia vykonáva akceptačné testy softvéru s cieľom získať potrebné informácie na posúdenie jeho kvality. V tomto prípade sa hodnotia len stanovené kritériá kvality a kvalitatívne primitívy.