Mitsubishi Electric (Control Software)
Workshop
on
Object Oriented Technologies
7/22/96 - 7/26/96
Instructors:
Professor, Washington University in St. Louis
Associate Professor, University of Linz, Austria
The
author of the textbook (3) listed below
Assistant Professor, Washington University in St. Louis
The
editor of the textbook (15) listed below and
the editor-in-chief of the
"C++ Report" magazine
Goals:
1) Introduction to fundamental concepts in OO technologies.
2)
Demonstration of OO advantages over traditional SE technologies.
3)
Overview of practical OO applications.
4) Hands-on experiences in OO design
and OO programming.
Textbooks:
1) Gamma et at., Design Patterns: Elements of Reusable Object-Oriented
Software, Addison-Wesley, Reading, MA, 1994
2) S. Lippman The C++ Primer
(Second Edition), Addison-Wesley, 1991
3) W. Pree. Design Patterns for
Object-Oriented Software Development, Addison-Wesley/ACM Press, 1995 (Japanes
version: Toppan KK 1996). Book-signing events in Tokyo
and Osaka
Recommended Readings:
4) Taligent. Taligent's Guide to Designing Programs, Addison-Wesley, 1994.
5) A. Goldberg and K. Rubin. Succeeding with Objects--Decision Frameworks
for Project Management, Addison-Wesley, 1995.
6) G. Booch. Object-Oriented
Design with Applications (Second Edition), Benjamin-Cummings, 1993.
7) B.
Meyer. Object-Oriented Software Construction, Prentice Hall, 1988.
8) B.
Stroustrup. The C++ Programming Language (Second Edition), Addison-Wesley,
1991.
9) B. Stroustrup and M. Ellis. The Annotated C++ Reference Manual,
Addison-Wesley, 1990.
10) S. Meyers. Effective C++, Addison-Wesley, 1993.
11) B. Stroustrup. The Design and Evolution of C++, Addison-Wesley, 1993.
12) M. Cline and G. Lomow. C++ FAQ, Addison-Wesley, 1994.
13) J. O.
Coplien. Advanced C++: Programming Styles and Idioms, Addison-Wesley, 1992.
14) MindQ Publishing. An Introduction
to programming JAVA applets, CD-ROM book , 1996.
15) J. O. Coplien and D.
Schmidt. Pattern Languages of Program Design, Addison-Wesley, 1995.
Daily Schedule:
09:00 - 10:30 1st period
10:30 - 10:45 coffee break
10:45 - 12:15
2nd period
12:15 - 14:00 lunch break
14:00 - 15:30 3rd period
15:30 -
15:45 coffee break
15:45 - 17:15 4th period
Monday (7/22): Language
1) OO Programming Concepts (TDK)
Introduction, programming paradigms, history and motivation,
encapsulation, polymorphism, inheritance, dynamic binding, other OO languages
( Slide Unit 1)
2) C++ Language I (TDK) |
C and C++, class and type, references, new and delete, friends ( Slide Unit 2)
3) C++ Language II (TDK) |
Derived class, virtual function, abstract class, dynamic binding ( Slide Unit 3)
4) Programming Exercises (Visual C++ on PC) (WP) |
The programming exercises provide a first hands-on experience and are
based on a small class library. The attendees learn how to
* use predefined classes without changes
* define a new class in
order to accomplish changes through inheritance
* work with abstract
classes
* do adaptations through object composition
( Slide
Unit 4)
Tuesday (7/23): Analysis & Design
5) OO Software Engineering Concepts (DCS)
Software quality factors, software lifecycle and development process,
reusability, large-scale development, design alternatives
6) OO Modeling (Booch/Rambaugh) (DCS)
Graphical design notations (OMT and Booch), modeling abstractions
(classes, objects, modules, processes)
7) OO Design (DCS)
Abstraction, modularity, information hiding, separation of policy and
mechanism, program families, virtual machines. ( Slide Unit 5-7)
8) Design Exercises (WP)
The design exercises provide hands-on experience in typical OO design
situations. The attendees learn how to
* define initial object models
* beat abstract classes into
shape
* apply a graphic notation (Booch-Rumbaugh)
( Exercises,
Solution
I, Solution
II)
Wednesday (7/24): Design Mechanisms
9) Class Libraries (WP)
10) Frameworks (WP)
11) Case Study I: Document
Embedding (WP)
These units teach how to exploit the potential of OO technology to create
maintainable systems which offer adequate flexibility for evolutionary
changes. First OO techniques are put into the broader context of conventional
means for creating flexible software. The focus lies on the conceptual
differences between conventional libraries, class libraries and frameworks.
The core construction principles of framerworks are discussed in general and
illustrated by the GUI framework ET++. Sample adaptations of ET++ serve as
case study intertwined with hands-on experience. ET++ is specialized to allow
embedding of various document types. ( Slide
Unit 9-11 )
12) Design Patterns (DCS)
Strategic vs. tactical patterns, Singleton, Bridge, Factory, Facade,
Strategy, Adapter, Template Method. ( Slide Unit 12
)
Thursday (7/25): Quality Management
13) Testing & Metrics (DCS)
Blackbox vs. whitebox testing, coupling, cohesion, sufficiency,
completeness, primitiveness. ( Slide Unit 13 )
14) Real-time Programming (DCS)
Reactive systems, passive vs. active objects, scheduling. ( Slide Unit 14 )
15) Project Management (WP)
An overview of software life cycle models is given, in particular of those
that are specifically suited for OO development: the Fountain Model, the
Cluster Model, the Prototyping-Oriented Model. Management issues concerning
component reuse, team structures, and planning/controlling of OO projects
round off this first part of the presentation. Based on various OO projects
carried out over the past five years, the costs and benefits of OO technology
are summarized. Finally, hints are given to avoid common management pitfalls
when applying OO technology. ( Slide
Unit 15 )
16) Case Study II: Energy Management (WP)
The case study summarizes experience gathered in one real-world
application of OO technology, in particular regarding the project team,
applied methods and tools, chosen system architecture and core system
components. ( Slide
Unit 16 )
Friday (7/26): Evaluation
17) OO Applications (DCS)
Distributed object computing, CORBA, ACE, communication frameworks. ( Slide Unit 17 )
18) Java Programming (TDK)
No more: structures, functions, multiple inheritance, goto's, overloading,
pointers. Multithreading, HotJava. ( Slide Unit 18 )
19) Summary (TDK)
20) Free Discussions (TDK/DCS/WP)
Contact at Mitsubishi:
Mr. Takehiro Kaga
Email: kaga@pic.melco.co.jp
TEL: 078-682-6510