Programų sistemų inžinerija

Similar documents
ĮMONĖS KULTŪROS ĮTAKA KOKYBĖS VADYBAI

TRANSLATION STRATEGIES IN THE PROCESS OF TRANSLATION: A PSYCHOLINGUISTIC INVESTIGATION

ŠVIETIMAS: politika, vadyba, kokyb. EDUCATION Policy, Management and Quality. ОБРАЗОВАНИЕ: политика, менеджмент, качество

IMPLEMENTATION OF THE EUROPEAN LANGUAGE PORTFOLIO IN LITHUANIA: PROBLEMS AND IMPLICATIONS

Bibliografijos rodyklė ( )

Computerised Experiments in the Web Environment

Tatjana Bulajeva, Lilija Duoblienė, Vilija Targamadzė Transformation of university: towards pragmatism and competence based education

Idealistinio realizmo ugdymo paradigma (minint akad. prof. S. Šalkauskio gimimo 115-ąsias metines)

Building Text Corpus for Unit Selection Synthesis

VILNIUS UNIVERSITY JŪRATĖ KUPRIENĖ

PROCESS USE CASES: USE CASES IDENTIFICATION

PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

ISSN MYKOLO ROMERIO UNIVERSITETAS JURISPRUDENCIJA DARBO TEISĖS AKTUALIJOS. Mokslo darbai (90) Vilnius

Specification of the Verity Learning Companion and Self-Assessment Tool

Gyvenimo aprašymas SPECIALIZACIJOS ARBA AKADEMINĖS PAREIGOS

Intelligent tutoring system for real estate management

The Seven Habits of Effective Iterative Development

Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

Implementing a tool to Support KAOS-Beta Process Model Using EPF

A Context-Driven Use Case Creation Process for Specifying Automotive Driver Assistance Systems

Pragmatic Use Case Writing

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

IST 649: Human Interaction with Computers

Introducing New IT Project Management Practices - a Case Study

UML MODELLING OF DIGITAL FORENSIC PROCESS MODELS (DFPMs)

Deploying Agile Practices in Organizations: A Case Study

Class Responsibility Assignment (CRA) for Use Case Specification to Sequence Diagrams (UC2SD)

Experiences Using Defect Checklists in Software Engineering Education

Teaching Tornado. From Communication Models to Releases. Stephan Krusche. Department of Computer Science, Technische Universitaet Muenchen

Instructional Materials Survey For Compliance With Education Code Sections 1240 (i) And Elementary School Level

EXPERIMENTAL CORPUS OF THE LITHUANIAN LOCAL DIALECT OF PUŃSK IN POLAND. EXAMPLES OF THE LEXICAL AND SEMANTIC ANNOTATION

Problem and Design Spaces during Object-Oriented Design: An Exploratory Study

ebusiness Technologies Spring 2000 Syllabus

COURSE SYNOPSIS COURSE OBJECTIVES. UNIVERSITI SAINS MALAYSIA School of Management

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Scott Foresman Addison Wesley. envisionmath

ATW 202. Business Research Methods

SAM - Sensors, Actuators and Microcontrollers in Mobile Robots

Colossians Study Guide Executable Outlines

Student Information System. Parent Quick Start Guide

Towards a Mobile Software Engineering Education

CONCEPT MAPS AS A DEVICE FOR LEARNING DATABASE CONCEPTS

Improving software testing course experience with pair testing pattern. Iyad Alazzam* and Mohammed Akour

MSc student at Department of the Built Environment. Ir. Mariëtte Heijman Coordinator MSc Programs

An OO Framework for building Intelligence and Learning properties in Software Agents

Evolutive Neural Net Fuzzy Filtering: Basic Description

INSTRUCTIONAL MATERIALS SURVEY ELEMENTARY SCHOOL LEVEL RLA/ELD WORKSHEET

A systems engineering laboratory in the context of the Bologna Process

Pair Programming: When and Why it Works

Funny Elementary School Skits

Online Marking of Essay-type Assignments

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

New Directions on Agile Methods: A Comparative Analysis

EuSEC nd European Systems Engineering Conference. Systems Engineering - A Key to Competitive Advantage for All Industries.

English English 1,2,3,4 Textbooks used as a resource Using new curriculum - building novel library editions. rbooks - consumables

Answer Key Applied Calculus 4

Curriculum Vitae IMAD A. ELHAJ

An Approach for Creating Sentence Patterns for Quality Requirements

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

PH.D. IN COMPUTER SCIENCE PROGRAM (POST M.S.)

Architektūros studijos Vilniaus universitete metais. Vilnius: Vilniaus dailės akademijos leidykla, 2009.

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

Principles Of Macroeconomics Case Fair Oster 10e

Control Tutorials for MATLAB and Simulink

Answers To Managerial Economics And Business Strategy

FIN 448 Fundamental Financial Analysis

FINS3616 International Business Finance

Lietuvių kalba 11, 2017, ISSN: X

University of Illinois

Yabisi Santillana Social Studies 5

Learning Methods for Fuzzy Systems

Msu Celp C2 Answers Betsis

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

KUTZTOWN UNIVERSITY KUTZTOWN, PENNSYLVANIA DEPARTMENT OF SECONDARY EDUCATION COLLEGE OF EDUCATION

RANKING AND UNRANKING LEFT SZILARD LANGUAGES. Erkki Mäkinen DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A ER E P S I M S

ADDIE MODEL FOR DEVELOPMENT OF E-COURSES

A Model to Detect Problems on Scrum-based Software Development Projects

McGraw-Hill Connect and Create Built by Blackboard. Release Notes. Version 2.3 for Blackboard Learn 9.1

Improving Advanced Learners' Communication Skills Through Paragraph Reading and Writing. Mika MIYASONE

Who s on First. A Session Starter on Interpersonal Communication With an introduction to Interpersonal Conflict by Dr. Frank Wagner.

Managerial Economics 12th Edition Answers

A 3D SIMULATION GAME TO PRESENT CURTAIN WALL SYSTEMS IN ARCHITECTURAL EDUCATION

GIS 5049: GIS for Non Majors Department of Environmental Science, Policy and Geography University of South Florida St. Petersburg Spring 2011

Course Syllabus. Alternatively, a student can schedule an appointment by .

SYLLABUS: RURAL SOCIOLOGY 1500 INTRODUCTION TO RURAL SOCIOLOGY SPRING 2017

CRC cards to support the development and maintenance of product configuration systems

MKT ADVERTISING. Fall 2016

PAST EXPERIENCE AS COORDINATION ENABLER IN EXTREME ENVIRONMENT: THE CASE OF THE FRENCH AIR FORCE AEROBATIC TEAM

Hongyan Ma. University of California, Los Angeles

Web-based Learning Systems From HTML To MOODLE A Case Study

Effects of Classroom Relationships Between Students and Teachers on Emotional Development of Elementary School Students

National Standards for Foreign Language Education

How to Stay COOL When Things Heat UP!

The Challenges Associated with Relying on CAPI Interviewers to Implement Novel Field Procedures

AC : DESIGNING AN UNDERGRADUATE ROBOTICS ENGINEERING CURRICULUM: UNIFIED ROBOTICS I AND II

Welcome Master Students!

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

BUILD-IT: Intuitive plant layout mediated by natural interaction

Languages. Languages. Teachers Handbook GCSE French (J730) / German (J731) / Spanish (J732) Version 1 September 2012

Transcription:

Programų sistemų inžinerija 1paskaita Įvadas, reikalavimai Prof. dr. Dalius Mažeika Dalius.Mazeika@vgtu.lt 1

Dėstytojai Teorija Prof. dr. Dalius Mažeika Informacinių sistemų katedros vedėjas e-paštas Dalius.Mazeika@vgtu.lt Tel. 2744917 http://dma.vgtu.lt Pratybos INf 09 doc.dr. Algirdas Laukaitis ITPf 10/1 doc.dr. Justas Trinkūnas Skaidrės paruoštos remianti prof. A.Čaplinsko medžiaga ir Jan Sommerville knygos Software Engineering 9 medžiaga. 2

Įvadas į kursą Paskaitos planas 1 dalis. Trumpai apie kursą Tikslai, užduotys, grupinis darbas, tipinės problemos 2 dalis. Kurso turinys 3 dalis. Trumpas įvadas 3

Apie kursą Programų sistemų inžinerijos nagrinėjimų objektas ilgalaikiai didelės apimties profesionalūs (ne mėgėjiški) programinės įrangos kūrimo projektai. Ji nagrinėja tokių projektų: 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 vadybos klausimus projektų kainos vertinimo būdus 4

Kurso tikslai (1) Supažindinti kaip galima laiku ir su tam tikrais resursais 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 reikalavimų specifikavimu programų projektavimu, programų realizavimu (kūrimu, kodavimu), programų testavimu 5

Kurso tikslai (tęsinys) programų priežiūra ir tobulinimu, Supažindinti su svarbiausiais programų inžinerijos metodais, naudojamais kiekvienoje iš stadijų Išmokyti kaip taikyti šiuos metodus praktiškai (konkrečiame grupiniame projekte). 6

Kurso tikslai (tęsinys) Pateikti šias technines žinias: Kas tai yra modeliavimas UML (Unified Modeling Language) Apie svarbiausius modeliavimo metodus: Užduočių modeliavimą Objektinį modeliavimą Statinį ir dinaminį modeliavimą 7

Kurso tikslai (4) 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 gyvavimo ciklo samprata Proceso ir produkto, veiklos skirtumai Skirtingi programų gyvavimo ciklo modeliai 8

Užduotys Grupinis projektas: Grupinis projektas susideda iš keturių dalių: Verslo tikslų ir poreikių specifikacija; Koncepcinis verslo modelis; Programų sistemos reikalavimų specifikacija; Programų sistemos eskizinis projektas. Pirmi trys darbai daromi ir ginami kaip laboratoriniai darbai. Kiekviena grupė kiekvieno laboratorinio darbo rezultatus pristato žodžiu ir raštu. Ketvirtas darbas daromas kaip kursinis darbas. Jis taip pat pristatomas žodžiu ir raštu. Neapsigynus bent vieno laboratorinio darbo arba kursinio darbo, egzamino laikyti neleidžiama. 9

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 Nesurinkus už atsakymus į klausimus 3 balų (iš 10 galimų) egzaminas neužskaitomas. Kursinis darbas vertinamas atskiru pažymiu. 10

Grupinio projekto tikslai Išugdyti tokius gebėjimus: 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 nuomonę. 11

Grupinis projektas Grupės dydis: 4 studentai. 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ą. 12

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 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. 13

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. 14

Patarimas Grupinis projektas Pirmą reikalaujamo dokumento versiją parengti bent 3 savaitėm prieš terminą, kad turėtumėte laiko jį aptarti su dėstytoju ir pataisyti. Darbų pristatymas vyks pratybų laiku. Kiekvienai grupei darbui pristatyti skiriama 10-12 minučių. Patarimai kaip rengti prezentaciją pateikti kitoje skaidrėje. 15

Grupinis projektas http://www.cs.wisc.edu/~markhill/conference-talk.html http://www.cgd.ucar.edu/cms/agu/scientific_talk.html http://www.tf.unikiel.de/matwis/amat/elmat_en/kap_1/advanced/t1_2_1.html#_du m_4 http://www-ics.acs.i.kyotou.ac.jp/~yy/papers/howtoprepareyourpresentation3.pdf http://www.wittcom.com/how_to_prepare_a_presentation.htm http://www.cug.org/5- publications/presentatiopubsguides/pages/slide_prep.html http://www.lakaw.com/2007/11/how-to-prepare-best-slidepresentation.html 16

Įrankiai Laboratoriniai darbai aprašomi panaudojant MS Word ar kitas teksto redaktorius. Į tekstą dedamos UML diagramos gali būti braižomos panaudojant bet kurią UML redagavimo sistemą, pavyzdžiui, MagicDraw http://www.magicdraw.com/ Microsoft Visio http://office.microsoft.com/en-us/visio/ Rational Rose http://www-01.ibm.com/software/awdtools/developer/rose/ 17

Kitos naudingos priemonės Nemokami įrankiai internete Poseidon (for UML ) - http://www.gentleware.com/products.html Eclipse (for Java and UML ) http://www.eclipse.org/ UML sistemos: UML sistemų sąrašas http://en.wikipedia.org/wiki/list_of_uml_tools Use Case Map Navigator (for URN/UCM) http://www.usecasemaps.org/tools/ucmnav/index.shtml 18

Klausimai? 19

Kurso turinys 20

Kurso programa Įvadas į programų sistemų inžineriją (PSI) Menas, amatas, mokslas ir inžinerija Sistemos ir sistemų inžinerija Verslo inžinerija Organizacijų sistemų inžinerija Informacinių sistemų inžinerija Programinė įranga, programų sistemos, programų sistemų inžinerija 21

Kurso programa Įvadas į programų sistemų inžineriją Chroniška programavimo krizė Priklausomybių modelis Programinės įrangos kūrimas pramoniniais metodais Programinės įrangos kūrimas kaip pramonės šaka Pramoninis produkto pobūdis Darbo organizavimas Projektavimas, našumas, masinė gamyba, kokybės kontrolė Standartai 22

Kurso programa Įvadas į programų sistemų inžineriją Programinės įrangos kūrimas pramoniniais metodais Darbas pagal sutartis, dokumentavimas Technologinis procesas ir proceso inžinerija Projekto vadyba Kokybės užtikrinimas Esamų komponentų naudojimas Kiti aspektai Kodėl programų sistemų inžinerija neišsprendžia visų praktinių problemų 23

Kurso programa Įvadas į programų sistemų inžineriją (PSI) PSI kaip studijų disciplinos turinys PSI procesai ir artefaktai PSI idealizacijos PSI principai ir paradigmos Turinių atskyrimas, dekompozicija, juodoji dėžė, abstrakcija, unifikavimas, struktūrinimas, atvirumas, interfeiso komfortiškumas, metaforizavimas, reaktyvumas Kūrimas iš viršaus žemyn, kūrimas iš apačios aukštyn, riešuto paradigma, iteracinė paradigma, evoliucinio kūrimo paradigma, komponentinė paradigma, programų šeimų inžinerija, karkasai, sintezės paradigma 24

Kurso programa Įvadas į reikalavimų inžineriją Poreikių analizė Operaciniai poreikiai (vartotojo reikalavimai) Kaip yra nustatomi operaciniai poreikiai Misija, vizija, silpnųjų ir stipriųjų pusių analizė, išorinė ir vidinė analizė, verslo sėkmės matai, verslo tobulinimo strategijos, verslo procesų reinžinerija, tikslų medis, operaciniai poreikiai, vartotojo reikalavimai, sistemos naudojimo scenarijus, veiksmų planas, įgyvendinamumo analizė, konteksto analizė ir konteksto diagrama, sistemos teikiamos naudos diagrama 25

Kurso programa Modeliavimas ir UML Ką vadiname modeliu, abstraktieji modeliai, kam reikia modelių, modelių lygmenys, kas vaizduojama modelyje; Kas tai yra UML, diagramos sistemos elgsenai aprašyti, diagramos sistemos statinei struktūrai aprašyti, diagramos sistemos dinamikai aprašyti, diagramos sistemos realizacijai aprašyti. 26

Kurso programa Užduočių (sistemos panaudojimo būdų) modeliavimas Ką vadiname užduotimis, ką jos primena, kaip organizuojama užduočių visuma, kaip užduočių modeliavimas įterpiamas į reikalavimų inžinerijos procesą ir kaip jos aprašomos reikalavimų specifikacijoje, užduočių modeliai, pirminio agento vaidmuo, antriniai agentai, vidiniai agentai, už ką atsako agentas, pirminio agento tikslas, atkuriamieji veiksmai, sąveikos, sąveikų sekos ir scenarijai, užduoties galiojimo sritis, užduočių modelių hierarchijos, šablonai užduotims aprašyti, scenarijaus sprogimas, visų su viena užduotimi susijusių scenarijų susiejimas į vieną visumą. 27

Kurso programa Reikalavimų inžinerija Ką vadiname reikalavimu, reikalavimų nustatymas, reikalavimų rūšys, dėl ko verta formuluoti reikalavimus, gerai suformuluoto reikalavimo savybės: abstraktumas, išsamumas, tikslumas, vienareikšmiškumas, patikrinamumas, įgyvendinamumas, integruojamumas, lokalizuojamumas, trasuojamumas, unikalumas, glaustumas, suprantamumas Funkciniai ir nefunkciniai reikalavimai, dalykinis ir papildomas funkcionalumas, kaip formuluoti funkcinius reikalavimus, funkcinių reikalavimų specifikavimas, programų sistemos korektiškumas. Interfeiso ribojimai: užduočių formulavimo kalba, sąveikos reikalavimai, naudojimo paprastumas, naudojimo patogumas, ergonominiai reikalavimai 28

Reikalavimų inžinerija Kurso programa Veikimo ribojimai: tikslumas, patikimumas, gyvybingumas, robastiškumas, našumas Ekonominiai ribojimai: diegiamumas, aptarnaujamumas, prižiūrimumas, tiražuojamumas Politiniai ribojimai: duomenų ir programų apsauga.teisiniai ribojimai. ISO 9126 standartas. Reikalavimų anotavimas. Reikalavimų specifikacija, gerai parašytos specifikacijos savybės 29

Kurso programa Dalykinės srities analizė Dalykinės srities analizė. Analizės iš viršaus žemyn metodas. Sisteminis analitikas. Jo funkcijos. Šiuolaikinis duomenų apdorojimas. Funkcijų analizė. Procesų analizė. Užduočių analizė. Duomenų analizė. Interviu. Interviu tipai. Interviu sudėtinės dalys. Interviu tikslai. Rekomendacijos. Iš ko imti interviu? Kodėl būtina dokumentuoti interviu. Telefoninis interviu. Elektroninio pašto panaudojimas. Fokuso grupės. Apsilankymai darbo vietose. Kolektyvinis projektavimas ir kolektyvinė reikalavimų analizė. Prototipai. Reikalavimų vertinimas. Darnos analizė. Peržiūros. 30

Kurso programa Programų sistemų projektavimas ir testavimas Programų sistemos skaidymas į dalis. Sistemos hierarchija. Verslo modelio vaidmuo sistemos projektavime. Koncepcinis projektavimas. Eskizinis projektavimas. Detalusis projektavimas. Programų sistemos architektūra. Coad & Yourdon architektūra. Sistemos dekomponavimas:funkcinis dekomponavimas, objektinis dekomponavimas (OOSR, OOSD), funkcinis projektavimas ir objektinis projektavimas, paslaugomis grindžiama dekompozicija, užduotimis grindžiama dekompozicija, funkcinis projektavimas ir užduotimis grindžiamas projektavimas.. Reikalavimų lokalizavimas, nuleidimas žemyn ir trasavimas. Interfeisų nustatymas. Reikalavimų verifikavimas ir vertinimas (peržiūra,inspektavimas) 31

Kurso programa Programų sistemų projektavimas ir testavimas Projektavimo kokybės atributai: rišlumas, sankiba, sankiba ir paveldėjimas, projekto suprantamumas, projekto adaptyvumas, projekto adaptyvumas ir paveldėjimas Testavimas ir derinimas. Testavimo stadijos. Reikalavimai ir testavimas. Padengimas testais. Programų sistemų gyvavimo ciklo modeliai Programų sistemų gyvavimo ciklo modeliai (PSGCM): samprata, koduok ir atiduok modelis, krioklio modelis, prototipų naudojimas, išmetamieji prototipai, evoliucinis modelis, greitojo dalykinių programų kūrimo modelis, grupinio dalykinių programų kūrimo modelis, sinchronizuok ir stabilizuok modelis, pažingsninio kūrimo modelis, ekstremalusis programavimas, spiralinis modelis, formalaus sistemos kūrimo modelis, pakartotinas panaudojamumas, PSGCM reikalavimai. 32

Literatūra Vieno vadovėlio kursui nėra. Albertas Čaplinskas. Laboratorinių ir kursinio darbų reikalavimai (Kursas: Programų sistemų inžinerija). VGTU, 2009. Jan Somerville. Software Engineering. Edition 9. 2011. 33

Rekomenduojama literatūra Ian Sommerville. Software engineering, 9 edition, Addison Wesley; 2010. Vienas iš populiariausių (ir naujausių) PSI vadovėlių, kuriame 864 puslapiuose nagrinėjami (nors ir gana trumpai) beveik visi PSI aspektai, taip pat ir tie, kurie mūsų kurse nėra aptariami (aspektinė paradigma, paslaugų inžinerija ir kt.). Skaidres (8 leidimo) galima rasti http://www.comp.lancs.ac.uk/computing/resources/ians/se7/.../ppt/ch14.ppt 2 tema 34

2 tema 35

Rekomenduojama literatūra Martin Fowler, Kendall Scott. UML Distilled. Applying the Standard Object Modeling Language. 3 rd edition, Addison-Wesley, 2003 Pagrindinis šios knygos privalumas - trumpas ir gerai pateiktas UML pagrindinių ypatumų ir kalbos panaudojimo programų sistemų kūrimo procese aprašas. Aprašyti visi svarbiausieji UML diagramų tipai: paskirtis, žymėjimai, notacija Yra vertimas į rusų kalbą. Skaidres galima rasti: http://lyle.smu.edu/~devans/4345.html 2 tema 36

37

Rekomenduojama literatūra Joseph Schmuller. Sams Teach Yourself UML in 24 Hours, Complete Starter Kit. 3 rd edition, 2004 Pateiktos 24 paskaitos, žingsnis po žingsnio aiškinančios UML diagramų paskirtį ir sintaksę Daugiau kaip 50 000 žmonių mokėsi UML iš šios knygos (taip teigia leidykla) Skaidrės: http://www.cs.montana.edu/courses/351/currentlectures/cs351- Uml.pdf http://gemas.msh-paris.fr/dphan/lalonde/docs/jpmulleruml- DynamicModel.pdf 2 tema 38

39

Rekomenduojama literatūra Jos Warmer, Anneke Kleppe. Object Constraint Language, The: Getting Your Models Ready for MDA. Addison-Wesley Professional, 2003 Aiškina, kaip UML diagramas papildyti ribojimais OCL kalba, kaip generuoti iš tokių diagramų Java kodą ir kaip OCL kalba aprašyti transformacijas, reikalingas dirbant pagal MDA (model driven architecture) metodiką Antrąją knygos dalį sudaro OCL kalbos žinynas (OCL išraiškų kontekstas, basiniai elementai, vartotojo apibrėžti tipai, kolekcijos) Skaidrės: www.csee.umkc.edu/~leeyu/class/cs590l-04/quiz/ocl.pdf www.cs.bgu.ac.il/~oosd051/uploads/lior-limonad...ocl/ocl.ppt wire.cesar.org.br/slides/ramalhoprojectmodelog.ppt conferences.embarcadero.com/article/.../32442_09301219_s.ppt 2 tema 40

41

Rekomenduojama literatūra Grady Booch, James Rumbo, Ivar Jacobson. The Unified Modeling Language. User Guide. Addison- Wesley, 1999 Bazinių UML kalbos savybių vadovėlis, parašytas tos kalbos autorių Apima statinį, dinaminį ir architektūros modeliavimą Galima rasti skaidres: http://courses.softlab.ntua.gr/softeng/tutorials/ 2 tema 42

43

Rekomenduojama literatūra Wendy Boggs, Michael Boggs. Mastering UML with Rational Rose. SYBEX, 1999 Skirtas asmenims, turintiems programavimo Visual Basic, C++, Java ar kitomis programavimo kalbomis patirtį Aprašo konkretaus įrankio (Rational Rose) naudojimą Akcentuojami kodavimo klausimai, pateikta daug praktinių pavyzdžių Skaidres http://cc.ee.ntu.edu.tw/~farn/courses/se/ http://ntur.lib.ntu.edu.tw/bitstream/246246/2006092712292291459 3/1/rationalrose.pdf 2 tema 44

45

Rekomenduojama literatūra Stephen R. Schach. Object-Oriented and Classical Software Engineering. 6 th edition, McGraw-Hill Higher Education, 2005 Įvadinis programų sistemų inžinerijos kursas Įveda bazines sąvokas, nagrinėja tiek tradicines, tiek ir objektines programų sistemų inžinerijos metodikas 2 tema 46

47

Rekomenduojama literatūra Stephen R. Schach. Classical and Object-Oriented Software Engineering with UML and Java. 4 th edition, McGraw-Hill Higher Education, 1999 Įvadas į programų sistemų inžinerijos procesą (sistemų kūrimo technologiją) UML nagrinėjama labai paviršutiniškai, ryšys su Java iš tiesų tik deklaruojamas (nieko naudingo šiuo klausimu knygoje pateikta nėra) Skaidres galima rasti http://www.mhhe.com/engcs/compsci/schach/javabook.mhtml, http://www.mhhe.com/engcs/compsci/schach5/ppt.mhtml, http://www.cpe.ku.ac.th/~sk/204541/intro-to-software-engineering.pdf 2 tema 48

49

Rekomenduojama literatūra Stephen R. Schach. Introduction to Object- Oriented Analysis and Design with UML and the Unified Process. McGraw-Hill Higher Education, 2004 Objektiniai PSI metodai įvedami tiesiogiai, nesiejant jų su tradiciniais metodais, nereikalaujama nei Java, nei C++ žinojimo UML vartojama visiems knygoje pateiktiems pavyzdžiamas aprašyti. 2 tema 50

2 tema 51

Rekomenduojama literatūra Alistair Cockburn. Writing Effective Use Cases. Addison-Wesley, 2000 Labai svarbi knyga. Dėmesys sutelktas į užduočių modeliavimą tekstiniais aprašais (t.y. UML diagramos nenagrinėjamos) Daugybė patarimų, kaip modeliuoti užduotis ir valdyti projektus, skirtus daug užduočių įgyvendinančioms sistemoms kurti Knygą galima rasti http://seal.ifi.uzh.ch/fileadmin/user_filemount/vorlesungs_folien/sopra/ss05/w euc_extract.pdf Skaidrės http://www.wirfs-brock.com/pdfs/art_of_writing_use_cases.pdf 2 tema 52

53

Rekomenduojama literatūra Alistair Cockburn. Agile Software Development. Addison-Wesley Professional, 2002 Traktuoja programų sistemų kūrimą daugiau kaip meną negu kaip mokslą. Skirta ne tiems, kurie ieško knygos pažingsniui įvedančios į problematiką. Tai daugiau knyga nagrinėjanti praeityje padarytas klaidas ir kalbanti apie tai, kaip tas klaidas reikėtų taisyti. 2 tema 54

2 tema 55

Rekomenduojama literatūra Kurt Bittner, Ian Spence. Use Case Modeling. Addison- Wesley, 2002 Aptaria užduoties modelio sampratą ir nagrinėja gero užduočių modeliavimo ypatumus Pagrindinis dėmesys skirtas tam, kaip nustatyti visus veikiančiuosius asmenis, kurie naudosis kuriama programų sistema, ir kaip aprašyti bei modeliuoti jų atliekamas užduotis Autoriai yra iš Rational Software (šiuo metu IBM padalinys) Skaidrės https://cs.senecac.on.ca/~tmckenna/sys366/sys366_week10-1r.ppt https://cs.senecac.on.ca/~tmckenna/sys366/sys366-10-2.ppt www.nf-rug.com/attachments/cucd.ppt 2 tema 56

2 tema 57

Rekomenduojama literatūra Mark Priestley. Practical Object-Oriented Design with UML. 2 nd edition. Higher Education, 2004, ISBN: 0077103939 Praktinis objektinių sistemų projektavimo UML kalba įvadas Panaudodama pavyzdžius, knyga išsamiai nagrinėja modeliavimo technikas ir notacijas Pateikia pavyzdžius Java kalba Skaidrės http://users.wmin.ac.uk/~priestm/pooduml/support/index.html 2 tema 58

2 tema 59

Rekomenduojama literatūra Dean Leffingwell, Don Widrig. Managing Software Requirements: A Use Case Approach, Second Edition. Addison-Wesley, 2003 Parodo, kaip analitikai ir projektuotojai, naudodami įvairias užduočių modeliavimo technikas, gali efektyviai nustatyti kuriamos programų sistemos reikalavimus 2 tema 60

2 tema 61

Rekommenduojama literatūra Frank Armour, Granville Miller. Advanced Use Case Modeling: Software Systems. Addison-Wesley, 2001 Įveda bazines sąvokas, vartojamas nustatant ir modeliuojant užduotis, kurias turi vykdyti kuriama programų sistema Aiškina sudėtingoms užduotims modeliuoti reikalingas sąvokas, nagrinėja užduočių modeliavimo proceso diegimo klausimus, viso sistemos gyvavymo ciklo kontekste aptaria įvairius kitus su užduočių modeliavimo susijusius klausimus 2 tema 62

2 tema 63

Rekommenduojama literatūra Daryl Kulak, Eamonn Guiney. Use Cases: Requirements in Context, Second Edition. Addison- Wesley, 2003 Aprašo kaip, panaudojant užduočių modeliavimo technikas, atskleisti ir apibrėžti kuriamos programų sistemos reikalavimus. Aptaria tipines reikalavimų formulavimo problemas ir trumpai įveda užduočių modeliavimo tiek tekstinais aprašais, tiek ir UML diagramomis bazinius elementus. 2 tema 64

2 tema 65

Rekommenduojama literatūra Timothy C. Lethbridge and Robert Laganière. Object- Oriented Software Engineering: Practical Software Development using UML and Java. McGraw Hill, 2001 Skaitytojams, mokantiems programuoti objektiškai ir norintiems susipažinti su programų sistemų inžinerijos pagrindais, įskaitant didelių sistemų projektavimą UML kalba Apima reikalavimų formulavimą, modeliavimą, tipinius projektavimo sprendimus, projektavimą, architektūras, testavimą ir projektų vadybą. Skaidres galima rasti http://www.site.uottawa.ca/school/research/lloseng/ 2 tema 66

2 tema 67

Rekommenduojama literatūra Hans van Vliet. Software Engineering, Principles and Practice, 2nd edition. John Wiley and Sons, 2000 Vadovėlis, nagrinėjantis didelių sistemų projektavimo ypatumus, grupinio darbo principus, programų sistemų architektūras, objektinę analizę ir objektinį projektavimą Geras skyrius apie programų sistemų priežiūrą Prieduose pateikti kai kurie IEEE programinės įrangos dokumentavimo standartai 2 tema 68

2 tema 69

Rekommenduojama literatūra Bernd Bruegge, Allen H. Dutoit. Object-Oriented Software Engineering: Using UML, Patterns and Java. 2 nd edition, Prentice Hall, 2003 Vadovėlis, skirtas objektinės programų sistemų inžinerijos praktiniams klausimams Medžiaga pateikiama nuosekliai, žingsnis po žingsnio, nereikalaujant jokių pradinių žinių Mokantis pagal šį vadovėlį, visa studentų grupė (kursas) daro vieną bendrą realų projektą (t.y. dirba pagal kontraktą su realiu užsakovu) Skaidres galima rasti http://he- cda.wiley.com/wileycda/higheredtitle/productcd- 0471322083.html 2 tema 70

2 tema 71

Rekomenduojama literatūra Craig Larman. Applying UML and Patterns. An introduction to Object-Oriented Analysis. Prentice Hall, 2000 Ne pradedantiesiems. Reikalaujamos žinios: objektinio programavimo patirtis; bazinės objektinių technologijų sąvokos Apima reikalavimų formulavimą, analizę, projektavimą ir kodavimą (pagrindinis dėmesys skirtas projektavimui, kuris iliustruojamas ištisiniu, per visą knygą einančiu pavyzdžiu) Aptariama daug naujausių mokslo tyrimų programinės įrangos projektavimo srityje rezultatų. Skaidres galima rasti http://web.njit.edu/~gblank/cis683/ 2 tema 72

2 tema 73

Rekomenduojama literatūra I. Jacobson, G. Booch, J. Rumbaugh. The Unified Software Development Process. Addison Wesley Longman, Inc., 1999 Unifikuotojo Proceso apžvalga, akcentuojamas modeliavimas UML kalba. Aprašyti modernūs programinės įrangos kūrimo standartai. Pateikta konkrečių pavyzdžių iš bankininkystės ir inventoriaus apskaitos sričių.

2 tema 75

Rekomenduojama literatūra Per Kroll, Philippe Kruchten. The Rational Unified Process Made Easy: A Practitioner's Guide to Rational Unified Process. Addison Wesley, 2003 Glaustas moderniųjų programinės įrangos kūrimo praktikų vadovas Aptaria pagrindinius RUP (Rational Unified Process) principus ir parodo kaip juos taikyti įvairaus dydžio projektams

2 tema 77

Rekomenduojama literatūra Ian Graham. Object-Oriented Methods: Principles and Practice. 3 rd edition. Addison-Wesley Professional, 2001 Nuo konkrečios programavimo kalbos nepriklausantis objektinės metodikos vadovas, kuriame aprašyti naujausi metodai ir technologijos Apžvelgia bazines sąvokas, aptaria objektinio programavimo, projektavimo ir analizės bei objektinių duomenų bazių privalumus ir trūkumus 2 tema 78

2 tema 79

Rekommenduojama literatūra Eric J. Braude. Software Engineering: An Object- Oriented Perspective. John Wiley and Sons, 2001 Vieno semestro programų sistemų inžinerijos kursas 4 kurso bakalauro arba 1 kurso magistrų studijų studentams Derina praktinę patirtį su naujausiais mokslo tyrimais Per visą knygą einantis pavyzdys, realizuotas panaudojant IEEE standartus, daug kitų pavyzdžių, padedančių studentams suprasti kokybės veiksnių, geros reikalavimų specifikacijos ir projektavimo bei projektų vadybos metodų svarbą. 2 tema 80

2 tema 81

Rekomenduojama literatūra Carlo Ghezzi, Mehdi Jazayeri and Dino Mandrioli. Fundamentals of Software Engineering. 2 nd edition, Pearson Education (Addison Wesley), 2003 rinktiniai, pagilinti programų sistemų inžinerijos skyriai, apimantys formalaus ir neformalaus programų sistemų kūrimo principus ir metodus Studentams skirtą medžiagą galima rasti http://www.infosys.tuwien.ac.at/se-book/ 2 tema 82

2 tema 83

Rekommenduojama literatūra Ali Behforooz and Frederick J.Hudson. Software engineering fundamentals, Oxford University Press, 1996. Nagrinėja programų sistemų kūrimą kaip inžinerinį procesą; apibrėžia programinės įrangos kokybės matus (atributus), parodo kaip matuoti programų sistemų savybes bei kaip panaudoti matavimų rezultatus, kuriant programų sistemas. 2 tema 84

Įvadas 85

Programų kūrimo projektų realybė 86

Programų inžinerija Išsivysčiusių šalių gyvenimas neatsiejamas nuo programų sistemų. Programų pagalba valdomi veiklos procesai, gamybos procesai, įrenginiai ir t.t. Programų inžinerija siejama su teorija, metodais ir įrankiais, skirtais profesionaliam programų kūrimui, siekiant atlikti projektą laiku ir už nustatytą kainą.

Programinė įranga Programinė įranga nesusinešioja, bet blogėja Programinė įranga projektuojama, bet negaminama Programinė įranga yra produktas ir tuo pačiu priemonė informacijos gavimui Vartotojai programinę įrangą vertina tik pagal tai ar ji išpildo jų lūkesčius ir ar padeda lengviau spręsti problemas Programuotojai yra morališkai įsipareigoję kurti patikimą ir draugišką žmonėms programinę įrangą Programinę įrangą sudaro programos, dokumentacija ir duomenys Programinė įrangą projektuoja ir kuria programuotojai

Mitai apie programavimą Kad yra puikūs programinės įrangos kūrimo standartai ir automatizavimo priemonės Kad parašius programą programuotojo darbas tuo ir baigiasi Kad programuotojai su džiaugsmu ir entuziazmu kuria programų dokumentaciją Kad visuomet galima paspartinti darbus pritraukus daugiau programuotojų

Programų sistemų kaina Programų sistemų kaina dažnai didesnė nei kompiuterinės įrangos. Didesnę programų kainos dalį sudaro programų palaikymas (priežiūra, ekspoatacija) Programų inžinerijos paskirtis užtikrinti ekonomiškai naudingą programų kūrimo procesą.

Programų tipai (pagal užsakymą) 1. Bendros paskirties programos: Tai savarankiškos programų sistemos (Stand-alone systems) parduodamos atskirai ir nepriklausomai (MS Windows, MS Office, AutoCad, Corel, Acrobat). Programos reikalavimų specifikaciją sudaro programų kūrėjai. 2. Užsakomosios programos Programų sistemos sukurtos pagal užsakymą. (eismo valdymo sistema, lėktuvo bilietų pardavimo sistema, automobilio kompiuterio valdymo sistema). Programos reikalavimų specifikaciją sudaro programų užsakovai. Jie taip pat apibrėžia pakeitimus.

Programų tipai (pagal panaudojimą) Savarankiškos programos (stand-alone) Tai programos, kurios veikia lokaliame kompiuteryje, joms nereikalingas komp.tinklas, jose realizuotas pilnas funkcionalumas. Interaktyvios tranzakcinės programos Tai programos, kurios vykdomos nutolusiame kompiuteryje ir pasiekiamos per PC ar terminalą. Tai apima ir web tipo programos pvz. e-komecija. Įterptinės (embedded) sistemos Tai programos, kurios valdo aparatūrinius įrenginius. Pagal skaičių tai gausiausi programų sistemų dalis.

Programų tipai (pagal panaudojimą) Grupinio duomenų apdorojimo sistemos Tai programos, kurių paskirtis apdoroti didelį duomenų kiekį ir patiekti atitinkamą atsakymą. Žaidimai Tai programos, naudojamos asmeniniams poreikiams siekiant suteikti sau malonumo. Modeliavimas ir simuliacija Moksliniams tyrimams skirtos programos, kuriomis mokslininkai modeliuoja fizikinius ar inžinerinius uždavinius. 93

Populiarūs klausimai Klausimai What is software? What are the attributes of good software? What is software engineering? What are the fundamental software engineering activities? What is the difference between software engineering and system engineering? Atsakymai Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. Software engineering is an engineering discipline that is concerned with all aspects of software production. Software specification, software development, software validation and software evolution. System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process. 94

Programų charakteristikos Charakteristikos Palaikymas (Maintainability) Patikimumas ir saugumas (Dependability and security) Efektyvumas (Efficiency) Aprašymas Programinė įranga turėtų būti parašyta taip, kad ją galima būtų keisti, besikeičiančius klientų poreikiams. Šis atributas yra ypač aktualus, nes programinės įrangos pakeitimai yra neišvengiami besikeičiančioje verslo aplinkoje. Programinės įrangos patikimumas apima įvairias charakteristikas, įskaitant saugumą ir saugą. Patikima programinė įranga neturėtų sukelti fizinės ar ekonominės žalos sistemos gedimo atveju.. Programinė įranga neturėtų neracionaliai naudoti sistemos išteklius: atmintį, procesorių. Priimtinumas (Acceptability) Programinė įranga turi būti priimtina vartotojams, kuriems ji sukurta. Tai reiškia, kad ji turi būti suprantama, patogi naudoti ir suderinama su kitomis sistemomis. 95

Programų inžinerija Programų inžinerija tai inžinerijos šaka, kuri apibrėžia visus programų kūrimo aspektus nuo sistemų specifikavimo iki palaikymo ir tobulinimo. Inžinerinės disciplinos savybės: Naudoja teorines žinias ir metodus problemų sprendimui, įvertinant organizacinius ir finansinius apribojimus. Programų inžinerija apima visus programų kūrimo aspektus: Techninius aspektus Programų kūrimo metodus ir įrankius Projektų valdymą 96

Programų gamybos proceso ciklas Programų specifikavimas užsakomas ir inžinierius apsibrėžia ką programa turi daryti ir nustato apribojimus programos viekimui. Programų kūrimas programos projektuojamos ir programuojamos. Programų vertinimas ir patvirtinimas tikrinama ar programos ar atitinka užsakovo reikalavimus Programų tobulinimas, evoliucionavimas programos modifikuojamos pagal naujus užsakovo ar rinkos poreikius. 97

Programų kūrimo proceso ciklas 98

Programų inžinerijos naudojimas Nėra vieno universalaus programų kūrimo proceso ar metodikos tinkančio visiems programų kūrimo atvejams. Programų inžinerijos metodai ir įrankiai naudojami priklausomai nuo programos tipo, naudotojų reikalavimų, programuotojų įmonės kvalifikacijos ir brandumo. 99

Programų inžinerijos pagrindai Programų inžinerijos fundamentalūs principai, naudojami visose programų sistemose, nepriklausomai nuo jų kūrimo metodų: Programos turi būti kuriamos remiantis valdomu ir suprantamu kūrimo procesu. Patikimumas ir greitaveika yra svarbi visoms programoms. Reikalavimai programai ir reikalavimų specifikacija turi būti aiškūs ir suprantami (turime supranti, ką programa turi daryti). Jei galima, reikia modifikuoti gerai veikiančias egzistuojančias programas, nei kurti naujas.

Įvado apibendrinimas Programų inžinerija yra inžinerijos disciplina, kuri apima visus programinės įrangos gamybos aspektus. Esminiai programų atributai galimybė keisti, patikimumas ir saugumas, efektyvumas, priimtinumas. Pagrindinės programų gamybos proceso veiklos: specifikavimas, kūrimas, vertinimas, tobulinimas. Fundamentiniai programų inžinerijos principai taikomos visoms programų sistemoms.