460-2069/02 – Selected Topics of Software Engineering (VPSI)

Gurantor departmentDepartment of Computer ScienceCredits4
Subject guarantorIng. Svatopluk Štolfa, Ph.D.Subject version guarantorIng. Svatopluk Štolfa, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year3Semestersummer
Study languageEnglish
Year of introduction2019/2020Year of cancellation
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
STO03 Ing. Svatopluk Štolfa, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2

Subject aims expressed by acquired skills and competences

The goal of the course Selected Topics of Software Engineering is to extend the students knowledge about software engineering by the specific knowledge especially in the field of software process measurement, software project management and construction of large software systems using various supporting tools and formal techniques.

Teaching methods

Lectures
Tutorials

Summary

In every computing application domain, professionalism, quality, schedule, and cost are critical to producing software systems. Because of this, the elements of software engineering are applicable to developing software in all areas of computing. A wide variety of software engineering practices have been developed and utilized since the need for a discipline of software engineering was first recognized. Many trade-offs between these different practices have also been identified. Practicing software engineers have to select and apply appropriate techniques and practices to a given development effort in order to maximize value. To learn how to do so, they study the elements of software engineering. This course introduces additional set of need to know knowledge for every software engineer the course is especialy concerned with software quality assurance, project management, large systems development and formal verification techniques.

Compulsory literature:

Pfleeger, Shari Lawrence, and Joanne M. Atlee. 2009. Software Engineering: Theory and Practice: Prentice Hall, ISBN 0136061699. Pressman, Roger S. 2010. Software Engineering : A Practitioner's Approach. 7th ed. New York: McGraw-Hill Higher Education, ISBN 9780073375977. Sommerville, Ian. 2010. Software Engineering. 9th ed, International Computer Science Series. Harlow: Addison-Wesley, ISBN 978-0137035151.

Recommended literature:

Watts Humphrey’s Introduction to the Team Software Process Armando Fox and David Patterson ,Engineering Software as a Service: An Agile Approach Using Cloud Computing, Strawberry Canyon Publisher, 2013 Gary McGraw, Real Time UML, Third Edition. Bruce Powel Douglass, Advances in the UML for Real-Time Systems, Addison-Wesley, 2004.

Way of continuous check of knowledge in the course of semester

Rated examples in tutorials and written and oral examination.

E-learning

Other requirements

Student's required knowledge includes the basics from the course Introduction to the software engineering.

Prerequisities

Subject codeAbbreviationTitleRequirement
460-2009 SWI Introduction to Software Engineering Compulsory

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Lectures: 1. Software Processes I - Software quality concepts, Process improvement, Software process capability maturity models, Software process measurements 2. Software Processes II - Software quality concepts, Process improvement, Software process capability maturity models, Software process measurements 3. Software project management - Team participation, Effort Estimation, Team management 4. Software project management - Software quality assurance and the role of measurements 5. Software project management – Risks,System-wide approach to risk including hazards associated with tools 6. Tools and Environments - Requirements analysis and design modeling tools 7. Requirements Engineering - Requirements specification, Requirements validation, Requirements tracing 8. Software Verification and Validation - Static approaches and dynamic approaches to verification, Validation planning; documentation for validation 9. Software Construction - Software development in the context of large, pre-existing code bases, Software evolution, Characteristics of maintainable software, Reengineering systems, Software reuse, Regression testing and test automation 10. Formal Methods - Role of formal specification and analysis techniques in the software development cycle, Program assertion languages and analysis approaches (including languages for writing and analyzing pre- and post-conditions, such as OCL, JML) The course meets twice a week for two hours (45 min hour) each day. The course is a mixture of lecture (about 1.5 hours a week) and group project work. The course, especially the practical part is structured around the project practical development where the students are constantly producing artifacts related to software quality, project management, requirement sengineering and validation and using appropriate tools. Practices: Practices are dedicated to the work on the practical examples according to the theory learned during the lectures. 1. Software Processes I - Software quality concepts, Process improvement, Software process capability maturity models, Software process measurements 2. Software Processes II - Software quality concepts, Process improvement, Software process capability maturity models, Software process measurements 3. Software project management - Team participation, Effort Estimation, Team management 4. Software project management - Software quality assurance and the role of measurements 5. Software project management – Risks,System-wide approach to risk including hazards associated with tools 6. Tools and Environments - Requirements analysis and design modeling tools 7. Requirements Engineering - Requirements specification, Requirements validation, Requirements tracing 8. Software Verification and Validation - Static approaches and dynamic approaches to verification, Validation planning; documentation for validation 9. Software Construction - Software development in the context of large, pre-existing code bases, Software evolution, Characteristics of maintainable software, Reengineering systems, Software reuse, Regression testing and test automation 10. Formal Methods - Role of formal specification and analysis techniques in the software development cycle, Program assertion languages and analysis approaches (including languages for writing and analyzing pre- and post-conditions, such as OCL, JML)

Conditions for subject completion

Full-time form (validity from: 2019/2020 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Credit and Examination Credit and Examination 100 (100) 51
        Credit Credit 45  20
        Examination Examination 55  30
Mandatory attendence parzicipation: Rated examples in tutorials and written and oral examination.

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2020/2021 (B0613A140010) Computer Science P English Ostrava 3 Optional study plan
2020/2021 (B0541A170009) Computational and Applied Mathematics P English Ostrava 3 Optional study plan
2019/2020 (B0613A140010) Computer Science P English Ostrava 3 Optional study plan
2019/2020 (B0541A170009) Computational and Applied Mathematics P English Ostrava 3 Optional study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner