Programski proizvodi: glavne karakteristike, primjena. Softverski proizvodi i njihove glavne karakteristike Za koje su dizajnirana 2 pomoćna programa

Osnove softvera

Osnovni koncepti

Mogućnosti računala kao tehničke osnove sustava za obradu podataka vezane su uz softver (programe) koji se koristi.

Program (program, rutinski) - uređeni niz računalnih naredbi (instrukcija) za rješavanje problema.

Softver (sowware) - skup programa za obradu podataka i dokumenata potrebnih za njihov rad.

Programi su dizajnirani za strojnu implementaciju zadataka. Pojmovi zadaci I primjena vrlo se široko koriste u kontekstu računalne znanosti i softvera.

Zadatak (problem, zadatak) - problem koji treba riješiti. Primjena (primjena) - programska implementacija na računalu rješavanja problema.

Dakle, zadatak označava problem koji treba implementirati pomoću alata informacijske tehnologije, a aplikacija je rješenje problema implementirano na računalu. Aplikacija, koja je sinonim za riječ "program", smatra se boljim izrazom i naširoko se koristi u informatici.

Termin zadatak također se koristi u području programiranja, posebno u višeprogramskom i višeprocesnom načinu rada, kao jedinica rada računalnog sustava koja zahtijeva dodjelu računalnih resursa (procesorsko vrijeme, glavna memorija itd.). U ovom se poglavlju ovaj pojam koristi u smislu prve definicije.

Postoji veliki broj različitih klasifikacija problema. Sa stajališta specifičnosti razvoja i vrste softvera, razlikovat ćemo dvije klase zadataka - tehnološke i funkcionalne.

Tehnološki izazovi pitanja se postavljaju i rješavaju pri organizaciji tehnološkog procesa obrade informacija na računalu. Tehnološki ciljevi temelj su razvoja softverski servisni alati kao pomoćni programi, servisni programi, knjižnice procedura itd., koji se koriste za osiguranje rada računala, razvoj drugih programa ili obradu podataka iz funkcionalnih zadataka.

Funkcionalni zadaci zahtijevaju rješenja pri implementaciji upravljačkih funkcija unutar informacijskih sustava predmetnih područja. Na primjer, upravljanje aktivnostima trgovačkog poduzeća, planiranje izlaska proizvoda, upravljanje prijevozom robe itd. Funkcionalni zadaci zajedno tvore predmetno područje i u potpunosti određuju njegovu specifičnost.

Predmetno (primjenjivo) područje (primjena domena) - skup međusobno povezanih funkcija i zadataka upravljanja uz pomoć kojih se ostvaruje postizanje postavljenih ciljeva.

Proces kreiranja programa može se prikazati kao slijed radnji prikazanih na sl. 8.1.

Riža. 8.1. Dijagram procesa izrade programa

Formulacija problema(problem definicija) - ovo je točna formulacija rješenja problema na računalu s opisom ulaznih i izlaznih informacija.

Izjava problema je općeniti pojam koji označava specifičnost sadržaja obrade podataka. Formulacija problema povezana je sa specifikacijom osnovnih parametara njegove implementacije, identifikacijom izvora i strukturom ulaznih i izlaznih informacija potrebnih korisniku.

Glavne karakteristike funkcionalnih zadataka, pojašnjene u procesu njegove formalne formulacije, uključuju:

Svrha ili svrha zadatka, njegovo mjesto i veze s drugim zadacima;

Uvjeti za rješavanje problema pomoću računalne tehnologije;

Zahtjevi za učestalost rješavanja problema;

Ograničenja vremena i točnosti izlaznih informacija;

Sastav i oblik prikaza izlaznih informacija;

Izvori ulaznih informacija za rješavanje problema;

Korisnici problema (tko ga rješava i koristi rezultate rješenja i koristi rezultate rješenja).

Izlazne informacije zadatak se može predstaviti u obliku dokumenta kao što je popis ili strojogram), generirani okviri - videogram na ekranu monitora datoteke baze podataka, izlazni signal za upravljački uređaj (Sl. 8.2).

Unos informacija jer se zadatak definira kao podaci koji se unose u šifru zadatka i koriste se za njegovo rješavanje. Ulazne informacije su primarni podaci ručno ispunjenih dokumenata, informacije pohranjene u datotekama baze podataka (rezultati rješavanja drugih problema, normativne i referentne informacije - klasifikatori, kodifikatori, priručnici), ulazni signali odašiljača. (cm. riža. 8.2).

Tipično, postavljanje zadataka provodi se u jednom skupu radova za stvaranje strukture unutar računalne baze podataka, dizajn obrazaca i ruta za kretanje dokumenata, te promjenu organizacije upravljanja unutar predmetnog područja.

Algoritam- sustav precizno formuliranih pravila koji definira proces pretvaranja prihvatljivih početnih podataka (ulazne informacije) u željeni rezultat (izlazne informacije) u konačnom broju koraka.

Algoritam za rješavanje problema ima niz potrebnih svojstava:

Diskretnost je podjela procesa obrade informacija na jednostavnije faze (izvršne korake), čije izvođenje ne uzrokuje računalo ili osoba! poteškoće;

Sigurnost algoritma je nedvosmisleno izvršenje svakog pojedinog koraka transformacije informacija;

Izvedivost je konačnost djelovanja algoritma za rješavanje problema, koja omogućuje dobivanje željenog rezultata s prihvatljivim početnim podacima u konačnom broju koraka;

Masovna dostupnost - prikladnost algoritma za rješavanje određene klase problema.

Algoritam odražava logiku i metodu generiranja rezultata rješenja, ukazujući na potrebne formule za izračun, logičke uvjete i odnose za praćenje pouzdanosti izlaznih rezultata. Algoritam mora predvidjeti sve situacije koje se mogu pojaviti u procesu rješavanja skupa problema.

Algoritam za rješavanje skupa problema i njegova programska implementacija usko su povezani. Specifičnosti korištenih metoda projektiranja algoritama i korištenih alata za razvoj programa mogu utjecati na oblik prikaza i sadržaj algoritma za obradu podataka.

Bilješka. Za rješavanje problema mogu se koristiti algoritmi ugrađeni u gotove programske proizvode - aplikacijske programske pakete (APP) za funkcionalne potrebe (vidi dolje). Također se mogu koristiti standardni modeli i metode za rješavanje problema koji su prikazani u PPP-u usmjerenom na metode. U ovom slučaju, PPP se prilagođava uvjetima specifične primjene; razvijena.

Programiranje (programiranje)- teorijske i praktične aktivnosti vezane uz izradu programa.

Programiranje je skupni pojam i može se smatrati i znanošću i umjetnošću; na tome se temelji znanstveni i praktični pristup razvoju programa.

Program je rezultat intelektualnog rada koji karakterizira kreativnost koja, kao što znamo, nema jasnih granica. Svaki program ima individualnost svog programera; program odražava određeni stupanj vještine programera. Istovremeno, programiranje uključuje i rutinski rad koji može i treba imati stroge propise i standarde.

Programiranje se temelji na skupu znanstvenih disciplina usmjerenih na istraživanje, razvoj i primjenu metoda i alata za razvoj programa (specijalizirani alati za izradu programa). Pri razvoju programa koriste se tehnologije koje zahtijevaju resurse i znanje te visokokvalificirani intelektualni rad.

Programiranje je razvijena grana gospodarske djelatnosti povezana sa značajnim troškovima materijalnih, radnih i financijskih sredstava. Prema inozemnim izvorima, sredinom 90-ih do 2% radno sposobnog stanovništva u svijetu bavilo se programiranjem. Ukupni promet u području stvaranja softvera doseže nekoliko stotina milijardi dolara godišnje.

U vezi s rastućom potrebom za raznim programima za obradu podataka, pitanje korištenja učinkovitih tehnologija programiranja i njihovog prijenosa na industrijsku osnovu vrlo je važno. To znači:

Standardizacija, replikacija i reprodukcija metoda programiranja od strane različitih programera;

Uvođenje naprednih alata za razvoj softvera;

Korištenje posebnih metoda i tehnika organiziranja rada na izradi programa.

Glavna kategorija stručnjaka uključenih u razvoj softvera je programeri (programer). Programeri su heterogeni po razini svojih kvalifikacija, kao i po prirodi svojih aktivnosti. Programeri se najčešće dijele na sistemske i aplikativne programere.

  • Sistemski programer(sustav / softver programer, toolmilh) bavi se razvojem, radom i održavanjem sistemski softver koji podržava rad računala i stvara okruženje za izvršavanje programa koji osiguravaju provedbu funkcionalnih zadataka.
  • Programer aplikacija (primjena programer) provodi razvoj i otklanjanje pogrešaka programa za rješavanje funkcionalnih problema.

U kontekstu stvaranja programa koji su velikog opsega i funkcija obrade, pojavljuje se nova kvalifikacija - programer-analitičar (programer- analitičar), koji analizira i dizajnira skup međusobno povezanih programa za provedbu funkcija predmetnog područja.

U procesu izrade programa u početnoj fazi rada sudjeluju i stručnjaci - postavljači zadataka.

Većina informacijskih sustava temelji se na radu s bazama podataka (DB). Ukoliko je baza podataka integrirana, omogućujući rad s podacima iz mnogih aplikacija, javlja se problem organizacijske podrške bazi podataka, koja izvedena Administrator baze podataka.

Glavni potrošač programa je krajnji korisnik (kraj korisnik), koji u pravilu spada u kategoriju korisnika neprogramera. Krajnji korisnik nije stručnjak u području programiranja, odnosno ne posjeduje metode i tehnologiju projektiranja i izrade programa, ali ima osnovna znanja i vještine rada s računalnom tehnologijom. Ova kvalifikacijska karakteristika korisnika softvera značajno utječe na specifikaciju zahtjeva za kreirane programe, sučelja, oblike strojnih dokumenata i tehnologiju za rješavanje problema na računalu.

Moguće je upravljanje programima od strane kvalificiranih programera ili posebno obučenih tehničkih radnika - računalni operateri.

Interakcija različitih vrsta stručnjaka uključenih u razvoj i rad programa prikazana je na slici. 8.3. U nekim slučajevima, jedan stručnjak kombinira nekoliko vrsta aktivnosti. Administrator baze podataka i programer sustava pripremaju informacijske, programske i tehničke uvjete za rad programa. Isprekidane linije označavaju sudjelovanje stručnjaka kao konzultanta.

Riža. 8.3. Shema interakcije između stručnjaka vezanih uz izradu i rad programa.

KARAKTERISTIKE SOFTVERSKOG PROIZVODA

Svi programi, prema prirodi uporabe i kategorijama korisnika, mogu se podijeliti u dvije klase (slika 8.4) - utilitarni programi i programski proizvodi (proizvodi).

  • Utilitarni programi("softver za sebe") dizajnirani su kako bi zadovoljili potrebe svojih programera. Utilitarni programi najčešće imaju ulogu servisa u tehnologiji obrade podataka ili su programi za rješavanje funkcionalnih problema koji nisu namijenjeni širokoj distribuciji.
  • Softverski proizvodi(proizvodi) su dizajnirani da zadovolje potrebe korisnika, budu široko distribuirani i prodani.

Trenutno postoje druge mogućnosti za legalnu distribuciju softverskih proizvoda koji su se pojavili korištenjem globalnih ili regionalnih telekomunikacija:

Freeware - besplatni programi, slobodno distribuirani, koje podržava sam korisnik, koji je ovlašten napraviti potrebne izmjene na njima;

Shareware su nekomercijalni (shareware) programi koji se u pravilu mogu koristiti besplatno. Uz redovitu upotrebu takvih proizvoda potrebno je plaćanje određenog iznosa.

Brojni proizvođači koriste OEM programi(Proizvođač originalne opreme), tj. ugrađeni programi instalirani na računalima ili isporučeni s računalnom opremom.

Programski proizvod mora biti pravilno pripremljen za rad, imati potrebnu tehničku dokumentaciju, pružati servis i jamčiti pouzdan rad programa, imati zaštitni znak proizvođača, a po mogućnosti i državni registracijski kod. Samo pod takvim uvjetima stvoreni programski kompleks može se nazvati programskim proizvodom.

Softver - skup međusobno povezanih programa za rješavanje određenog problema (zadatka) masovne potražnje, pripremljenih za prodaju poput svake vrste industrijskog proizvoda.

Put od “programa za sebe” do softverskih proizvoda prilično je dug, povezan je s promjenama u tehničkom i programskom okruženju za razvoj i rad programa, s nastankom i razvojem neovisne industrije - informacijskog poslovanja, koje je karakterizira podjela rada tvrtki za razvoj softvera, njihova daljnja specijalizacija, formiranje tržišta softvera i informacijskih usluga.

Softverski proizvodi mogu se izraditi kao:

Individualni razvoj po narudžbi;

Razvoj za masovnu distribuciju među korisnicima.

U individualnom razvoju razvojna tvrtka izrađuje originalni programski proizvod koji uvažava specifičnosti obrade podataka za određenog kupca.

Prilikom razvoja za masovnu distribuciju, razvojna tvrtka, s jedne strane, mora osigurati univerzalnost izvršavanih funkcija obrade podataka, as druge strane, fleksibilnost i prilagodbu softverskog proizvoda za uvjete specifične primjene. Izrazita značajka softverskih proizvoda trebala bi biti njihova sustavna priroda - funkcionalna cjelovitost i cjelovitost implementiranih funkcija obrade koje se koriste zajedno.

Programski proizvod razvijen je na temelju industrijske tehnologije za izvođenje projektantskih radova korištenjem suvremenih programskih alata. Specifičnost je u jedinstvenosti procesa razvoja algoritama i programa, ovisno o prirodi obrade informacija i alatima koji se koriste. Značajni resursi troše se na izradu softverskih proizvoda - radni, materijalni, financijski; potrebni su visokokvalificirani programeri.

Softverski proizvodi u pravilu zahtijevaju održavanje koje provode specijalizirane tvrtke - distributeri softvera (distributeri), a rjeđe - razvojne tvrtke. Održavanje programa za masovnu upotrebu uključuje puno rada - ispravljanje uočenih grešaka, stvaranje novih verzija programa itd.

Podrška za softverske proizvode - održavanje funkcionalnosti programskog proizvoda, prelazak na nove verzije, izmjene, ispravljanje uočenih grešaka i sl.

Softverski proizvodi, za razliku od tradicionalnih softverskih proizvoda, nemaju strogo reguliran skup svojstava kvalitete specificiranih pri izradi programa ili se ta svojstva ne mogu unaprijed točno specificirati ili procijeniti, jer iste funkcije obrade koje nudi softver mogu imati različite dubine razrade. Čak se ni vrijeme i troškovi za razvoj softverskih proizvoda ne mogu unaprijed odrediti s visokim stupnjem točnosti. Glavne karakteristike programa su:

Algoritamska složenost (logika algoritama za obradu informacija);

Sastav i dubina razrade implementiranih funkcija obrade;

Cjelovitost i dosljednost funkcija obrade;

Količina programskih datoteka;

Zahtjevi za operativni sustav i tehnička sredstva obrade na dijelu softvera;

Kapacitet memorije diska;

Veličina RAM-a za pokretanje programa;

Vrsta procesora;

Verzija operativnog sustava;

Dostupnost računalne mreže i sl.

Softverski proizvodi imaju niz pokazatelja kvalitete koji odražavaju sljedeće aspekte:

Koliko se dobro (jednostavno, pouzdano, učinkovito) može koristiti softverski proizvod;

Koliko je jednostavno koristiti softverski proizvod?

Je li moguće koristiti programski proizvod ako se promijene uvjeti za njegovo korištenje i sl.

Stablo karakteristika kvalitete softverskog proizvoda prikazano je na slici. 8.5.

Mobilnost programski proizvodi podrazumijevaju njihovu neovisnost od tehničkog sklopa sustava za obradu podataka, operativnog okruženja, tehnologije mrežne obrade podataka, specifičnosti predmetnog područja i sl. Mobilni (multiplatformski) programski proizvod može se instalirati na različite modele računala i operativne sustave, bez ograničenja njegovog rada u računalnoj mreži. Funkcije obrade takvog softverskog proizvoda prikladne su za masovnu upotrebu bez ikakvih promjena.

Pouzdanost Rad programskog proizvoda određen je glatkoćom i stabilnošću programa, točnošću izvršavanja propisanih funkcija obrade te sposobnošću dijagnosticiranja pogrešaka koje nastaju tijekom rada programa.

Učinkovitost programski proizvod se ocjenjuje kako sa stajališta njegove izravne namjene - zahtjeva korisnika, tako i sa stajališta potrošnje računalnih resursa potrebnih za njegov rad.

Potrošnja računalnih resursa procjenjuje se kroz količinu vanjske memorije za pohranu programa i količinu RAM-a za pokretanje programa.

Uzimajući u obzir ljudski faktor znači osigurati prijateljsko sučelje za krajnjeg korisnika, prisutnost kontekstno osjetljivog savjeta ili sustava za obuku kao dio softvera, dobru dokumentaciju za ovladavanje i korištenje funkcionalnosti ugrađene u softver, analizu i dijagnostiku grešaka itd.

Mogućnost izmjene softverski proizvodi podrazumijevaju mogućnost izmjena, na primjer, proširenje obradnih funkcija, prelazak na drugu tehničku obradu, itd.

Komunikacijske vještine programskih proizvoda temelji se na njihovoj najvećoj mogućoj integraciji s drugim programima, osiguravajući razmjenu podataka u uobičajenim formatima prezentacije (izvoz/uvoz baza podataka, implementacija ili povezivanje objekata obrade, itd.).

U kontekstu postojanja tržišta softvera, važne karakteristike su:

Cijena,

Broj prodaja;

Vrijeme provedeno na tržištu (trajanje prodaje);

Ugled razvojne tvrtke i programa;

Dostupnost softverskih proizvoda za slične namjene.

Masovno distribuirani softverski proizvodi prodaju se po cijenama koje uzimaju u obzir potražnju i tržišne uvjete (dostupnost i cijene konkurentskih programa). Od velike je važnosti marketing koji tvrtka provodi, a koji uključuje:

Posebnost programskih proizvoda (za razliku od većine industrijskih proizvoda) je također da se njihov rad mora odvijati na zakonskoj osnovi – licencnim ugovorima između razvojnog programera i korisnika uz poštivanje autorskih prava programera programskog proizvoda.

Životni ciklus softverskog proizvoda.

Programe bilo koje vrste karakterizira životni ciklus koji se sastoji od zasebnih faza:

a) marketing tržišta softvera, specifikacija zahtjeva za softverski proizvod;

b) dizajn strukture softverskog proizvoda;

c) programiranje (izrada programskog koda), testiranje, autonomno i složeno otklanjanje pogrešaka programa;

d) dokumentacija programskog proizvoda, izrada operativne i tehnološke dokumentacije;

e) ulazak na tržište softvera, distribucija softverskog proizvoda;

f) rukovanje programskim proizvodom od strane korisnika;

g) održavanje programskih proizvoda;

h) povlačenje programskog proizvoda iz prodaje, odbijanje podrške. Na sl. 8.6 prikazuje faze životnog ciklusa i pokazuje njihovu vremensku usklađenost jedna s drugom. Razmotrimo sadržaj pojedinih faza životnog ciklusa.

Riža. 8.6. Faze životnog ciklusa softverskog proizvoda.

Marketing I specifikacija programski proizvod dizajniran je za proučavanje zahtjeva za izrađeni programski proizvod, i to:

Određivanje sastava i svrhe funkcija obrade podataka softverskog proizvoda;

Postavljanje korisničkih zahtjeva za prirodu interakcije sa softverskim proizvodom, vrstu korisničkog sučelja (sustav izbornika, korištenje miša, vrste upita, vrste dokumenata na ekranu itd.);

zahtjevi za skup hardvera i softvera za rad softverskog proizvoda itd.

U ovoj fazi potrebno je izvršiti formalizirani prikaz problema.

Ako softverski proizvod nije stvoren po narudžbi i namjerava se ući na tržište softvera, marketing se provodi u potpunosti: proučavaju se konkurentni softverski proizvodi i analozi, sažeti su zahtjevi korisnika za softverskim proizvodom, potencijalni kapacitet prodajnog tržišta utvrđuje se, daje se prognoza cijene i obima prodaje. Osim toga, važno je procijeniti materijalne, radne i financijske resurse potrebne za razvoj softverskog proizvoda, kao i približno trajanje glavnih faza životnog ciklusa softverskog proizvoda.

Ako se programski proizvod kreira kao programski proizvod po narudžbi za određenog kupca, u ovoj je fazi također važno ispravno formulirati i dokumentirati zadatak za njegov razvoj. Pogrešno shvaćen zahtjev za softverski proizvod može dovesti do neželjenih rezultata tijekom njegovog rada.

Dizajn strukture programskog proizvoda povezana je s algoritmizacijom procesa obrade podataka, detaljima obradnih funkcija, razvojem strukture softverskog proizvoda (arhitektura programskih modula), strukturom informacijske baze (baze podataka) zadatka, izbor metoda i sredstava za izradu programa – tehnologije programiranja.

Programiranje, testiranje I otklanjanje pogrešaka programi su tehnička implementacija dizajnerskih rješenja i izvode se pomoću odabranih razvojnih alata (algoritamski jezici i programski sustavi, okruženja razvojnih alata itd.).

Za velike i složene softverske sustave koji imaju razvijenu modularnu strukturu, pojedinačni rad u ovoj fazi može se izvoditi paralelno, smanjujući ukupno vrijeme razvoja softverskog proizvoda. Važnu ulogu imaju alati za programiranje i debugiranje koji se koriste u ovom procesu, jer oni utječu na složenost posla, njegovu cijenu i kvalitetu izrađenih programa.

Dokumentiranje softverskog proizvoda je obvezna vrsta posla koju u pravilu ne obavlja sam programer, već osoba povezana s distribucijom i implementacijom softverskog proizvoda. Dokumentacija mora sadržavati potrebne podatke o instaliranju i osiguravanju pouzdanog rada programskog proizvoda, podršku korisnicima pri obavljanju funkcija obrade te odrediti postupak integracije programskog proizvoda s drugim programima. Uspjeh distribucije i rada programskog proizvoda uvelike ovisi o kvaliteti njegove dokumentacije.

Na strojnoj razini softverskog proizvoda u pravilu se stvaraju:

Automatizirana pomoć osjetljiva na kontekst (HELP);

Demo verzije koje rade u aktivnom načinu rada sličnom obrazovnim sustavima (elektronički udžbenik) ili pasivnom načinu rada (video, crtani film) - za demonstraciju funkcionalnosti softverskog proizvoda i informacijske tehnologije njegove upotrebe.

Ulazak softverskog proizvoda na tržište softvera povezan je s organizacijom prodaje masovnom korisniku. Ova faza treba biti što je moguće kraća; za promociju softverskih proizvoda koriste se standardne marketinške tehnike: oglašavanje, povećanje broja prodajnih kanala, stvaranje distributerske i distribucijske mreže, politika cijena - prodaja uz popuste, postprodajne usluge itd.

Potreban je stalni program marketinških aktivnosti i podrške softverskim proizvodima. U pravilu, svaki softverski proizvod ima svoj oblik krivulje prodaje, koji odražava potražnju (slika 8.7).

U početku, prodaja softverskog proizvoda raste - rastući dio krivulje. Zatim dolazi do stabilizacije prodaje softverskog proizvoda. Razvojna tvrtka teži maksimalnom trajanju razdoblja stabilne prodaje na visokoj razini. Zatim dolazi do pada količine prodaje, što je signal za promjenu marketinške politike tvrtke u odnosu na ovaj softverski proizvod; potrebna je modifikacija ovog proizvoda, promjena cijene ili povlačenje iz prodaje.

Riža. 8.7. Krivulja prodaje softverskih proizvoda.

Rad softverskog proizvoda odvija se paralelno s njegovim održavanjem, a rad programa može započeti i bez održavanja ili nastaviti ako je održavanje završeno neko vrijeme. Nakon što se softverski proizvod povuče iz prodaje, može se i održavati određeno vrijeme. Tijekom rada softverskog proizvoda otkrivene greške se uklanjaju.

Uklanjanje softverskog proizvoda iz prodaje i odbijanje podrške događa se, u pravilu, u slučaju promjene tehničke politike razvojne tvrtke, neučinkovitog rada softverskog proizvoda, prisutnosti fatalnih pogrešaka u njemu ili nedostatka zahtijevajte.

Duljina životnog ciklusa za različite softverske proizvode nije ista. Za većinu modernih softverskih proizvoda, životni ciklus se mjeri u godinama (2-3 godine). Iako se na računalima često nalaze softverski proizvodi koji su već dugo ukinuti.

Osobitost razvoja softverskog proizvoda je da se u početnim fazama donose odluke koje se provode u kasnijim fazama. Pogreške učinjene, primjerice, prilikom specificiranja zahtjeva za softverski proizvod, dovode do velikih gubitaka u kasnijim fazama razvoja ili rada softverskog proizvoda, pa čak i do neuspjeha cijelog projekta. Dakle, ako je potrebno unijeti izmjene u specifikaciju softverskog proizvoda, potrebno je u potpunosti ponoviti sve sljedeće faze projektiranja i izrade softverskog proizvoda.

ZAŠTITA SOFTVERSKIH PROIZVODA.

Osnovni pojmovi o zaštiti programskih proizvoda.

Programski proizvodi i računalne baze podataka predmet su intelektualnog rada visokokvalificiranih stručnjaka. Proces projektiranja i implementacije programskih proizvoda karakteriziraju značajni troškovi materijala i rada, temelji se na korištenju visokotehnoloških tehnologija i alata te zahtijeva korištenje odgovarajuće razine skupe računalne opreme. To nameće potrebu poduzimanja mjera za zaštitu interesa programera i stvaratelja računalnih baza podataka od neovlaštene uporabe.

Softver također podliježe zaštiti zbog složenosti i zahtjevnosti vraćanja funkcionalnosti te važnosti softvera za rad informacijskog sustava.

Zaštita softvera ima sljedeće ciljeve:

Ograničenje neovlaštenog pristupa programima ili njihovo namjerno uništavanje i krađu;

Eliminacija neovlaštenog kopiranja (replikacije) programa.

Softverski proizvod i baze podataka moraju biti zaštićeni u nekoliko područja od izlaganja:

1) ljudski - krađa računalnih medija i programske dokumentacije; neispravnost softverskog proizvoda itd.;

2) hardver - povezivanje hardvera s računalom radi čitanja programa i podataka ili njihovog fizičkog uništavanja;

3) specijalizirani programi - onesposobljavanje softverskog proizvoda ili baze podataka (na primjer, infekcija virusom), neovlašteno kopiranje programa i baza podataka itd.

Najjednostavniji i najpovoljniji način zaštite softverskih proizvoda i baza podataka je ograničavanje pristupa. Kontrolu pristupa softverskom proizvodu i bazi podataka grade:

Zaštita programa lozinkom kada se pokrenu;

Korištenje diskete s ključem za pokretanje programa;

Ograničenja programa ili podataka, funkcija obrade dostupnih korisnicima itd.

Također se mogu koristiti kriptografske metode za zaštitu informacija baze podataka ili modula glavnog softvera.

Programski sustavi za zaštitu od neovlaštenog kopiranja.

Ovi sustavi sprječavaju nelicenciranu upotrebu softverskih proizvoda i baza podataka. Program se izvršava samo kada se identificira neki jedinstveni ključni element koji se ne može kopirati.

Takvi ključni elementi mogu biti:

Disketa na kojoj je zapisan ključ koji se ne može kopirati;

Određene karakteristike računalnog hardvera;

Poseban uređaj (elektronički ključ) povezan s računalom i dizajniran za izdavanje identifikacijskog koda.

Sustavi za zaštitu od kopiranja softvera za softverske proizvode:

Identificirajte okruženje iz kojeg će se program pokrenuti;

Utvrduju da okolina iz koje se pokreće program odgovara onoj za koju je dopušteno autorizirano pokretanje;

Razviti odgovor na lansiranje iz neovlaštenog okruženja;

Registrirajte ovlašteno kopiranje;

Oni se suprotstavljaju proučavanju sistemskih algoritama i programa.

Za identifikaciju disketa za pokretanje koriste se sljedeće metode:

1) nanošenje oštećenja na površini diskete ("laserska rupa"), koje se teško može reproducirati u neovlaštenoj kopiji diskete;

2) nestandardno formatiranje diskete za pokretanje.

Identifikaciju računalnog okruženja osiguravaju:

1) fiksiranje položaja programa na tvrdom magnetskom disku (tzv. nepremještani programi);

2) vezanje na BIOS broj (izračun i memoriranje s naknadnom provjerom pri pokretanju kontrolne sume sustava);

3) vezanje na hardverski (elektronički) ključ umetnut u I/O port itd.

Na zapadu su najpopularnije metode pravne zaštite softverskih proizvoda i baza podataka.

Pravne metode zaštite programskih proizvoda i baza podataka.

Pravne metode za zaštitu programa uključuju:

  • patentna zaštita;
  • zakon o poslovnoj tajni;
  • licencni sporazumi i ugovori;
  • zakon o autorskom pravu.
  • ekonomska prava koja svojim vlasnicima daju pravo na ekonomsku korist od prodaje ili korištenja softverskih proizvoda i baza podataka;
  • moralna prava koja osiguravaju zaštitu autorove osobnosti u njegovom djelu.

U mnogim civiliziranim zemljama neovlašteno kopiranje programa u svrhu prodaje ili besplatne distribucije smatra se državnim zločinom, kažnjivim novčanom ili zatvorskom kaznom. No, nažalost, samo autorsko pravo ne pruža zaštitu za novu ideju, koncept, metodologiju i tehnologiju razvoja softvera, pa su potrebne dodatne mjere za njihovu zaštitu.

Zaštita patenta utvrđuje prioritet u razvoju i korištenju novog pristupa ili metode primijenjene u razvoju programa, potvrđuje njihovu izvornost.

Status poslovna tajna za program, ograničava krug osoba koje su upoznate ili ovlaštene za upravljanje njime, te također određuje opseg njihove odgovornosti za odavanje tajni. Na primjer, koristi se lozinka za pristup softverskom proizvodu ili bazi podataka, uključujući lozinke za pojedinačne načine (čitanje, pisanje, ažuriranje itd.). Programe, kao i svaki materijalni objekt velike vrijednosti, potrebno je zaštititi od krađe i namjernog uništavanja.

Ugovori o licenci primjenjuju se na sve aspekte pravne zaštite softverskih proizvoda, uključujući autorska prava, patentnu zaštitu i poslovne tajne. Najčešće korišteni licencni ugovori su ugovori o prijenosu autorskih prava.

Licenca- ugovor o prijenosu prava korištenja imena, proizvoda, tehnologije ili usluge od strane jedne osobe (davatelja licence) na drugu osobu (stjecatelja licence). Davatelj licence povećava svoj prihod prikupljanjem licencnih naknada, proširuje područje distribucije softverskog proizvoda ili baze podataka; nositelj licence ostvaruje prihod njihovom uporabom.

Licencni ugovor propisuje sve uvjete rada programa, uključujući i izradu kopija. Svaka kopija programa mora imati iste oznake kao i original:

  • simbol autorskog prava (obično ©) i ime programera, godina izdanja programa i drugi atributi;
  • znak patentne zaštite ili poslovne tajne;
  • zaštitni znakovi koji odgovaraju drugim softverskim proizvodima koji se koriste u programu (obično i naziv tvrtke koja je razvila softverski proizvod);
  • simbol registriranog prava na distribuciju softverskog proizvoda (obično ®).

Postoji nekoliko vrsta softverskih licenci. Ekskluzivna licenca - prodajom svih vlasničkih prava na programskom proizvodu ili bazi podataka, kupcu licence daje se isključivo pravo korištenja istih, a autor ili vlasnik patenta odbija ih samostalno koristiti ili ustupati drugima.

Ovo je najskuplja vrsta licence, koristi se za monopolno vlasništvo radi izvlačenja dodatnog profita ili prestanka postojanja softverskog proizvoda na tržištu softvera.

Jednostavna licenca - davatelj licence daje stjecatelju licence pravo korištenja softverskog proizvoda ili baze podataka, zadržavajući pravo na korištenje i davanje iste pod sličnim uvjetima neograničenom broju osoba (stjecatelj licence ne može sam izdavati podlicence, može samo prodavati kopije kupljenih programski proizvod ili baza podataka).

Ovu vrstu licence kupuje trgovac (trgovac) ili proizvodna poduzeća koja kupljene licence koriste kao pomoćni proizvod svojoj osnovnoj djelatnosti. Na primjer, mnogi proizvođači i tvrtke za prodaju računalne opreme prodaju računalnu opremu s instaliranim licenciranim softverom (operativni sustav, uređivač teksta, proračunske tablice, grafički paketi itd.).

Licenca etikete - licenca za jedan primjerak programskog proizvoda ili baze podataka. Ova vrsta licence koristi se za prodaju na malo. Svaki službeni kupac sklapa licencni ugovor s prodavateljem za njihovu upotrebu, ali autorsko pravo programera zadržava se.

Gospodarski odnosi između davatelja licence i stjecatelja licence mogu se strukturirati na različite načine. Za pravo korištenja programskog proizvoda ili baze podataka plaća se jednokratna naknada (paušalno plaćanje) koja je stvarna cijena licence. U obrascu su također moguća periodična plaćanja davatelju licence za pravo korištenja tantijeme- fiksna stopa u određenim vremenskim intervalima tijekom licencnog ugovora, obično postotak cijene softverskih proizvoda ili baza podataka.

Zakon o zaštiti programskih proizvoda i računalnih baza podataka priznaje autora kao pojedinca čijom su kreativnom djelatnošću nastali. Autor, bez obzira na svoja imovinska prava, posjeduje osobna autorska prava (vidi sl. 8.8): autorstvo, naziv, nepovredivost (integritet) programa ili baza podataka.

  • pustiti u svijet;
  • reproducirati u bilo kojem obliku, na bilo koji način;
  • raspodijeliti;
  • modificirati;
  • na bilo koji drugi način koristiti softverski proizvod ili bazu podataka.

Prava vlasništva nad softverskim proizvodom ili bazom podataka mogu se djelomično ili u cijelosti prenijeti na druge fizičke ili pravne osobe temeljem ugovora. Imovinska prava se klasificiraju kao nasljedna. Ako programski proizvod ili baza podataka nastaju u obavljanju službenih dužnosti, imovinska prava pripadaju poslodavcu.

Programske proizvode i baze podataka mogu koristiti treći korisnici na temelju ugovora s nositeljem autorskih prava.

Osoba koja zakonito posjeduje primjerak programa ili baze podataka ima pravo, bez dobivanja dodatnog dopuštenja od nositelja autorskog prava, provoditi bilo kakve radnje u vezi s funkcioniranjem softverskog proizvoda ili baze podataka u skladu s njegovom svrhom, uključujući:

  • instalirati jednu kopiju softverskog proizvoda ili baze podataka na računalo, osim ako nije drugačije dogovoreno s nositeljem autorskog prava;
  • ispraviti očite pogreške;
  • prilagoditi softverski proizvod ili bazu podataka;
  • izraditi kopije osiguranja.

Program (program, rutina) - uređeni niz računalnih naredbi (instrukcija) za rješavanje problema.

Softver (softver)- skup programa za obradu podataka i dokumenata potrebnih za njihov rad.

Programi su dizajnirani za strojnu implementaciju zadataka. Pojmovi zadaci I primjena vrlo se široko koriste u kontekstu računalne znanosti i softvera.

Zadatak (problem, zadatak) - problem koji treba riješiti. Primjena (prijava)- programska implementacija na računalu rješavanja problema.

Dakle, zadatak označava problem koji treba implementirati pomoću alata informacijske tehnologije, a aplikacija je rješenje problema implementirano na računalu. Aplikacija, koja je sinonim za riječ "program", smatra se boljim izrazom i naširoko se koristi u informatici.

Termin zadatak također se koristi u području programiranja, posebno u višeprogramskom i višeprocesnom načinu rada, kao jedinica rada računalnog sustava koja zahtijeva dodjelu računalnih resursa (procesorsko vrijeme, glavna memorija itd.). U ovom se poglavlju ovaj pojam koristi u smislu prve definicije.

Postoji veliki broj različitih klasifikacija problema. Sa stajališta specifičnosti razvoja i vrste softvera, razlikovat ćemo dvije klase zadataka - tehnološke i funkcionalne.

Tehnološki izazovi pitanja se postavljaju i rješavaju pri organizaciji tehnološkog procesa obrade informacija na računalu. Tehnološki ciljevi temelj su razvoja softverski servisni alati kao pomoćni programi, servisni programi, knjižnice procedura itd., koji se koriste za osiguranje rada računala, razvoj drugih programa ili obradu podataka iz funkcionalnih zadataka.

Funkcionalni zadaci zahtijevaju rješenja pri implementaciji upravljačkih funkcija unutar informacijskih sustava predmetnih područja. Na primjer, upravljanje aktivnostima trgovačkog poduzeća, planiranje izlaska proizvoda, upravljanje prijevozom robe itd. Funkcionalni zadaci zajedno čine predmetno područje i u potpunosti određuju njegovu specifičnost.

Svi programi mogu se podijeliti u dvije klase prema prirodi korištenja i kategorijama korisnika:

utilitaristički programi("softver za sebe") dizajnirani su kako bi zadovoljili potrebe svojih programera. Utilitarni programi najčešće imaju ulogu servisa u tehnologiji obrade podataka ili su programi za rješavanje funkcionalnih problema koji nisu namijenjeni širokoj distribuciji;



softverski proizvodi(“proizvodi”) namijenjeni su zadovoljavanju potreba korisnika te širokoj distribuciji i prodaji.

Trenutno postoje druge mogućnosti za legalnu distribuciju softverskih proizvoda koji su se pojavili korištenjem globalnih ili regionalnih telekomunikacija:

besplatni softver– besplatne programe, koji se slobodno distribuiraju, podržava sam korisnik, koji ima pravo na njih unositi potrebne izmjene;

shareware– nekomercijalni (shareware) programi koji se u pravilu mogu koristiti besplatno (uz redovito korištenje takvih proizvoda potrebno je plaćanje određenog iznosa).

Karakteristike kvaliteta prog proizvoda: Mobilnost programski proizvodi podrazumijevaju njihovu neovisnost od tehničkog sklopa sustava za obradu podataka, operativnog okruženja, tehnologije mrežne obrade podataka, specifičnosti predmetnog područja i sl. Mobilni (multiplatformski) programski proizvod može se instalirati na različite modele računala i operativne sustave, bez ograničenja njegovog rada u računalnoj mreži. Funkcije obrade takvog softverskog proizvoda prikladne su za masovnu upotrebu bez ikakvih promjena.

Pouzdanost Rad programskog proizvoda određen je glatkoćom i stabilnošću programa, točnošću izvršavanja propisanih funkcija obrade te sposobnošću dijagnosticiranja pogrešaka koje nastaju tijekom rada programa.

Učinkovitost programski proizvod se ocjenjuje kako sa stajališta njegove izravne namjene - zahtjeva korisnika, tako i sa stajališta potrošnje računalnih resursa potrebnih za njegov rad.

Uzimajući u obzir ljudski faktor znači osigurati prijateljsko sučelje za krajnjeg korisnika, prisutnost kontekstno osjetljivog savjeta ili sustava za obuku kao dio softvera, dobru dokumentaciju za ovladavanje i korištenje funkcionalnosti ugrađene u softver, analizu i dijagnostiku grešaka itd.



Mogućnost izmjene softverski proizvodi podrazumijevaju mogućnost izmjena, na primjer, proširenje obradnih funkcija, prelazak na drugu tehničku obradu, itd.

Komunikacijske vještine softverskih proizvoda temelji se na njihovoj maksimalnoj mogućoj integraciji s drugim programima, osiguravajući razmjenu podataka u uobičajenim formatima prezentacije (izvoz/uvoz baza podataka, interni Glavne karakteristike programa su:

· algoritamska složenost (logika algoritama za obradu informacija);

· sastav i dubina razrade implementiranih funkcija obrade;

· cjelovitost i dosljednost funkcija obrade;

· volumen programskih datoteka;

· zahtjevi za operativni sustav i tehnička sredstva obrade izvana

· softverski alat;

· volumen diskovne memorije;

· veličina RAM-a za pokretanje programa;

· vrsta procesora;

verzija operativnog sustava;

Dostupnost računalne mreže i sl.

Svi programi mogu se podijeliti u 2 klase prema prirodi korištenja i kategorijama korisnika: utilitaristički programi I programski proizvodi (proizvodi).

Utilitarni programi (komunalne usluge) namijenjeni su za korištenje od strane samih programera. Najčešće su to programska rješenja funkcionalnih problema koja nisu namijenjena širokoj distribuciji.

Softver – skup međusobno povezanih programa za rješavanje određenog problema (zadatka) masovne potražnje, pripremljenih za prodaju poput svake vrste industrijskog proizvoda.

Programski proizvod mora biti pravilno pripremljen za rad, imati potrebnu tehničku dokumentaciju, pružati uslugu i jamstvo pouzdanog rada programa, imati zaštitni znak proizvođača i po mogućnosti državni registracijski kod.

Programski proizvodi namijenjeni su širokoj distribuciji i prodaji.

Proces stvaranja programskih proizvoda prilično je dug, povezan je s promjenama u tehničkom i programskom okruženju za razvoj i rad programa, s nastankom i razvojem samostalne industrije - informacijskog poslovanja, koje karakterizira podjela rada na tvrtke za razvoj softvera, njihova daljnja specijalizacija, formiranje tržišta softvera i informacijskih usluga.

Programski proizvod razvijen je na temelju industrijske tehnologije za izvođenje projektantskih radova korištenjem suvremenih programskih alata. Specifičnost je u jedinstvenosti procesa razvoja algoritama i programa, ovisno o prirodi obrade informacija i alatima koji se koriste.

Programski proizvodi u pravilu zahtijevaju održavanje koje provode specijalizirane tvrtke za distribuciju softvera (distributeri), a rjeđe razvojne tvrtke. Održavanje programa za masovnu upotrebu uključuje puno rada - ispravljanje grešaka, stvaranje novih verzija programa itd.

Glavne karakteristike programa

    Algoritamska složenost.

    Sastav i dubina razrade implementiranih funkcija.

    Cjelovitost i dosljednost funkcija.

    Količina programskih datoteka.

    Zahtjevi za OS i hardver programa.

    Kapacitet memorije diska.

    Veličina radne memorije.

    Vrsta procesora.

    verzija OS-a.

    Dostupnost računalne mreže i sl.

Pokazatelji kvalitete softverskog proizvoda (pp)

    Mobilnost – neovisnost softvera o tehničkim sredstvima obrade informacija, OS-u, mrežnoj tehnologiji. Mobilni softver je prikladan za masovnu upotrebu bez ikakvih promjena.

    Pouzdanost – neprekidan i stabilan rad, mogućnost dijagnosticiranja novonastalih grešaka.

    Učinkovitost – minimalna moguća potrošnja računalnih resursa i maksimalna moguća izvedba.

    Mogućnost izmjene - jednostavnost unošenja promjena.

    Komunikacijske vještine – svojstvo integracije s drugim programima, osiguravajući razmjenu podataka u uobičajenim formatima prezentacije.

    Uzimajući u obzir ljudski faktor – pružanje korisničkog sučelja, prisutnost kontekstualne pomoći ili sustava obuke, dobra dokumentacija.

Pod softverskim proizvodom (SP) podrazumijevamo softver kao rezultat ljudske aktivnosti, koji se nudi na tržištu masovne potrošnje kao proizvod i ima uporabnu vrijednost različitu od nule.

Vrlo je važno razlikovati proizvodni softverski proizvod od projektnog softvera. Tiskana pločica je proizvedena tako da se može koristiti na više mjesta od strane različitih korisnika. Stoga nema kupaca, a odluku o početku razvoja donosi na temelju očekivane potražnje na tržištu. Programi za obradu teksta, proračunske tablice, sustavi za upravljanje bazama podataka, elektronički rječnici, ispravljači pravopisa, rusifikatori, prevoditelji, programi za optičko prepoznavanje znakova - sve su to primjeri masovno proizvedenog softvera. Milijuni ljudi koriste ih diljem svijeta.

Projektni softver se izrađuje za jednog, rijetko za više korisnika ili se razvija kao dio tehnologije koja se može prodati drugoj organizaciji za korištenje kao sastavni dio sklopa hardvera i softvera. Na primjer, dio ParaGraph International tima koji radi na problemima prepoznavanja znakova radi u tom smjeru. S ne više od desetak potencijalnih kupaca, ova tvrtka je ipak gigant u svom području.

Dakle, ako projekt obično ima jednog ili više korisnika, tada pitanje kontinuiranog razvoja nije toliko hitno, a postoji natjecanje za pravo na razvoj. Naprotiv, serijalizirani softverski proizvod namijenjen je stotinama tisuća potencijalnih korisnika, a kada se pojavi na tržištu, konkurencija s drugim proizvodima iste klase je neizbježna. Odlukom o pokretanju razvoja tvrtka preuzima značajan financijski rizik. Pritom, proizvođač mora biti jasno svjestan da stvar neće završiti izdavanjem jedne verzije, jer životni ciklus softvera uključuje njegovo usavršavanje.

Životni ciklus softverskog proizvoda

Još jedna važna razlika između softvera i mnogih drugih proizvoda je ta što zasebna kopija softverskog proizvoda ima nisku cijenu. Ovo svojstvo, jedinstveno za proizvođača, omogućuje uvođenje novih oblika interakcije s klijentom nakon prve prodaje softvera. Mislimo na nadogradnju, odnosno pravo ažuriranja softvera na istu, ali novu, poboljšanu verziju uz malu naknadu. Koncept nadogradnje omogućuje korisniku da različite verzije softvera promatra kao jedan softver, dok za proizvođača različite verzije ponekad djeluju kao različiti projekti i, sukladno tome, potpuno različiti proizvodi.

Za proizvođača, životni ciklus softverskog proizvoda sastoji se od tri faze:

1. Razvoj.

2. Koristite.

3. Kontinuirani razvoj.

Imajte na umu da je korištenje popraćeno stalnim razvojem - razvojem novih verzija i subverzija koje uzimaju u obzir nedostatke prethodne verzije i implementiraju nove značajke.

Kao i svaki drugi proizvod, softverski proizvod prolazi kroz četiri faze prije nego što se pojavi na tržištu. Najprije se rađa ideja (koncept) za novi proizvod koji se podvrgava temeljitoj tehničkoj analizi, na temelju koje se razvijaju zahtjevi za budući proizvod. Istodobno se provodi ekonomska analiza koja uzima u obzir potencijalnu prodaju, troškove proizvodnje, razinu i rok povrata, konkurenciju na tržištu, potrebna ulaganja, kratkoročnu i dugoročnu dobit te stupanj rizika.

Postoje različiti načini da se proces razvoja softvera podijeli u faze. Neki od njih uključuju veći broj faza, drugi - manje. Čini se da je šest faza neizbježno. Razvoj softvera: Dizajn definicije zahtjeva

Pisanje naredbi - programi Izgled Testiranje Dokumentacija

Prva aktivnost, definiranje zahtjeva, posebno je izazovna za velike sustave tipa V, te ćemo je uskoro detaljnije pogledati.

Dizajn na koji se ovdje misli je dizajn konkretno programa, a ne sustava u cjelini čiji su ti programi dio. Detaljnije ćemo istražiti ovaj proces nakon što pogledamo definiranje zahtjeva.

Treća točka je pisanje naredbi, svođenje softverskog projekta ili jednostavno programa na niz strojnih instrukcija. Taj ćemo proces nazvati programiranjem.

Sastavljanje je kombiniranje, povezivanje pojedinačnih dijelova programa, koje su napisali različiti ljudi ili grupe, u jedan veliki softverski sustav.

Karakteristike softverskog proizvoda

Svi programi, prema prirodi njihove uporabe i kategorijama korisnika, mogu se podijeliti u dvije klase - pomoćne programe i programske proizvode (proizvode).

Utilitarni programi ("programi za sebe") dizajnirani su da zadovolje potrebe svojih programera. Utilitarni programi najčešće imaju ulogu servisa u tehnologiji obrade podataka ili su programi za rješavanje funkcionalnih problema koji nisu namijenjeni širokoj distribuciji.

Programski proizvodi (proizvodi) dizajnirani su za zadovoljenje potreba korisnika, široku distribuciju i prodaju.

Trenutno postoje druge mogućnosti za legalnu distribuciju softverskih proizvoda koji su se pojavili korištenjem globalnih ili regionalnih telekomunikacija:

Freeware - besplatni programi, slobodno distribuirani, koje podržava sam korisnik, koji je ovlašten napraviti potrebne izmjene na njima;

Shareware su nekomercijalni (shareware) programi koji se u pravilu mogu koristiti besplatno. Uz redovitu upotrebu takvih proizvoda potrebno je plaćanje određenog iznosa.

Programski proizvod je skup međusobno povezanih programa za rješavanje određenog problema (zadatka) masovne potražnje, pripremljenih za prodaju kao i svaka vrsta industrijskog proizvoda.

Softverski proizvodi mogu se izraditi kao:

Individualni razvoj po narudžbi;

Razvoj za masovnu distribuciju među korisnicima.

Softverski proizvodi u pravilu zahtijevaju održavanje koje provode specijalizirane tvrtke - distributeri softvera, a rjeđe - razvojne tvrtke. Održavanje programa za masovnu upotrebu uključuje puno rada - ispravljanje uočenih grešaka, stvaranje novih verzija programa itd.

Održavanje programskog proizvoda - održavanje funkcionalnosti programskog proizvoda, prijelaz na nove verzije, izmjene, ispravljanje uočenih grešaka i sl.

Softverski proizvodi, za razliku od tradicionalnih softverskih proizvoda, nemaju strogo reguliran skup svojstava kvalitete specificiranih pri izradi programa ili se ta svojstva ne mogu unaprijed točno specificirati ili procijeniti, jer iste funkcije obrade koje pruža softver mogu imati različitu dubinu razrade. Čak se i vrijeme i troškovi za razvoj softverskih proizvoda ne mogu unaprijed odrediti s visokim stupnjem točnosti. Glavne karakteristike programa su:

Algoritamska složenost (logika algoritama za obradu informacija);

Sastav i dubina razrade implementiranih funkcija obrade;

Cjelovitost i dosljednost funkcija obrade;

Količina programskih datoteka;

Zahtjevi za operativni sustav i tehnička sredstva obrade na dijelu softvera;

Kapacitet memorije diska;

Veličina RAM-a za pokretanje programa;

Vrsta procesora;

Verzija operativnog sustava;

Dostupnost računalne mreže i sl.

Softverski proizvodi imaju niz pokazatelja kvalitete koji odražavaju sljedeće aspekte:

Koliko se dobro (jednostavno, pouzdano, učinkovito) može koristiti softverski proizvod;

Koliko je jednostavno koristiti softverski proizvod?

Je li moguće koristiti programski proizvod ako se promijene uvjeti za njegovo korištenje i sl.

Stablo karakteristika kvalitete softverskog proizvoda

Mobilnost programskih proizvoda podrazumijeva njihovu neovisnost o tehničkom kompleksu sustava za obradu podataka, operativnom okruženju, tehnologiji mrežne obrade podataka i specifičnostima predmetnog područja; višeplatformski programski proizvod može se instalirati na različite modele računala i operativnim sustavima, bez ograničenja za rad u računalnoj mreži. Funkcije obrade takvog softverskog proizvoda prikladne su za masovnu upotrebu bez ikakvih promjena.

Pouzdanost programskog proizvoda određena je neprekinutim i stabilnim radom programa, točnošću izvršavanja propisanih procesnih funkcija te sposobnošću dijagnosticiranja pogrešaka koje nastaju tijekom rada programa.

Učinkovitost softverskog proizvoda procjenjuje se kako sa stajališta njegove izravne namjene – zahtjeva korisnika, tako i sa stajališta potrošnje računalnih resursa potrebnih za njegov rad.

U kontekstu postojanja tržišta softvera, važne karakteristike su:

Cijena,

Broj prodaja;

Vrijeme provedeno na tržištu (trajanje prodaje);

Ugled razvojne tvrtke i programa;

Dostupnost softverskih proizvoda za slične namjene.

Ako softverski proizvod nije stvoren po narudžbi i namjerava se ući na tržište softvera, marketing se provodi u potpunosti: proučavaju se konkurentni softverski proizvodi i analozi, sažeti su zahtjevi korisnika za softverskim proizvodom, potencijalni kapacitet prodajnog tržišta utvrđuje se, daje se prognoza cijene i obima prodaje. Osim toga, važno je procijeniti materijalne, radne i financijske resurse potrebne za razvoj softverskog proizvoda, kao i približno trajanje glavnih faza životnog ciklusa softverskog proizvoda.

Ako se programski proizvod kreira kao programski proizvod po narudžbi za određenog kupca, u ovoj je fazi također važno ispravno formulirati i dokumentirati zadatak za njegov razvoj. Pogrešno shvaćen zahtjev za softverski proizvod može dovesti do neželjenih rezultata tijekom njegovog rada.

Projektiranje strukture programskog proizvoda povezano je s algoritmizacijom procesa obrade podataka, detaljiziranjem funkcija obrade, razvojem strukture programskog proizvoda (arhitektura programskih modula), strukturom informacijske baze (baze podataka) zadatak, izbor metoda i sredstava za izradu programa - tehnologije programiranja.

1. Pojam i klase programskog proizvoda.

2. Životni ciklus softverskog proizvoda.

3. Osnovni pojmovi o zaštiti programskih proizvoda.

4. Programski sustavi za zaštitu od neovlaštenog kopiranja.

5. Pravne metode zaštite programskih proizvoda i baza podataka.

6. Značajke klasa programskih proizvoda ovisno o opsegu njihove uporabe.

7. Klasifikacija aplikacijskih programskih paketa.

Pitanje broj 1. Pojam i klase programskog proizvoda.

Aplikacijski programski paketi (APP) dio su tržišta informacijskog softvera koji se najdinamičnije razvija. Unapređenje JPP-a doprinosi uvođenju računala u sva područja djelovanja.

Svi programi prema prirodi uporabe i kategorijama korisnika mogu se podijeliti u dvije klase:

1. Utilitarni programi ("programi za sebe") dizajnirani su da zadovolje potrebe svojih programera. Najčešće služe kao servis u tehnici obrade podataka ili su programi za rješavanje funkcionalnih problema koji nisu namijenjeni širokoj distribuciji.

2. Programski proizvodi (proizvodi) dizajnirani su za zadovoljenje potreba korisnika, široku distribuciju i prodaju.

Trenutno postoje druge mogućnosti za legalnu distribuciju softverskih proizvoda koji su se pojavili korištenjem globalnih ili regionalnih telekomunikacija:

1. freeware - besplatni programi, slobodno distribuirani, podržani od strane samog korisnika, koji je ovlašten napraviti potrebne izmjene u njima.

2. shareware – nekomercijalni (shareware) programi koji se u pravilu mogu koristiti besplatno. Uz redovito korištenje takvih proizvoda, plaća se određeni iznos.

Softverski proizvod mora biti pravilno pripremljen za rad, imati potrebnu dokumentaciju, pružati servis i jamčiti pouzdan rad programa, imati zaštitni znak proizvođača i po mogućnosti državni registracijski kod. Samo pod takvim uvjetima stvoreni programski kompleks može se nazvati programskim proizvodom.

Softverski proizvod (PP) je skup međusobno povezanih programa za rješavanje određenog problema (zadatka) masovne potražnje, pripremljenih za prodaju poput svake vrste industrijskog proizvoda.

Programski proizvodi mogu se izraditi kao individualni razvoj po narudžbi ili kao razvoj za masovnu distribuciju među korisnicima.

Pitanje broj 2.Životni ciklus softverskog proizvoda.

Karakteriziraju se programi bilo koje vrste životni ciklus, sastoji se od zasebnih faza:

1) marketing tržišta softvera, specifikacija zahtjeva za softverski proizvod;

Marketing i specifikacija softverskog proizvoda namijenjeni su proučavanju zahtjeva za kreirani softverski proizvod, i to:

· Određivanje sastava i namjene softverskih funkcija obrade podataka.

· Uspostavljanje korisničkih zahtjeva za prirodu interakcije s programskim proizvodom, vrstu korisničkog sučelja (sustav izbornika, korištenje miša itd.).

· Zahtjevi za skup hardvera i softvera za rad sa softverom itd.

U ovoj fazi potrebno je izvršiti formalizirani prikaz problema.

2) projektiranje strukture programskog proizvoda;

Povezano s algoritmizacijom procesa obrade podataka, detaljima obradnih funkcija, razvojem strukture programske i informacijske baze (baze podataka) zadatka, odabirom metoda i alata za izradu programa (tehnologija programiranja).

3) programiranje (izrada programskog koda), testiranje, samostalno i složeno otklanjanje pogrešaka programa;

Oni su tehnička izvedba dizajnerskih rješenja i izvode se pomoću odabranih razvojnih alata.

4) dokumentacija programskog proizvoda, izrada operativne i tehnološke dokumentacije;

Dokumentacija softvera obvezna je vrsta posla, koju u pravilu ne obavlja sam programer, već osoba povezana s distribucijom i implementacijom softverskog proizvoda. Dokumentacija mora sadržavati potrebne podatke o instaliranju i osiguravanju pouzdanog rada programskog proizvoda, podršku korisnicima pri obavljanju funkcija obrade te odrediti postupak integracije programskog proizvoda s drugim programima. Uspjeh distribucije i rada softvera uvelike ovisi o kvaliteti njegove dokumentacije.

5) ulazak na tržište softvera, distribucija softverskog proizvoda (u vezi s organiziranjem prodaje masovnim korisnicima);

Ova faza treba biti što je moguće kraća; za promociju softvera koriste se standardne marketinške tehnike: oglašavanje, povećanje broja prodajnih kanala, politika cijena itd.

6) rukovanje programskim proizvodom od strane korisnika;

Ide paralelno s njegovim pratnja, u ovom slučaju, rad programa može započeti čak i bez podrške ili nastaviti ako je podrška završena neko vrijeme. Nakon što se softver povuče iz prodaje, određeno vrijeme može se provoditi i njegova podrška. Tijekom rada softvera otkrivene greške se uklanjaju.

7) podrška programskim proizvodima;

8) povlačenje programskog proizvoda iz prodaje, odbijanje podrške.

Javljaju se, u pravilu, u slučaju promjene tehničke politike razvojne tvrtke, neučinkovitosti softvera, prisutnosti fatalnih pogrešaka u njemu ili nedostatka potražnje.

Trajanje životnog ciklusa za različite softvere nije isto. Za većinu modernih PCB-a, životni ciklus se mjeri u godinama (2-3 godine). Iako se na računalima dosta često nalaze PCB-i koji su već dugo ukinuti.

Pitanje broj 3. Osnovni pojmovi o zaštiti programskih proizvoda (PP).

Programski proizvodi i računalne baze podataka predmet su intelektualnog rada visokokvalificiranih stručnjaka. Softver također podliježe zaštiti zbog složenosti i zahtjevnosti vraćanja funkcionalnosti te važnosti softvera za rad informacijskog sustava.

Zaštita softvera ima sljedeće ciljeve:

1. ograničavanje neovlaštenog pristupa programima ili njihovo namjerno uništavanje i krađu;

2. isključenje neovlaštenog kopiranja (replikacije) programa.

Softverski proizvod i baze podataka moraju biti zaštićeni u nekoliko područja od izlaganja:

1) osoba– krađa računalnih medija i programske dokumentacije; neispravnost softverskog proizvoda itd.;

2) oprema– povezivanje hardvera s računalom radi čitanja programa i podataka ili njihovog fizičkog uništavanja;

3) specijalizirani programi– onesposobljavanje softverskog proizvoda ili baze podataka (primjerice, infekcija virusom), neovlašteno kopiranje programa i baza podataka itd.

Najjednostavniji i najpovoljniji način zaštite softvera i baza podataka je Ograničenje pristupa. Kontrolu pristupa softverskom proizvodu i bazi podataka grade:

1. zaštita lozinkom programa kada se pokrenu;

2. korištenje diskete s ključem za pokretanje programa;

3. ograničenja programa ili podataka, funkcija obrade dostupnih korisnicima itd.

Također se može koristiti kriptografske metode zaštita podataka baze podataka ili modula glavnog softvera.

Pitanje broj 4. Programski sustavi za zaštitu od neovlaštenog kopiranja.

Kada koristite sustave za zaštitu softvera, program se izvršava samo kada se neki jedinstveni ne mogu kopirati ključ element.

Takvi ključni elementi mogu biti:

· disketa na kojoj je zapisan ključ koji se ne može kopirati;

· određene karakteristike računalnog hardvera;

· poseban uređaj (elektronički ključ) povezan s računalom i namijenjen izdavanju identifikacijskog koda.

PP softverski sustavi za zaštitu od kopiranja:

· identificirati okruženje iz kojeg će se program pokrenuti;

· uspostaviti odgovarajuće okruženje iz kojeg se pokreće program, ono za koje je dopušteno autorizirano pokretanje;

· razviti reakciju na lansiranje iz neovlaštenog okruženja;

· registrirati ovlašteno kopiranje;

· suprotstaviti se proučavanju algoritama i programa sustava.

Pitanje broj 5. Pravne metode zaštite programskih proizvoda i baza podataka.

Pravni lijekovi uključuju:

· patentna zaštita;

· zakon o poslovnoj tajni;

· licencni sporazumi i ugovori;

· imovinska prava koja svojim vlasnicima daju pravo na ekonomsku korist od prodaje i korištenja softvera i baza podataka;

· moralna prava koja osiguravaju zaštitu osobnosti autora u njegovom djelu.

U mnogim civiliziranim zemljama neovlašteno kopiranje programa u svrhu prodaje ili besplatne distribucije smatra se državnim zločinom, kažnjivim novčanom ili zatvorskom kaznom. Međutim, samo autorsko pravo ne pruža zaštitu za novu ideju, koncept, metodologiju i tehnologiju za razvoj softvera.

Pitanje broj 6. Obilježja klasa programskih proizvoda ovisno o opsegu njihove uporabe.

Ovisno o opsegu (području) korištenja softvera, to je:

· hardver autonomnih računala i računalnih mreža;

· funkcionalni zadaci različitih predmetnih područja;

· tehnologija razvoja softvera

Za podršku informacijskim tehnologijama razlikuju se tri klase softvera:

· Sistemski softver;

· Paketi aplikacija;

· Tehnološki alati za programiranje.

Sistemski softver Poslano:

1. stvoriti radno okruženje za rad drugih programa;

2. osigurati pouzdan i učinkovit rad samog računala i računalne mreže;

3. provoditi dijagnostiku i preventivno održavanje računalne opreme i računalnih mreža;

4. obavljati pomoćne tehnološke procese (kopiranje, arhiviranje i sl.).

Softver sustava – skup programa i programskih sustava koji osiguravaju rad računala i računalnih mreža.

Paketi aplikacija Služe kao programski alati za rješavanje funkcionalnih problema i najbrojnija su klasa softvera. Ova klasa uključuje softver koji obrađuje informacije iz različitih tematskih područja.

Instalaciju softvera na računalo provode kvalificirani korisnici, a njihov neposredni rad provode, u pravilu, krajnji korisnici – konzumenti informacija, u mnogim slučajevima čije su aktivnosti vrlo udaljene od područja računala. Ova klasa softvera može biti vrlo specifična za pojedinačna predmetna područja.

Paket aplikacija– skup međusobno povezanih programa za rješavanje problema određene klase određenog predmetnog područja.

osigurava proces razvoja programa i uključuje specijalizirani softver, koji su razvojni alati. PP ove klase podržavaju sve tehnološke faze procesa projektiranja, programiranja (kodiranja), otklanjanja pogrešaka i testiranja kreiranih programa.

Alati za tehnologiju programiranja– skup programa i softverskih paketa koji pružaju tehnologiju za razvoj, uklanjanje pogrešaka i implementaciju stvorenog softvera.

Pitanje broj 7. Klasifikacija aplikacijskih programskih paketa (APP).

Najzastupljenija su javno-privatna partnerstva, što je prvenstveno posljedica raširenosti računalne tehnologije u svim sferama ljudskog djelovanja, stvaranja automatiziranih informacijskih sustava u različitim tematskim područjima, a razvrstavaju se u: