Skip to content Search
Search our website:

Software Engineering I

Short name: SE1
SITS code: BUCI066H5
Credits: 15
Level: 5
Module leader: Gordon McIntyre

Aims

Software Engineering I is designed to:

  • Provide an introduction to software engineering as a professional discipline.
  • Provide insight and understanding of the context and constraints within which software is developed.
  • Provide a clear understanding of processes, methods, activities, tools and techniques involved in professional software engineering.
  • Equip students with the theory, tools and techniques for professional software development and software project management.
  • Provide students with the opportunity to participate in practical software engineering tasks.
  • Empower students to be able to develop software in a systematic, structured rigorous, safe and secure manner.

Learning Outcomes

On successful completion of this module a student will be expected to be able to:

  1. Understand the role of software engineering and its importance in software development. Understand the main reasons for success and failure in software development.
  2. Explain issues of professionalism related to Software Engineering. Understand the social, ethical and legal context in which software engineers work.
  3. Enumerate the main software development process models, specifically plan based and Agile models, and explain the applicability of these models to the development of different software types.
  4. Evidence a thorough understanding of software process model activities, including analysis and design, implementation, testing and software deployment. Undertake core software development activities in a structured, competent and professional manner, using industry standard techniques.
  5. Explain how software is tested to ensure quality. Devise a test plan that includes elements of unit testing, system testing, functional testing, acceptance testing and release testing.
  6. Understand how systems adapt and evolve, and how systems are maintained throughout their lifespan.
  7. Understand the range of software project management tasks, including planning, resource and people management, and risk management. Understand standard project management techniques and tools, and be able to apply these techniques and tools to a software development project.
  8. Understand the role and importance of quality management activities in the software development process, including reviews and inspections. Undertake software quality assurance activities as part of the software development process.
  9. Explain how software configuration management helps ensure software quality. Undertake software configuration management activities, including version management, change management and release management.
  10. Use industry standard tools for all areas of the software development process, including tools for all areas of software development, including analysis, design, testing, project management and configuration management.

Syllabus

  1. Engineering/Software/Software Engineering
  2. Software Process Models
  3. Agile Software Development Approaches
  4. Systems Analysis and Design
  5. Software Implementation and Deployment
  6. Software Testing
  7. Software Evolution
  8. Software Project Management
  9. Software Project Planning
  10. Quality Management and Configuration Management

Prerequisites

None.

Timetable

All dates and timetables are listed in the programme handbooks of individual programmes.

Coursework

Portfolio of completed tasks.

Assessment

20% coursework.
80% exam.

Recommended reading

Sommerville, I (2016). Software Engineering. Pearson.