Objectives and competences
To teach students how to optimally use software process, models, methodologies and principles in the development and management of complex software systems .
Content (Syllabus outline)
• Trends in software development technologies and paradigms
• General life cycle model.
• Software development processes: definition, categories, models, methods, and processes of assessment, adaptation and improvement
• Advanced approach to software life cycle modelling:
.principles, types of models (information, behavioural, structured), analysis
• Heuristic, formal, prototyping and agile modelsScaling agile approach to large projects and multi-teams Requirements analysis in the context of general and specific models focusing on complex environments .
• Architecture and implementation
• Software development in the context of general and specific models
• Implementation in the context of general and specific models.
• Verification, validation focusing on automated testing.
• Software maintenance: evolution of software, categories, techniques, cost
• Process aspects of software quality in the context of maturity models.
• Tools for software development
• Software configuration managemet
• Cost benefit analysis and cost models.
• Empirical software engineering and data science
• Artificial intelligence in software development.
Learning and teaching methods
• lectures,
• lab work
Intended learning outcomes - knowledge and understanding
On completion of this course the student will be able to
• analyse, plan, manage, verify and validate large software systems.
Intended learning outcomes - transferable/key skills and other attributes
• Communication skills: communicating with clients and team members.
• Use of information technology: for managing the development of software systems.
• Organisation skills: management of human factors in software ddevelopment.
• Problem solving: solving the problems emerging in software development.
Readings
• Sommerville: Software Engineering, Addison-Wesley, Pearson Education Ltd, New York, 2015.
• Ivar Jacobson et al: The Essentials of Modern Software Engineering, ACM; 2019
• R. S. Pressman: Software Engineering - A Practitioner’s Approach, , McGraw-Hill, New York, 2021.
• M, Felder, G.H. Travassos: Contemporary Empirical Software Engineering, Springer Nature, 2020
Additional information on implementation and assessment The exam may be replaced by written midterm examinations in the weight of 50%.