The aim of the module is to cover a broad range of concepts and principles in Software Engineering. It aims to provide students with foundation skills to allow them to identify appropriate approaches and methods for specifying software systems.
The module will introduce students to a range of key Software Engineering principles and concepts. Students will gain a theoretical and practical understanding of key aspects of software engineering. This module will introduce students to software lifecycles, as an approach to developing software systems, from inception to realisation and technical support.
Students will develop skills in requirements gathering and an introduction to systems analysis with Use Cases, using sample cases studies.
Students will gain an understanding of the basics of computer architecture in order to divide a system into distinct development modules of the user interface/experience, system control/logic and data access/management. Potential to have a team based approach to the Lab sessions based on the use of the computer architecture. Develop key practitioner concepts and skills of project management and version control, using a specific software lifecycle for a sample case study
Introduction to Software Engineering Software Engineering as an engineering discipline.
Software process models such as the waterfall model, incremental models, prototyping, evolutionary and agile models.
Requirements elicitation, questionnaires, interviews, observation and prototyping.
Requirements gathering with Use Cases.
Refining the requirements model, using systems analysis with Use Cases
Introduction to computer architectures for decomposing complex software system.
Requirements validation and verification.
Testing fundamentals, including test plan creation and test case generation black-box and white-box testing techniques.
Unit, integration, system, acceptance and regression testing.
Different kinds of testing – human computer interface, usability, reliability, security, conformance to specification.
User acceptance test cases based on core system Use Cases.
Introduce project management skills, based on specific software lifecycle.
Demonstrate approaches to planning and scheduling for a sample project
Use of version control to manage documents through the software lifecycle.
Indicative Continual Assessment
Over the first 8 weeks the students will develop a feasibility study, an initial Use Case requirements model, initial functional and non functional test plans. A preliminary use case model and initial design classes based on attribute driven design will be developed as part of the feasibility study activity.
Students are provided with a template document for developing a feasibility study. The template will indicate the process to generating a feasibility study to determine if a system should be developed.
A sample case study for a system is provided to be used for the feasibility study and preliminary use case systems modelling.
From the initial model a set of design classes will be identified and the concept of relationship classes will be introduced.
Over 3 to 4 weeks the students will develop a project plan using mind maps, Work Breakdown structures, Action plans, a scheduling tool, allocate resources and an finally identify the cost for the project. The project planning will be based on using one software development methodology.
In parallel with the lab sessions two formal elements will be assigned to the students, to be completed outside the lab sessions.
The first Formal element will be allocated about week 6 and will be over 2 to 3 weeks. This will allow students the opportunity to modify the feasibility study and systems design models, based on the feedback provided during the lab sessions.
The second Formal element will be allocated about week 10. This will involve creating a short powerpoint presentation discussing the project planning system. This will be limited to 5 to 7 slides and should last no more than 5 minutes. In the final lab session of the semester each student will present their powerpoint to the lecturer or teaching assistant on a one to one basis.
| Lectures with tutorials and laboratory sessions to give the student experience in developing models and specifications of a variety of systems with lecturer feedback. The use of a CASE tool will provide standards, rigour and guidance for the specifications. Potential to have a team based approach to the based on the use of the computer architecture. Extensive use of a Virtual Learning Environment (VLE) for interaction with students will provide a cohesive learning approach. |
| Module Content & Assessment | |
|---|---|
| Assessment Breakdown | % |
| Formal Examination | 70 |
| Other Assessment(s) | 30 |