FUNDAMENTALS OF SOFTWARE ENGINEERING

SHE Level 1
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M1I326709
Module Leader Iain Lambie
School School of Computing, Engineering and Built Environment
Subject Computing
Trimesters
  • A (September start)
  • C (May start)

Summary of Content

This module will provide students with an introduction to the fundamental concepts, processes and practices in software engineering. This includes business analysis, requirements engineering, the software lifecycle and the software development process, developing secure systems, testing software systems, software documentation, as well as the challenges of dealing with legacy systems. It will also provide the student with an introduction to key professional practices in relation to the initial analysis and modelling of the development of commercial computer-based software systems.

Syllabus

Systems and Software Engineering Processes and Activities: The systems development process: Basic stages in the systems development lifecycle: project initiation and definition, user and system requirements definition, analysis and design, implementation and testing, deployment (including user documentation and training) and maintenance, developing secure systems Conceptual foundations of OO systems modelling: use case model, design model, deployment model, implementation model, test model The role of ethics and professional issues in software engineering processes The role of DevOps in the Software Lifecycle Software testing concepts: testing stages, acceptance and system testing principles: functional testing, usability testing, reliability testing, security testing, performance testing Software maintenance and evolution: the nature of software maintenance, maintenance activities and managing the maintenance process, the software re-engineering process and common approaches such as business analysis and as-is process model creation; legacy system maintenance Software Life Cycles: Principles that characterise successful software development practice Traditional (waterfall) lifecycle model verses Agile approaches Agile life cycles: principles and concepts; agile process models, e.g. DSDM, SCRUM,FDD Agile methods and practices, e.g. extreme programming/XP Requirements Engineering: The role of the requirements engineer The requirements engineering process System stakeholders Requirements elicitation Requirements classification: functional; non-functional; requirements classification frameworks, e.g. FURPS+ Requirements modelling: the use of use case analysis to capture and document requirements Use case descriptions, specifying test criteria in use cases Initial domain modelling

Learning Outcomes

On successful completion of the module the student should be able to:1.Understand the nature of the key systems and software engineering processes and activities necessary for the development and deployment of successful commercial computer systems including the need for security2.Compare the characteristics of the range of modern software lifecycle models and approaches in relation to the suitability of each for different types of computer system development3.Understand the basic processes involved in software maintenance and evolution (including for legacy systems)4.Apply basic requirements engineering techniques to the development and documenting of the specification and high-level modelling of functional and non-functional computer system requirements

Teaching / Learning Strategy

The University 'Strategy for Learning' documentation has informed the learning and teaching strategy for this module. The module material will be introduced through lectures, while practical exercises, based on the lecture material, will be given to students for their laboratory sessions. Tutorials will be used to help explain and elaborate on both the lecture material and the laboratory exercises. Full use will be made of GCU Learn to provide lecture-based and related study materials, along with sample solutions of tutorial and laboratory exercises, thus encouraging the development of independent learning and allowing self-reflective feedback on student performance. Staff-based feedback on student performance for submitted work will be provided in line with the University feedback policy, with summative feedback and grades on the coursework assessment utilising GCU Learn. The additional interactive discussion features of GCU Learn will be utilised, as appropriate to the module, to stimulate independent and flexible student learning outwith scheduled class time.

Indicative Reading

Sommerville, I (2010) Software Engineering (9th Ed), Pearson, ISBN: 978-0137053469 Pressman R, Maxim B (2019) Software Engineering A Practitioners Approach (9 th Edition), McGraw-Hill, ISBN 978-1260548006 Ahmad A, Prased Bhanu (2016) Foundations of Software Engineering, CRC Press, ISBN 978-1409737593

Transferrable Skills

D2 Critical thinking and problem solving. D4 Communication skills, written, oral and listening. D6 Effective Information retrieval and research skills. D7 Computer literacy. D8 Self-confidence, self-discipline & self-reliance (independent working). D9 Awareness of strengths and weaknesses. D13 Reliability, integrity, honesty and ethical awareness D15 Ability to prioritise tasks and time management (organising and planning work). D16 Interpersonal skills, team working and leadership. D17 Presentation skills. D18 Commercial awareness (Narrative)

Module Structure

Activity Total Hours
Independent Learning (FT) 134.00
Tutorials (FT) 12.00
Practicals (FT) 24.00
Assessment (FT) 18.00
Lectures (FT) 12.00

Assessment Methods

Component Duration Weighting Threshold Description
Course Work 01 n/a 50.00 35% Practical Lab Based Assignment or 4000 Word Essay
Exam (Dept) 01 1.50 50.00 35% GCU Learn based class test