Object-oriented analysis and design (OOAD) is a technical approach for analyzing, designing a system by applying the object-orientated concepts, and develops a set of graphical system models during the development life cycle of the software. OOAD in modern software engineering is typically conducted in an iterative and incremental way. In this course, the students will learn how to produce detailed object models and designs from system requirements; use the modeling concepts provided by UML; identify use cases and expand into full behavioral designs; expand the analysis into a design ready for implementation and construct designs that are reliable.

Credit Hours: 3(3+0)

Course Learning Outcomes:

Upon successful completion of this course, students possibly able to understand how to gather the requirements for a software application distinguish between functional and nonfunctional requirements, and express the requirements in the form of use cases. Object-oriented analysis: Derive the appropriate classes from the requirements and define their responsibilities, behaviors, interrelationships, and internal structures. Draw UML use case, class, and sequence diagrams to document and communicate the analysis results. Object-oriented design: Apply the results of analysis to implement the classes and interfaces.

Textbook:

  1. Applying UML and patterns: An introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman, Prentice Hall; 3rdEdition (October 30, 2004). ISBN-10: 0131489062 

Assessment Criteria:

Sessional Marks: 20 Marks

  • Quiz 1:                  05 marks
  •  Assignment 1:      10 marks
  • class participation & Presentation:  05 marks

Mid Semester Exam: 30 Marks

Final Semester Exam: 50 Marks

Course Contents:

Following contents will be covered in this course:

1. Principles of Object Technology: Introduction to Object Technology, Principles of Modeling, and Principles of Object Orientation.

2. Introduction to UML, Unification, UML Diagrams, Unified Process & Rational Unified Process, RUP Disciplines, Case Study Analysis and Basics, Case Study, About Inception, Feasibility and Risk Analysis.

 3. Understanding Requirements, Requirements Types, Use Case Modeling: Use Case Writing Styles, EBP Guidelines [TB: Ch. 5.1, 6.1-8]

4. System Use Case Diagram, Use Case Table, Activity Diagram, Supplementary Specifications, Vision Document, Glossary, Rational Rose Overview, Use Case & Activity Diagram Modeling in Rational Rose .

5. Elaboration Phase of RUP; Configuration Management; System Sequence Diagram, Domain Model: Identifying Business Classes, Associations, .

6. Implementation of System Sequence & Domain Model: Use Case Operational Contracts, Business Sequence, Analysis Sequence & Collaboration Diagrams

7. Use Case Dependencies, Analysis Use Case Diagram, Implementation of Sequence, Collaboration, Analysis Use Case Diagram.

 8. State Chart Diagrams and Implementation.

9. Design Patterns:  GRASP: Information Expert, Creator, Cohesion & Coupling and Controller.

10. Use Case Realization Using GRASP Patterns, Design Model: Determining Visibility.

11. Modeling Generalization, Creating Design Class Diagram, Mapping Data Model to Domain Model.

12. Implementation of Design Class Diagram, Coding patterns, Mapping Design to Code.

13. More Patterns for Assigning Responsibilities, Polymorphism, Pure Fabrication, Indirection, Protected Variation. GoF Design Patterns: Adapter, Factory.

14. Gof: Singleton, Strategy, Composition, and Façade and Discuss Remaining Patterns.

Time Table:

MScIT 3rd ( Monday: 12:30-2:00 PM) (Wednesday: 08:00-09: 30 AM)

Course Material