FUNDAMENTALS OF SOFTWARE ENGINEERING

SHE Level 1
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M1I325082
Module Leader Iain Lambie
School School of Computing, Engineering and Built Environment
Subject Computing
Trimester
  • 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, software documentation, software quality and project risk 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. The percentage of Work Based Learning for this module, as represented by the proportion of the Activity Types which take place off campus, is 79%. The percentage of Work Based Assessment for this module is 0%.

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, disposition 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 Software project management principles and core activities, role of the project manager, nature of a project plan, project monitoring activities, concept of project risk Software quality concepts: definitions of software quality, the need for quality systems, distinction between process and product quality, core product quality attributes 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 V-Model Iterative lifecycles, e.g. spiral, RAD, prototyping Agile life cycles: principles and concepts; examples of 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+ Business AnalysisModelling: the use of business use case models and activity diagrams to capture as-is business processes 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 completion of this 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 systems2 - 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 role of project management and software quality activities in the development of successful computer systems4 - Understand the basic processes involved in software maintenance and evolution (including for legacy systems, business analysis and process modelling).5 - Apply basic requirements engineering techniques to the development and documenting of the specification and high level modelling of functional computer system requirements.

Teaching / Learning Strategy

Work Based Education aims to maximise the direct and digitally mediated contact time with students by practicing teaching and learning strategies that use authentic work based scenarios and encourage action learning, enquiry based learning, problem based learning and peer learning. All these approaches aim to directly involve the students in the process of learning and to encourage sharing of learning between students. The module team will determine the level and accuracy of knowledge acquisition at key points in the delivery, inputting when necessary either directly or with the support of external experts who will add to the authenticity, the credibility and application of the education and learning in the workplace. The course material is introduced through lectures in the form of online presentations, which as well as covering the Fundamentals of Software Engineering, will illustrate the relevance of these techniques to real-world applications and introduce a range of professional software engineering approaches. Students will engage with practical software engineering assignments and online tutorial material which may include instructor and peer-created contact, and there will be seminars on campus which will allow students to discuss key concepts and issues with peers and with instructors. Students will be expected to undertake significant level of independent study within the workplace, including practical activities. Links will be provided to appropriate external material where appropriate. Students will also be encouraged to reflect upon the theorectical learning within the work place and the application of newly learned concepts to the work environment. Students will receive feedback on their performance throughout the module through undertaking the practical assignments and tutorial exercises and participating in the seminars.

Indicative Reading

Cockburn A., (2000) Writing Effective Use Cases (Crystal Series for Software Development), Addison Wesley, ISBN: 978-0201702255 Gomaa, H., (2011) Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, Cambridge University Press, ISBN: 978-0521764148 Laplante. P.A., (2013) Requirements Engineering for Software and Systems (2 nd Ed) (Applied Software Engineering Series), Auerbach Publications, ISBN: 978-1466560819 Leffingwell, D. & Widrig, D., (2012) Managing Software Requirements: A Use Case Approach, Addison Wesley, ISBN: 978-0321903723 Podeswa. H., (2009) UML For The IT Business Analyst (2 nd Rev. Ed), Course Technology PTR, ISBN: 978-1598638684 Pressman, R,S., (2009) Software Engineering: A Practitioner's Approach (7 th Ed), McGraw-Hill, ISBN:978-0071267823 Rosenberg, D. & Stephens, M., (2013) Use Case Driven Object Modeling with UML: Theory and Practice (2 nd Ed), APRESS, ISBN: 978-1430243052 Satzinger, J.W., Jackson, R.B. & Burd, S.D., (2012) Introduction to Systems Analysis and Design (6 th Ed), CEngage Learning, ISBN:978-1111972264 Sommerville, I (2010) Software Engineering (9 th Ed), Pearson, ISBN: 978-0137053469 Wazlawick, R.S., (2014) Object-Oriented Analysis and Design for Information Systems: Modeling with UML, OCL, and IFML, Morgan Kaufmann Publishers, ISBN: 978-0124186736

Transferrable Skills

Specialist knowledge and application Critical thinking and problem solving Communication skills, written, oral and listening Computer literacy Self confidence, self discipline & self reliance (independent working) Creativity, innovation & independent thinking Ability to prioritise tasks and time management Develop an understanding of the practical considerations that constrain the application of theory in the workplace.

Module Structure

Activity Total Hours
Lectures (FT) 24.00
Practicals (FT) 24.00
Assessment (FT) 18.00
Seminars (FT) 24.00
Independent Learning (FT) 110.00

Assessment Methods

Component Duration Weighting Threshold Description
Exam (School) 1.00 50.00 35% Class Test
Coursework 1 n/a 50.00 35% Practical Lab Based Assignment