Programų sistemų inžinerija 2014-02-12 Saulius Ragaišis, VU MIF saulius.ragaisis@mif.vu.lt
SWEBOK evoliucija Nuo SWEBOK Guide to the Software Engineering Body of Knowledge, 2004 Version. IEEE, 2004. prie SWEBOK v3.0. Guide to the Software Engineering Body of Knowledge. IEEE, 2014. http://www.swebok.org/ Tolimesnėse skaidrėse apžvelgiami struktūriniai pasikeitimai.
Mažiausiai pakitusios žinių sritys Programų sistemų reikalavimai (angl. Software Requirements) Reikalavimų įrankiai (angl. Software Requirements Tools) Programų sistemų testavimas (angl. Software Testing) Testavimo įrankiai (angl. Software Testing Tools) Programų sistemų priežiūra (angl. Software Maintenance) Priežiūros įrankiai (angl. Software Maintenance Tools) Programų sistemų konfigūracijos valdymas (angl. Software Configuration Management) Konfigūracijos valdymo įrankiai (angl. Software Configuration Management Tools) Programų sistemų projektų valdymas (angl. Software Engineering Management) Projektų valdymo įrankiai (angl. Software Engineering Management Tools) Programų sistemų kokybė (angl. Software Quality) Kokybės užtikrinimo įrankiai (angl. Software Quality Tools)
Minimaliai pakitusios žinių sritys Programų sistemų projektavimas (angl. Software Design) Projektavimo įrankiai (angl. Software Design Tools) + Vartotojo interfeiso projektavimas (angl. User Interface Desing) Programų sistemų kūrimas (angl. Software Construction) Kūrimo įrankiai (angl. Software Construction Tools) + Kūrimo technologijos (angl. Construction Technologies: 1. API Design and Use; 2. Object-Oriented Runtime Issues; 3. Parameterization and Generics; 4. Assertions, Design by Contract, and Defensive Programming; 5. Error Handling, Exception Handling, and Fault Tolerance; 6. Executable Models; 7. State-Based and Table- Driven Construction Techniques; 8. Runtime Configuration and Internationalization; 9. Grammar-Based Input Processing; 10. Concurrency Primitives; 11. Middleware; 12. Construction Methods for Distributed Software; 13. Constructing Heterogeneous Systems; 14. Performance Analysis and Tuning; 15. Platform Standards; 16. Test- First Programming)
Kiek daugiau pakitusi žinių sritis Programų sistemų kūrimo procesas (angl. Software Engineering Process) Programų kūrimo proceso įrankiai (angl. Software Engineering Process Tools) - Proceso įgyvendinimas ir keitimas (angl. Process Implementation and Change) Proceso vertinimas ir gerinimas (angl. Process Assessment and Improvement) Programinės įrangos (Proceso ir produkto) matavimai (angl. Software (Process and Product) Measurement) + Programinės įrangos gyvavimo ciklai (angl. Software Life Cycles: 1. Categories of Software Processes; 2. Software Life Cycle Models; 3. Software Process Adaptation; 4. Practical Considerations)
Esmingai pakitusi žinių sritis Programų sistemų modeliai (įrankiai) ir metodai (angl. Software Engineering Models (Tools) and Methods) - Įrankiai (angl. Tools) - Įvairios įrankių problemos (angl. Miscellaneous Tool Issues) + Modeliavimas (angl. Modeling) + Modelių tipai (angl. Types of Models) + Modelių analizė (angl. Analysis of Models) + Programų sistemų metodai (angl. Software Engineering Methods) Euristiniai metodai (angl. Heuristic Methods) Formalūs metodai (angl. Formal Methods) Prototipavimo metodai (angl. Prototyping Methods) Judrieji metodai (angl. Agile Methods)
Visiškai perstruktūrizuota žinių sritis Susijusių disciplinų žinios (angl. Knowledge Areas of the Related Disciplines) Kompiuterių inžinerija (angl. Computer Engineering) Kompiuterių mokslas (angl. Computer Science) Valdymas (angl. Management) Matematika (angl. Mathematics) Projektų valdymas (angl. Project Management) Kokybės valdymas (angl. Quality Management) Programų sistemų ergonomika (angl. Software Ergonomics) Sistemų inžinerija (angl. System Engineering) Naujos žinių sritys: Informatikos pagrindai (angl. Computing Foundations) Matematikos pagrindai (angl. Mathematical Foundations) Inžinerijos pagrindai (angl. Engineering Foundations)
Informatikos pagrindai Problem Solving Techniques Abstraction Programming Fundamentals Programming Language Basics Debugging Tools and Techniques Data Structure and Representation Algorithms and Complexity Basic Concept of a System Computer Organization Compiler Basics Operating Systems Basics Database Basics and Data Management Network Communication Basics Parallel and Distributed Computing Basic User Human Factors Basic Developer Human Factors Secure Software Development and Maintenance
Matematikos pagrindai Set, Relations, Functions Basic Logic Proof Techniques Basics of Counting Graphs and Trees Discrete Probability Finite State Machines Grammars Numerical Precision, Accuracy, and Errors Number Theory Algebraic Structures
Inžinerijos pagrindai Empirical Methods and Experimental Techniques Statistical Analysis Measurement Engineering Design Modeling, Simulation, and Prototyping Standards Root Cause Analysis
Naujos žinių sritys Programų sistemų inžinerijos profesinė praktika (angl. Software Engineering Professional Practice) Profesionalumas (angl. Professionalism) Grupės dinamika ir psichologija (angl. Group Dynamics and Psychology) Komunikavimo įgūdžiai (angl. Communication Skills)
Naujos žinių sritys (2) Programų sistemų inžinerijos ekonomika (angl. Software Engineering Economics) Programų sistemų inžinerijos ekonomikos pagrindai (angl. Software Engineering Economics Fundamentals) Gyvavimo ciklo ekonomika (angl. Life Cycle Economics) Rizika ir neapibrėžtumas (angl. Risk and Uncertainty) Ekonominiai analizės metodai (angl. Economic Analysis Methods) Praktiniai aspektai (angl. Practical Considerations)
Klausimai?