Module/Course Title: Object-Oriented Analysis and Design

Module course code

KOMS120408

Student Workload
119 hours

Credits

3 / 4.5 ETCS

Semester

4

Frequency

Even Semester

Duration

16

1

Type of course

Core Study Courses

Contact hours


40 hours of face-to-face (theoretical) class activity

Independent Study


48 hours of independent activity
48 hours of structured activities

Class Size

30

2

Prerequisites for participation (if applicable)

-

3

Learning Outcomes

  1. Students can demonstrate systematic thinking in analyzing and designing software and database solutions
  2. Students can apply effective methods in developing software and databases
  3. Students can create and evaluate software and database solutions
  4. Students can demonstrate the basics of object-oriented programming, including encapsulation, inheritance, and polymorphism.
  5. Students can demonstrate skills in designing and analyzing object-oriented software systems by using tools such as UML (Unified Modeling Language).

4

Subject aims/Content

This course provides the study of Object-Oriented Analysis and Design (OOAD) principles and methodologies for software development. Students will learn how to analyze, design, and model software systems using object-oriented techniques and UML (Unified Modeling Language). The course emphasizes the practical application of OOAD concepts and the use of UML as the way to design the software. The course prepares students for roles in software development, system analysis, and design where OOAD skills are essential. The topic covers include an Introduction to Object-Oriented Concepts; a Review of OOP concepts such as Classes, objects, attributes, methods, Encapsulation, inheritance, and polymorphism; Requirements Analysis and System Modeling; Object-Oriented Design Principles; Writing essential documents such as SRS, Requirement Analysis, and Design and Architecture.

Study Material

Introduction to object-oriented analysis and design

Object Oriented Modeling

Object-Oriented Modeling (2)

Model Oriented Analysis

Model Oriented Analysis (2)

UML stages for software analysis and development

Requirement Analysis

-

Behavioral Diagrams: Use Case Diagrams

Structural Diagram: Class Diagram

Behavioral Diagram: Sequence and Activity Diagram

Behavioral Diagram: Statechart Diagram

Project Initiation

Project Phase 1

Project Phase 2

-

5

Teaching methods

Synchronous:

  • Live synchronous or virtual synchronous containing lectures and discussion questions and answers.

Self-Paced Asynchronous:

  • Students learn through digital materials prepared in e-learning.

6

Assesment Methods

Attendance, participation, and structured assignments

7

This module/course is used in the following study programme/s as well

Computer Science Study Programme

8

Responsibility for module/course

  • Ni Putu Novita Puspa Dewi, S.Kom., M.Cs.
  • NIDN : 199410032020122000

9

Other Information

Books, papers, and websites that could be used as references for this course.

1. Books:

  1. Pressman R., Maxim B.R. 2015. Software Engineering A Practitioner Approach. 8Edition. McGraw Hill Education
  2. Sommerville, I., 2016. Software Engineering. 10Edition. Pearson Education.
  3. Gamma, E.; Helm, R.; Johnson, R. & Vlissides, J. M. (1994), Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional.
  4. Booch, G. (1993), Object-Oriented Analysis and Design with Applications, Benjamin/Cummings, Redwood City, CA.
  5. Wirfs-Brock, R.; Wiener, L. R. & Wilkerson, B. (1990), Designing object-oriented software., Prentice Hall.

2. Papers:

  1. O'Docherty, M., Bennett, S., & Farmer, R. (2007). Object-Oriented Analysis and Design: Understanding System Development with UML 2.0. ACM SIGSOFT Software Engineering Notes, 32(6), 1-12. https://doi.org/10.1145/1314215.1314218
  2. Shaw, M., & Garlan, D. (1996). A Comparison of Object-Oriented Design Methodologies. ACM Transactions on Software Engineering and Methodology, 5(2), 126-170. https://doi.org/10.1145/225680.225681
  3. Fernandez, E. B., & Roman, A. J. (1998). An Evaluation of Object-Oriented Design Methodologies. ACM Transactions on Software Engineering and Methodology, 7(3), 215-249. https://doi.org/10.1145/286136.286138
  4. Buhr, R. J. A., & Briand, L. C. (1999). An Object-Oriented Framework for Software Design. IEEE Transactions on Software Engineering, 25(1), 168-188. https://doi.org/10.1109/32.746610
  5. Devi, R. S., & Mala, G. S. A. (2021). An Integrated Framework for Object-Oriented Analysis and Design of Web Applications. International Journal of Web Information Systems, 17(2), 153-178. https://doi.org/10.1108/IJWIS-01-2021-0002

3. Websites:

  1. Tutorialspoint (https://www.tutorialspoint.com/object_oriented_analysis_design/index.htm): Tutorialspoint offers a comprehensive guide to OOAD, covering various topics such as basics, UML diagrams, design principles, and design patterns. The content is presented in a tutorial format with examples and explanations.

  2. GeeksforGeeks (https://www.geeksforgeeks.org/object-oriented-analysis-and-design-ooad/): GeeksforGeeks provides a wide range of articles, tutorials, and practice problems related to OOAD. It covers introductory concepts, UML diagrams, design principles, and practical implementation aspects.

  3. IBM Developer (https://developer.ibm.com/technologies/object-oriented-analysis-design/): IBM Developer offers resources on OOAD, including articles, tutorials, and videos. It covers various aspects of OOAD, from fundamental concepts to advanced topics like design patterns and architectural styles.

  4. Visual Paradigm (https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml/): Visual Paradigm provides a comprehensive guide to UML (Unified Modeling Language) with a focus on object-oriented analysis and design. It explains UML diagrams and their usage in OOAD, along with other related topics.

  5. Object-Oriented Analysis and Design for Beginners (https://www.c-sharpcorner.com/article/object-oriented-analysis-and-design-ooad-for-beginners/): It covers the basic concepts, UML diagrams, and the software development life cycle from an object-oriented perspective.