Dr. Somnuk Keretho
 Personal Zone
 Site Map
 Software Engineering with UML

A Hand-On Training Course on...

Object-Oriented Software Development
With The Unified Modeling Language (UML) and JAVA


Asst. Prof. Somnuk Keretho, Ph.D.   
Department of Computer Engineering
Faculty of Engineering, Kasetsart University

Course Description:

This course discusses about software engineering principles using object-oriented (OO) software development methodologies.  The need for OO analysis and OO design methods, object-oriented technology concepts,  software development process,  object-oriented project management, and software quality assessment will be covered.   We will study and have hand-on experience with Unified Modeling Language (UML),  which was put together in response for proposals initiated by the OMG (Object Management Group), in order to define a standard notation for modeling object-oriented applications.   The UML notation represents the state of the art in terms of object-oriented modeling languages.  It is the natural evolution of the notations used in the Booch, OMT (Object Modeling Techniques) and OOSE (Object-Oriented Software Engineering) methods.   Therefore, UML has quickly become a de-facto standard among users with respect to OO development standardization.

We will also discuss a development process implied by UML (driven by use cases, architectural-centric, iterative and incremental). Case studies using object-oriented modeling with a UML-CASE tool (Rational Rose) and implementation in Java will be conducted.  Basic software quality assurance through CMM and ISO 9000 will also be mentioned.

Nowadays, many organizations are looking for ways to build cross-platform applications and add interaction to their Web sites, and they are increasingly turning to Java programming.  Java's unique architecture allows programmers to develop a single application that can run seamlessly across platforms.  Java can also be used to produce "applets" accessible from a Web browser.    In the implementation phase, we will discuss and have some extensive experience with the Java programming language and its object-oriented features.  During our hands-on exercises, the participants will use Java to implement applets and architecture-neutral applications using the basic constructs of Java programming language.

Intended Attendance:

This course is designed for software project managers, software engineers, software analysts, programmers, and IT educators who wish to switch their software development paradigm from functional methods to object orientation methods.

Experience with any structured procedural language (e.g. C, Pascal, or COBOL) is assumed.  A familiar with Internet and WWW is recommended.  Some familiarity with object-oriented concepts is also useful, but not mandatory since the object orientation and its implementation will be discussed in this course.

Text Books:

  1. "Software Engineering with JAVA,"  Schach, Stephen R.,  Mc-Graw-Hill. 1997.
  2. "Visual Modeling with Rational Rose and UML," Terry Quatrani, Addison-Wesly, 1998.
  3. "UML Toolkit",  Hans-Erik Eriksson and Magnus Penker, John Wiley & Sons, 1998.
  4. "Core JAVA 1.1: Volume I - Fundamentals,"  Cay S. Horstmann and Gary Cornell, Sun Microsystems Press (Prentice Hall), 1997.


  1. "Software Engineering: A Practioner's Approach," Fourth Edition, Roger S. Pressman, McGraw-Hill, 1997.
  2. "Design Patterns: Elements of Reusable Object-Oreinted Software," E. Gamma, R. Helm, R. Johnson and J. Vlissides, Addison-Wesley, 1995.
  3. "Core JAVA 1.1: Volume II - Advanced Features,"  Cay S. Horstmann and Gary Cornell, Sun Microsystems Press (Prentice Hall), 1998.
  4. "ISO 9001 and Software Quality Assurance," Darrel Ince, McGraw-Hill, 1994.
  5. "Use Cases combined with Booch, OMT, UML: Process and Products," Putnam P. Texel, and Charles,B. Williams, Prentice Hall, 1997.

Reference Web Sites:

  1. then click at "OO Software Development with UML"
  3. Rational Software Corporation:
  4. Software Engineering Institute at CMU:

Software Tools:

Course Outline:

Day One: November 2, 1998 - Software Engineering and UML

Session 1:  Introduction to Software Engineering/Software Development
  Click here for ppt slides 

      • Software Crisis
      • Scope of Software Engineering
      • Software Development Process (Phases)
      • Analysis and Design Methods
      • From Functional to Object-Oriented Methods
      • Why? The Genesis of UML (Unified Modeling Language)

Session 2:  An Overview of Unified Modeling Language (UML)

      • Object-Oriented Analysis and Design with UML
      • UML: 5 Views and 9 Diagrams
        • Use-Case View, Logical View, Component View, Concurrent View and Deployment View
        • Use-Case Diagrams, Class Diagrams, Object Diagrams, Collaboration Diagrams, Sequence Diagrams, State Diagrams, Activity Diagrams, Component Diagrams, and Deployment Diagrams

Day Two: November 9, 1998 - Visual Modeling with Rational Rose and UML

Session 3:   Analysis and Design with UML
Click here for ppt slides (from Rational Software Corp)

      • Creating Use Cases
      • Finding Classes
      • Discovering Object Interaction
      • Specifying Relationships
      • Adding Behavior and Structures
      • Discovering Inheritances

Session 4:   Analysis and Design with UML

      • Analyzing Object Behavior
      • Checking the Model
      • Designing the System Architecture
      • Building the Iteration
      • Hand-on Case Studies with a CASE tool (Rational Rose)

Day Three: November 16, 1998  - UML and Software Process

Session 5:Software Development Process for Using UML
click here for ppt siles (Process with UML)
click here for "Rational Objectory Process v 4.1" white paper

      • The Basis for a UML Process: Use-Case-Driven Systems, Architecture-centric, Iterative and Incremental Development Process
      • OO Software Development Process: Requirement Engineering, Analysis, Design, Implementation, Test and Deployment.
      • Rational Objectory Process
      • Hand-on Case Studies with a CASE tool (Rational Rose)

Session 6: Object-Oriented Programming with Java
Click here for Java slides at Monash University

      • Java As A Programming Language
      • Advantages and Disadvantages of Java
      • Java Development Kit (JDK) and Its Programming Environment
      • Standalone Java Application v.s. Java Applets
      • Fundamental Programming Structures: Java vs C
      • Object-Oriented Paradigm
      • Java Support for OO Programming: Classes and Objects
      • Using Existing Classes/Building Your Own Classes
      • Packages

Day Four: December 21, 1998 - Object-Oriented Programming with Java

Session 7: Object-Oriented Programming: Inheritance

      • Subclasses, Superclasses and Inheritance
      • Dynamic Binding and Polymorphism
      • Casting
      • Abstract Classes
      • Handling Multiple Inheritance with Interfaces

Session 8: Java Libraries: AWT and  User Interfaces Components

      • Graphic Programming and Printing
      • Loading and Displaying the Images
      • Basic Abstract Windows Toolkit (AWT)
      • Event-Driven Programming: Delegation Event Model.
      • Creating Controls with AWT: buttons, scroll bars, entry fields, dialogs,  menu, menu bars, etc.
      • Laying Out the Screen with AWT
      • Exception Handling

Day Five: November 23, 1998  - Object-Oriented Programming with Java

Session 9:  Enhancing Web pages with Java Applets

      • Creating Custom Applet Subclasses
      • Plugging an Applet into A Web Page
      • HTML Applet Tag Syntax
      • Passing Information from A Web Page to the Java Applet

Session 10: Java Database Connectivity: JDBC

      • The Design of JDBC
      • Structured Query Language
      • Installing JDBC
      • JDBC Programming Concepts
      • Executing Queries

Day Six: December 14, 1998  - Case Studies: UML and Java

Session 11:  Dynamic Modeling

      • Interaction between Objects
      • Collaboration Diagrams
      • Sequence Diagrams
      • State Diagrams
      • Activity Diagrams

Session 12:  Physical Architecture

      • Logical Architecture and Physical Architecture
      • Component Diagram
      • Deployment Diagram
      • Hand-on Case Studies with a CASE tool (Rational Rose) and Java

Day Seven: December 28, 1998 - Software Project Management

Session 13: Software Project Management

      • Project Management
      • Risk Management
      • Project Schedule and Tracking
      • Configuration and Change Management
      • Software Process Improvement

Session 14: Testing Techniques

      • SQA: Software Quality Test
      • Software Metric
      • Testing Techniques

Day Eight: January 4, 1999 - Design Patterns and Software Quality

Session 15: Design Patterns and UML

      • The Gang of Four Patterns
      • The Proxy Pattern
      • Modeling Patterns in UML
      • Patterns and Use Cases

Session 16: Software Quality Assurance



Last Updated on February 15, 1999