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