Transcript Document
Programų sistemų inžinerija
Prof. Albertas Čaplinskas 2005
1 paskaita 1
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 2
Kurso įvadas
1 dalis. Trumpai apie kursą
1 paskaita 3
Dėstytojai
Prof. Albertas Čaplinskas – Darbo vieta: MII, Goštauto g. 12-410 – Telefonas: 2-62-61-07 – Kreiptis: Pirmadieniais 18-20 valandomis – Kompiuterinis paštas: [email protected]
Instruktoriai – Rimantas Kybartas, [email protected]
– Vaidas Giedrimas, [email protected]
– Asta Krupavičiūtė, [email protected]
1 paskaita 4
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 5
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 6
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 7
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 8
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 9
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 10
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 11
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 12
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 koordinavimą darbo vadovą, kuris ir yra atsakingas už grupės narių darbo 1 paskaita 13
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 14
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 15
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 16
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 17
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 18
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 19
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 20
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 21
Kurso įvadas
2 dalis. Baigiamieji reikalavimai bakalaurams
1 paskaita 22
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 23
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 24
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 25
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 26
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 27
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 28
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 29
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 30
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 31
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 32
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 33
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 34
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 35
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 36
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 37
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 38
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 39
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 40
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 41
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 42
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 43
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 44
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 45
Baigiamieji reikalavimai bakalaurams •
Profesionalizmas
– būti susipažinusiam su teisine informacinių sistemų specialistų atsakomybe – suvokti padoraus ir garbingo profesinio elgesio normas 1 paskaita 46
Kurso įvadas
3 dalis. Kurso programa
1 paskaita 47
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 48
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 49
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 50
Kurso programa
• PS kūrimo procesas – objektinė paradigma – UML ir unifikuotasis procesas – unifikuotojo proceso darbų srautai ir stadijos • PSI procesai ir produktai • Idealizacijos 1 paskaita 51
Kurso programa
• Problemos su PĮ • PSI procesų tobulinimas • PSI paradigmos ir principai • Dalykinės srities analizė • Koncepcinis modeliavimas • Objektinė analizė • Reliacinis modeliavimas 1 paskaita 52
Kurso programa
• Reikalavimų inžinerija • Moduliai ir moduliarizavimas • Objektai • Objektiniai karkasai • Programų sistemų architektūros • Objektinis projektavimas 1 paskaita 53
Kurso programa
• Programų sistemų gyvavymo ciklo modeliai • Grupinis darbas • Testavimas 1 paskaita 54
Resursai
• Vieno vadovėlio kursui nėra, tačiau kitą paskaitą aptarsime, kokiomis knygomis patartina naudotis –
Programų paketai
• Rational Rose • MagicDraw • Vision 1 paskaita 55
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 56
Į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 57
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/accTechnolog yArticles/umlToolsReview/UML-Tools-Review2.pdf
1 paskaita 58
Klausimai?
1 paskaita 59