Softverska konstrukcija

S Vikipedije, slobodne enciklopedije

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 | uredi izvor]

Minimiziranje kompleksnosti[uredi | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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

Upravljanje izgradnjom[uredi | uredi izvor]

Građevinski modeli[uredi | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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

Građevinski dizajn[uredi | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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

Integracija[uredi | uredi izvor]

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 | uredi izvor]

Reference[uredi | uredi izvor]

  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 | uredi izvor]