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
- Explain the core principles of object-oriented programming.
- Apply object-oriented analysis techniques to understand system requirements.
- Design robust and maintainable object-oriented software systems using UML.
- 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 Objectives | Content |
|---|---|
| Unit 1: Introduction to Object-Oriented [4 Hrs.]
|
| Specific Objectives | Content |
| Unit 2: Requirement Elicitation and Analysis [7 Hrs.]
|
| Specific Objectives | Content |
| Unit 3: Object oriented analysis [6 Hrs.]
|
| Specific Objectives | Content |
| Unit 4: Object-Oriented Modeling Using UML Notation [10 Hrs.]
|
| Specific Objectives | Content |
| Unit 5: Object Oriented Design principles [6 Hrs.]
|
| Specific Objectives | Content |
| Unit 6: Applying GOF Design Patterns [8 Hrs.]
|
| Specific Objectives | Content |
| Unit 7: Case Study and Project [4 Hrs.]
|
5. Laboratory Work
It builds the foundation for analysis of information system and software engineering.
- Implementing class, objects, attributes, and methods in a simple Java program.
- Exploring different types of relationships (association, aggregation, composition) between objects through coding examples.
- Conducting requirement elicitation and analysis for a small software project, using techniques such as interviews and surveys.
- Creating use case diagrams and specifying requirements for a given scenario using UML notation.
- Modeling domain concepts and relationships using UML class diagrams.
- Developing behavior models using state diagrams and activity diagrams for a simple system.
- Elaborating use cases and system interactions through sequence and communication diagrams.
- Designing logical architecture and package diagrams for a software system.
- Implementing SOLID principles in a programming project and analyzing their impact on code quality.
- Implementing and applying various design patterns (e.g., Factory, Singleton, Observer) in a software project, assessing their effectiveness in addressing design challenges.
Note:
- Motivate students to create small project work integrating all of the above concepts.
- 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 Evaluation | Marks | Internal Evaluation | Marks | |
|---|---|---|---|---|
Semester End Examination | Theory | 40 | ||
| 40 | Practical |
20 | ||
| Attendance & Class Participation | 5 | |||
| Lab Report/Project Report | 5 | |||
| Practical Exam/Project Work | 5 | |||
| Viva | 5 | |||
| Total External | 40 | Total 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:
- Larman, C., Applying UML and Patterns, Pearson Education Asia, 2008.
Reference Books:
- Stevens, P, Pooley, R., Using UML: Software Engineering with Objects and Components, Addision-Wesley, 2009.
- Fowler, M., Scott, K., UML Distilled: Applying the Standard Object Modeling Language, Addison-Wesley, 2007.
- Booch, G., Jacobson, I., Rumbaugh, J., The Unified Software Development Process, Addison-Wesely, 2009.
- Booch, G., Jacobson, I., Rumbaugh, J., The Unified Modeling Language User Guide, Addison-Wesely, 2008.
- Jacobson I., Object-Oriented Software Engineering – A Use Case Driven Approach, Addison-Wesely, 2009.