Programų sistemų inžinerija Prof. Albertas Čaplinskas 2005 1 paskaita
Paskaitos planas 1paskaita: Įvadas į kursą 1 dalis. Trumpai apie kursą Tikslai, užduotys, grupinis darbas, tipinės problemos 2 dalis. Baigiamieji reikalavimai bakalaurams Bendravimas, mokslinis mastymas, matematika, informacinės sistemos, programų sistemų inžinerija, programavimas, projektų vadyba, grupinis darbas, asmenybė, profesionalizmas 3 dalis. Kurso turinys 1 paskaita
1 dalis. Trumpai apie kursą Kurso įvadas 1 dalis. Trumpai apie kursą 1 paskaita
Dėstytojai Prof. Albertas Čaplinskas Instruktoriai Darbo vieta: MII, Goštauto g. 12-410 Telefonas: 2-62-61-07 Kreiptis: Pirmadieniais 18-20 valandomis Kompiuterinis paštas: alcapl@ktl.mii.lt Instruktoriai Rimantas Kybartas, rkybartas@lbank.lt Vaidas Giedrimas, vaigie@fm.su.lt Asta Krupavičiūtė, asta.krupaviciute@mail.lt 1 paskaita
Apie kursą Programų sistemų inžinerijos nagrinėjimų objektas – ilgalaikiai didelės apimties programinės įrangos kūrimo projektai. Ji nagrinėja tokių projektų vadybos klausimus projektų kainos vertinimo būdus sistemos sprenžiamų uždavinių formulavimą ir analizę sistemos projektavimo metodus sistemos testavimo ir našumo vertinimo metodus sistemos aptarnavimo ir priežiūros metodus 1 paskaita
Kurso tikslai Supažindinti kaip galima laiku kurti aukštos kokybės programų sistemas, nepaisant tų sistemų sudėtingumo ir nuolat užsakovo daromo reikalavimų keitimo Supažindinti su specifinėmis didelių programų sistemų kūrimo problemomis Supažindinti su programų sistemų kūrimo stadijomis: poreikių analize reikalavimų analize ir specifikavimu programų projektavimu, programų relizavimu, testavimu ir priežiūra. 1 paskaita
Kurso tikslai Supažindinti kaip galima laiku kurti aukštos kokybės programų sistemas, nepaisant tų sistemų sudėtingumo ir nuolat užsakovo daromo reikalavimų keitimo Supažindinti su svarbiausiais metodais, naudojamais kiekvienoje iš stadijų Išmokyti kaip taikyti šiuos metodus praktiškai (konkrečiame grupiniame projekte) 1 paskaita
Kurso tikslai Pateikti šias technines žinias Kas tai yra modeliavimas UML (Unified Modeling Language) Apie svarbiausius modeliavimo metodus: Užduočių modeliavimą Objektinį modeliavimą Dinaminį modeliavimą 1 paskaita
Kurso tikslai Pateikti šias technines žinias Išmokyti naudotis modeliavimo priemonėmis Supažindinti su tuo, kas tai yra tipiniai projektavimo sprendimai ir kaip jie tiražuojami karkasų forma Pateikti šias vadybos žinias Supažindinti su programų sistemos gyvavymo ciklo samprata Proceso ir produkto skirtumai Skirtingi gyvavymo ciklo modeliai 1 paskaita
Užduotys Grupinis projektas: Grupinis projektas susideda iš dviejų dalių: verslo analizės ir modeliavimo; programų sistemos reikalavimų formulavimo ir tos sistemos projektavimo Pirma dalis (atliekama rudens semestre) susideda iš 2 darbų:Verslo tikslų ir poreikių specifikacija; Koncepcinis verslo modelis Antra dalis (atliekama pavasario semestre) susideda iš 2 darbų: Programų sistemos reikalavimų specifikacija; Programų sistemos eskizinis projektas Kiekviena grupė kiekvieno darbo rezultatus pristatys žodžiu ir raštu, laboratorinio darbo forma 1 paskaita
Užduotys Vertinimas: Kiekvienas darbas vertinamas nuo 0 iki 10 balų. Pažymys bendras visai grupei. Už pristatymą vertinama individualiai Egzaminas: raštu, konspektais ar knygomis naudotis neleidžiama. Vertinimas Galutinis pažymys = 0.5 x (0.9 x pažymių už darbus vidurkis + 0.1 x balai už pristatymus) + 0.5 x pažymys už atsakymus į bilieto klausimus 1 paskaita
Grupinio projekto tikslai Ištreniruoti studentus Analizuoti ir specifikuoti verslo poreikius Specifikuoti programų sistemos reikalavimus Pertvarkyti reikalavimus į projektinę specifikaciją Kurti koncepcinius modelius Rengti techninius dokumentus Dirbti pagal formalius reikalavimus Dirbti grupėse Planuoti projektus, planuoti savo laiką, baigti darbus laiku Rengti ir daryti prezentacijas, argumentuoti, apginti savo nuomone 1 paskaita
Grupinis projektas Grupės dydis: 4 studentai Grupė privalo pati susiformuluoti uždavinį, kurį ji spręs Grupė pati planuoja savo darbą, pasiskirsto užduotis, koordinuoja savo darbą taip, kad laiku būtų padarytas darnus ir vientisas darbas. Kiekvienam darbui grupė išsirenka darbo vadovą, kuris ir yra atsakingas už grupės narių darbo koordinavimą 1 paskaita
Grupinis projektas Grupinis projektas imituoja darbą realioje aplinkoje. Instruktorius (laboratorinius darbus vedantis dėstytojas) atlieka užsakovo vaidmenį. Jis priima (arba atmeta) grupės padarytą darbą Grupė atlieka vykdytojo (programinę įrangą kuriančios organizacijos) vaidmenį Imitavimas apima ir terminus. Jūs galite vėluoti, bet už tai būsite griežtai baudžiami Realioje aplinkoje už pavėluotą darbą užsakovas paprastai sumoka mažiau pinigų. Jums bus mažinamas pažymys: už savaitę 1 balu, už didesnį vėlavimą – 2 balais. Taigi, turite griežtus terminus. 1 paskaita
Grupinis projektas Projektas susideda iš 4 darbų, kiekvienas darbas vertinamas atskirai Kiekvienas darbas atitinka tam tikrą projekto stadiją, jo rezultatai pateikiami atskiru dokumentu Dokumentą, prieš pateikdami jo galutinę versiją, galima parodyti dėstytojui (pratyboms darbams skirtu laiku), su juo konsultuotis ir keisti. Tai jokios įtakos pažymiui neturi. Pateikus galutinę redakciją ir pristačius darbą, pažymys nebekeičiamas. 1 paskaita
Grupinis projektas Pradžioje darbas, kurį reikia atlikti, gali pasirodyti labai paprastas. Jums gali atrodyti, kad jį padarysite per 1-2 dienas. Neapsigaukite. Tai tik iliuzija. Jei taip galvosite, turėsite didelių problemų baigti laiku. Kiekvienas darbas reikalauja maždaug 60 žmogaus darbo valandų. 1 paskaita
Grupinis projektas Įsakmiai patariu pirmą reikalaujamo dokumento versiją parengti bent 3 savaitėm prieš terminą, kad turėtumėte laiko jį aptarti su dėstytoju ir pataisyti. Jei neklausysite šio patarimo, nekaltinkite nei instruktorių, nei manęs dėl problemų, su kuriomis susidursite. O su jomis tikrai susidursite, jei delsite iki paskutinio momento! 1 paskaita
Grupinis projektas Darbų pristatymas vyks pratybų laiku. Kiekvienai grupei darbui pristatyti skiriama 10-12 minučių Apie tai, kaip rengti prezentacijas, prirašyti ištisi tomai. Gerų patarimų šiuo klausimu galite rasti internete kitoje skaidrėje nurodytais adresais 1 paskaita
Grupinis projektas http://www.cs.dartmouth.edu/~brd/Teaching/Giving-a-talk/giving-a-talk.html http://www.cs.wisc.edu/~markhill/conference-talk.html http://www.shef.ac.uk/~el1plj/ships/oral-talk.pdf http://www.cgd.ucar.edu/cms/agu/scientific_talk.html 1 paskaita
Tipinės problemos, su kuriomis susiduria studentai grupiniame projekte Nedavertinama reikalingo darbo apimtis Blogas planavimas: nespėjama nustatytam terminui Grupės darbo organizavimas: kas kokią darbo dalį darys? Dažniausiai darbą galima padaryti keliais skirtingais būdais: vienok tai nereiškia, kad ką bepadarysite bus teisinga! 1 paskaita
Tipinės problemos, su kuriomis susiduria studentai grupiniame projekte Studentai turi programavimo patirtį, bet neturi analizės ir projektavimo patirties. Tie, kas neišmoko programuoti, neperprato objekto sampratos, būtina tą padaryti dabar. Kitaip darbų nepadarysite. Neįdėmiai perskaitomi darbų reikalavimai. Mėginama pasinaudoti kaip pavyzdžiu kitų padarytais darbais ar netgi nusirašinėti “Mokinuko sindromas” laukiama kol kas nors viską išaiškins, nebandoma savarankiškai ieškoti reikiamos medžiagos ir ją skaityti Nesikonsultuojama su dėstytojais Taigi, jūs perspėti. Jūsų likimas (ir pažymiai) jūsų rankose! 1 paskaita
2 dalis. Baigiamieji reikalavimai bakalaurams Kurso įvadas 2 dalis. Baigiamieji reikalavimai bakalaurams 1 paskaita
Baigiamieji reikalavimai bakalaurams Bendravimas įdėmiai klausyti, išgirsti, dokumentuoti efektyviai perteikti savo įdėjas motyvuoti savo požiūrio tašką gerbti kitų nuomonę rengti ir daryti prezentacijas suvokti kitų daromas prezentacijas ir konstruktyviai jas kritikuoti 1 paskaita
Baigiamieji reikalavimai bakalaurams Bendravimas rengti technines ataskaitas ir kitą techninę dokumentaciją imti interviu, derėtis ir pasiekti susitarimą naudotis kompiuteriniu paštu, videokonferencijų įranga ir kitais kompiuterinio bendravimo priemonėmis susieškoti reikiamą informaciją ir ja tinkamai pasinaudoti 1 paskaita
Baigiamieji reikalavimai bakalaurams Bendravimas slandžiai reikšti savo mintis žodžiu ir raštu taisyklinga lietuvių kalba skaityti, rašyti ir kalbėti anglų kalba struktūrizuoti sudėtingus tekstus, suskaidant juos į smulkias lengvai suprantamas dalis produktyviai bendrauti grupiniuose svarstymuose, ypač svarstant tikslus, užduotis ir darbo progresą 1 paskaita
Baigiamieji reikalavimai bakalaurams Mokslinis mastymas stebėti tikrovėje vykstančius reiškinius ir juos konceptualizuoti samprotauti apie stebimus reiškinius ir gauti teisingas, moksliškai pagrįstas išvadas taikyti mokslinį metodą savo praktiniame darbe formuluoti ir tikrinti hipotezes projektuoti ir atlikti eksperimentus 1 paskaita
Baigiamieji reikalavimai bakalaurams Mokslinis mastymas nustatyti problemų ribas, skaidyti problemas į komponentus, nustatyti jų sąveikos interfeisus pasinaudoti bendrosios sistemų teorijos sąvokomis formuluojant ir sprendžiant problemas suvokti, ką tai reiškia ką nors žinoti ir kokiais būdais galima ką nors sužinoti 1 paskaita
Baigiamieji reikalavimai bakalaurams Matematika logiškai ir nuosekliai mastyti naudotis matematiniais abstrakcijos mechanizmais modeliuoti tikrovės reiškinius, abstraguojantis nuo neesminių detalių aprašyti programų sistemų funkcijas ir būsenas pasinaudojant matematinės logikos metodais 1 paskaita
Baigiamieji reikalavimai bakalaurams Matematika suvokti problemas ir sistemas matematinės logikos terminais laisvai operuoti paklaidų teorijos ir kitomis skaičiuojamosios matematikos sąvokomis atlikti formalius (simbolinius) pertvarkymus 1 paskaita
Baigiamieji reikalavimai bakalaurams Matematika skaityti, suprasti ir paaiškinti kitiems algoritmus kurti paprastus algoritmus samprotauti apie algoritmų korektiškumą realizuoti svarbiausius abstrakčiuosius duomenų tipus naudotis diskrečiosios matematikos metodais, sprendžiant praktinius uždavinius 1 paskaita
Baigiamieji reikalavimai bakalaurams Informacinės sistemos suvokti kodėl būtina keistis elektroniniais duomenimis tarp organizacijų ir kokios techninės problemos dėl to kyla aprašyti informacinių sistemų funkcijas ir charakteristikas aprašyti skaičiavimo technikos įrenginių funkcijas ir charakteristikas instaliuoti ir integruoti įsigytus informacinių sistemų komponentus panaudoti informacines sistemas verslo problemoms spręsti 1 paskaita
Baigiamieji reikalavimai bakalaurams Informacinės sistemos analizuoti ir specifikuoti organizacijų poreikius ir reikalavimus naudotis informacinių sistemų kūrimo metodais ir įrankiais parinkti organizacijoms tinkamiausią programinę ir techninę įrangą parinkti tinkamiausias sistemos apsaugos priemones 1 paskaita
Baigiamieji reikalavimai bakalaurams Programų sistemų inžinerija suvokti, kodėl programų sistemas yra taip sudėtinga kurti suvokti matematinius dėsnius, ribojančius, ką įmanoma daryti su programine įranga suvokti kaip naudotis modeliais ir modeliavimo metodais analizuojant ir projektuojant sistemas 1 paskaita
Baigiamieji reikalavimai bakalaurams Programų sistemų inžinerija suvokti, kokie programų sistemų kūrimo metodai yra geri, kokie blogi ir kodėl suprasti, kodėl programinės įrangos sudėtingumo negalima matuoti žmogaus darbo valandomis žinoti, kokiais būdais galima sumažinti darbo sąnaudas, reikalingas programų sistemoms kurti, prižiūrėti ir aptarnauti 1 paskaita
Baigiamieji reikalavimai bakalaurams Programavimas mokėti programuoti bent viena kiekvienos paradigmos (imperatyvusis programavimas, loginis programavimas, funkcinis programavimas, objektinis programavimas) programavimo kalba projektuoti, rašyti, testuoti ir dokumentuoti vidutinio sudėtingumo programas suprasti, kokį poveikį programinei įrangai daro techninė įranga 1 paskaita
Baigiamieji reikalavimai bakalaurams Programavimas programuoti pagal turimą reikalavimų sprcifikaciją rengti testus pagal turimą programos reikalavimų specifikaciją patikrinti, ar programa tenkina jos reikalavimų specifikaciją moduliarizuoti programas taip, kad kiekvieną modulį būtų galima projektuoti, programuoti ir testuoti atskirai 1 paskaita
Baigiamieji reikalavimai bakalaurams Programavimas specifikuoti programų interfeisus programuoti išskirstytas programas rašyti išlygiagretintas programas programuoti programas, veikiančias realaus laiko masteliu projektuoti ir kurti duomenų bazes naudotis programų kūrimo įrankiais 1 paskaita
Baigiamieji reikalavimai bakalaurams Projektų vadyba taikyti praktikoje projektų vadybos koncepcinį aparatą formuluoti savo asmeninius tikslus ir planuoti laiką jiems pasiekti naudotis projektų planavimo ir valdymo paketais taikyti praktiškai sistemos gyvavymo ciklo metodiką 1 paskaita
Baigiamieji reikalavimai bakalaurams Projektų vadyba vertinti projekto įgyvendinamumą ir jo rizikos veiksnius taikyti kokybės vadybos metodus peržiūrėti, inspektuoti ir vertinti techninius dokumentus atlikti konfigūracijos valdymą 1 paskaita
Baigiamieji reikalavimai bakalaurams Grupinis darbas efektyviai dirbti, pagal savo viršininko nurodymus atlikti vidutinio sudėtingumo darbus griežtai nustatytais terminais naudotis kompiuterinėmis grupinio darbo priemonėmis harmoningai dirbti su įvairių įsitikinimų bei pažiūrų žmonėmis 1 paskaita
Baigiamieji reikalavimai bakalaurams Grupinis darbas įsijausti į grupės siekiamus tikslus ir jausti atsakomybę už tai, kad jie būtų pasiekti veikti gaunant minimalius nurodymus taikyti sprendimų priėmimo metodus, priimant asmeninius sprendimus 1 paskaita
Baigiamieji reikalavimai bakalaurams Profesinė branda geisti progresuoti ir daryti profesinę karjerą suvokti būtinybę nuolat mokytis ir tobulintis planuoti savo mokymasi ir tobulinimasi 1 paskaita
Baigiamieji reikalavimai bakalaurams Profesionalizmas suvokti teorinius informatikos pagrindus žinoti skaičiavimo technikos ir informatikos istoriją ir suvokti jos socialinį kontekstą žinoti informatikos pionierius ir kas kokį konkretų indėlį įnešė į jos progresą 1 paskaita
Baigiamieji reikalavimai bakalaurams Professionalizmas žinoti kokie profesiniai ir moksliniai žurnalai leidžiami informatikos srityje, kokios profesinės organizacijos vienija informatikus, kokios pramoninės organizacijos užsiima informatikos klausimais, kokios konferencijos vyksta būti susipažinusiam su profesine literatūra, sertifikavimo ir standartizavimo klausimais būti susipažinusiam su intelektinės nuosavybės ir privatumo apsaugos tvarka 1 paskaita
Baigiamieji reikalavimai bakalaurams Profesionalizmas žinoti, kas aprobuojama ir kas ne kitų profesionalų išmanyti socialinius ir etinius informacinių sistemų kūrimo, naudojimo, pardavinėjimo, platinimo, aptarnavimo ir priežiūros aspektus 1 paskaita
Baigiamieji reikalavimai bakalaurams Profesionalizmas būti susipažinusiam su teisine informacinių sistemų specialistų atsakomybe suvokti padoraus ir garbingo profesinio elgesio normas 1 paskaita
Kurso įvadas 3 dalis. Kurso programa 1 paskaita
Kurso programa Įvadas į programų sistemų inžineriją Profesionalizmo elementai literatūra, periodiniai leidiniai, dockmentai, konferencijos, Interneto resursai, e-mail sąrašai, organizacijos, apdovanojimai, istorija Menas, amatas, mokslas ir inžinerija Sistemos ir sistemų inžinerija Organizacijų inžinerija Pramoniniai programų kūrimo metodai Tai ne panacėja! 1 paskaita
Kurso programa Įvadas į programų sistemų inžineriją PSI nagrinėjimų sritis istoriniai aspektai ekonominiai aspektai priežiūra specifikavimas ir projektavimas grupinio darbo pobūdis 1 paskaita
Kurso programa Proceso samprata PS kūrimo procesas užsakovas, kūrėjas, vartotojas reikalavimų inžinerija ir specifikavimas projektavimas realizacija testavimas ir integravimas priežiūra demontavimas 1 paskaita
Kurso programa PS kūrimo procesas PSI procesai ir produktai objektinė paradigma UML ir unifikuotasis procesas unifikuotojo proceso darbų srautai ir stadijos PSI procesai ir produktai Idealizacijos 1 paskaita
Kurso programa Problemos su PĮ PSI procesų tobulinimas PSI paradigmos ir principai Dalykinės srities analizė Koncepcinis modeliavimas Objektinė analizė Reliacinis modeliavimas 1 paskaita
Kurso programa Reikalavimų inžinerija Moduliai ir moduliarizavimas Objektai Objektiniai karkasai Programų sistemų architektūros Objektinis projektavimas 1 paskaita
Kurso programa Programų sistemų gyvavymo ciklo modeliai Grupinis darbas Testavimas 1 paskaita
Resursai Vieno vadovėlio kursui nėra, tačiau kitą paskaitą aptarsime, kokiomis knygomis patartina naudotis Programų paketai Rational Rose MagicDraw Vision 1 paskaita
Papildoma medžiaga Albertas Čaplinskas. Laboratorinių darbų reikalavimai (Kursas: Programų sistemų inžinerija). Programų sistemų katedra, Matematikos ir informatikos fakultetas, Vilniaus universitetas, 2005 1 paskaita
Įrankiai Laboratoriniai darbai aprašomi panaudojant MS Word Į tekstą dedamos UML diagramos gali būti braižomos panaudojant bet kurią UML redagavimo sistemą 1 paskaita
Kitos Priemonės Jos nemokamai gaunamos internete Use Case Map Navigator (for URN/UCM) http://www.usecasemaps.org/tools/ucmnav/index.shtml Poseidon (for UML™) http://www.gentleware.com/ Eclipse (for Java and UML™) http://www.eclipse.org/ UML sistemos: 129 UML sistemų sąrašas http://12.164.75.2/productionACC/technologyCorner/accTechnologyArticles/umlToolsReview/UML-Tools-Review2.pdf 1 paskaita
Klausimai? 1 paskaita