School of Information Technologies Unit COMP5028 Object Oriented Analysis and Design 6 Credit Points Unit of Study Outline & Assessment Details Second Semester, 2006 CourseOutline.doc 2 IMPORTANT: Policy relating to Academic Dishonesty and Plagiarism. The School of Information Technologies1 views all forms of academic dishonesty, including plagiarism and recycling, very seriously. Plagiarism means presenting another person’s ideas, findings or work as one’s own by copying or reproducing them without due acknowledgement of the source. Recycling means the submission for assessment of one’s own work, or of work which is substantially the same, which has previously been counted towards the satisfactory completion of another unit of study, and credited towards a university degree, and where the examiner has not been informed that the student has already received credit for that work. Students who submit work containing significant portions that have been copied from other sources, including published works, the internet, existing programs, work previously submitted for other awards or assessments, or the work of other students, without proper acknowledgement will be penalised. Decisions as to the penalty may include: (a) counselling the student; (b) issuing a written warning; (c) requiring the student to resubmit the work for assessment; or to undertake other remedial work; (d) requiring the student to undertake another form of assessment in lieu of the assignment in question, such as an unseen examination; (e) applying a fail grade to the work, or part thereof, submitted for assessment; (f) applying a fail grade overall in the unit of study; or (g) referring the matter to the Registrar if the head of school considers there has been a breach of the University’s standards of academic honesty and the student continues in a denial, or, following the interview, the head of school considers that failing the unit of study is insufficient to deal with the matter. Where there is doubt about which portions of work are contributed by a particular student he/she may be required to demonstrate knowledge of the relevant material by answering oral questions or by undertaking supplementary work, either written or in the laboratory, in order to arrive at the final assessment mark. 1 Refer to Academic Board policy: http://www.usyd.edu.au/senate/policies/Plagiarism.pdf COMP5028 Object Oriented Analysis and Design 1. Introduction This course teaches the students the necessary skills to analyze a problem, convert the analysis results to an efficient, resilient design, and to implement that design. It also covers Unified Modelling Language (UML) principles and diagrams so that students can express and document the results of both analysis and design in standard UML diagrams. We focus on capturing the real customer requirements and building a software system to satisfy the requirements. 2. Objectives Students who successfully complete this unit will be able to: 1. Understand how to analyze a problem based upon requirements. 2. Construct one or more models of the problem space and express the results of analysis in proper UML diagrams. 3 3. Transform the object-model from your analysis into an effective object-oriented design. 4. Be aware of the principles of quality object-oriented design and apply them through out the design stage 5. Improve design by identifying and applying patterns during analysis and design. 6. Implement your design and deliver it to your customer. Students enrolled in COMP5028 are assumed to have elementary Java programming experience or equivalent experience in another object oriented programming language. This unit will not place a great emphasis on code development but it will be a necessary task. Moreover, previous exposure to object oriented programming provides access to a selection of object oriented concepts that will be reflected on in this unit. 3. Unit of Study Delivery Two lectures and one computer based laboratory will be given each week. In the laboratory students will be able to design and construct various UML diagrams, and implement them into Java code. 4. Expectations 1. Students are expected to attend all scheduled lectures, and laboratory classes. You should expect to spend a MINIMUM OF TWELVE HOURS per week including scheduled lectures and laboratory times. 2. Students are expected to undertake prescribed reading, in most cases book chapters, BEFORE the lecture. 3. Students are expected to carry out exercises and laboratory tasks and to submit selected work for assessment as directed. It should be realised that laboratory exercises are expected to take LONGER than just the time scheduled for classes. 4. Students are expected to be able to work independently and to make effective use of a range of resources including the library, the Internet and relevant on-line help facilities. 5. Assessment Package The unit will be assessed by means of the following components: Component % of Final Grade Assignment 1 – System analysis 15 Assignment 2 – System design and implementation 25 Written examination 60 It is a policy of the School of Information Technologies that in order to pass this unit, a student must achieve at least 40% in the written examination as well as in the other components of assessment together. Late work: In the interests of fairness to all students, the School of Information Technologies policy states that late work cannot be accepted. In exceptional cases late work must be submitted directly to the unit of study coordinator accompanied by an application for Special Consideration as outlined on page 6 of the School of Information Technologies Postgraduate Enrolment Guide. Students are expected to check their progressive results regularly. Results will be published through webCT. Any errors or omissions must be reported to the unit coordinator, with appropriate evidence, within ten (10) days of being published. Ten days after being published, marks are considered to have been confirmed and will not subsequently be altered. 6. Details of Assessment Components 6.1 Assignment 1 – System analysis The task for assignment 1 will be to complete the analysis phase of a software project. The assignment will consist of several questions about requirements and analysis diagrams. The assignment is due at the beginning of the lab in week 6. 6.2 Assignment 2 – System design and implementation The task for assignment 2 will be to complete the design phase of a software project. The assignment will consist of several questions about design and realisation diagrams. The assignment will also require 4 implementation of part or all of your design in Java or C#. NOTE: the implementation emphasis is on production of UML into workable skeleton code, it is not meant to be a full programming assignment. The assignment is due at the beginning of the lab in week 11, you will have to demonstrate the working to your tutor in the lab on week 12. 6.3 Written Examination The written examination will cover all aspects of the unit of study. It will test the candidates’ ability to discuss issues critically and to apply them to specific practical situations. 7. Teaching team Room Email Dr Ying ZHOU (coordinator) SIT 437 zhouy@it.usyd.edu.au 8. Textbook and Readings Recommended textbook Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Developments, 3rd edition, Prentice Hall PTR, 2005 Reference books: Martin Fowler, UML Distilled, 3rd edition, Addison-Wesley, 2004 Robert C. Martin, Agile Software Development: Principles, Patterns and Practices, Prentice Hall, 2003 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns, Addison-Wesley, 1995 Allan Shalloway ,James R. Trott Design patterns explained: A new perspective on Object-Oriented Design, 2nd edition, Addison-Wesley, 2005. Martin Fowler, Kent Beck, John Brank, William Opdyke, Don Roberts, Refactoring, Addison-Wesley, 1999 Bernd Bruegge, Allen H Dutoit, Object-Oriented Software Engineering: Using UML, Patterns and Java, 2nd Edition, Prentice Hall PTR, 2003 9. Course Work and Assessment Schedule Week Commencing Time Topic Assessment Laboratory/Tutorial 1 Wed July 26 6pm Unit of Study introduction, OO Basics No tutorial 2 Wed Aug 2 6pm Inception Requirement workshop 3 Wed Aug 9 6pm Domain models Domain modelling I 4 Wed Aug 16 6pm Associations, contracts / UML diagram Domain modelling II 5 Wed Aug 23 6pm UML class diagram & GRASP patterns UML practice I (reverse engineering) 6 Wed Aug 30 6pm Mapping design to code Assignment 1 UML practice II (forward engineering) 7 Wed Sep 6 6pm Object Design Principles Applying design principles I 8 Wed Sep 13 6pm GoF patterns I Applying design principles II 9 Wed Sep 20 6pm GoF pattern II Design pattern practice I 10 Wed Oct 3 6pm Gof Pattern III Design pattern practice II 11 Wed Oct 10 6pm Gof Pattern IV Assignment 2 submission Design pattern application 12 Wed Oct 17 6pm Design Persistence framework Assignment 2 Demo 13 Wed Oct 24 6pm Course Revision No tutorial 5 9.1 Workload Expectations 2006 Workload Expectations Component % Work expected (hours) Teaching Week 1 2 3 4 5 6 7 8 9Break 10 11 12 13Rev Hours Lectures 2 2 2 2 2 2 2 2 2 2 2 2 2 26 Tutorial/Lab classes 1 1 1 1 1 1 1 1 1 1 1 1 1 13 Assignment 1 15 3 3 6 3 15 Assignment 2 25 3 6 6 6 21 Directed reading/preparation 9 6 6 3 6 9 9 6 6 6 3 9 3 3 81 Final examination preparation 6 6 12 24 Final examination 60 Total 100 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 180 Note: where a cell is shaded in grey an assessment is due in the corresponding week.