Visit Broadbeans Inc., your one-stop education center


Broadbeans Inc.

We want to help make you succeed in the fast-paced world of technology. That is why, we, at Broadbeans Inc., are committed to providing customized courses uniquely tailored for each individual person or business. We want to be your one-stop education center. Because we understand that you would rather deal with one than many, we want to provide you courses that will help you and your business succeed. We provide both scheduled short courses for individuals and groups as well as custom courses for your company's training needs. We specialize in programming courses in software engineering essentials, object-oriented software engineering, Java, C++, UML, mobile application development, JavaScript, PHP/ MySQL, and Perl. We also can customize a course directly for your company. And we can be there every step of the way.

 Broadbeans Inc.
 Your one-stop
 education center.

 For more info on how 
 Broadbeans Inc. can serve
 you, contact:


Object-Oriented Analysis & Design Using UML 

Learning Objectives

The short course Object-Oriented Analysis & Design Using UML will expose students to the basics of object-oriented analysis and design using UML (Unified Modeling Language). Laboratory sessions will equip participants with practical experience in object-oriented analysis and design.

UML is the standard language for object-oriented analysis and design. UML is used throughout the software project lifecycle to capture and communicate analysis and design decisions. This course is intended to provide an introduction to OOAD using UML. At the end of the course, participants will understand the basic steps of OOAD, gain practical knowledge in the UML diagrams and notations, and build an object-oriented model for their project using UML. Topics covered include: Introduction to OOAD, Use Case Diagrams, Identifying Classes, Operations, and Attributes, Class Relationship Diagrams, Sequence Diagrams, Collaboration Diagrams, State Transition Diagrams, Object Design, System Design, Using Eclipse to Create UML Models. It will be helpful if participants come with details of a real project that they wish to model.  

Upon completion of this course, the participants will be able to:

* Understand basic object-oriented concepts;
* Apply an iterative, use case-driven process to the development of a robust design model;
* Use the UML to represent the design model;
* Apply the OO concepts abstraction, encapsulation, inheritance, hierarchy, modularity, and polymorphism to the development of a robust design model;
* Design a software system using object-oriented software engineering paradigm.

Course Topics

DAY 1:
Software Engineering Overview
* What is Software?
* What is software engineering?
* What makes good software?
* What makes a good software engineer?
Object-Oriented Concepts
* class, object, attribute operation
* Examples of Classes,Objects/Instances, Attributes, Operations
* Unique Characteristics of OO Systems
* Examples of Abstraction, Encapsulation, Inheritance, Polymorphism, Modularity
* Key Points
Introduction to Object-Oriented Analysis and Design with UML
* Analysis Versus Design
* What is Architecture?
* OOAD Steps
* What is UML?
* UML Diagrams
* What constitutes a good model?
* Class Diagrams
- UML Notation for Class
- Hierarchical Inheritance
- Notations for Inheritance
- An Example Inheritance Hierarchy
- The Is-a Rule
- Exercise: Inheritance
Hands-On Workshop with EclipseUML
* Getting Started with Eclipse UML
* Creating UML Classes
Essentials of UML Class Diagrams
* Associations
* Multiplicity (Cardinality)
* Labelling associations
* Analyzing and validating associations
* A more complex example
* Association classes
* Reflexive associations
* Directionality in associations
* Generalization
* Avoiding having instances change class
* Aggregation
* When to use an aggregation
* Composition
* Aggregation hierarchy
* Inheritance or Aggregation?
* The Process of Developing Class Diagrams
* System domain model vs System model
* Suggested sequence of activities
* Identifying classes
* A simple technique for discovering domain classes
* Identifying associations and attributes
* Tips about identifying and specifying valid associations
* Actions versus associations
* Identifying attributes
* Tips about identifying and specifying valid attributes
* An example (attributes and associations)
* Identifying generalizations and interfaces
* An example (generalization)
* Allocating responsibilities to classes
* Categories of responsibilities
* An example (responsibilities)
* Identifying operations
Hands-on Exercise: UML Class Diagrams

DAY 2:
User Centered Design
* Characteristics of Users
* Developing Use-Case Models of Systems
* Use cases
* Scenarios
Introduction to Object-Oriented Analysis and Design with UML
Use-Case Diagrams
* How do you identify Actors?
* How do you identify Use Cases?
* How to describe a single use case
* Extensions
* Generalizations
* Inclusions
* Example of generalization, extension and inclusion
Hands-On Exercise: Creating Use Case Diagrams
* Example description of a use case
* The modeling processes: Choosing use cases on which to focus
* The benefits of basing software development on use cases
Interaction Diagrams
* Interactions and messages
* Elements found in interaction diagrams
* Creating interaction diagrams
* UML Notation for Object in Sequence Diagram
* UML Notation for Sequence Diagram
* Sequence diagrams – an example
* Sequence diagrams – an example with replicated messages
* Sequence diagrams – an example with object deletion
Hands-On Exercise: Creating Sequence Diagrams
* Collaboration Diagram
* UML Notation for Collaboration Diagram
* Collaboration diagrams – an example
* Communication links
State Diagrams
* State Diagram Description
* UML Notation for State Diagrams
* State diagrams – an example
* States
* Transitions
* State diagrams – an example of transitions with time-outs and conditions
* State diagrams – an example with conditional transitions
* Activities in state diagrams
* State diagram – an example with activity
* Actions in state diagrams
* State diagram – an example with actions
* Nested substates and guard conditions
* State diagram – an example with substates
Hands-On Exercise: Creating State Diagrams
Activity Diagrams
* Activity diagrams – an example
* Representing concurrency
* Swimlanes
* Activity diagrams – an example with swimlanes
* Component and Deployment Diagrams
Design Patterns
* Introduction to Patterns
* Pattern description
* The Abstraction-Occurrence Pattern
Hands-On Exercise: Design Patterns
Difficulties and Risks When Creating Class Diagrams



Dr. Flora S. Tsai

Dr. Tsai has over 16 years of teaching experience for undergraduate software engineering subjects. She was a graduate of MIT, Columbia University, and NTU. Dr. Tsai has many years of industrial experience in software research and development in USA and Singapore. She teaches Object-Oriented Software Engineering Design, Object-Oriented Programming, and Software Engineering at the undergraduate level. She has previously conducted numerous professional short courses for the industry, including Object-Oriented Software Engineering Using UML, Java, and Eclipse, Object-Oriented Analysis & Design Using UML, Software Engineering Essentials, Object-Oriented Programming Using C++, Object-Oriented Programming Using Java, and Mobile Application Development with Java. She has edited three textbooks related to the subjects: Object-Oriented Software Engineering, Cyber Security, and E-Business Management. She was also involved in chairing the Eclipse Technology Summit, held at NTU in May 2006. Her recent awards include the 2005 IBM Faculty Award, 2007 Real-Time Innovation Award, 2010 Smarter Planet Innovation Award, and 2012 Smarter Communications Innovation Award. She was also the recipient of the 2005 Eclipse Innovation Grant for her project entitled “Object-Oriented Design and Development of an Electronic Patient Record System”. She is currently a senior member of both IEEE and ACM.


This course is intended for practitioners who want a basic understanding of object-oriented software engineering concepts, as well as hands-on practical experience applying the techniques. Includes software engineers, programmers, IT professionals, computer engineers, analysts, designers, and technical managers with some programming experience who wish to learn the theory and practice of object-oriented analysis and design, and achieve a solid grounding in UML design. Preferably should have some basic understanding of object-oriented concepts.  



April 15-16, 2019 


9:00am to 5:00pm 


Bellingham, WA (USA)

Closing Date:

4 weeks before the course begins 

Course Fee:



Registration fees inclusive of:

  • Course materials

  • Light refreshments

  • Certificate of Completion


Note that all participants are requested to bring their own laptop to class. 

Online Course Option

Do you want to take our short courses, but cannot attend the scheduled classes? The online course option is now available for this class. Online courses have the same content as the scheduled courses, but are conducted online. Upon payment receipt, you will receive a set of course materials, email support, and one-to-one consultation (up to 2 hours) with the course instructor by phone or videoconference. Please register here or email with your preferred course and dates. Note: software licenses are NOT provided for online courses. You are required to download and install EclipseUML and Eclipse before beginning this online course.


Online Registration

Register Online or email


Payment Options

1. Online Payment (Visa / Mastercard / Amex / Paypal)

2. Check

3. Invoice to Company (for Company Sponsored Participants)

Cancellation & Refund Policy

Withdrawal or deferment notice must be made in writing to at least 4 weeks before the course begins.
In the event that the course is cancelled due to unforeseen circumstances, full refund will be given. Broadbeans Inc. reserves the right to substitute the course instructor with another of similar experience in case of extenuating conditions.


Participating Organizations

Agilis Communication

DSO National Laboratories

Great Eastern Life Assurance Co Ltd

Kulicke & Soffa Pte Ltd

Ngee Ann Polytechnic

Panasonic Electronic Devices Singapore Pte Ltd

Philips Electronics Singapore Pte Ltd

Singapore Airlines Cargo

Singapore Institute of Manufacturing Technology

Singapore Polytechnic

Temasek Polytechnic

Participant's Feedback

It does help to prepare the mindset of an individual to learning new concepts. The scope of the lecture is enought for UML introduction. -Engineer from Panasonic

A successful real world project to support OOA using UML. -Software Engineer from Kulick & Soffa



For general questions or comments about the Broadbeans Inc. site, please send e-mail to

Thanks for taking the time to give us your comments.

© Broadbeans Inc.