SEARCH
You are in browse mode. You must login to use MEMORY

   Log in to start

level: 2. lekcija

Questions and Answers List

Programska podrška (Software)

level questions: 2. lekcija

QuestionAnswer
Programska podrška/Programska oprema/SoftverSkup računalnih programa i povezanih podataka. Neopopljiva komponenta bez koje računalo ne može funkcionirati.
Programsko inženjerstvoPrimjena sustavnog, discipliniranog i mjerljivog pristupa kroz razvoj, uporabu i održavanje programske podrške.
Programski jezikSet simbola i pravila pomoću kojih se konstruira/izrađuje program
ProgramiranjePisanje programa (kodiranje)
AlgoritamPostupak za rješavanje problema. Programi su implementacija algoritama na određenom programskom jeziku.
Osnovne algoritamske struktureDobivaju se kombiniranjem blokova. Linijska (sekvenca, slijed) Razgranata (selekcija, granjanje) Ciklička (ponavljanje, iteracija, petlja)
Strojni jezik (Prva generacija)Binarno izražene instrukcije, sastoji se od sekvenci bitova.
Asembleri (Druga generacija)→ programi prevoditelji → najbliži strojnom jeziku i obzirom da njegovim naredbama djelujemo izravno na pojedine dijelove računala koriste se i danas za programiranje sklopovlja
Treća generacija- proceduralni - strukturirani - pojava modula - npr. Fortran, C, LISP, Basic Pascal
Četvrta generacija- neproceduralni - veća brzina dohvata rezultata obrade - približavaju programiranje ljudskom načinu razmišljanja - slobodnije i bez krutih pravila - upitni jezici za baze podataka: SQL, Focus, QBE - grafički programski jezici: Visual C++, Visual Basic - programske aplikacije za obradu teksta, tablica, podataka (VBA)
Peta generacija- razvoj aplikacije pomoću generatora aplikacije - koriste se u istraživanju umjetne inteligencije - Porolog, Mercury, OPS5 - korisnik treba brinuti o tome koji se problemi moraju riješiti i koji uvijeti moraju biti ispunjeni, a ne kako implementirati algoritam za njihovo rješavanje
Skriptni jezici• Za automatizaciju određenih zadataka u programu • Izdvajanje podataka iz skupa podataka • Namijenjeni za komponiranje programa od gotove app. – „lijepljenje” komponenti. Time se postiže viša razina programiranja i brži razvoj aplikacija. • Najčešće se kod prevodi putem interpretera
Kako se izvršavaju skripte za web aplikacije•na strani klijenta – klijentska (JavaScript) •na strani poslužitelja – poslužiteljska (PHP)
Modeli razvoja softveraModeli se razlikuju prema načinu odvijanja i međusobnog povezivanja osnovnih aktivnosti. Svaki model ima svoje prednosti i nedostatke u razvoju sustava, te pokušava ukloniti nedostatke prethodnog modela.
Osnovni modeli razvoja softveraVodopad Prototip RAD (Rapid Application Development) - Model brzog razvoja RUP (Rational Unified Process) – Iterativni model Inkrementalni Evolucijski razvoj Spiralni Model usmjeren na ponovnu upotrebu
Softverski proces (faze razvoja softvera)Skup aktivnosti i pripadajućih rezultata čiji je cilj razvoj (evolucija) softvera.
Osnovne aktivnosti unutar softverskog procesa1. Specifikacija (analiza zadatka) 2. Oblikovanje (dizajn i programiranje) 3. Testiranje (validacija i verifikacija) 4. Evolucija (implementacija i održavanje)
1. Faza: Specifikacija•Postavlja se zadatak •Analiziraju korisnički zahtjevi •Definiraju željeni rezultati •Definiraju zadaće koje software treba riješiti
2. Faza: Dizajn• Određuju obilježja programa • Način upotrebe – veća učinkovitost • Baze podataka koje će se koristiti (sadržaj i struktura) • Potrebna ograničenja • Izgled formi unosa • Izgled izlaznih izvješća
2. Faza: Programiranje• Pisanje koda (naredbi) • Provjera ispravnosti koda
Načini razvoja aplikacije:▪ Programiranje u programskom jeziku ▪ Razvoj primjenom softverskog alata ▪ Kombinacija programiranja i upotrebe alata ▪ Koriste ranije razvijene i implementirane programske komponente Razvijati aplikaciju u skladu s definiranim zahtjevima!
CASE alati- korištenje računalno potpomognute metode kako bi organizirali i kontrolirali razvoj softvera, posebno na velikim i kompleksnim projektima koji uključuju puno softverskih komponenti i ljudi. - alati koji pružaju automatiziranu pomoć za razvoj softvera
Podjela CASE alata1. Klasični CASE alati 2. Pravi CASE alati
Klasični CASE alatiUstaljeni pomoćni alati u razvoju softvera.
Pravi CASE alatiDijele se u 3 kategorije, ovisno u kojoj se fazi razvojnog procesa koriste Upper – podržavaju analizu i fazu dizajna Lower – podržavaju faze pisanja koda Integrirani(I-CASE) –podrška u analizi, dizajnu i kodiranju
Razlika između klasičnih i pravih CASE alataPravi alati imaju repozitorij u kojem pohranjuju sve informacije vezane uz projekt. Kako se promjene događaju tijekom faza razvoja i održavanja projekta, repozitorij je uvijek ažuriran. Ovo nam daje kompletnu i točnu dokumentaciju za softver.
3. Faza: Testiranje i verifikacijaProvjera ispravnosti programa (proizvođač, neovisni ispitivači) Traženje i ispravljanje pogrešaka u kodu Verifikacija: Da li se dobro gradi softverski proizvod? – u skladu s pravilima struke, sa specifikacijom poslova Validacija: Da li se gradi dobar proizvod? - funkcionalno zadovoljavanje zahtjevima korisnika, testiranje uporabljivosti, pouzdanosti softvera
Vrste testiranja programa1. Jedinično 2. Integracijsko 3. Sistemsko
JediničnoPojedinačno ispitivanje modula ili klasa. Dostupno je puno okvira za testiranje jedinica kao što su NUnit za C # ili JUnit za Javu.
IntegracijskoProvjera interakcija između različitih blokova ili modula, što pomaže isključiti pogrešnu obradu podataka.
Sistemskoispitivanje se provodi na kompletnom i integriranom softveru, tehnika testiranja crne kutije.
Odlike dobrog softvera1. Održivost 2. Pouzdanost 3. Učinkovitost 4. Prihvatljivost
OdrživostMogućnost nadogradnje zbog promjene potreba korisnika (najbitniji element zbog stalnih promjena poslovanju).
PouzdanostSposobnost da izvrši funckije uz karakteristiku sigurnosti.
UčinkovitostBez nepotrebnog korištenja sistemskih resursa.
PrihvatljivostPrihvaćen od strane korisnika za koje je dizajniran, razumljiv, koristan i kompatibilan sa drugim sustavima.
Kriza programske podrške kroz 60-te,70te i 80teOrganizacija ne može dovoljno brzo razviti novu programsku aplikaciju kako bi pratila rapidne i brze promjene u poslovanju, uvjetima tržišta i evoluirajućim tehnologijama.
Vrste računalnih programa:•Sistemski programi •Korisnički - aplikacijski programi
Sistemski programiProgrami razvijeni za rješavanje problema u radu računala pri aktiviranju, izvršavanju i završavanju obrade podataka.
Korisnički - aplikacijski programiProgrami koji omogućuju rješavanje specifičnog zadatka (obrada teksta, zvuka, projektiranje pomoću računala, izrada baza podataka...)
Kategorije software-a s obzirom na funkcionalnostiRazvojni programi Sistemski programi → Operacijski, posluživanje, prevoditelji Korisnički/aplikacijski program → Opće namjene, specifične namjene
Sistemski programiSistemskim programima računalo ostvaruje osnovnu funkcionalnost: UPRAVLJANJE • Operacijski sustav: Program koji upravlja računalnim resursima, izvođenjem svih programa, služi kao sučelje između korisničkih programa i strojne opreme. KONTROLA I PODRŠKA • Programi prevoditelji • Programi za posluživanje (engl. utility) + PRILAGODBA I NADOGRADNJA - Razvojni programi
Programi prevoditelji (engl. compilers)prevode izvorni u radni program (izvorni kod → strojni kod) i kontroliraju ispravnost. Izvorni program → program prevoditelj → radni program Programer kreira izvorni kod (source code) te ga prevodi u strojnu verziju (strojni kod-izvršna verzija) a kupac dobiva isključivo strojnu odnosno izvršnu verziju programa.
Podjela prevoditelja• asembleri (50-tih godina), • kompilatori (proces prevođenja započinju tek nakon što je cjelokupni izvorni program unijet u računalo), • interpreteri (prevode instrukciju po instrukciju izvornog programa odmah nakon unošenja u računalo)
Programi za posluživanjePomoćni sistemski programi ili uslužni programi (anti-virus programi, arhivari, programi za kompresiju podataka, sinkronizaciju, za čišćenje diska, defragnetaciju diska, itd.).
Komunikacijski programiSluže rješavanju problema pri prijenosu podataka u mreži.
Operacijski sustav (OS)Osnovna mu je zadaća “pomagati” upravljačkoj (kontrolnoj) jedinici računala pri izvršavanju njenih zadataka, odnosno upravljanje radom cjelokupnog računalnog sustava u svim njegovim segmentima i fazama rada.
Zadaci OS-a• Upravljanje procesorima • Pohrana i upravljanje memorijomima – ulazno-izlazne jedinice i upravljački programi • Upravljanje uređajima • Sučelje za programiranje aplikacija (engl. API) • Korisničko sučelje
Upravljanje procesorimaDodijeliti dovoljno vremena procesoru za svaki proces i aplikaciju kako bi se mogli što učinkovitije odvijati.
Pohrana i upravljanje memorijomOsigurati da svaki proces ima dovoljno memorije za izvršavanje, te da jedan proces ne koristi memoriju dodijeljenu drugom procesu.
Upravljanje uređajimaUlazno-izlazne jedinice i upravljački programi.
Sučelje za programiranje aplikacija (engl.API)Skup pravila i specifikacija koje programeri slijede u izradi novih aplikacija. Resursi operacijskog sustava - biblioteke (funkcija, procedura, metoda), struktura podataka, objekata i protokola.
Korisničko sučeljeDio aplikacije kroz koju korisnik komunicira s aplikacijom. Microsoft Windows i Apple Macintosh, koriste grafičko korisničko sučelje. Ostali operativni sustavi, kao što su kao Unix, koristite ljuske.
Vrste operacijskih sustava1. Operacijski sustavi u realnom vremenu (RTOS - Real-time operating systems) 2. Jedan korisnik – jedan zadatak 3. Jedan korisnik – više zadataka 4. Više korisnički operacijski sustavi
Operacijski sustavi u realnom vremenu (RTOS - Real-time operating systems)Koriste se za kontrolu strojeva, znanstvenih instrumenata i industrijskih sustava. Općenito, korisnik nema puno kontrole nad funkcijama RTOS-a.
Jedan korisnik – jedan zadatakOperativni sustav koji omogućuje da jedankorisnik učini jednu stvar. Jedna aritmetičko/logička jedinica u jednom trenutku obavlja jedan posao (DOS). Jednoprocesorski-jednozadaćni OS.
Jedan korisnik – više zadatakaOperativni sustav koji omogućuje jednom korisniku istovremeno pokretanje višestrukih aplikacija na računalu. Jedna aritmetičko/logička jedinica naizmjenično obrađuje dijelove većeg broja poslova odnosno aplikacijskih programa(Windows). Jednoprocesorski-višezadaćni OS.
Više korisnički operacijski sustaviOmogućuju da više korisnika istovremeno koriste resurse na jednom računalu. Više aritmetičko/logičkih jedinica istodobno izvršava nekoliko poslova, nazivaju se i mrežnim operacijskim sustavima(Unix, Windows). Višeprocesorski-višezadaćni OS.
Prilikom odabira operacijskog sustava u poslovne svrhe od posebne važnosti su:• hardverska platforma koja se koristi • broj korisnika i prateći sigurnosni zahtjevi sustava • jednostavnost administracije • prilagodljivost s obzirom na različite namjene • različite aplikacije koje će se koristiti
Aplikacijski programi – korisničkisluže korisnicima za rješavanje problema u radu → programi primjene
Kako si dijele korisnički programi?Dijele se prema: 1. USTROJU (pod ustrojem se misli na 3 os. komponente: korisničko sučelje,pristupni sloj podataka i pohrana podataka) 2. KRITERIJU KORISNIKA 3. NAMJENI
Ustroj korisničkih programa• monolitni - zastarjeli, skupi za razvoj i održavanje, • modularni
Monolitni korisnički programiSlojevi aplikacije čvrsto su povezani (ovisnost jedan o drugome), grupiranje u istom procesu prilikm pokretanja.
Modularni korisnički programiSlojevi aplikacije su modularne komponente koje se lako mogu isključiti, što uključuje koncept kompatibilnosti.
Vrste kriterija korisnika za korisničke programe•prilagođen - poznati korisnik (engl. Customized product) - vlastita, često jako skupa rješenja •općenit (engl. Generic product) - programi za nepoznatog korisnika - standardni programski paketi
Namjene korisničkih programa• za poslovne primjene • za primjene u proizvodnji • za obrazovanje • za primjenu u kućanstvima • za zabavu
Namjena operacijskih sustava prema vrsti uređajaOsobna računala i pametni uređaji
Slajdovi 34-43 i 52kraj