Objectives and competences
The objective of this course is to provide a basic understanding of the software life cycle and the methods used in the context of a team-based disciplined development of software.
Content (Syllabus outline)
• Introduction: modelling the life cycle, concept of quality, the role of standards.
• Planning and managing the project: feasibility analysis, planning, project management, case study, work on project.
• Capturing the requirements: types and characteristics of requirements, requirements validation, expressing the requirements, case study, work on project.
• Designing the system: system architecture design, architectural styles.
• Implementation: design principles and methods, coding, user interface design, case study, work on project.
• Software verification: basic definitions, test case description, basic testing strategies, testing tools, writing test reports, formal verification, case study, work on project.
• Software maintenance: writing the user manual, maintenance problems, case study, work on project.
Learning and teaching methods
• lectures, tutorial, computer work.
Intended learning outcomes - knowledge and understanding
• plan small projects and capture the requirements
• write and verify specifications
• design, debug, test and maintain medium size programs according to a selected standard
• explain the role of quality and economy factors in the software design
• explain the teamwork problems
• explain the project management problems
Intended learning outcomes - transferable/key skills and other attributes
• Communication skills: written skills in writing the project documentation, communicating with co-workers on the project.
• Use of information technology: use of software development tools
Readings
• Pfleeger, S. L., & Atlee, J. M. (2010). Software engineering: theory and practice (4th ed., [international ed.], p. 782). Pearson.
• Sommerville, I. (2016). Software engineering (10th ed., p. 810). Pearson Education.
• Dogša, T. (1993). Verifikacija in validacija programske opreme: V & V (1. izd., p. 269). Tehniška fakulteta, Elektrotehnika, računalništvo in informatika.
Prerequisits
Recommended knowledge: C or C++ programming.