4-6. Izbor softverskih komponenti i proračun cene koštanja izrade i korišćenja softvera
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:
- Razvojne komponente: Programski jezici, biblioteke, framework-ovi i alati za razvoj aplikacije.
- Komponente infrastrukture: Serveri, baze podataka i mrežni sistemi.
- 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:
-
Funkcionalnost: Svaka komponenta mora zadovoljiti konkretne zahteve projekta. Na primer, baza podataka treba da omogući skladištenje i pretragu podataka.
-
Kompatibilnost: Komponente moraju biti kompatibilne sa platformom na kojoj će softver raditi.
-
Performanse: Važno je odabrati komponente koje neće usporiti sistem.
-
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).
- Podrška i dokumentacija: Komponente sa dobrom dokumentacijom i aktivnom zajednicom korisnika omogućavaju brže rešavanje problema.
- Skalabilnost: Odabrane tehnologije treba da podrže rast sistema, kao što je povećanje broja korisnika ili funkcionalnosti.
- 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:
-
Troškovi razvoja: plate programera, troškovi za alate za razvoj (IDE, licence, dodatni softver).
-
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:
-
Troškovi razvoja:
- Ljudski resursi: Plate programera, dizajnera i testera.
- Alati za razvoj: Npr. plaćene IDE platforme ili licencirani softveri.
-
Troškovi infrastrukture:
- Hosting usluge, serveri, baze podataka.
- Cloud servisi poput AWS-a ili Azure-a.
-
Troškovi održavanja:
- Redovno ažuriranje softvera, ispravke grešaka i tehnička podrška.
-
Troškovi licenci:
- Plaćanje licenci za komponente koje nisu besplatne, npr. API-jevi za plaćanje ili kartografske servise.
-
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:
-
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).
-
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.
-
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.
-
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.
-
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.
-
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).
-
Hosting:
- Tehnologija: AWS (Amazon Web Services) ili Heroku.
- Razlog izbora: Pruža skalabilne opcije hostinga, idealne za početne faze razvoja.
-
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
-
Korisnici sistema:
- Kupci: Narudžbe hrane.
- Restorani: Upravljanje menijem i primanje narudžbi.
- Administratori: Održavanje i upravljanje sistemom.
-
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.
-
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 €.
- Tim: Tim čine dva programera i jedan dizajner.
-
Troškovi infrastrukture:
- Hosting (AWS): 200 € mesečno x 12 meseci = 2.400 €.
- Domen i SSL sertifikat: 100 € godišnje.
- Ukupno: 2.500 €.
-
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 €.
-
Održavanje:
- Ažuriranje i podrška: 10% budžeta za razvoj = 2.040 €.
-
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:
-
Specifikacija zahteva: Osmislite funkcionalnosti koje će sistem podržavati i podelite ih prema korisnicima (kupci, administratori).
-
Izbor tehnologija: Predložite odgovarajuće tehnologije za frontend, backend i bazu podataka.
-
Proračun cene: Procenite osnovne troškove razvoja i održavanja sistema na godišnjem nivou.
-
Arhitektura sistema: Prikažite osnovni dijagram arhitekture sistema i objasnite uloge njegovih glavnih komponenti.
-
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.
- Kupci:
-
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.
-
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.
-
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.
-
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.
- Kupci:
-
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.
-
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 €.
-
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.