Skip to main content

Software Engineering I


  • Credit value: 15 credits at Level 5
  • Convenor: Gordon McIntyre
  • Assessment: an online quiz (50%) and two-hour examination (50%)

Module description

In this module we introduce you to core topics in software engineering, including from a theoretical and practical perspective. Topics covered include: success and failure in software development, professional software engineering, software development processes, software development methodologies, software engineering tools and techniques, requirements engineering, software modelling, software implementation and deployment, software testing, project management, risk management, quality management and configuration management.

At the end of the module, you will be able to apply software engineering best practice in a systematic, secure and safe manner, using industry-standard processes, techniques and tools.

Indicative syllabus

  • Engineering/software/software engineering
  • Software process models
  • Agile software development approaches
  • Systems analysis and design
  • Software implementation and deployment
  • Software testing
  • Software evolution
  • Software project management
  • Software project planning
  • Quality management and configuration management

Learning objectives

By the end of this module, you will be able to:

  • understand the role of software engineering and its importance in software development, and the main reasons for success and failure in software development
  • explain issues of professionalism related to software engineering and understand the social, ethical and legal context in which software engineers work
  • enumerate the main software development process models, specifically plan based and Agile models, and explain their applicability to the development of different software types
  • understand and undertake software process model activities in a structured, competent and professional manner, using industry-standard techniques
  • explain how software is tested to ensure quality and devise a test plan that includes elements of unit, system, functional, acceptance and release testing
  • understand how systems adapt and evolve, and are maintained throughout their lifespan
  • understand software project management tasks, and standard project management techniques and tools, and apply these to a software development project
  • understand the role and importance of quality management activities, including reviews and inspections, and undertake software quality assurance activities in the software development process
  • explain how software configuration management helps ensure software quality and undertake software configuration management activities, including version management, change management and release management
  • use industry-standard tools for all areas of the software development process.