Practical Software Engineering
Software Engineering I provides an introduction to the core topics in Software Engineering. It provides students with an understanding of software engineering from a theoretical and practical perspective. Topics covered include: success and failure in software development, software engineering ethics, software development processes, agile methods, software engineering tools and techniques, requirements engineering, software modelling, software design and implementation, software testing, project management, risk management, quality management and configuration management. At the end of the module, students will be able to apply software engineering best practice in a systematic, secure and safe manner, using industry standard processes, techniques and tools.
- 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 and rigorous manner.
- Understand the role of software engineering practice, and its importance in software development.
- Explain issues of professionalism related to Software Engineering.
- Enumerate the main software development process models.
- Evidence a thoroughgoing understanding of software process model activities.
- Explain how software is tested to ensure quality.
- Understand how systems adapt and evolve, and how systems are maintained throughout their lifespan.
- Understand the range of software project management tasks, including planning, resource and people management, and risk management.
- Understand the role and importance of quality management activities in the software development process.
- Explain how software configuration management helps ensure software quality.
- Use industry standard tools across all areas of the software development process.
- Introduction to Software Engineering
- Software Processes
- Agile Software Development
- Requirements Engineering
- Software Modelling
- Software Design and Implementation
- Software Testing
- Software Evolution
- Software Project Management
- Software Quality and Configuration Management
- Systems Analysis and Design I
- Introduction to Programming
All dates and timetables are listed in the programme handbooks of individual programmes.
Portfolio of three pieces of written work.
Coursework (20%). Examination (80%).
Sommerville, I. 2016. Software Engineering (10th Edition). Pearson Education.