level: 2. lekcija
Questions and Answers List
Programska podrška (Software)
level questions: 2. lekcija
Question | Answer |
---|---|
Programska podrška/Programska oprema/Softver | Skup računalnih programa i povezanih podataka. Neopopljiva komponenta bez koje računalo ne može funkcionirati. |
Programsko inženjerstvo | Primjena sustavnog, discipliniranog i mjerljivog pristupa kroz razvoj, uporabu i održavanje programske podrške. |
Programski jezik | Set simbola i pravila pomoću kojih se konstruira/izrađuje program |
Programiranje | Pisanje programa (kodiranje) |
Algoritam | Postupak za rješavanje problema. Programi su implementacija algoritama na određenom programskom jeziku. |
Osnovne algoritamske strukture | Dobivaju 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 softvera | Modeli 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 softvera | Vodopad 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 procesa | 1. 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 alata | 1. Klasični CASE alati 2. Pravi CASE alati |
Klasični CASE alati | Ustaljeni pomoćni alati u razvoju softvera. |
Pravi CASE alati | Dijele 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 alata | Pravi 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 verifikacija | Provjera 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 programa | 1. Jedinično 2. Integracijsko 3. Sistemsko |
Jedinično | Pojedinačno ispitivanje modula ili klasa. Dostupno je puno okvira za testiranje jedinica kao što su NUnit za C # ili JUnit za Javu. |
Integracijsko | Provjera interakcija između različitih blokova ili modula, što pomaže isključiti pogrešnu obradu podataka. |
Sistemsko | ispitivanje se provodi na kompletnom i integriranom softveru, tehnika testiranja crne kutije. |
Odlike dobrog softvera | 1. Održivost 2. Pouzdanost 3. Učinkovitost 4. Prihvatljivost |
Održivost | Mogućnost nadogradnje zbog promjene potreba korisnika (najbitniji element zbog stalnih promjena poslovanju). |
Pouzdanost | Sposobnost da izvrši funckije uz karakteristiku sigurnosti. |
Učinkovitost | Bez nepotrebnog korištenja sistemskih resursa. |
Prihvatljivost | Prihvaćen od strane korisnika za koje je dizajniran, razumljiv, koristan i kompatibilan sa drugim sustavima. |
Kriza programske podrške kroz 60-te,70te i 80te | Organizacija 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 programi | Programi razvijeni za rješavanje problema u radu računala pri aktiviranju, izvršavanju i završavanju obrade podataka. |
Korisnički - aplikacijski programi | Programi 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 funkcionalnosti | Razvojni programi Sistemski programi → Operacijski, posluživanje, prevoditelji Korisnički/aplikacijski program → Opće namjene, specifične namjene |
Sistemski programi | Sistemskim 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živanje | Pomoćni sistemski programi ili uslužni programi (anti-virus programi, arhivari, programi za kompresiju podataka, sinkronizaciju, za čišćenje diska, defragnetaciju diska, itd.). |
Komunikacijski programi | Služ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 procesorima | Dodijeliti dovoljno vremena procesoru za svaki proces i aplikaciju kako bi se mogli što učinkovitije odvijati. |
Pohrana i upravljanje memorijom | Osigurati da svaki proces ima dovoljno memorije za izvršavanje, te da jedan proces ne koristi memoriju dodijeljenu drugom procesu. |
Upravljanje uređajima | Ulazno-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čelje | Dio 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 sustava | 1. 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 zadatak | Operativni 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 zadataka | Operativni 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 sustavi | Omoguć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čki | služ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 programi | Slojevi aplikacije čvrsto su povezani (ovisnost jedan o drugome), grupiranje u istom procesu prilikm pokretanja. |
Modularni korisnički programi | Slojevi 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đaja | Osobna računala i pametni uređaji |
Slajdovi 34-43 i 52 | kraj |