Uvod

Razvoj softvera je složen proces koji uključuje različite odluke, od odabira tehnologija i alata do procene troškova. Izbor softverskih komponenti i proračun troškova su ključni koraci u razvoju svakog softverskog projekta. Ovi procesi zahtevaju jasno razumevanje potreba korisnika, dostupnih tehnologija, kao i procenu troškova koji nastaju tokom razvoja i kasnijeg korišćenja softvera.


Šta su softverske komponente?

Softverske komponente su osnovni delovi aplikacije koji omogućavaju njen rad. One mogu biti:

  1. Razvojne komponente: Programski jezici, biblioteke, framework-ovi i alati za razvoj aplikacije.
  2. Komponente infrastrukture: Serveri, baze podataka i mrežni sistemi.
  3. Gotova softverska rešenja: API-jevi, eksterni servisi ili platforme koje se koriste za ubrzanje razvoja.


Faktori koji utiču na izbor softverskih komponenti

Pravilno odabrane komponente omogućavaju efikasniju izradu softvera, lakše održavanje i bolju prilagodljivost budućim potrebama.

Prilikom izbora komponenti potrebno je razmotriti sledeće faktore:

  1. Funkcionalnost: Svaka komponenta mora zadovoljiti konkretne zahteve projekta. Na primer, baza podataka treba da omogući skladištenje i pretragu podataka.

  2. Kompatibilnost: Komponente moraju biti kompatibilne sa platformom na kojoj će softver raditi.

  3. Performanse: Važno je odabrati komponente koje neće usporiti sistem.

  4. Troškovi: Cena licenciranja ili razvoja komponenti može imati značajan uticaj na ukupni budžet. Razlikuju se u zavisnosti od toga da li je komponenta open-source (besplatna) ili komercijalna (plaća se licenca).

  5. Podrška i dokumentacija: Komponente sa dobrom dokumentacijom i aktivnom zajednicom korisnika omogućavaju brže rešavanje problema.
  6. Skalabilnost: Odabrane tehnologije treba da podrže rast sistema, kao što je povećanje broja korisnika ili funkcionalnosti.
  7. Bezbednost: Komponente moraju biti zaštićene od mogućih sajber napada, posebno ako se treba raditi sa osetljivim podacima.


Proračun troškova

Proračun troškova može se podeliti na dve osnovne kategorije:

  1. Troškovi razvoja:  plate programera, troškovi za alate za razvoj (IDE, licence, dodatni softver).

  2. Troškovi korišćenja i održavanja: hosting i serveri, tehnička podrška, ažuriranje softvera.

Drugim rečima ( i malo detaljnije) cena izrade i korišćenja softvera zavisi od sledećih faktora:

  1. Troškovi razvoja:

    • Ljudski resursi: Plate programera, dizajnera i testera.
    • Alati za razvoj: Npr. plaćene IDE platforme ili licencirani softveri.
  2. Troškovi infrastrukture:

    • Hosting usluge, serveri, baze podataka.
    • Cloud servisi poput AWS-a ili Azure-a.
  3. Troškovi održavanja:

    • Redovno ažuriranje softvera, ispravke grešaka i tehnička podrška.
  4. Troškovi licenci:

    • Plaćanje licenci za komponente koje nisu besplatne, npr. API-jevi za plaćanje ili kartografske servise.
  5. Neočekivani troškovi:

    • Mogućnost kašnjenja u razvoju, greške u kodiranju ili dodatne izmene

Praktičan primer: Sistem za onlajn naručivanje hrane

Zamislimo da pravimo sistem za onlajn naručivanje hrane. Evo kako bismo definisali softverske komponente i proračunali troškove:

  1. Izbor softverskih komponenti:

    • Frontend: React.js (besplatan, open-source).
    • Backend: Node.js sa Express.js (besplatni).
    • Baza podataka: MongoDB (besplatna osnovna verzija).
    • API za plaćanje: Stripe API (besplatan za integraciju, ali uz proviziju po transakciji).
    • Hosting: AWS ili Heroku (mesečni trošak zavisi od obima podataka i broja korisnika).
  2. Procena troškova:

    • Razvoj: Tim od tri programera sa prosečnom platom od 1.200 € mesečno tokom 6 meseci → 21.600 €.
    • Hosting: AWS trošak za srednje obiman sistem → 200 € mesečno → 2.400 € godišnje.
    • Licencirani servisi: Stripe API (2% od svake transakcije).
    • Dodatni troškovi: Rezerva za nepredviđene situacije → 10% budžeta (2.400 €).

Ukupni troškovi u prvoj godini: 26.400 € (približno).

Izbor softverskih komponenti i proračun cene koštanja: Sistem za onlajn naručivanje hrane

Razvoj sistema za onlajn naručivanje hrane zahteva pažljivo planiranje kako bi se odabrale odgovarajuće softverske komponente i precizno procenili troškovi. Ovaj proces obuhvata tehničke i ekonomske aspekte, koji omogućavaju realizaciju projekta na efikasan i isplativ način.

Ovde ćemo razmotriti izbor softverskih komponenti i proračun cene koštanja kroz primer sistema koji povezuje korisnike, restorane i administratore.


Izbor softverskih komponenti

Za razvoj ovog sistema, potrebne su komponente za različite delove aplikacije, uključujući korisnički interfejs (frontend), serversku logiku (backend), bazu podataka i infrastrukturne servise.

  1. Frontend (korisnički interfejs):

    • Tehnologija: React.js (besplatan, open-source).
    • Razlog izbora: Omogućava brzo razvijanje dinamičkih interfejsa i pruža dobru podršku za mobilne uređaje.
  2. Backend (serverska logika):

    • Tehnologija: Node.js sa Express.js (besplatni).
    • Razlog izbora: Node.js je brz i efikasan, pogodan za aplikacije sa velikim brojem korisnika i real-time funkcionalnostima.
  3. Baza podataka:

    • Tehnologija: MongoDB (besplatna osnovna verzija).
    • Razlog izbora: Skalabilnost i podrška za nestruktuirane podatke, što je korisno za skladištenje narudžbi i korisničkih podataka.
  4. API za plaćanje:

    • Tehnologija: Stripe API.
    • Razlog izbora: Laka integracija i podrška za različite načine plaćanja. Naplaćuje se provizija od transakcija (2% + fiksna naknada).
  5. Hosting:

    • Tehnologija: AWS (Amazon Web Services) ili Heroku.
    • Razlog izbora: Pruža skalabilne opcije hostinga, idealne za početne faze razvoja.
  6. Dodatne komponente:

    • Firebase: Za autentifikaciju korisnika (besplatan osnovni plan).
    • Twilio: Za slanje SMS obaveštenja o statusu narudžbi (naplaćuje se po poruci).

Struktura sistema
  1. Korisnici sistema:

    • Kupci: Narudžbe hrane.
    • Restorani: Upravljanje menijem i primanje narudžbi.
    • Administratori: Održavanje i upravljanje sistemom.
  2. Funkcionalnosti:

    • Pretraga restorana i menija.
    • Dodavanje hrane u korpu i plaćanje.
    • Slanje obaveštenja o statusu narudžbe.
    • Administracija korisnika i podataka.

Proračun cene koštanja

Cena koštanja projekta obuhvata troškove razvoja, infrastrukture, licenci i održavanja.

  1. Troškovi razvoja:

    • Tim: Tim čine dva programera i jedan dizajner.
      • Plata programera: 1.200 € mesečno x 2 programera x 6 meseci = 14.400 €.
      • Plata dizajnera: 1.000 € mesečno x 6 meseci = 6.000 €.
    • Ukupno: 20.400 €.
  2. Troškovi infrastrukture:

    • Hosting (AWS): 200 € mesečno x 12 meseci = 2.400 €.
    • Domen i SSL sertifikat: 100 € godišnje.
    • Ukupno: 2.500 €.
  3. Troškovi licenci i servisa:

    • Stripe API: 2% po transakciji (pretpostavka: 10.000 € mesečnih transakcija = 200 € mesečno).
    • Twilio: 0,01 € po poruci (pretpostavka: 5.000 poruka mesečno = 50 € mesečno).
    • Ukupno za godinu dana: 3.000 €.
  4. Održavanje:

    • Ažuriranje i podrška: 10% budžeta za razvoj = 2.040 €.
  5. Neočekivani troškovi:

    • Rezerva: 10% ukupnog budžeta = 2.800 €.

Ukupni troškovi za prvu godinu:
20.400 € (razvoj) + 2.500 € (infrastruktura) + 3.000 € (licence i servisi) + 2.040 € (održavanje) + 2.800 € (rezerva) = 30.740 €.


Zaključak

Prilikom izbora softverskih komponenti i proračuna troškova, ključno je uzeti u obzir funkcionalnosti koje softver zahteva, raspoloživi budžet i planove za skaliranje. Korišćenjem open-source tehnologija i pažljivim planiranjem, troškovi se mogu značajno smanjiti bez ugrožavanja kvaliteta. Ovaj primer pruža realan prikaz procesa, koji učenicima može poslužiti kao osnova za izradu sopstvenih projekata.


Zadatak: Razrada plana za sistem "Online prodavnica"

Opis zadatka:

Učenici treba da osmisle tehnički plan za razvoj sistema "Online prodavnica", koji omogućava korisnicima pregled i kupovinu proizvoda, a administratorima upravljanje prodajom i inventarom.

Zahtevi:
  1. Specifikacija zahteva:  Osmislite funkcionalnosti koje će sistem podržavati i podelite ih prema korisnicima (kupci, administratori).

  2. Izbor tehnologija:  Predložite odgovarajuće tehnologije za frontend, backend i bazu podataka.

  3. Proračun cene:  Procenite osnovne troškove razvoja i održavanja sistema na godišnjem nivou.

  4. Arhitektura sistema:  Prikažite osnovni dijagram arhitekture sistema i objasnite uloge njegovih glavnih komponenti.

  1. Specifikacija zahteva:

    • Kupci:
      • Registracija i prijava.
      • Pregled proizvoda po kategorijama.
      • Dodavanje proizvoda u korpu i plaćanje.
      • Praćenje statusa porudžbine.
    • Administratori:
      • Upravljanje proizvodima (dodavanje, izmena, brisanje).
      • Pregled i upravljanje porudžbinama.
      • Generisanje izveštaja o prodaji.
  2. Izbor tehnologija:

    • Frontend: React.js ili Angular za korisnički interfejs.
    • Backend: Node.js sa Express ili PHP sa Laravel frameworkom.
    • Baza podataka: MySQL ili MongoDB.
    • API za plaćanje: Stripe ili PayPal za obradu transakcija.
    • Hosting: AWS ili Heroku za hosting aplikacije.
  3. Proračun cene:
    Proračunajte osnovne troškove za:

    • Razvoj (plata programera i dizajnera).
    • Hosting i domen.
    • Licence za servise (Stripe, Twilio, itd.).
    • Rezervu za neočekivane troškove.
  4. Arhitektura sistema:
    Prikažite osnovni dijagram:

    • Klijent: Korisnici pristupaju aplikaciji putem web pretraživača.
    • Server: Backend logika obrađuje podatke i komunicira sa bazom.
    • Baza podataka: Centralizovano skladištenje informacija o korisnicima, proizvodima i porudžbinama.
  1. Specifikacija zahteva:

    • Kupci:
      • Pregled proizvoda sa detaljima i ocenama.
      • Dodavanje proizvoda u korpu, unos adrese i plaćanje.
      • Praćenje isporuke u realnom vremenu.
    • Administratori:
      • Upravljanje kategorijama proizvoda.
      • Upravljanje porudžbinama (prihvatanje, otkazivanje, ažuriranje statusa).
      • Pregled mesečnih izveštaja o prodaji.
  2. Izbor tehnologija:

    • Frontend: React.js za interfejs.
    • Backend: PHP sa Laravel frameworkom za backend logiku.
    • Baza podataka: MySQL za skladištenje podataka o proizvodima, korisnicima i porudžbinama.
    • Plaćanje: Stripe API za sigurne transakcije.
    • Hosting: AWS sa podrškom za skalabilnost.
  3. Proračun cene:

    • Plata programera (2 programera x 1.200 € mesečno x 6 meseci): 14.400 €.
    • Plata dizajnera (1.000 € mesečno x 6 meseci): 6.000 €.
    • Hosting i domen: 300 € godišnje.
    • Stripe provizija: 2% po transakciji (procenjeni promet 50.000 € godišnje = 1.000 €).
    • Neočekivani troškovi: 10% ukupnog budžeta = 2.170 €.
    • Ukupno: 23.870 €.
  4. Arhitektura sistema:

    • Klijent (Frontend): Korisnički interfejs za kupce i administratore.
    • Server (Backend): Obrada porudžbina, autentifikacija korisnika i upravljanje proizvodima.
    • Baza podataka: Centralizovano skladište informacija.

Dijagram:

  • Klijent → Server → Baza podataka

Zadaci za učenike

Zadatak 1: Osmislite softverske komponente i uradite proračun cene za Digitalni raspored časova.

Instrukcije:

  • Identifikujte koje tehnologije su potrebne za frontend, backend i bazu podataka.
  • Procenite troškove ako koristite besplatne i licencirane opcije.
  • Nacrtajte dijagram arhitekture.

Zadatak 2: Proračunajte cenu razvoja sistema za Digitalnu biblioteku.

Instrukcije:

  • Pretpostavite da će projekat trajati 4 meseca, a tim ima dva programera.
  • Izaberite komponente i dodajte troškove infrastrukture (npr. hosting i baza podataka).
  • Definišite rezervu za neočekivane troškove.

Last modified: Thursday, 11 December 2025, 1:35 PM