Softverska konstrukcija

Softverska konstrukcija je disciplina  softverskog inženjeringa. To je detaljno stvaranje radnog smislenog softvera kroz kombinaciju kodiranja, verifikacije, testiranje jedinice, testiranje integracija, i otklanjanje grešaka. To je povezano sa svim ostalim softverskim inženjerskim disciplinama, najoštrije dizajn softvera i testiranje softvera.[1]

Osnove softverske konstrukcije

uredi

Minimiziranje kompleksnosti

uredi

Smanjena kompleksnost se ostvaruje kroz isticanje stvaranja koda koji je jednostavan i čitljiv a ne samo pametan. Minimiziranje kompleksnosti je ostvareno kroz korišćenje standarda, kao i kroz brojne specifične tehnike u kodiranju. Takođe je podržan od strane tehnika kvalitetne fokusirane gradnje .[1]

Očekivana promena

uredi

Očekivana promena je podržana od strane mnogih specifičnih tehnika kodiranja:[1]

  • Komunikacione metode: kao što su standardi za formate i sadržaje dokumenata.
  • Programski jezik
  • Platforme
  • Alati: Kao dijagram standarda za oznake kao što je UML.

Izgradnja za verifikaciju

uredi

Izgradnja za verifikaciju znači izgradnja softvera na takav način da greške mogu biti izbačene lako od softverskih inženjera pisanjem softvera, kao i tokom nezavisnog testiranja i operativnih aktivnosti. Specifične tehnike koje podržavaju izgradnju za verifikaciju uključuju sledeće standarde kodiranja da podrže kod mišljenja, jedinicu za testiranje, organizovanje koda za podršku automatskog testiranja, i ograničeno korišćenje složenih ili teško razumnih jezičkih struktura, između ostalog. .[1]

Standardi u izgradnji

uredi

Standardi koji direktno utiču na građevinska pitanja uključuju:[1]

Upravljanje izgradnjom

uredi

Građevinski modeli

uredi

Brojni modeli su stvoreni za razvoj softvera, od kojih neki naglašavaju izgradnju više od drugih. Neki modeli su linearni od tačke gledišta izgradnje , kao vodopad i organizovan-isporučen model životnog ciklusa. Ovi modeli tretiraju konstrukciju kao aktivnost koja se javlja tek nakon kada je značajni preduslov posla završen uključujući bliže uslove rada, opsežnog projektovanja i detaljnog planiranja. Ostali modeli su učestali, kao što su evolutivni prototipovi, ekstremno programiranje, i Skram. Ovi pristupi teže da tretiraju konstrukciju kao aktivnost koja se javlja istovremeno sa drugim razvojnim softverskim aktivnosti, uključujući i zahteve, dizajn i planiranje, ili da se preklapaju.[1]

Građevinsko planiranje

uredi

Izbor građevinskog metoda je ključni aspekt planiranja izgradnje aktivnosti. Izbor građevinskog metoda utiče na stepen u kojem se obavljaju građevinski preduslovi, redosled kojim se vrše, i stepen do kojeg se očekuje da bude završen pre početka građevinskih radova. Građevinsko planiranje takođe definiše redosled kojim su komponente kreirane i integrisane, proces upravljanja kvaliteta softvera, raspodela radnih zadataka za specifične softverske inženjere, kao i druge poslove, u skladu sa izabranom metodom.[1]

Građevinsko merenje

uredi

Brojni građevinski radovi i predmeti mogu se meriti, uključujući razvijeni kod, modifikovan kod , kod za ponovnu upotrebu, uništeni kod, kompleksnost koda, kod inspekcijske statistike, cene fiksnih grešaka i nađenih grešaka, napor i zakazivanje. Ove mere mogu biti korisne za potrebe upravljanja izgradnjom, osiguravanje kvaliteta u toku izgradnje, poboljšanje procesa izgradnje, kao i iz drugih razloga.[1]

Praktični razlozi

uredi

Softverska konstrukcija je vođena od strane mnogih praktičnih razloga:

Građevinski dizajn

uredi

Da bi se uzele u obzir za nepredviđene praznine u dizajnu softvera, u toku izgradnje softvera neke modifikacije dizajna moraju biti u manjem ili većem obimu softverskog dizajna. [1]

Građevinski jezici

uredi

Građevinski jezici uključuju sve oblike komunikacije kojima čovek može da navede izvršenje rešenja problema za računarom. Oni uključuju konfiguraciju jezika, alat jezika i programske jezike: [1]

  • Konfiguracijski jezici su jezici na kojima softverski inženjeri biraju iz ograničenog skupa predefinisanih opcija da stvore nove ili prilagođene softverske instalacije.
  • Alatni jezici se koriste za izgradnju aplikacija iz kompleta alata i da su složeniji od konfiguracije jezika.
  • Programski jezici su najnapredniji tip građevinskih jezika koji koriste tri vrste opšte notacije:
    • Jezičke oznake koje se odlikuju naročito korišćenjem reči poput nizova ili teksta da predstave složene softverske konstrukcije, kao i kombinacija tih reči poput strune u obrascima koje imaju rečenice poput sintakse.
    • Formalne oznake koje se oslanjaju manje na intuitivu, svakodnevnim značenjem reči i tekst stringovima i više na definicijama rezervne kopije preciznim, nedvosmislenim i formalnim (ili matematičkim) definicijama.
    • Vizuelne oznake koje se manje oslanjaju na tekst-orijentisane notacije i jezičke i formalne izgradnje, i umesto toga se oslanjaju na direktnu vizuelnu interpretaciju i plasman vizuelnih entiteta koji predstavljaju osnovni softver.

Kodiranje

uredi

Sledeća razmatranja se odnose na softver za izgradnju aktivnosti kodiranja:[1]

  • Tehnike za stvaranje razumljivog  izvornog koda, uključujući i imenovanje i raspored izvornog koda 
  • Korišćenje klasa, nabrojanih tipova, varijabli, konstanti navedenih i drugih sličnih subjekata
  • Korišćenje kontrolne strukture
  • Rukovanje greškama uslova-planirane greške i izuzeci (unos loših podataka, na primer)
  • Prevencija narušavanja sigurnosti kod nivoa (tampon prekoračenja ili indeks niz poplava, na primer)
  • Korišćenje resursa preko upotrebe mehanizama isključenosti i discipline u pristupu serijskih, za višekratnu upotrebu, resursa (uključujući tema ili brava baze podataka)
  • Organizacija izvornog koda  (u izjavama, rutiniklasama, paketima, ili drugim strukturama)
  • Kod dokumentacija

Testiranje izgradnje

uredi

Svrha testiranja izgradnje je da se smanji jaz između vremena u kojem su greške ubačene u kod  i vremena kada su te greške otkrivene. U nekim slučajevima, testiranje izgradnje se vrši nakon ispisivanja koda. U testu prvog programa, test slučajevi su stvoreni pre nego što je kod pisan. Izgradnja obuhvata dva oblika testiranja, koja se često obavljaju od strane softverskog inženjera koji je napisao kod:[1]

Ponovna upotreba

uredi

Ronovna implementacija softvera podrazumeva više od stvaranja i korišćenja sredstava biblioteke. To zahteva formalizovanje prakse ponovne upotrebe integracijom ponovne upotrebe procesa i aktivnosti u životnom ciklusu softvera. Zadaci koji se odnose na ponovno korišćenje u funkciji konstrukcije tokom kodiranja i testiranja su:[1]

  • Izbor za višekratnu upotrebu jedinica, baze podataka, test procedurama ili test podataka.
  • Procena koda ili testa upotrebljivosti.
  • Izveštavanje o ponovnom korišćenju informacija o novom kodu, test procedurama ili test podataka.


Kvalitetna gradnja

uredi

Primarne tehnike koje se koriste da se obezbedi kvalitet koda kao što je konstruisan uključuju: [1]

Integracija

uredi

Ključna aktivnost u toku izgradnje je integracija odvojeno izgrađenih rutina, klasa, komponenata i podsistema. Pored toga, poseban softverski sistem će možda morati da bude integrisan sa drugim softver ili hardver sistemom. Zabrinutost u vezi sa građevinskom integracijom uključuje planiranje redosleda u kojem će biti integrisane komponente, stvarajući skele za podršku privremene verzije softvera, određivanje stepena testiranja i kvaliteta obavljenog posla na komponente pre nego što su integrisane, i određivanje tačke u projektu na kome se privremene verzije softvera testiraju.

Vidi još

uredi

Reference

uredi
  1. ^ a b v g d đ e ž z i j k l lj m SWEBOK Pierre Bourque, Robert Dupuis; executive editors, Alain Abran, James W. Moore, eds. (2004).

Spoljašnje veze

uredi