U ovoj lekciji obrađivaćemo:
Karakteristike dizajna su veoma često i karakteristike samog programa. U nastavku su opisane neke karakteristike dizajna.
Većina softvera se menja tokom vremena i predviđanje promena proizvodi mnoge aspekte softverske konstrukcije. Softver je neizbežno deo promena u spoljašnjim okruženjima i promene u ovim spoljašnjim okruženjima utiču na softver na najrazličitije načine.
Softverske performanse usled promene hardverskih karakteristika gotovo svakodnevno dobijaju na značaju. Softver koji je u vreme kreiranja testiran na npr. računaru Pentium 3 sa 512 MB memorije, imaće drugačije ponašanje na dual core računaru sa 2 GB memorije. Granice u tom pogledu se svakodnevno pomeraju.
Izvršavanje programa na različitim okruženjima koja će se takodje neminovno menjati tokom vremena korišćenja (novi operativni sistem, promene mrežnog okruženja i dr.), uslovljava i pažljivo planiranje i izradu i po mogućnosti ostavljanje prostora za unapredjenje i Upgrade programa radi prilagođavanja nastalim promenama.
Konstrukcija za verifikaciju (eng. Constructing for verification) znači izgradnju softvera na takav način da greške i nedostaci mogu biti brzo otklonjeni, kao i tokom nezavisnih testiranja i operacionih aktivnosti. Postojanje verifikacije funkcioniše kao i kod drugih oblasti. Specifične tehnike konstrukcije za verifikaciju uključuju standarde kodiranja radi pomoći pri pregledima koda (eng. code reviews), testiranju jedinice (eng. unit testing), organizaciji koda radi podrške automatizovanom testiranju, kao i restriktivnu upotrebu kompleksnih i jezičkih struktura teških za razumevanje.
Standardi koji direktno utiču na temu konstrukcije uključuju korišćenje eksternih standarda. Konstrukcija zavisi od korišćenja eksternih standarda za konstrukcione jezike, konstrukcione alatke, tehničke interfejse i interakcije između oblasti softverske konstrukcije i drugih oblasti. Standardi dolaze iz različitih oblasti, uključujući specifikacije hardverskih i softverskih interfejsa, kao što su Object Management Group (OMG - konzorcijum softverskih kompanija, postavlja standarde za distribuirane sisteme i modelovanje, http://www.omg.org) i internacionalne organizacije kao što su IEEE ili ISO.
Važno je i korišćenje internih standarda, odnosno standarda koji su kreirani na organizacionoj osnovi na korporativnom nivou ili za korišćenje u specifičnim projektima. Interni standardi podržavaju koordinaciju grupnih aktivnosti, minimiziranje kompleksnosti, predviđanje promena i konstrukciju pogodnu za verifikaciju.
Značajan izvor informacija za dokumentaciju je IEEE (Institute for Electric and Electrical Engineers) Software Engineering Standards. IEEE standardi su razvijeni od strane grupe stručnjaka i akademika koji su eksperti u određenim oblastima. Svaki standard sadrži pregled oblasti pokrivene standardom i tipično sadrži okvire odgovarajućeg dokumenta za rad u datoj oblasti.
Nekoliko nacionalnih i internacionalnih organizacija učestvuje u radu standarda. Neki standardi su zajednički usvojeni od strane ISO (International Standards Organization), EIA (Electronic Industries Alliance), i IEC (International Engineering Consortium).
Imena standarda su sastavljena od broja standarda, godine kada je standard usvojen i imena standarda. Tako na primer IEEE/EIA Std 12207-1997, Information Technology-Software Life Cycle Processes, predstavlja standard broj 12207, koji je usvojen 1997 godine, od strane IEEE i EIA. Ujedno, to je jedan od najviših standarda je u ovoj oblasti, koji je internacionalni standard koji definiše okvir životnog ciklusa za razvoj i upravljanje softverskim projektima.
U nastavku su navedeni neki od IEEE standarda:
Standardi za razvoj softvera
IEEE Std 830-1998, Recommended Practice for Software Requirements Specifications
IEEE Std 1233-1998, Guide for Developing System Requirements Specifications
IEEE Std 1016-1998, Recommended Practice for Software Design Descriptions
IEEE Std 828-1998, Standard for Software Configuration Management Plans
IEEE Std 1063-2001, Standard for Software User Documentation
IEEE Std 1219-1998, Standard for Software Maintenance
Standardi za osiguranje kvaliteta softvera
IEEE Std 730-2002, Standard for Software Quality Assurance Plans
IEEE Std 1028-1997, Standard for Software Reviews
IEEE Std 1008-1987 (R1993), Standard for Software Unit Testing
IEEE Std 829-1998, Standard for Software Test Documentation
IEEE Std 1061-1998, Standard for a Software Quality Metrics Methodology
Menadžment standardi
IEEE Std 1058-1998, Standard for Software Project Management Plans
IEEE Std 1074-1997, Standard for Developing Software Life Cycle Processes
IEEE Std 1045-1992, Standard for Software Productivity Metrics
IEEE Std 1062-1998, Recommended Practice for Software Acquisition
IEEE Std 1540-2001, Standard for Software Life Cycle Processes - Risk Management
IEEE Std 1490-1998, Guide - Adoption of PMI Standard - A Guide to the Project Management Body of Knowledge
Reference: