Opis poslova za razvoj softvera: standardi i predlošci

Tehnologije razvoja softvera (softver) pojavile su se zajedno s programiranjem. Postala je tradicija kombiniranja dva postupka: kako napisati algoritam o tome kako "napisati program" kako bi se razvio ovaj projekt, navodeći u tijeku prvog algoritma. Ako program "izvrši" računalo, tehnologija pisanja programa "izvodi" osobu. Za računalo, pogreška u ciklusu rada ima fatalne posljedice. Za osobu, proces pisanja tehnologije nije ciklus, a ne algoritam, već spirala razvoja znanja i sposobnost formaliziranja opsega primjene, formuliranja zadataka i rješavanja istih.

Opseg i svrha u njemu

Programiranje u bilo kojem kontekstu je formalizacija znanja i vještina programera (tima) u relativno preciznom algoritmu, pisanom u formatu tehničke specifikacije (TOR) za razvoj softvera (softvera) jednog ili mnogo programa.


Područje primjene uvijek je primarno. Zadatak koji se treba riješiti nije toliko sekundaran, koliko ga je teško postaviti i što je samo po sebi zadatak. Razumijevanje što učiniti kako bi se to učinilo brzo i točno uvijek je teško. Svi pokušaji formaliziranja procesa i stvaranje univerzalnog primjera tehničkog zadatka za razvoj softvera uvijek su se okretali prema cilju.
Tekst zadatka uvijek je bio razjašnjen, svrha je bila specificirana, a potrebna funkcionalnost je ponekad određena godinama.Izgraditi letjelicu, dizajnirati stambenu kuću ili napisati TK na nuklearnoj podmornici - godine rada, čak i uzimajući u obzir iskustvo brojnih stručnjaka. To je svima jasno. Javna svijest jedva da je shvatila da pisanje programa (softverskog sustava) nije manje, nego često mnogo zahtjevniji i složeniji proces.

Definirati prostor odluka

Opseg primjene uvijek "zna" što točno treba učiniti kako bi se situacija promijenila na bolje, ali stručnjak ne razumije odmah kako ga ispravno formulirati i provesti.


Moderno programiranje prešlo je iz lokalne varijante u umreženi "distribuirani" kontekst. Suština ovoga se nije promijenila. Što uzeti kao temelj za C #, C /C + +, ili skup Internet tehnologija HTML /CSS + javascript /PHP nije važan. Možete stvoriti jedinstveni asembler za svako područje primjene, ali to je vrlo zahtjevan proces visokokvalificiranih stručnjaka na razini strojnog koda. Softver je utjelovljenje mentalne aktivnosti stručnjaka u statičnoj, opipljivoj verziji. Potrebna funkcionalnost formalizirana je u logici dijaloga, algoritama odlučivanja i sučelja. Prostor rješenja je nužna funkcija koja opisuje ideju ili implementaciju niza zahtjeva koji poboljšavaju korisničku (klijentsku, potrošačku) aplikaciju.
Zadatak razvoja softvera u konačnici je logika formalizacije domene za izjavu o zadatku, kao i procedure za opisivanje, razvoj, provedbu,pratiti, ažurirati i prekinuti korištenje informacijskih sustava za prikupljanje, pohranjivanje i obradu podataka putem računalne opreme.
Informacijski sustav - generalizirana oznaka posebnog programa, programskog kompleksa, baze podataka ili jedinstvenog algoritma. Na ulazu uvijek postoji nešto, na izlazu, a potrebno je konstruirati što je između ulaza i izlaza - softver: formalizirati i provesti postupak obrade informacija.

Sudionici procesa i bitni uvjeti

Kupac je fizička ili pravna osoba koja je zainteresirana za razvoj informacijskog sustava. Izvršitelj je fizička ili pravna osoba koja je sposobna organizirati proces i izraditi informacijski sustav. Programer (tim) - stručnjak ili grupa stručnjaka angažiranih za obavljanje cijelog ili dijela posla.
Odnosi u razvoju informacijskog sustava izgrađeni su na razini Naručitelja - Izvršitelja: samo u pisanom obliku sukladno važećem zakonodavstvu i ugovoru. Developer - developer: samo pisani oblik u skladu s vlastitim općim smjernicama ili GOST za tehnički zadatak za razvoj softvera. Usmeni odnos nije dopušten (nije zabranjeno, ali se ne preporučuje), niti jedan sudionik u postupku ne može se pozvati na ugovor, koji nije potvrđen pismeno. Kupac i Izvršitelj će djelovati u okviru postojećeg zakonodavstva i zaključenog ugovora do potpune provedbe obveza. Izvršitelj angažira Izvođača po potrebi za obavljanje određenih funkcija,zadaci, faze. Određivanje kompetentnosti i sastava razvojnog tima - opseg interesa i odgovornosti izvođača.

Značajke TK za razvoj ZA

Jasnoća granice! TK je strog dokument koji jasno definira što i na temelju čega je formaliziran:
  • početni podaci;
  • traženi rezultati i izlazni podaci;
  • opravdanje i popis svih algoritama koji se trebaju implementirati.
  • TK je samostalni dokument: ako radite sve što je napisano u njemu, tada će se implementirati potrebna funkcionalnost i zadatak je riješen. Ništa neumjesno, ništa sporno. Sve točke specifikacije za razvoj softvera međusobno su povezane, sistematizirane i precizno formulirane.
    Bilo koji TK za razvoj (čak i najnezahtjevniji program) - dinamičan dokument. Ne možete ga popraviti kao nešto nepromjenjivo. U programiranju se inteligencija prikazuje kao ogledalo. TK - proces spiralnog razvoja ideja o području primjene i rješivog problema. Inženjerski zadatak za razvoj softvera nije olovka i list papira, već kemijska olovka (tinta) i paket razmaženog papira. S poštovanjem, oni programeri koji se, prilikom pisanja TK-a, rukovode očuvanjem povijesti svojih ideja o opsegu primjene i zadatku koji se rješava.

    Konceptualna zastupljenost informacijskih sustava

    Opis poslova za razvoj softvera kao primjer konceptualnih reprezentacija o algoritmu, programu, informacijskom sustavu, bazi podataka, web-resursu, iliDrugi proizvod, koji radi na digitalnom računalu, fokusira se na programski jezik, ali specifikacija i odabir jezika nisu temeljni.

    Sve što se razvija (programira) za upravljanje digitalnim računalnim uređajem je informacijski sustav (algoritam, program ili baza podataka). Informacijski sustav je:
  • rezultat formalizacije područja primjene;
  • prikaz problema za razvoj algoritma (sustav algoritama);
  • programiranje (razvoj);
  • testiranje (provjera funkcionalnosti i prisutnost pogrešaka);
  • provedba (prilagodba području primjene i revizije);
  • održavanje (održavanje bez promjene koda);
  • ažuriranje (nadogradnja, izrada nove verzije);
  • prestanak rada (pravni, tehnički, planski).
  • Informacijski sustav je slijed transformacije ljudske mentalne aktivnosti:
  • opća sistemska reprezentacija;
  • formalni opis;
  • specifičan razvoj;
  • sustav za provjeru funkcija;
  • sustav provedbe;
  • sustav pratnje;
  • sustav ažuriranja (nadogradnje);
  • Razlozi i razlozi za prestanak uporabe.
  • Izgradnju informacijskog sustava obavlja Izvođač od strane snaga vlastitih ili uključenih stručnjaka. Autorsko pravo i vlasništvo u procesu rada na rezultatima faza vrši se u skladu sa zakonom iu dogovoru s kupcem.

    Razvoj TK uz razvoj softvera

    Korištenje tima stručnjaka, zamjenastručnjaka, vrijeme i logiku izvedbe određuje Izvršitelj. Funkcije kupca završavaju u fazi postavljanja zadatka, prije uvođenja informacijskog sustava i ponovno počinju nakon implementacije. Razvoj se provodi ciklički, ali spiralno:
  • nakon testiranja (inicijativa umjetnika);
  • ​​
  • nakon provedbe (inicijativa kupca);
  • s objektivnom potrebom za ažuriranjem. Razvoj informacijskog sustava vođen je rezultatom ljudske mentalne aktivnosti, koja se transformira iz konceptualnog opisa područja primjene u određenom proizvodu.
    Svaki stupanj transformacije konstruiran je na način da se što je više moguće izbjegne rigidnost konačnih struktura, da se osigura dinamičko usavršavanje svakog elementa toga, objekata, funkcija i drugih. konačni proizvod u procesu razvoja. Razvoj tehničkog zadatka za kreiranje softvera i kreirani informacijski sustav su statički prikazi o rezultatima izvedenog rada, doživljeni kao netočnosti, pogreškama i greškama u dizajnu ne može biti osnova za opravdanje ili prikazivanje bilo kakve štete.

    Razvoj na temelju već uspostavljenih rješenja

    Softver se u mnogim slučajevima koristi u različitim aplikacijama aplikacija dugo vremena i prikuplja veliko iskustvo. Financije, burze, računovodstvene odluke, elektroničko upravljanje dokumentima, strojevi za numeričko upravljanje i druga područja. Napisati tehnički zadatak za razvoj softvera S1 - primjer rada koji se formalizira na temeljuveć postojeće. Vrlo je karakteristično da je računovodstvo 1C, koje su najavili programeri kao prva i jedina implementacija integriranog računovodstva, nastale u drugim timovima programera u apsolutno drugim softverskim proizvodima. Sasvim je očito da postojeći računovodstveni softver nije idealan, već će se razvijati postojeći i novi. Aktualnost i stvarna potreba za automatizacijom proizvodnje i obrade informacija učinili su tehnički zadatak za razvoj softverskog AIS neovisnog proizvoda stručnjaka za mentalnu aktivnost.
    Za razliku od 1C, rad na dizajniranju TOR-a za AIS i na samim automatiziranim informacijskim sustavima potječe iz 80-ih godina prošlog stoljeća, ali problemi se nisu smanjivali, ali su ideje postale mnogo više.

    Razvoj i dinamika protiv klasike i statike

    Svaki program obuhvaća znanje i vještine programera (autora). Kupci i voditelji projektnih projekata mogu dati svoj doprinos TK-u i rezultirajućoj BAT-u, ali specifični programeri već su prošli svoje misli (znanje i vještine) statičnog koda. Čak i kada se program može dinamički prilagoditi promjenama u primjeni, suvremene tehnologije programiranja ne dopuštaju da se ide dalje od percepcije programera izvan opsega implementacije (rješenja) zadatka.
    Ako se ograničenje moderne informacijske tehnologije utvrdi kao temeljni čimbenik, tada proces stvaranja opisa radnih zadataka i rezultirajućeg PO-a izgledat će kao postupna izgradnja funkcionalnog. Programiranje nijeJedna činjenica: napisana u TOR-u koju je izradilo nadležno tijelo i proces je završen. Druga mogućnost: napisano, učinjeno i počelo je sve prvo. Idealno - ne toliko za pisanje programa i određivanje kako to učiniti, nego da se formira tim programera i poboljša njihovo znanje i vještine.
  • Povezane publikacije