Units
Software Systems Design
Unit code: ENB241
Contact hours: 4 per week
Credit points: 12
Information about fees and unit costs
The unit introduces students to Software Engineering by considering a whole Software Lifecycle. Each step of the lifecycle is treated in detail, such as concept phase, requirement definition, software design, human-computer interaction, implementation, audits, and maintenance. Software design principles and techniques are presented as well as real-time system design. CASE development tools are briefly introduced as well as object oriented programming for which a structured Object Oriented Analysis and Design are considered.
Availability
| Semester | Available |
|---|---|
| 2013 Semester 1 | Yes |
Sample subject outline - Semester 1 2013
Note: Subject outlines often change before the semester begins. Below is a sample outline.
Rationale
Most problems of significance require solutions involving complex systems - systems which incorporate multiple sub-systems, modules or components. As an electrical engineer you will often be involved in the design, development and maintenance of complex systems realised in electronic and computing/software environments.
Building on your prior exposure to the fundamental skills involved in computer programming this unit will focus on developing the system analysis, design and development techniques, as well as object-oriented programming techniques, which can be applied to larger scale software systems development.
Aims
This unit aims to develop knowledge, understanding and skills associated with object-oriented programming and software systems engineering processes.
Objectives
By the completion of this unit you should be able to:
1. Use object-oriented (OO) design and implementation techniques to solve electrical engineering problems.
2. Describe and follow a typical software engineering process in order to develop a software system.
3. Work and communicate effectively in a software development team.
Content
System Analysis, Design and Development
- Overview of systems engineering
- System Analysis
- Software Lifecycle & Development
- Software Quality
- System Design
- Operating Systems
- Scheduling
- Memory and secondary storage management
- Real-time operating systems
- Programming Methods
- Object Oriented programming
- Inheritance & Polymorphism
- Object Oriented C++
- C++ Exceptions
- Using the Standard Template Library
Approaches to Teaching and Learning
Teaching Mode: Hours per week: 4 hrs
Lecture: 2 hrs
Tutorial: 2 hrs
The lectures will address software engineering theory and practice and software development techniques used in building large and complex systems. A weekly 2 hour laboratory based tutorial will provide a forum to practice the elements discussed in lectures - a folio of the activities completed during (and in concert with) the tutorials will be used to monitor and assist you in the lab. A team-based software development assignment will be undertaken to proactively promote team-based software development approaches, leadership and peer assessment.
Assessment
Formative assessment activities will take place within the laboratory based sessions. These will be both individual small programming exercises and team activities focussed around your project. Your lab demonstrator will provide verbal feedback during these activities.
You will complete three summative (graded) assessments over the semester. These will be an individual programming portfolio, a team software development project, and a theory examination.You will receive verbal feedback in labs as you complete exercises for your programming portfolio and will also receive written feedback at set submission points. You will receive weekly verbal feedback on your project as you discuss your progress with your tutor, and written feedback for project deliverables submitted at each stage of the project.
Assessment name:
Log/Workbook
Description:
You will maintain a portfolio of programming exercises that you complete through the semester. You will provide reflective comments about what you learnt from completing each exercise.
Relates to objectives:
1. Use object-oriented (OO) design and implementation techniques to solve electrical engineering problems.
Weight:
30%
Internal or external:
Internal
Group or individual:
Individual
Due date:
Weeks 5, 9 & 13
Assessment name:
Project (applied)
Description:
You will develop a moderate-sized software system following a typical software engineering process and applying professional software development practices.
Relates to objectives:
1. Use object-oriented (OO) design and implementation techniques to solve electrical engineering problems.
2. Describe and follow a typical software engineering process in order to develop a software system.
3. Work and communicate effectively in a software development team.
Weight:
40%
Internal or external:
Internal
Group or individual:
Group
Due date:
Week 12
Assessment name:
Examination (Theory)
Description:
You will answer questions about the theory and practice covered in the unit. You will also write small programs to demonstrate your knowledge of object-oriented programming techniques.
Relates to objectives:
1. Use object-oriented (OO) design and implementation techniques to solve electrical engineering problems.
2. Describe and follow a typical software engineering process in order to develop a software system.
Weight:
30%
Internal or external:
Internal
Group or individual:
Individual
Due date:
Exam period
Academic Honesty
QUT is committed to maintaining high academic standards to protect the value of its qualifications. To assist you in assuring the academic integrity of your assessment you are encouraged to make use of the support materials and services available to help you consider and check your assessment items. Important information about the university's approach to academic integrity of assessment is on your unit Blackboard site.
A breach of academic integrity is regarded as Student Misconduct and can lead to the imposition of penalties.
Resource materials
1. C. Horstmann, and T. Budd, Big C++, 2nd Ed., John Wiley, 2009.
2. H. Deitel and P. Deitel, C++ How to Program, 8th ed., Pearson, 2011.
3. H. Schildt, C++ The Complete Reference, 4th ed., McGraw Hill, 2002.
4. S. Lippman, J. Lajoie and B. Moo, C++ Primer, 4th ed., Pearson, 2005.
5. I. Somerville, Software Engineering, 9th ed., Pearson, 2010.
7. C. Larman, Applying UML and Patterns: An Introduction to Object-oriented Analysis and Design and Iterative Development, 3rd ed., Dorling Kindersley, 2008.
8. QUT Blackboard web site.
Risk assessment statement
There are no out of the ordinary risks.
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of semester.
Last modified: 22-Oct-2012