Object Oriented Analysis and Design
Post date: Mar 28, 2013 9:39:45 AM
Course Notes to
OBJECT ORIENTED ANALYSIS AND DESIGN
OBJECTIVE
This module is about developing an awareness of the different approach that can be taken to systems development when applying object-oriented techniques. This module should develop the student’s awareness of the concepts and terminology involved in object-oriented analysis and design. It is primarily intended to prepare students who expect to gain employment in an IT/Computing-related post at technician or professional level in a software development role.
This module is primarily intended to develop an appreciation of object-oriented design techniques. It will also introduce the student to object-oriented concepts and terminology and a number of the modelling techniques used in the UML (Unified Modelling Language). Students will work with a case study, or case studies, in order to contextualise the work and provide realistic system development scenarios.
PREREQUISITES
COURSE OUTLINE
Bài giảng Khóa học
PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
MỤC ĐÍCH
Môn học cung cấp các khái niệm cơ bản và phương pháp phân tích và thiết kế phần mềm hướng đối tượng. Giới thiệu các kiến thức cơ bản của ngôn ngữ mô hình hoá tiên tiến UML và một số qui trình phát triển phần mềm hướng đối tượng dựa trên sơ cở UML. Công cụ được sử dụng là các ngôn ngữ lập trình cấp cao như Visual C++, Visual Basic, Java, ...
Môn học này giúp sinh viên làm quen với các phương pháp hiện đại trong thiết kế phần mềm, nắm bắt được các nguyên lý cơ bản của công nghệ hướng đối tượng. Ngoài ra, môn học này còn củng cố và phát triển kỹ năng phân tích thiết kế cho các sinh viên thông qua một qui trình phát triển phần mềm tiên tiến cụ thể. Sinh viên sẽ áp dụng qui trình này qua các ví dụ thực tế và bài tập lớn.
ĐIỀU KIỆN
NỘI DUNG MÔN HỌC
Bài giảng 1. Phương pháp hướng đối tượng và quá trình phát triển hệ thống phần mềm
1.1 Giới thiệu về hệ thống phần mềm
1.2 Sự phát triển hệ thống
1.3 Các cách tiếp cận trong phát triển phần mềm
1.4 Quá trình phát triển phần mềm hợp nhất
Bài giảng 2. Khái quát về UML
2.1 Lịch sử hình thành UML
2.2 Unifield Modeling Language - UML
2.3 Các khái niệm cơ bản của UML
2.4 Mở rộng UML
2.5 Mô hình hóa với UML
2.6 Công cụ UML
Bài giảng 3. Biểu đồ Use Case phân tích yêu cầu hệ thống
3.1 Tập hợp yêu cầu hệ thống
3.2 Biểu đồ Use Case
3.3 Mô hình hóa với Use Case
3.4 Tạo lập biểu đồ Use Case trong Rational Rose
3.5 Ví dụ ATM: Use Case diagram
Bài giảng 4. Phân tích hệ thống – Mô hình khái niệm và biểu đồ lớp
4.1 Mô hình khái niệm – mô hình đối tượng
4.2 Xác định các lớp, đối tượng
4.3 Mối quan hệ giữa các lớp đối tượng
4.4 Nâng cấp mô hình
Bài giảng 5. Mô hình động
5.1 Mô hình hóa hành vi hệ thống
5.2 Biểu đồ trạng thái
5.3 Biểu đồ hoạt động
5.4 Biểu đồ tương tác
5.5 Biểu đồ trình tự
5.6 Biểu đồ cộng tác
5.7 Biểu đồ giao tiếp
5.8 Kiểm tra mô hình động
5.9 Tạo lập biểu đồ động trong Rational Rose
Bài giảng 6. Phối hợp các mô hình thiết kế hệ thống
6.1 Chất lượng mô hình
6.2 Tóm tắt về mô hình đối tượng
6.3 Phối hợp mô hình đối tượng và mô hình động
6.4 Hệ thống ngân hàng tự động atm
Bài giảng 7. Kiến trúc hệ thống và phát sinh mã trình
7.1 Kiến trúc của hệ thống
7.2 Biểu đồ thành phần
7.3 Biểu đồ triển khai
7.4 Chuyển đổi các thiết kế sang mã chương trình
GRADING
A combination of discussions and short tests (30%),
Group projects and their presentations (70%).
RECOMMENDED TEXTS
ĐÁNH GIÁ
Các bài kiểm tra ngắn (30%),
Dự án nhóm, chuẩn bị tài liệu theo mẫu và trình bày (70%).
TÀI LIỆU THAM KHẢO
- Dao Nam Anh, "Object-Oriented Analysis and Design", Course Book, University of Power, 2013
- Ian Sommerville, Software Engineering, Ninth Edition, 2011
- Booch, Grady. Object-oriented analysis and design with applications.. 2nd ed. Addison Wesley Longman, Inc, 1998
- Terry Quatrani , Visual Modeling with Rational Rose 2000 and UML, Addison Wesley, 1999
- Perdita Stevens and Rob Pooley, Using UML Software engineering with objects and components, 2nd edition, Addison Wesley 2006
- Bruegge & Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java, Third Edition, Prentice Hall, 2010.
- Miles & Hamilton: Learning UML 2.0, O’Reilly Media, 2006. ISBN: 0-596-00982-8
- Business Modeling with the UML and Rational Suite AnalystStudio, A Rational Software White Paper, Rational, 2001
- Dương Kiều Hoa – Tôn Thất Hoà An, Phân tích và thiết kế Hệ thống thông tin với UML, 2006
- I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process. Addison-Wesley Professional, 1999
INTERESTING LINKS
CÁC TRANG WEB HỮU ÍCH
Most of links are from CSE3308
OO and UML Resources
- A collection of witty aphorisms on good software craftmanship.
- The Object-Oriented Thought Process, a series of articles by Matt Weisfeld available at http://www.developer.com.
- The Object-Oriented Thought Process, 28 January, 2004.
- Moving from Procedural to Object-Oriented Development, 25 February, 2004.
- The Object-Oriented Thought Process (III), 29 March, 2004.
- Thinking in Objects, 30 April, 2004.
- Furthering the Object-Oriented Mindset, 27 May, 2004.
- Exploring Encapsulation, 30 June, 2004.
- Hiding Data within Object-Oriented Programming, 29 July, 2004.
- Protecting Data through Object Oriented Programming, 30 December, 2004.
- Putting an Object in a Safe State, 26 January, 2005.
- The Components of a Class, 10 March, 2005.
- The Evolution of Object-Oriented Languages, 31 March, 2005.
- Design Principles and Design Patterns, Robert Martin, 2000. Further C++ Report articles on these topics by Robert Martin, from articles available at Object Mentor.
- The Open-Closed Principle
- The Liskov Substitution Principle
- The Dependency Inversion Principle
- The Interface Segregation Principle
- Granularity (Reuse/Release Equivalency Principle, The Common Closure Principle, The Common Reuse Principle, Acylclic Dependencies Principle)
- Stability (Stable Dependencies Principle, Stable Abstractions Principle)
- "The Tipping Point: Stability and Instability in OO Design", Robert C. Martin, Software Development, March 2005.
- Principles of good module design
- Object Management Group UML specification
- IBM Rational UML Resource Center
Design and Analysis Patterns
- What Are Design Patterns?, James W. Cooper, On-line article at http://www.developer.com, 12 March, 2004.
- What Are Design Patterns and Do I Need Them?, James Maioriello, On-line article at http://www.developer.com, 2 October, 2002.
- A Survey of Common Design Patterns, James Maioriello, On-line article at http://www.developer.com, 18 November, 2002.
- Patterns Home Page - resource for patterns and pattern languages. Has links to many other resources, including pattern catalogues
- Patterns and Software: Essential Concepts and Terminology - article summarizing important information about patterns. Has lots of links.
- Organizational Structures (Accountability), Martin Fowler, new version of Ch.2 of Analysis Patterns: Reusable Object Models, 1996
CASE and drawing tools
- (Old) Student Edition of Rational Rose CASE Tool (9.2Mb ZIP file), Rational Software was the home of the developers of UML, and Rational Rose. It was acquired by IBM in 2003. Evaluation versions are available for both Windows and Linux - but they're huge! (Windows, 344Mb, Linux 119Mb).
- SmartDraw drawing tool for PCs. Very useful for structured analysis and design.
- Dia - GTK-based diagram drawing program. An open-source drawing tool that is included in many Linux installations. A variety of modelling languages is supported. There is also a Windows version.
- Glade - an open-source visual interface builder for GTK+ and GNOME.
- Qt Designer - a GUI builder from Trolltech. Qt Designer generates C++ code, and runs natively on Windows, X11, Mac and embedded Linux. It is shipped with many Linux distributions. Try typing designer at the command line.
- Manfred Schneider. Links on Object-Orientation.
- http://www.rhein-neckar.de/~cetus/software.html. Lots of links on OO methodologies (including UML), languages, distributed objects and databases.
- Ricardo Devis. The Object-Oriented Page. An annotated list of resources pertaining to object-oriented software. http://www.well.com/user/ritchie/oo.html
- The Development Exchange. UML Zone. An annotated list of web articles and books pertaining to Unified Modeling Language. http://www.uml-zone.com/
- Bala Paranj. The Command pattern in Java. A discussion of a Design Pattern which issues requests to objects without knowing anything about the operation being requested or the receiver of the request. http://www.javaworld.com/javatips/jw-javatip68.html?020899ibd
- Schneider, Phillip. The Booch method: An introduction to object oriented development. A tutorial introducing a widely used object-oriented methodology, described in more detail in Grady Booch: Object-oriented Analysis and Design with Applications, 2nd edition. Benjamin Cummings, Redwood City. ISBN 0-8053-5340-2, 1993. http://www.itr.ch/courses/case/BoochReference/
- nbsp; The Object-Oriented Page. An annotated list of resources pertaining to object-oriented software. http://www.well.com/user/ritchie/oo.html
- Object Management Group. Corba for Beginners. CORBA is a framework for distributed objects.
- http://www.omg.org/corba/beginners.html