Introduction to Software Development

Kako biste što jednostavnije razumeli unutrašnju strukturu kompjuterskih programa i način njihovog razvoja, neophodno je da savladate ovaj kurs. Introduction to Software Development kurs namenjen je apsolutnim početnicima i drži se isključivo praktičnih aspekata u dizajnu i arhitekturi softvera. Teoretsko, apstraktno izlaganje na ovom kursu svedeno je na minimum, tako da ćete imati priliku uz pratnju praktičnih primera da imate uvid u osnovne elemente razvoja softvera.   

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Software Testing and QA Program.

Opis i cilj kursa Introduction to Software Development

Na početku, polaznici imaju prilike da čitaju o tome šta su i kako nastaju kompjuterski programi. Upoznaju se sa različitim programskim jezicima, njihovim namenama i osnovnim osobinama. Govori se o tipovima kompjuterskih programa i razlikama koje postoje među njima. Uvodno poglavlje se završava upoznavanjem različitih alata koji učestvuju u procesu kreiranja softverskih proizvoda. Tako polaznici stiču odličnu osnovu za razumevanje unutrašnje strukture softverskih proizvoda.

Prva pomisao na razvoj softvera za većinu jeste programiranje, odnosno posao koji podrazumeva pisanje izvornog koda koji definiše ono što jedan program može da uradi. Stoga se može reći da se na osnovnom nivou svaki program sastoji iz izvornog koda. Logika koja se primenjuje prilikom pisanja izvornog koda programa univerzalna je bez obzira na jezik koji se koristi. U kursu Introduction to Software Development ilustrovane su osnovne konstrukcije programskih jezika pomoću kojih se formira logika kompjuterskih programa.

U kursu Introduction to Software Development posebna pažnja je posvećena osnovama softverskog inženjerstva, te osnovnim aktivnostima koje čine proces razvoja softvera. Polaznici se upoznaju sa osnovnim modelima softverskog razvoja, što im omogućava da na bolji način razumeju kako se sprovodi dizajniranje unutrašnje strukture softverskih proizvoda. Govori se o softverskim zahtevima, njihovom značaju, ulozi, tehnikama za prikupljanje i analizu i na kraju o načinima na koje je njih moguće sistematizovano prikazati u procesu modelovanja. Polaznici se upoznaju sa UML jezikom i različitim vrstama dijagrama pomoću kojih se obavlja modelovanje softverskih sistema. Na kraju, kurs Introduction to Software Development pokriva i teme softverskog testiranja i održavanja, kao veoma važne etape u procesu razvoja bilo kog softverskog proizvoda.

Kurs Introduction to Software Development završava se pričom o alatima za saradnju (kolaboraciju) i upravljanje projektima, kao sastavnim delovima procesa proizvodnje programa. Detaljno se objašnjava upotreba alata za verzioniranje Git i SVN. Obrađuju se najpopularnije platforme za deljenje projekata i saradnju: Github i Bitbucket, kao i platforme za upravljanje projektima i projektnim zadacima: Jira i Confluence. Na taj način polaznici stiču veoma široku sliku o tome kako izgleda proces razvoja softvera od rađanja ideje, pa do samog procesa realizacije i implementacije.

Cilj kursa Introduction to Software Development je da se polaznici načelno upoznaju sa procesom softverskog razvoja. Nakon kompletiranog kursa, polaznici će znati šta su kompjuterski programi i na koji način se oni kreiraju, šta su programski jezici i kako se formira jednostavna programska logika. Polaznici će znati koje su etape procesa razvoja jednog softverskog proizvoda, šta su softverski zahtevi, te kako se oni prikupljaju i obrađuju. Polaznici će biti u mogućnosti da razlikuju različite alate koji se koriste za razvoj, počevši od programa za dizajn, preko tekst editora i razvojnih okruženja, pa sve do alata za objavljivanje, deljenje i upravljanje projektima.

Kurs Introduction to Software Development će vam odgovoriti na pitanja:

Šta je programiranje?

Ono što kompjutere izdvaja od ostalih mašina koje je čovek tokom vremena napravio jeste mogućnost programabilnosti. To praktično znači da je kompjuter uopšteno posmatrano jedan univerzalni alat koji, u zavisnosti od instrukcija koje mu se proslede, može obavljati različite poslove. Upravo u toj činjenici krije se i najveća moć kompjutera – potpuna proizvoljnost programabilnosti.

Proces stvaranja kompjuterskih programa naziva se programiranje. Tako je programiranje čin pisanja instrukcija koje omogućavaju da računar obavi neku operaciju. Programiranje je izrazito kreativan proces koji kombinuje različite aspekte umetnosti, inženjerstva i nauke.

Kompjuterske programe kreiraju programeri, ljudi koji poseduju neophodna znanja kako bi mogli da napišu instrukcije koje upravljaju radom kompjutera. Kako bi se obratili kompjuterima, programeri koriste programske jezike. U kursu Introduction to Software Development polaznici se upoznaju sa osnovnim načelima programerske profesije.

Koji su najpoznatiji programski jezici?

Kompjuteri ne razumeju nijednu vrstu prirodnih jezika koje ljudi koriste, već isključivo jezik koji se drugačije naziva mašinski. Programski kôd takvog jezika sačinjen je iz niza nula i jedinica, a svaka od takvih cifara naziva se bit. Pisanje programa korišćenjem mašinskog jezika vrlo je zahtevno, pa se danas u praksi koristi veliki broj jezika višeg nivoa.

Programski jezici višeg nivoa u znatnoj meri koriste elemente prirodnih jezika, uglavnom reči i skraćenice preuzete iz engleskog jezika, te na taj način unapređuju čitljivost i olakšavaju kreiranje programskog koda.

Tokom vremena napravljen je veliki broj programskih jezika višeg nivoa. Ukoliko danas počinjete da učite programiranje, gotovo sigurno će to biti učenje nekog od jezika višeg nivoa. Takođe, različiti jezici višeg nivoa se umnogome međusobno razlikuju, po mogućnostima, performansama, sintaksi i nivou apstrakcije. Danas su najpopularniji programski jezici C, C++, C#, PHP, Java, Python, JavaScript, Swift…

Koji se alati koriste za razvoj softvera?

Proces kreiranja programa može biti i više nego složen. Pored različitih jezika za kreiranje programa, u tom poslu mogu učestvovati i brojni specijalizovani alati. Tako dolazimo do velikog broja različitih kompjuterskih programa koji su namenjeni razvoju, a koji se mogu podeliti u nekoliko kategorija.

Na početku razvoj softvera karakterišu različita razvojna okruženja (Integrated Development Environment, skraćeno IDE, engleski), što su posebni programi specijalno namenjeni za kreiranje drugih programa. Oni objedinjuju veliki broj manjih alata, bez kojih kreiranje, prevođenje, analiziranje i testiranje programa ne bi bilo moguće. Visual Studio, NetBeans, IntelliJ IDEA, Android Studio, PyCharm, Xcode – samo su neki od primera razvojnih okruženja.

Softverski razvoj karakterišu i brojni tekst editori, što su po pravilu programi čija je osnovna svrha da omoguće pisanje izvornog koda. Reč je o programima sa skromnijim mogućnostima od razvojnih okruženja, pa se stoga oni uglavnom koriste za kodiranje. Primeri popularnih tekst editora su Notepad++, Sublime Text, Atom, Visual Studio Code…

U procesu kreiranja kompjuterskih programa učestvuju i brojni alati za rad sa vektorskom, rasterskom grafikom i za dizajniranje korisničkih okruženja, kao što su Adobe Photoshop, Adobe Illustrator, Adobe XD, Miro, Figma, Sketch, Zeplin…

Na kraju profesionalni softverski razvoj karakteriše i korišćenje različitih sistema za saradnju (kolaboraciju) i upravljanje projektima – GitHub, Bitbucket, Jira…

Kurs Introduction to Software Development

Koji su osnovni elementi za konstruisanje programa kod modernih programskih jezika?

Osnovna logika kompjuterskih programa nije zavisna od programskog jezika, tehnologije ili skupa alata koji se koriste za razvoj. Drugim rečima, univerzalan je način na koji se formuliše programska logika. Zbog toga su osnovni postulati programiranja gotovo identični bez obzira na jezik koji se koristi.

Za početak, srž svakog programskog jezika jeste mogućnost obrade podataka. Da bi to bilo moguće, podaci se na neki način moraju predstaviti u kompjuterskim programima. Za obavljanje takvog posla svaki programski jezik poznaje pojmove promenljivih i tipova podataka.

Promenljive su simboli kojima se označavaju memorijske lokacije. Zahvaljujući njima nije neophodno pamtiti memorijske adrese na kojima se nalaze podaci. Nakon što se neka vrednost uskladišti u memoriji, ona biva reprezentovana kroz promenljivu.

Klasifikacija vrednosti koje je moguće smestiti u promenljive obavlja se zahvaljujući tipovima podataka. Tipovi podataka omogućavaju da se u programima predstave različite vrste vrednosti – karakteri, tekst, razne vrste brojeva, logičke vrednosti…

Obrada podataka u kompjuterskim programima moguća je zahvaljujući operatorima. To su posebni leksički elementi jezika, koji omogućavaju izvršavanje operacija nad vrednostima.

Na kraju svaki programski jezik poznaje i različite pristupe za postizanje kontrole toka. Kontrola toka omogućava uticanje na linearnost izvršavanja koda, a postiže se grananjem ili ponavljanjem.

Šta je softversko inženjerstvo?

Kada se spomene pojam razvoja softvera, prva pomisao za većinu jeste programiranje. Upravo zbog toga prethodnih nekoliko lekcija bilo je posvećeno upoznavanju osnovnih programerskih postulata. I zaista, ukoliko nameravate da naučite samostalno da kreirate kompjuterske programe, programiranje jeste primarna disciplina koju je potrebno naučiti. Ipak, posao programera i inženjera koji se bavi razvojem softvera jesu srodne, ali ne i identične profesije.

Profesionalni razvoj softvera podrazumeva mnogo više od pisanja koda. Za početak u profesionalnom razvoju gotovo uvek učestvuju razvojni timovi. Razvoj softvera u timu potpuno je drugačiji od samostalnog kreiranja kompjuterskih programa. Profesionalni razvoj softvera čine i brojne druge operacije koje obavljaju zaposleni različitih profesija. Pisanje dokumentacije, projektovanje, analiza, testiranje, održavanje, podrška, samo su neke od operacija koje učestvuju u razvoju softvera. Profesionalnim razvojem softvera bavi se disciplina koja se drugačije naziva softversko inženjerstvo.

Softversko inženjerstvo je inženjerska disciplina koja se bavi svim aspektima razvoja softverskih proizvoda od najranijih faza kreiranja softverske specifikacije, pa sve do isporuke i održavanja. Softversko inženjerstvo se brine da softverski proizvod svojom stabilnošću, brzinom, upotrebljivošću, mogućnostima za nadogradnju i testiranje, cenom, bezbednošću i raznim drugim faktorima zadovolji očekivanja.

U kursu Introduction to Software Development polaznici imaju prilike da čitaju o osnovnim postulatima softverskog inženjerstva.

Šta su Git i GitHub?

Profesionalni razvoj softvera gotovo uvek podrazumeva postojanje razvojnih timova, odnosno učestvovanje većeg broja programera, što je posebno istinito ukoliko je reč o kompleksnijim projektima. Stoga je međusobna saradnja, odnosno kolaboracija, veoma važan aspekt razvoja. Zbog toga su tokom vremena razvijeni brojni alati koji omogućavaju saradnju i olakšavaju deljenje koda. Za početak, velike su šanse da ste čuli za online platformu GitHub ili se do sada susreli s njom. Reč je o svakako najpopularnijoj platformi za deljenje kompjuterskog koda. GitHub je zapravo sistem za online kreiranje repozitorijuma koji se u pozadini zasniva na programu koji se naziva Git.

Git je sistem za verzioniranje koji je kreirao tvorac Linux kernela – Linus Torvalds. Verzioniranje (verzionisanje) koda je pristup koji omogućava praćenje promena izvornog koda. Jednostavnije rečeno, verzioniranje omogućava da se svaka izmena na kodu zabeleži i da se omogući povratak na takvu verziju u bilo kom trenutku. Kurs Introduction to Software Development osposobljava polaznike za korišćenje ovih veoma bitnih sistema.

Šta je Jira?

Obavezni sastojak profesionalnog softverskog razvoja danas su i različiti sistemi za upravljanje projektima. Svaki projekat je zapravo grupa zadataka koja se mora realizovati kako bi se dobio očekivani rezultat. Takođe, svaki projekat, bez obzira na oblast poslovanja, zahteva da se njime na odgovarajući način upravlja.

Upravljanje softverskim projektom (software project management, engleski) je disciplina koja podrazumeva planiranje i nadzor nad procesom razvoja softverskog proizvoda. Reč je o disciplini koja rukuje vremenskim, kadrovskim i novčanim resursima neophodnim za razvijanje softverskog proizvoda koji će moći da zadovolji korisničke zahteve.

Moderno upravljanje projektima razvoja softverskih proizvoda gotovo uvek podrazumeva korišćenje nekog specijalizovanog programa koji olakšava takav posao. Alati za upravljanje projektima su posebni kompjuterski programi koji su dizajnirani kako bi pomogli razvojnim timovima u planiranju i praćenju projekata, upravljanju projektima i saradnji na njima. Danas postoji veliki broj takvih alata, a svakako najpoznatiji nosi naziv Jira Software. 

Kurs Introduction to Software Development donosi priču o osnovnim postulatima platforme Jira, pa se tako polaznici upoznaju sa ovim veoma važnim alatom koji će gotovo sigurno koristiti tokom profesionalnog angažmana u svetu razvoja softvera.

Plan i program predavanja

Modul 1: Svet razvoja softvera

  • Uvod u programiranje
  • Kompjuterski programi
  • Alati za razvoj softvera

Modul 2: Osnove programiranja

  • Promenljive i tipovi podataka
  • Operatori
  • Kontrola toka

Modul 3: Softversko inženjerstvo

  • Pojam softverskog inženjerstva
  • Softverski zahtevi
  • Testiranje i održavanje

Modul 4: Alati za verzionisanje, kolaboraciju i upravljanje projektima

  • Kolaboracija i verzioniranje
  • Upravljanje projektima

Introduction to Software Development

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok 2024/25. je u toku.

Da saznate sve o upisu, kliknite ovde.

Prijavite se