FOI nastava
FOI logo

Lista kolegija iz:

ak.god:
2013/2014
semestar:
1. semestar

2013/2014

6ECTSa

Diplomski

Diplomski studij informatike v1.2

Program Obavezan
Baze podataka i baze znanja BPBZ Ne
Informatika u obrazovanju IO Ne
Informacijsko i programsko inženjerstvo IPI Da
Organizacija poslovnih sustava OPS Ne
1. semestar
1. nastavna godina

Analiza i razvoj programa npp:93066

Engleski naziv

Software Analysis and Design

Katedra

Katedra za razvoj informacijskih sustava

Kategorija ("boja")

RI

Cilj kolegija

Cilj kolegija Analiza i razvoj programa je upoznavanje studenata s životnim ciklusom i razvojnim fazama suvremenog programskog proizvoda. Razvoj programa postao je važna grana industrije koja ima svoje zakonitosti i specifične standarde. Kolegij prolazi sve faze životnog ciklusa koje pri nastanku prolazi novi programski produkt: analizu domene sustava, specifikaciju programskih zahtjeva, metode i tehnike modeliranja programa, razvoj programa, ispitivanje programa i uklanjanje grešaka. Pri tome studenti uče temeljne pristupe korištene pri razvoju i inženjerstvu složenih programskih sustava te suvremene alate koji te postupke olakšavaju.

Nastava

Predavanje
30sati
Vježbe (jezici, tzk)
30sati

Ishodi učenja predmeta

  • Znati koristiti Microsoft Compact Framework i C#.Net za razvoj aplikacija za PDA uređaje
  • Znati koristiti nove tehnologije za razvoj mobilnih programskih proizvoda
  • Znati kreirati i koristiti mobilne baze podataka
  • Znati kreirati i koristiti servisno orijentirane arhitekture informacijskog sustava
  • Znati postaviti plan ispitivanja programskog proizvoda
  • Znati primijeniti metodološki pristup u razvoju programskih proizvoda
  • Znati primjeniti odgovarajuće metode i tehnike razvoja programskog proizvoda u svakoj fazi životnog ciklusa

Ishodi učenja programa

  • Analizirati i ocijeniti učinkovitost uvođenja i korištenja ICT (programskog rješenja i pripadajuće opreme) za konkretne problemske domene informacijskih i poslovnih sustavaAnalizirati i ocijeniti učinkovitost uvođenja i korištenja ICT (programskog rješenja i pripadajuće opreme) za konkretne problemske domene informacijskih i poslovnih sustava
  • Analizirati i procijeniti uvjete za primjenu suvremenih informacijskih i komunikacijskih tehnologija (ICT), savjetovati druge u primjeni iste te u zadanom kontekstu odrediti utjecaj primjene na pojedinca, organizaciju i društvo.Analizirati i procijeniti uvjete za primjenu suvremenih informacijskih i komunikacijskih tehnologija (ICT), savjetovati druge u primjeni iste te u zadanom kontekstu odrediti utjecaj primjene na pojedinca, organizaciju i društvo.
  • Analizirati poslovne procese i preporučiti primjenu odgovarajuće informacijske i komunikacijske tehnologije za unapređenje poslovnih procesaAnalizirati poslovne procese i preporučiti primjenu odgovarajuće informacijske i komunikacijske tehnologije za unapređenje poslovnih procesa
  • Analizirati uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz metodološke pristupe razvoju organizacijskih i informacijskih sustavaAnalizirati uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz metodološke pristupe razvoju organizacijskih i informacijskih sustava
  • Modeliranje problema iz područja informacijskih i poslovnih sustava korištenjem matematičkih metoda, metoda razvoja informacijskih sustava i koncepata planiranja, upravljanja i poslovanja Modeliranje problema iz područja informacijskih i poslovnih sustava korištenjem matematičkih metoda, metoda razvoja informacijskih sustava i koncepata planiranja, upravljanja i poslovanja
  • Oblikovati softversku arhitekturu složenog informacijskog sustava, odabrati i postaviti odgovarajuću tehnološku platformu i programirati najsloženije dijelove složenog sustavaOblikovati softversku arhitekturu složenog informacijskog sustava, odabrati i postaviti odgovarajuću tehnološku platformu i programirati najsloženije dijelove složenog sustava
  • Odabrati i primijeniti metode i tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinamaOdabrati i primijeniti metode i tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama
  • Osmisliti projekt učinkovitog unapređenja poslovne tehnologije poslovnog sustava uz korištenje suvremenih ICT te realizirati takav projekt vlastitim razvojem ili izborom prikladnog standardnog softveraOsmisliti projekt učinkovitog unapređenja poslovne tehnologije poslovnog sustava uz korištenje suvremenih ICT te realizirati takav projekt vlastitim razvojem ili izborom prikladnog standardnog softvera
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz ključne aspekte primjene i razvoja informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanja)Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz ključne aspekte primjene i razvoja informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanja)
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz suvremene tehničke koncepte i prakse u informacijskim tehnologijama (arhitektura računala, operacijski sustavi, mreže računala)Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz suvremene tehničke koncepte i prakse u informacijskim tehnologijama (arhitektura računala, operacijski sustavi, mreže računala)

Sadržaj predavanja

  • Paradigme razvoja programskih sustava
    Životni ciklus programskog proizvoda. Odnos razvojnog i životnog ciklusa. Pristupi razvoju programskog sustava i moguće varijacije: vodopadni, spiralni. Kompleksni razvojni ciklusi (paralelni razvoj, povratna veza).
  • Projekt razvoja programskog sustava
    Specifičnosti projekata u programskoj industriji. Veza projekta i razvojnog ciklusa programskog proizvoda. Karakteristične metode planiranja i praćenja projekata u razvoju programskog proizvoda. Troškovi projekta. Projektni timovi i njihove karakteristike: područja specijalizacije, potrebna znanja, preklapanje područja znanja. Virtualni projektni timovi i alati koji podržavaju grupni rad (teamware, groupware).
  • Analiza zahtjeva na programski sustav – korisnički zahtjevi
    Definicija korisničkih zahtjeva. Poslovni procesi i utjecaj na korisničke zahtjeve. Izvori korisničkih zahtjeva. Organiziranje korisničkih zahtjeva. Tehnike prikupljanja korisničkih zahtjeva: intervjui, upitnici, poslovni dokumenti,...
  • Analiza zahtjeva na programski sustav – sistemski zahtjevi
    Definicija sistemskih zahtjeva. Vrste sistemskih zahtjeva. Mapiranje korisničkih i sistemskih zahtjeva. Funkcionalni i nefunkcionalni zahtjevi. Prijelazno i dinamičko modeliranje. Organiziranje funkcionalnih zahtjeva.
  • Modeliranje programskog sustava
    Arhitektura programskog sustava i temeljni gradivni elementi. Dijagramske tehnike i notacije za modeliranje programskog sustava. Objektno orijentirana notacija. Temelji koncepti OO pristupa. Nasljeđivanje, enkapsulacija, polimorfizam. Objektno orijentiran pristup u programskim jezicima i alatima.
  • UML paradigma
    RUP metoda. UML dijagrami.
  • Koncepti razvojnog dizajna programskog proizvoda
    Definicija razvojnog dizajna programskog proizvoda. Osnovna pitanja razvoja arhitekture (npr. postojani podaci, upravljanje memorijom, iznimke, itd.). Kontekst dizajna unutar višestrukih životnih ciklusa razvoja programskog sustava. Principi dizajna (skrivanje informacija, kohezija i uparivanje). Interakcije između dizajna i funkcionalnih i nefunkcionalnih zahtjeva. Dizajn usmjeren na kvalitetu atributa (npr. pouzdanost, iskoristivost, izvedba, mogućnost testiranja, tolerancija grešaka, itd.). Arhitekturalni stilovi, predlošci, ponovna iskoristivost. Interoperabilnost.
  • Alati za potporu razvoju i modeliranju programskog proizvoda
    Vrste alata za razvoj i modeliranje programskog proizvoda (npr. arhitekturalni, za statičku analizu, za dinamičku procjenu, itd.). Tipične arhitekture alata. Mogućnosti i ograničenja alata, provjera konzistentnosti modela (afinitetna analiza, nasljeđivanje, itd.). Veza modela i generatora aplikacije.
  • Arhitektura programskog sustava
    Slojevi arhitekture programskog sustava i tipične arhitekture. Karakteristične tehnologije po svakom od slojeva. Povezivanje slojeva i integracija programskog sustava. Utjecaj arhitekture na svojstva programskog sustava (otpornost na ispade, kvarove, brzinu).
  • Komponente i integracija
    Komponentna paradigma. Promišljanje ponovne iskoristivosti programskog koda. Vrste programskih komponenata. Tehnologije za razvoj programskih komponenata (CORBA, EJB, COM+). Upravljanje transakcijama komponenata. Integracija komponenti. Tržište programskih komponenti.
  • Humano korisničko sučelje
    Opći principi dizajna humanog računalnog sučelja. Korištenje modova, navigacija. Tehnike kodiranja i vizualni dizajn (npr. boje, ikone, vrste slova, itd.). Vrijeme odziva i povratna informacija. Načini dizajna (npr. orijentiran na meni, forme, pitanja-odgovori, itd.); Lokalizacija i internacionalizacija. Metode dizajna humanog računalnog sučelja. Multimedija (npr. I/O tehnike, glas, prirodni jezik, web-stranica, zvuk, itd.). Metafore i konceptualni modeli. Psihologija humanog računalnog sučelja.
  • Prototipiranje
    Razlog i svrha prototipa. Vrste prototipa: horizontalni i vertikalni. Osmišljavanje prototipa. Dokumentiranje prototipa. Ispitni scenariji. Odnos prototipa i stvarnog sustava. Programski alati za razvoj prototipa.
  • Metrike u razvoju programskih proizvoda
    Smisao metrika programskog proizvoda i njihova primjenjivost. Vrste metrika: linije programskog koda, funkcijske točke. Metrike i životni ciklus. Metode procjene složenosti programskog sustava na početku životnog ciklusa.
  • Nadzor i ispitivanje programskog sustava
    Značaj i pristupi ispitivanju programskog sustava. Ispitivanje komponenti i cjelovitog sustava. Odnos prema korisnički zahtjevima. Scenariji ispitivanja. Analiza opsega ispitivanja (npr. ogranak, temeljna putanja, višestruki uvjeti, tok podataka, iznimke itd.). Obrada iznimaka (pisanje ispitnih primjera za pokretanje obrade iznimaka). Tehnika ispitivanja funkcionalnosti. Integracijsko ispitivanje. Razvijanje ispitnih primjera temeljenih na slučajevima upotrebe i/ili izjavama korisnika. Ispitivanje temeljeno na operacijskim profilima.
  • Specifične programske arhitekture
    Transakcijske i analitičke programske arhitekture. Kritični zahtjevi. Suprotni ciljevi dizajna i razvoja programskog sustava u zavisnosti od vrste arhitekture. Skladišta podataka, OLAP sustavi, arhitekture za rudarenje podataka, ERP sustavi, distibuirani sustavi.

Sadržaj seminara/vježbi

  • Vježbe
    U okviru vježbi studenti će raditi na agilnom razvoju programskog proizvoda i usvajanju teorijskih koncepata s predavanja. Radom u timu, i pod pretpostavkom da imaju određeno predznanje o svim fazama razvoja programskog proizvoda, studenti će razvijati sustav u kojem će se poseban naglasak staviti na mobilnu aplikaciju, višeslojnu i servisno orijentiranu arhitekturu, primjenu predložaka za razvoj programskog koda kako bi se osigurala modularnost i fleksibilnost proizvoda, te sinkronizaciju UML dijagrama i programskog koda. Spomenuti projekti neće biti tehnološki ograničeni, te će studenti moći razvijati programske proizvode za bilo koju mobilnu platformu.
  • Vježbe 01
    Cilj ovih vježbi je upoznati studente s osnovama programskog alata C#.Net i razvojnim okruženjem Microsoft Visual Studio 2008/2010. Studenti će se kroz jednostavnu aplikaciju podsjetiti objektnog pristupa u razvoju programskih proizvoda, te će savladati osnove komunikacije među klasama u smislu prosljeđivanja vrijednosti.
  • Vježbe 02
    Cilj ovih vježbi je upoznati studente s naprednijim konceptima programskog jezika C# kao što su komunikaciju između dviju klasa pomoću konstruktora, iteracije, selekcije, prosljeđivanje parametara i primanje vrijednosti, dinamičko alociranje memorije, te korištenje jednodimenzionalnih polja i slično. Važan cilj ovih vježbi je i upoznati studente s mogućnostima i načinom korištenja alata „Visual Studio 2008 Class Designer“, koji omogućuje sinkronizaciju dijagrama klasa i programskog koda.
  • Vježbe 03
    Cilj ovih vježbi je upoznati studente sa razvojem korisničkog sučelja u mobilnim aplikacijama. Studenti će osim korisničkog, kreirati i logičko sučelje te kreirati klase i dinamičkih alocirati objekte klase koji ga implementiraju. U drugom dijelu vježbi bit će kreirana infrastruktura slanja obavijesti korisniku.
  • Vježbe 04
    Studenti će na kraju ovih vježbi znati kreirati i koristiti korisničke kontrole (engl. User Controls), kreirati sučelje prema klasama koje podrazumijeva uporabu korisničkih kontrola te kreirati plug-in infrastrukturu koja podržava korištenje različitih korisničkih kontrola sukladno odabranoj implementaciji sučelja.
  • Vježbe 05
    Studenti će na kraju ovih vježbi znati kreirati novi Web Servis te ga objaviti na lokalno ili udaljeno računalo, kreirati reference između različitih projekata te napraviti reference na web servis i koristiti ga u aplikaciji.
  • Vježbe 06
    Studenti će na kraju ovih vježbi znati asinkrono pozivati web servise, kreirati posebne objekte (delegate) i kreirati vlastite događaje (engl. events) u svrhu korištenja delegata za pozivanje web servisa, ali i za rješavanje ostalih problema komunikacije među dretvama i objektima.
  • Vježbe 07
    Cilj ovih vježbi je upoznati studente sa načinima kreiranja i korištenja mobilnih baza podataka (mBP). Posebna pozornost biti će posvećena kreiranju arhitekturalnog sloja za rad s bazom podataka u višeslojnoj arhitekturi programskog proizvoda.
  • Vježbe 08
    Studenti će kroz ove vježbe dobiti uvid u načine i mogućnosti sinkronizacije standardnih i mobilnih baza podataka, te naučiti kreirati web servise u svrhu sinkronizacije podataka. U drugom dijelu vježbi studenti će naučiti koristiti Microsoft predefinirane objekte za rad s bazom i za sinkronizaciju podataka, te praktično provesti jednosmjernu sinkronizaciju pomoću web servisa.
  • Vježbe 09
    Studenti će kroz ove vježbe ponoviti mogućnosti korištenja web servisa u svrhu sinkronizacije podataka i praktično provesti jednosmjernu sinkronizaciju pomoću web servisa i parametara. Cilj vježbi je također olakšati studentima da shvate mehanizme inkrementalnog razvoja sustava (nadogradnja web servisa, nadogradnja podataka i slično).
  • Vježbe 10
    Cilj ovih vježbi je upoznati studente s naprednim konceptima koji se koriste pri razvoju mobilnih programskih proizvoda, kao što su rad s navigacijom (GPS), rad s portovima, pohrana parametara aplikacije i slično, kontinuirano komuniciranje s web servisima i slično.

Alati koji se koriste na predmetu

  • MS Visual Studio .Net 2008/2010
    Tijekom vježbi, a i tijekom razvoja programskog proizvoda, koristit ćemo Microsoft Visual Studio .Net 2008. Na vježbama ćemo koristiti programski jezik C#. Kako je Fakultet partner s Microsoftom, studenti imaju pravo na ovaj alat pod uvjetima definiranim MSDNAA licencom.
  • Microsoft Active Sync 4.5
    Budući da će se vježbe bazirati na izradi aplikacija za mobilne uređaje, potreban nam je alat pomoću kojeg možemo mobilne uređaje sa microsoft operacijskim sustavom spojiti sa računalom i integrirati u razvojno okruženje.
  • MS SQL Server 2005/2008
    Sustav za upravljanje bazama podataka na koji ćemo se spajati i kreirati vlastitete baze podataka na ovom kolegiju će biti MS SQL Server 2005/2008. Preko gore navedene MSDNAA licence, studenti mogu preuzeti i ovaj alat.
  • Visual Paradigm Suite
    Alat će se koristiti za modeliranje programskih proizvoda te za izradu svih UML dijagrama.
  • Ostali alati za druge platforme
    Studenti vlastite projekte mogu razvijati u razvojnom okruženju po želji. Tako mogu koristiti Wisual Studio 2010 Express za Windows Phone 7 aplikacije, QT Designer i Creator za Nokia Symbian i Maemo aplikacije, Javu i Eclipse za Android aplikacije i tako dalje.

Osnovna literatura

  • Materijali s predavanja dostupni na stranicama kolegija Analiza i razvoj programa i Programskog inženjerstva.
  • Stevens, R.; Brook, P.; Jackson, K.; Arnold, S. Systems Engineering, Coping with Complexity. Prentice Hall, 1998.
  • Fowler, M.; Scott, K. UML Distilled: Applying the Standard Object Modelling Language. Addison-Wesley, 1997.
  • Bennett, S.; McRobb, S.; Farmer, R. Object-Oriented Systems Analysis and Design using UML. McGraw-Hill, 1999.
  • Stevens, P.; Pooley, R. Using UML - software engineering with objects and components. Addison Wesley, 2000.
  • Sommerville, Software Engineering. 5th edition, Addison-Wesley, 1996.
  • Pressman, R.S. Software Engineering: A Practioner's Approach. 5th edition, McGraw-Hill, 2000. (or the European adaptation by D. Ince).
  • Gilb, T. Principles of Software Engineering Management. Addison-Wesley, 1988.

Slični predmeti

Nastavnik Oblik nastave Tjedana Sati tjedno Grupa
Stapić Zlatko Laboratorijske vježbe 10 3 6
Predavanje 3 3 1
Vrček Neven Predavanje 7 3 1
Nema definiranih ispitnih rokova
Predavanje Seminar Auditorne vježbe Laboratorijske vježbe Vježbe (jezici, tzk) Ispit Kolokviji Nadoknade Demonstrature
Copyright © 2015 FOI Varaždin. All Rights Reserved. Sva prava pridržana.
Povratak na vrh