O

Object-Oriented Analysis and Design - Syllabus

7 Chapter 0 Notes 0 Questions

1. Course Description

This course introduces the fundamental concepts of object-oriented (OO) analysis and design (OOD) for software development. Students will gain an understanding of the OO paradigm, learn to identify objects and their relationships, and create models using the Unified Modeling Language (UML).

It will include the following information about the course:

  • Understand the fundamental concepts of OOP, including objects, classes, attributes, methods, benefits, and challenges.
  • Gain an introduction to UML, its building blocks (things, relationships, diagrams), and its role in object-oriented modeling
  • Learn the object-oriented analysis process, including use case modeling, building the conceptual model (identifying classes and relationships), and using CRC cards
  • Master the transition from analysis to design, designing classes and interfaces, operations (methods), system behavior using state diagrams, and common design patterns.
  • Explore design patterns and their benefits, understand how to apply common design patterns, and gain an introduction to object-oriented frameworks.
  • Apply OOAD principles to a real-world case study, develop a UML model for the chosen scenario, and present your findings.

2. General Objectives

  1. Explain the core principles of object-oriented programming.
  2. Apply object-oriented analysis techniques to understand system requirements.
  3. Design robust and maintainable object-oriented software systems using UML.
  4. Utilize design patterns to solve common software design problems.

3.  Method of Instructions

General Instructional Technique: Lecture, Discussion, Readings, Question Answer Specific Instructional Technique: Practical works, Project Based Learning, Self-Directed Learning, Industry Insights and Case Study

4. Content in Detail with Specific Objectives

Specific ObjectivesContent
  • Understand the concepts of class, objects, attributes, and methods.
  • Describe and differentiate between
  • association, aggregation, and composition relationships with examples.
  • Identify the benefits and challenges of Object-Oriented Programming (OOP).

Unit 1: Introduction to Object-Oriented [4 Hrs.]

  1. Class, objects, attributes, methods.
  2. Relation between objects: Association, aggregation, and composition relationships with examples.
  3. Benefits and challenges of OOP
Specific ObjectivesContent
  • Understand the fundamentals of requirement gathering.
  • Identify and apply requirement elicitation techniques.
  • Perform requirement analysis and specification.
  • Validate requirements.
  • Understand the concepts of use cases, scenarios, and actors.
  • Gain an overview of the Unified
  • Modeling Language (UML) fundamentals and notations.

Unit 2: Requirement Elicitation and Analysis [7 Hrs.]

  1. Requirement gathering
    1. Requirement fundamentals
    2. Requirement elicitation techniques
    3. Requirement analysis
    4. Requirement specification
    5. Requirement validation
  2. Use cases, Scenario and Actors
  3. Overview of the Unified Modeling Language: UML Fundamentals and Notations
    1. Behavior Diagram: Use case Diagram and Activity Diagram
    2. Interaction Diagram: Sequence and communication Diagram
    3. Structure Diagram: Class, Package, and Component diagram
Specific ObjectivesContent
  • Perform domain modeling and concept modeling, including identifying relationships.
  • Identify classes, attributes, and methods.
  • Model behavior using state diagrams
  • and activity diagrams.

Unit 3: Object oriented analysis [6 Hrs.]

  1. Domain modeling and concept modeling relationships
  2. Identifying classes, attributes, methods
  3. Behavior modeling using state diagrams and activity diagrams
Specific ObjectivesContent
  • Elaborate use cases and create use case diagrams.
  • Understand system interaction diagrams: Sequence and communication diagrams.
  • Develop logical architecture and UML package diagrams.
  • Create class diagrams, including generalization, dependency, constraints, composition over aggregation, singleton class, and template class.

Unit 4: Object-Oriented Modeling Using UML Notation [10 Hrs.]

  1. Elaborating use cases and Use case diagram
    1. Use cases for reuse
    2. Use cases and components
    3. Separation variant behavior
    4. Generalization
    5. Actor as classes
    6. System interaction diagram: Sequence and communication diagram
  2. Logical architecture and UML package diagram
    1. Model-View separation principal
  3. Class diagram
    1. Generalization
    2. Dependency
    3. Constraints
    4. Composition over Aggregation
    5. Singleton class
    6. Template class
Specific ObjectivesContent
  • Understand General Responsibility Assignment Software Patterns (GRASP) principles.
  • Design for visibility.
  • Understand and apply SOLID principles

Unit 5: Object Oriented Design principles [6 Hrs.]

  1. General Responsibility Assignment Software Patterns (GRASP)
    1. Creator
    2. Information Expert
    3. Controller
    4. Low Coupling
    5. High Cohesion
  2. Designing for visibility
  3. SOLID principal
    1. Single Responsibility Principle
    2. Open Closed Principal
    3. Liskov Substitution Principle (LSP)
    4. Interface Segregation Principle (ISP)
    5. Dependency Inversion Principle (DIP)
Specific ObjectivesContent
  • Understand and apply Design patterns

Unit 6: Applying GOF Design Patterns [8 Hrs.]

  1. Adaptor
  2. Factory
  3. Singleton
  4. Strategy
  5. Composite
  6. Façade
  7. Observer/Publish-Subscribe/Delegation Event Model
Specific ObjectivesContent
  • Apply Object-Oriented Analysis and Design (OOAD) principles to a real-world case study.
  • To implement the object oriented analysis and design in real world cases

Unit 7: Case Study and Project [4 Hrs.]

  1. Apply OOAD principles to a real-world case study
  2. Develop a UML model for the chosen case study
  3. Class presentations and discussions

5. Laboratory Work

It builds the foundation for analysis of information system and software engineering.

  1. Implementing class, objects, attributes, and methods in a simple Java program.
  2. Exploring different types of relationships (association, aggregation, composition) between objects through coding examples.
  3. Conducting requirement elicitation and analysis for a small software project, using techniques such as interviews and surveys.
  4. Creating use case diagrams and specifying requirements for a given scenario using UML notation.
  5. Modeling domain concepts and relationships using UML class diagrams.
  6. Developing behavior models using state diagrams and activity diagrams for a simple system.
  7. Elaborating use cases and system interactions through sequence and communication diagrams.
  8. Designing logical architecture and package diagrams for a software system.
  9. Implementing SOLID principles in a programming project and analyzing their impact on code quality.
  10. Implementing and applying various design patterns (e.g., Factory, Singleton, Observer) in a software project, assessing their effectiveness in addressing design challenges.

Note:

  1. Motivate students to create small project work integrating all of the above concepts.
  2. Each of the above lab session should cover more than 4 hours of practical work.

6. Evaluation system and Student’s Responsibilities Evaluation System

In addition to the formal exam(s), the internal evaluation of a student may consist of quizzes, assignments, lab reports, projects, class participation, etc. The tabular presentation of the internal evaluation is as follows :

External EvaluationMarksInternal EvaluationMarks

 

Semester End Examination

 Theory 40
40Practical 

 

20

Attendance & Class Participation5
Lab Report/Project Report5
Practical Exam/Project Work5
Viva5
Total External40Total Internal 60
Full Marks: 40 + 40+ 20 = 100

7. Student’s Requirements

Each student must secure at least 45% marks separately in both internal assessment and practical evaluation with a minimum of 80% attendance in the class in order to appear in the Semester End Examination. Failing to get such score will be given NOT QUALIFIED (NQ) to appear the Semester-End Examinations. Students are advised to attend all the classes, formal exam, test, etc. and complete all the assignments within the specified time period. Students are required to complete all the requirements defined for the completion of the course.

8. Prescribed Books and References Prescribed

Text Books:

  1. Larman, C., Applying UML and Patterns, Pearson Education Asia, 2008.

Reference Books:

  1. Stevens, P, Pooley, R., Using UML: Software Engineering with Objects and Components, Addision-Wesley, 2009.
  2. Fowler, M., Scott, K., UML Distilled: Applying the Standard Object Modeling Language, Addison-Wesley, 2007.
  3. Booch, G., Jacobson, I., Rumbaugh, J., The Unified Software Development Process, Addison-Wesely, 2009.
  4. Booch, G., Jacobson, I., Rumbaugh, J., The Unified Modeling Language User Guide, Addison-Wesely, 2008.
  5. Jacobson I., Object-Oriented Software Engineering – A Use Case Driven Approach, Addison-Wesely, 2009.