TRON07035 2020 Software Engineering

General Details

Full Title
Software Engineering
Transcript Title
Software Engineering
Code
TRON07035
Attendance
N/A %
Subject Area
TRON - Electronics
Department
COEL - Computing & Electronic Eng
Level
07 - Level 7
Credit
05 - 05 Credits
Duration
Semester
Fee
Start Term
2020 - Full Academic Year 2020-21
End Term
9999 - The End of Time
Author(s)
Diane O'Brien, Ian Craig
Programme Membership
SG_EELEC_H08 202000 Bachelor of Engineering (Honours) in Electronics and Self Driving Technologies
Description

This is a module for programmers and electronic engineering students in which the learners acquire experience with well-established software engineering principles and practices using a project-based approach.

The learner will learn how to take a business case and turn it into a requirements specification. They will learn how to plan a project, produce a design for a project, implement project code, test a project (unit test and system test) and release a project.

Learning Outcomes

On completion of this module the learner will/should be able to;

1.

Compose a requirements specification consisting of functional requirements and non-functional requirements (ethical, performance and safety) given a business case/project brief.

2.

Organise and manage a software project using appropriate collaboration tools and practices

3.

Develop suitable design strategies including use cases, activity diagrams, UML models for specified project.

4.

Develop coding skills including debugging, source code management, error handling, logging and release control to produce maintainable software

5.

Design, execute and  record a set of unit tests for a unit of an engineering/software project.  Have an awareness of system/acceptance testing

Teaching and Learning Strategies

The suggested teaching/learning strategy is to use the lecture time as 1 * 2 hour, problem based learning session in a flat classroom.  A set of work scenarios are developed to allow the learners to experience requirement gathering, project planning, code and testing techniques.

The corresponding labs are all programming based to allow the learner to implement techniques learned in the lecture sessions.

The last section of the course should see the learners engage in a software development project using all the techniques and tools learnt (in a team environment), delivering a software project with suitable requirements, design, implementation, testing and source control.

Module Assessment Strategies

Assessment is via

1) Continuous Assessments 

  • prescribed labs
  • mini-project

2) Final Written Exam

Repeat Assessments

In the event of exam failure, a repeat exam is required.

Indicative Syllabus

 

Requirements Specification

  • Taking a business case or project brief and understanding what needs to be done
  • Writing a normal use case
  • Write any probable or obvious error use cases
  • Writing a Requirement Specification based on a given template using 'will/must', 'should', 'could/may' language.
  • Maintaining correct revision numbering/history of all documents
  • Peer Review of specifications

Project Management

  • Explain the various aspects of the Agile (SCRUM) software management 
  • Use Agile methods to implement a project (stand up meetings, burndown charts, sprint planning)

Design Methods

  • Create a UML diagram to show the design of the software system
  • Producing a flowchart showing the flow of a user experience 

Code/Project Implementation

  • Experience debugging, logging, error handling
  • Software versioning systems (Git)
  • Code inspections

Testing (unit/system)

  • Designing a robust and comprehensive set of Unit tests for a project unit based on inputs, expected outputs and actual outputs.
  • Executing and recording unit test results
  • Automating Unit testing

Release control

  • Software control
  • Versioning
  • Acceptance testing system against the Requirement Specification

Coursework & Assessment Breakdown

Coursework & Continuous Assessment
60 %
End of Semester / Year Formal Exam
40 %

Coursework Assessment

Title Type Form Percent Week Learning Outcomes Assessed
1 Project Evaluation of participation in project Coursework Assessment Practical Evaluation 40 % End of Semester 2,3,4,5
2 Lab practicals Coursework Assessment Written Report/Essay 20 % OnGoing 2,4,5
             

End of Semester / Year Assessment

Title Type Form Percent Week Learning Outcomes Assessed
1 Written Exam Final Exam Closed Book Exam 40 % End of Term 1,2,3,5
             
             

Full Time Mode Workload


Type Location Description Hours Frequency Avg Workload
Problem Based Learning Flat Classroom Lecture/Project work 2 Weekly 2.00
Practical / Laboratory Engineering Laboratory Practical/Project Work 2 Weekly 2.00
Total Full Time Average Weekly Learner Contact Time 2.00 Hours

Part Time Mode Workload


Type Location Description Hours Frequency Avg Workload
Lecture Not Specified Lecture/Project work 2 Weekly 2.00
Problem Based Learning Not Specified Practicals 2 Weekly 2.00
Total Part Time Average Weekly Learner Contact Time 2.00 Hours

Required & Recommended Book List

Required Reading
2015-08-20 Software Engineering, Global Edition Pearson
ISBN 9781292096131 ISBN-13 9781292096131

For courses in computer science and software engineering The Fundamental Practice of Software Engineering Software Engineering introduces students to the overwhelmingly important subject of software programming and development. In the past few years, computer systems have come to dominate not just our technological growth, but the foundations of our world's major industries. This text seeks to lay out the fundamental concepts of this huge and continually growing subject area in a clear and comprehensive manner. The Tenth Edition contains new information that highlights various technological updates of recent years, providing students with highly relevant and current information. Sommerville's experience in system dependability and systems engineering guides the text through a traditional plan-based approach that incorporates some novel agile methods. The text strives to teach the innovators of tomorrow how to create software that will make our world a better, safer, and more advanced place to live.

Required Reading
1995-08-02 The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition Addison Wesley
ISBN 9780201835953 ISBN-13 9780201835953

Presenting the 20th anniversary and first revised edition of a collection of essays on the management of computer programming projects, this work is an updated and enhanced re-release of the "Brooks classic". With the addition of 3 essays assessing the status of software project management, the authors "No Silver Bullet", is also included.

Required Reading
2014-11-23 Learning Agile: Understanding Scrum, XP, Lean, and Kanban O'Reilly Media
ISBN 1449331920 ISBN-13 9781449331924

Agile has revolutionized the way teams approach software development, but with dozens of agile methodologies to choose from, the decision to "go agile" can be tricky. This practical book helps you sort it out, first by grounding you in agile's underlying principles, then by describing four specific - and well-used - agile methods: Scrum, extreme programming (XP), Lean, and Kanban. Each method focuses on a different area of development, but they all aim to change your team's mindset - from individuals who simply follow a plan to a cohesive group that makes decisions together., Whether you're considering agile for the first time, or trying it again, you'll learn how to choose a method that best fits your team and your company. Understand the purpose behind agile's core values and principles Learn Scrum's emphasis on project management, self-organization, and collective commitment Focus on software design and architecture with XP practices such as test-first and pair programming Use Lean thinking to empower your team, eliminate waste, and deliver software fast Learn how Kanban's practices help you deliver great software by managing flow Adopt agile practices and principles with an agile coach

Module Resources

Non ISBN Literary Resources

Software Engineering (Latest Edition), Ian Sommerville

Journal Resources

None

URL Resources

All links given on moodle page

Other Resources

Java SDK and Eclipse IDE available on lab machines

BlueJ available on lab machines.

Electronic component kits, mobile phones and Arduino boards/kits may be used for mini-projects

 

Additional Information

It would be advantageous that this module was delivered in a second year of a programme.

The learner should have basic programming skills prior to commencement should as completing a programming module in a specific language such as Java, C Sharp or C.