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
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.
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.
"Software Engineering with JAVA," Schach, Stephen R., Mc-Graw-Hill. 1997.
"Visual Modeling with Rational Rose and UML," Terry Quatrani, Addison-Wesly, 1998.
"UML Toolkit", Hans-Erik Eriksson and Magnus Penker, John Wiley & Sons, 1998.
"Core JAVA 1.1: Volume I - Fundamentals," Cay S. Horstmann and Gary Cornell, Sun Microsystems Press (Prentice Hall), 1997.
"Software Engineering: A Practioner's Approach," Fourth Edition, Roger S. Pressman, McGraw-Hill, 1997.
"Design Patterns: Elements of Reusable Object-Oreinted Software," E. Gamma, R. Helm, R. Johnson and J. Vlissides, Addison-Wesley, 1995.
"Core JAVA 1.1: Volume II - Advanced Features," Cay S. Horstmann and Gary Cornell, Sun Microsystems Press (Prentice Hall), 1998.
"ISO 9001 and Software Quality Assurance," Darrel Ince, McGraw-Hill, 1994.
"Use Cases combined with Booch, OMT, UML: Process and Products," Putnam P. Texel, and Charles,B. Williams, Prentice Hall, 1997.
Reference Web Sites:
http://www.cpe.ku.ac.th/~sk then click at "OO Software Development with UML"
Rational Software Corporation: http://www.rational.com
Software Engineering Institute at CMU: http://www.sei.cmu.edu
Rational Rose Enterprise with some hand-on OO analysis and design projects.
WinEdit, a shareware development environment customized for creating Java programs.
Java Development Kit (JDK) 1.1 on Windows 95
jdk1.1.6, jdk1.1.6-jit, jdk1.1.6-doc
Other commercial Java IDE tools will also be referenced, e.g. Inprise (Borland) JBuilder v2.0, or Symantec Java Cafe.
Hand-on Java coding samples from "Core Java" textbook, "UML Toolkit" textbook, and from Rational Software Corporation (http://www.rational.com).
Netscape v 4.06 or above (JDK1.1 compliance)
Day One: November 2, 1998 - Software Engineering and UML
Session 1: Introduction to Software Engineering/Software Development
Click here for ppt slides
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
Day Two: November 9, 1998 - Visual Modeling with Rational Rose and UML
- 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
Session 3: Analysis and Design with UML
Click here for ppt slides (from Rational Software Corp)
Creating Use Cases
Discovering Object Interaction
Adding Behavior and Structures
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 JavaClick here for Java slides at Monash University
Day Four: December 21, 1998 - Object-Oriented Programming with Java
- 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
Session 7: Object-Oriented Programming: Inheritance
Subclasses, Superclasses and Inheritance
Dynamic Binding and Polymorphism
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
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
JDBC Programming Concepts
Day Six: December 14, 1998 - Case Studies: UML and Java
Session 11: Dynamic Modeling
Interaction between Objects
Session 12: Physical Architecture
Logical Architecture and Physical Architecture
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 Schedule and Tracking
Configuration and Change Management
Software Process Improvement
Session 14: Testing Techniques
SQA: Software Quality Test
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
Basic Concepts of Software Quality and Quality Assurance
Introduction to Capability Maturity Model (CMM) and ISO-9001 for Software Quality Assurance