Key Benefits
You will learn how to:
- Graphically model components (using UML) to understand/communicate their structure and
behavior
- Design components and their interfaces
- Document components
- Describe dependencies among components
- Differentiate COM, CORBA and JavaBeans
Background
Components are the latest rage in software development
technology, with good reason. Component-based systems are easier to understand, build,
debug and maintain than monolithic systems. The middleware technologies associated with
components (CORBA, COM, JavaBeans, etc.) provide standardized, off-the-shelf component
interconnection solutions, moving software closer to plug-and-play systems and better
supporting reuse across product families. Also, each offers a component model that
explicitly addresses the problem of system evolution. As a result, components are being
embraced in a growing number of projects.
Class
Overview
This class covers the essential concepts necessary
for a discourse on components, and then deals with component and interface design and
specification. Building up to a template for component specification, the course
identifies issues that need to be dealt with in designing components, principles for
system partitioning and interface design, and graphical modeling of the structure and
behavior of components.
The class addresses such questions as:
- What is a component? (There are multiple definitions out there.)
- Do I have to use an object-oriented programming language like C++ or Java?
- What have others learned about designing and using components?
- What should I be thinking about when I design my components interfaces?
- How should I document my component?
- What techniques and tools are there for component design?
- How do I use UML to model components?
- How do we overcome the DLL versioning problem with components?
This class is taught seminar-style, with a fast flow of concepts and principles, and
descriptions of techniques.
Why This
Class?
This class will help you quickly cover the essential
concepts related to component design. There are courses that focus on particular component
technologies (e.g., Microsofts COM), and once you have selected your middleware
technology (a.k.a., component infrastructure), you will want to take a class focused on
that technology. However, the technology courses assume that what you want to learn is how
to implement an already designed component using the technology in question. This
class fills a critical gap in what is available elsewhere.
Audience
Software developers, architects and managers of
component projects.
Instructor's Background
The instructor, Ruth
Malan, has over 15 years experience in software engineering, architecture and consulting,
including 6 years with Hewlett-Packard. Together with Dana Bredemeyer, she pioneered the
internal architecture training and consulting program at HP. She has provided architecture
consulting and training to architects, architecture teams and their management, and has
helped teams develop component architectures. Ruth has published extensively in the areas
of object-oriented development, reuse, and architecture, and is an author and editor of
the book Object-Oriented Development at Work: Fusion in the Real World. Ruth is
currently co-authoring a book on software architecture with Dana Bredemeyer, for
Prentice-Hall. |
Class Outline
This 1-day class covers the following
topics:
Introduction to Component Concepts and Technologies
- Components
Definitions
- Motivation
- Mainstream component models (CORBA, COM, JavaBeans)
Interfaces and the component contract
IDL and MIDL for specifying APIs
Interface semantics and rules
Component Interconnection
different connection mechanisms, such as procedure
call and remote procedure calls (RPC)
middleware solutions, including CORBA, COM, and JavaBeans,
and pros and cons of each
Principles of Component Design
- What makes a good component and interface
- Issues in component design
- Principles of componentization
- Principles of component design for reuse/product families, extensibility, etc.
- Lessons learned on real-world projects
Tools for Component Design
Modeling in UML
Component Documentation
- Component documentation concerns
- Component document template
- Interface specification template
- Component examples
Venue
We do not have any more open enrollment
classes scheduled this summer. Our next open enrollment class will likely be in November.
Join our mailing list if you would like to receive schedule
updates.
Pricing
The cost for the
1-day class is $500 per student. We offer a 10% discount for registrations received
at least 4 full weeks in advance of the class. Note: We only accept a maximum of 20
participants, so register early to avoid disappointment.
Continental breakfasts, lunches and snacks
will be provided, but workshop participants are responsible for dinners and their own
accommodations.
Cancellation Policy
We will refund the
registration fee less a $50 processing fee if cancellations are made
more than 21 days in advance of the workshop start date.
Cancellations made 21 days or less from the workshop start date are not refundable.
However, student substitutions may be made any time prior to the start of the workshop.
ABOUT BREDEMEYER
CONSULTING|
Bredemeyer Consulting specializes in training and mentoring software architects. We
typically work with architecture teams, providing training and mentoring to accelerate
their creation or migration of an architecture. However, we do offer a limited number of
Software Architecture Workshops for open enrollment.
|