Skip to the content | Change text size
PDF unit guide

FIT3077 Software engineering: architecture and design - Semester 1, 2014

This unit builds on introductory units to analysis and design. It provides the professional software engineer with advanced knowledge and skills in high-level architectural design, its theoretical foundations, industrial best practice, and relevant application context. In the software life-cycle, software architecture sits between analysis/specification and design/implementation. The field of software architecture has come of age with a thriving research community and numerous high-level models, methods, tools and practices widely used in industry.

Mode of Delivery

  • Clayton (Day)
  • Malaysia (Day)

Workload Requirements

Minimum total expected workload equals 12 hours per week comprising:

(a.) Contact hours for on-campus students:

  • Two hours of lectures
  • One 1-hour laboratory

(b.) Additional requirements (all students):

  • A minimum of 3 hours of personal study per one hour of contact time in order to satisfy the reading and assignment expectations.

Unit Relationships

Prohibitions

CSE3308

Prerequisites

FIT2001 and (FIT2004 or FIT2024 or CSE2304)

Chief Examiner

Campus Lecturer

Clayton

David Squire

Consultation hours: Consultation hours will be announced on the Moodle website. Making an appointment via email is strongly advised.

Malaysia

Nik Nailah Abdullah

Tutors

Clayton

Robyn McNamara

Resmi Hasankolli

Your feedback to Us

Monash is committed to excellence in education and regularly seeks feedback from students, employers and staff. One of the key formal ways students have to provide feedback is through the Student Evaluation of Teaching and Units (SETU) survey. The University’s student evaluation policy requires that every unit is evaluated each year. Students are strongly encouraged to complete the surveys. The feedback is anonymous and provides the Faculty with evidence of aspects that students are satisfied and areas for improvement.

For more information on Monash’s educational strategy, see:

www.monash.edu.au/about/monash-directions/ and on student evaluations, see: www.policy.monash.edu/policy-bank/academic/education/quality/student-evaluation-policy.html

Previous Student Evaluations of this Unit

Based on student feedback:

The venue for the practice classes has been changed from flat rooms to laboratories. This is so that students can work on their assignments during practice class time, and, more importantly, demonstrate their work in progress to unit staff to receive feedback and advice.

If you wish to view how previous students rated this unit, please go to
https://emuapps.monash.edu.au/unitevaluations/index.jsp

Academic Overview

Learning Outcomes

At the completion of this unit students will have -A knowledge and understanding of:
  • modelling and design of flexible software at the architectural level. Basics of model-driven architecture;
  • Architectural styles and patterns, Middleware & application frameworks;
  • product lines. Design using COTs software;
  • configurations and configuration management;
  • in-depth look at software design, design patterns;
  • design of distributed systems using middleware;
  • design for qualities such as performance, safety, reusability etc;
  • evaluation and evolution of designs, reverse engineering.
Developed attitudes that enable them to:
  • apply variety of design pattern;
  • appreciate analysis fundamentals;
  • analyse well-formedness (completeness, consistency, robustness, etc);
  • analyse correctness (eg. static analysis, simulation etc.);
  • analyse quality requirements (eg. root cause analysis, safety, usability, security, etc.).
Developed the skills to:
  • take requirements for simple systems and develop software architectures and designs at a high level;
  • use configuration management tools effectively;
  • apply a variety of frameworks and architectures in designing software.

Unit Schedule

Week Activities Assessment
0   No formal assessment or activities are undertaken in week 0
1 Introduction to FIT3077; What is Software Architecture?; Object-Oriented Analysis using UML  
2 Object-Oriented Analysis using UML Assignment 1 specification available
3 Principles of Object-Oriented Analysis and Design; Design Patterns  
4 Principles of Object-Oriented Design Assignment 1 due Friday
5 Principles of Object-Oriented Design Assignment 2, Stage 1 specification available
6 Design Principles and Design Patterns  
7 Analysis Patterns; Refactoring  
8 Software Architecture; Architectural Structures  
9 Documenting Software Architectures; The Model-View-Controller Architectural Pattern Assignment 2, Stage 1 due Monday; Demonstrations of Stage 1 solutions in lab time
10 Architecture and Design with COTS components  
11 Software Product Lines: Re-using Architectural Assets  
12 Service Orientation; Service-Oriented Architecture Assignment 2, Stage 2 due Monday; Final interviews in lab time
  SWOT VAC No formal assessment is undertaken in SWOT VAC
  Examination period LINK to Assessment Policy: http://policy.monash.edu.au/policy-bank/
academic/education/assessment/
assessment-in-coursework-policy.html

*Unit Schedule details will be maintained and communicated to you via your learning system.

Teaching Approach

Lecture and tutorials or problem classes
This teaching and learning approach provides facilitated learning, practical exploration and peer learning.

Assessment Summary

Examination (3 hours): 40%; In-semester assessment: 60%

Assessment Task Value Due Date
UML Design Assignment 20% Friday Week 4
Team Software Architecture Assignment 40% Stage 1: Monday Week 9; Stage 2: Monday Week 12
Examination 1 40% To be advised

Assessment Requirements

Assessment Policy

Assessment Tasks

Participation

  • Assessment task 1
    Title:
    UML Design Assignment
    Description:
    Students will be provided with software requirements scenarios for which they must produce a conceptual design for an object-oriented solution. This design must be described using UML diagrams. The purpose of this assignment is to reinforce UML knowledge and ensure that students are ready for the next assignment.
    Weighting:
    20%
    Criteria for assessment:
    Designs will be assessed for completeness with respect to the specification provided, correct use of UML notation, and design quality.
    Due date:
    Friday Week 4
  • Assessment task 2
    Title:
    Team Software Architecture Assignment
    Description:
    This is a team assignment. Students will work on it in pairs. This assignment will have two stages, each requiring students to analyse a problem, design a solution, and implement it in an object-oriented programming language. The second stage will build on the first, and the ease with which the students' stage one design can be extended for stage two will depend on appropriate use of architecture and design knowledge presented in this unit.

    The main focus of the assignment is on the application of the design patterns and principles presented in lectures. Simply meeting the external functional requirements for the system is not sufficient to pass this assignment.
    Weighting:
    40%
    Criteria for assessment:

    Teams will be assessed on the basis of their submitted design documentation and code, as well as an interview. Both team members will be required to demonstrate knowledge and understanding of all parts of their design.

    Designs and code will be assessed for quality, including extensibility and appropriate use of design patterns. Completeness of code functionality with respect to the problem requirements will also be assessed.

    Due date:
    Stage 1: Monday Week 9; Stage 2: Monday Week 12

Examinations

  • Examination 1
    Weighting:
    40%
    Length:
    3 hours
    Type (open/closed book):
    Closed book
    Electronic devices allowed in the exam:
    None

Learning resources

Monash Library Unit Reading List (if applicable to the unit)
http://readinglists.lib.monash.edu/index.html

Faculty of Information Technology Style Guide

Feedback to you

Examination/other end-of-semester assessment feedback may take the form of feedback classes, provision of sample answers or other group feedback after official results have been published. Please check with your lecturer on the feedback provided and take advantage of this prior to requesting individual consultations with staff. If your unit has an examination, you may request to view your examination script booklet, see http://intranet.monash.edu.au/infotech/resources/students/procedures/request-to-view-exam-scripts.html

Types of feedback you can expect to receive in this unit are:

  • Informal feedback on progress in labs/tutes
  • Graded assignments with comments
  • Interviews

Extensions and penalties

Returning assignments

Assignment submission

It is a University requirement (http://www.policy.monash.edu/policy-bank/academic/education/conduct/student-academic-integrity-managing-plagiarism-collusion-procedures.html) for students to submit an assignment coversheet for each assessment item. Faculty Assignment coversheets can be found at http://www.infotech.monash.edu.au/resources/student/forms/. Please check with your Lecturer on the submission method for your assignment coversheet (e.g. attach a file to the online assignment submission, hand-in a hard copy, or use an online quiz). Please note that it is your responsibility to retain copies of your assessments.

Online submission

If Electronic Submission has been approved for your unit, please submit your work via the learning system for this unit, which you can access via links in the my.monash portal.

Required Resources

Please check with your lecturer before purchasing any Required Resources. Limited copies of prescribed texts are available for you to borrow in the library, and prescribed software is available in student labs.

You will need access to:

  • A tool for creating UML diagrams, such as Rational Rose, Visual Paradigm, etc.
  • An object-oriented programming language, with the capacity to create a graphical user interface.

On-campus students may use the software that is installed in the computing labs. Information about computer use for students is available from the ITS Student Resource Guide in the Monash University Handbook.

Recommended text(s)

Fowler M.. (2003). UML Distilled. (3rd Edition) Addison-Wesley.

Gamma E., Helm R., Johnson R., Vlissides J. M.. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. (1st Edition) Addison-Wesley.

Fowler M.. (1996). Analysis Patterns: Reusable Object Models. (1st Edition) Addison-Wesley.

Fowler M., Beck K., Brant J., Opdyke W., Roberts D.. (1999). Refactoring: Improving the Design of Existing Code. (1st Edition) Addison-Wesley.

Bass L., Clements P. and Kazman R.. (2003). Software Architecture in Practice. () Addison-Wesley.

Allen, P and Schlamann, H.. (2006). Service Orientation: Winning Strategies and Best Practices. () Cambridge University Press.

Other Information

Policies

Monash has educational policies, procedures and guidelines, which are designed to ensure that staff and students are aware of the University’s academic standards, and to provide advice on how they might uphold them. You can find Monash’s Education Policies at: www.policy.monash.edu.au/policy-bank/academic/education/index.html

Key educational policies include:

Faculty resources and policies

Important student resources including Faculty policies are located at http://intranet.monash.edu.au/infotech/resources/students/

Graduate Attributes Policy

Student Charter

Student services

Monash University Library

Disability Liaison Unit

Students who have a disability or medical condition are welcome to contact the Disability Liaison Unit to discuss academic support services. Disability Liaison Officers (DLOs) visit all Victorian campuses on a regular basis.