The University of Sheffield
School of Computer Science

COM412 Introduction to Software Engineering

Summary This module introduces software engineering, covering the appropriate choice of software lifecycle model, the interactions between developer and customer, the management of a software engineering team, the conceptual management of project information throughout the project lifecycle, and other aspects of software engineering. It is an essential pre-requisite for the team development project. Weekly formative coursework is an essential part of the learning for this module; the final examination will be based on this work.
Session Autumn 2026/27
Credits 15
Assessment
  • Formal Examination
Lecturer(s) Dr Islam Elgendy
Resources
Aims

This module aims to develop in candidates:

  • An understanding of the discipline of software engineering, including the essential activities of the software development cycle from initial requirements specification through to system evolution.
  • An understanding of and ability to apply system modelling using UML diagrams, focusing on use case diagrams, class diagrams, sequence diagrams, and state diagrams to accurately model software systems.
  • An understanding of core database concepts and the ability to design, normalise, query, and integrate relational databases into modern software applications.
  • Preparation of the mindset and skills required for subsequent team-based development projects.
Learning Outcomes By the end of the unit, a student will have acquired:
  • Design an uncluttered, intuitive user interface that supports the business process of the customer.
  • Recognise the different mind-sets of the developer and customer and mitigate the effect of bias in requirements analysis and design.
  • Choose an appropriate software lifecycle and project management strategy for different kinds of software project.
  • Use appropriate software analysis and design models to capture the essentials of a design succinctly and accurately.
  • Evaluate software systems quantitatively and qualitatively for their ease of use by target customer groups.
Content

The module content is structured around the foundational principles of software engineering:

  • Introduction to Software Engineering: Core concepts, professional software development, and societal/ethical responsibilities.
  • Software Processes: Software process models, process activities, and coping with change.
  • Agile Software Development: Agile methods, agile development techniques, and agile project management.
  • Requirements Engineering: Functional and non-functional requirements, the requirements engineering process, elicitation, analysis, validation, and management.
  • System Modelling: Context models, interaction models, structural models, behavioural models, and model-driven engineering using UML.
  • Architectural Design: Architectural design decisions, architectural views, architectural patterns, and application architectures.
  • Database Design: Evolution of databases, relational data model, UML profile for databases, entity-relationship modelling, traditional table normalisation, normal and pre-normal forms.
  • Query Processing: Mathematical relations, relational algebra and SQL, data definition and manipulation, queries and aggregate functions, optimising and indexing queries.
  • Design and Implementation: Object-oriented design using the UML, design patterns, and implementation issues.
  • Software Testing: Development testing, test-driven development, release testing, and user testing.
  • Software Evolution: Evolution processes, legacy system management, and software maintenance.
Restrictions

Only available to students on COMT19 MSc in Computer Science   

Teaching Method

The module will be delivered through a combination of:

  • Lectures: Introducing core theoretical concepts, methodologies, and frameworks.
  • Classroom Discussions: Facilitating peer-to-peer learning and critical analysis of case studies.
Feedback

Feedback is available through interactive discussions and guidance from the lecturer during classroom sessions, from the performance and review of the two quizzes administered throughout the semester, and from more general class feedback given in lectures.