Courses
As part of the SATURN 2008 program, we will be
offering the
courses from the
Software Architecture
Curriculum at a special SATURN rate. To register visit
http://www.regmaster.com/conf/saturn2008.html
Software Architecture Principles and Practices
April 28-29, 2008
8:30 AM - 5:00 PM
Instructor: Rick Kazman
Course Description
Although the term software architecture is used
frequently in today's software industry, its meaning is not universally
understood.
- What is software architecture?
- How do you use software architectures in practice?
- What does a software architect do for an organization?
- What value does software architecture provide?
This course introduces the basic concepts of software
architecture. A software architecture is an abstract view of a software system
distinct from the details of implementation, algorithms, and data
representation. Architecture is, increasingly, a crucial part of a software
organization's business strategy. Software architectures can
- provide flexibility and adaptability in changing markets
- allow for interoperability with other players in the
marketplace
- provide leverage in a marketplace
- help developers focus on a niche in the marketplace
- be used as a sales and marketing tool
- help reduce maintenance costs and amortize development costs
- assist in workforce organization and project oversight and
control
- establish a common corporate vocabulary
- shorten learning time
This two-day course emphasizes the importance of the
business (or mission) context in which systems are designed and introduces
participants to software architectures in a real-world setting.
"Industrial-strength" case studies illuminate the key technical and
organizational issues regarding software architectures. This course is based on
the book Software Architecture in
Practice, 2nd Edition.
Audience
This course is targeted at those
professionals who design, develop, or manage the construction of
software-intensive systems. This course is designed to help practicing software
professionals quickly gain insight into the latest concepts of what software
architecture is and how to use it successfully.
Prerequisites
Before registering for this
course, participants should have
- significant experience in the development of software-intensive
systems
- some familiarity with modern software engineering concepts
Topics
- definition and overview of software architecture
- the architecture business cycle: what influences software
architects and software architecture
- understanding and achieving quality attributes
- attribute-driven design
- documenting software architecture
- evaluating software architecture
- architecture reuse
Objectives
This course provides attendees
with a thorough overview of software architectures. After attending this
course, participants will have a better understanding of
- the relationships between system qualities and software
architectures
- software architectural patterns and their relationship to system
qualities
- software architecture evaluation
- attribute-driven design
- software architecture documentation
- architectural reuse
This course is the most fundamental of the six
courses in the SEI Software
Architecture Curriculum. Completion of this course satisfies the
prerequisite for the SEI's Software Architecture Design and Analysis and
Architecture Tradeoff Analysis Method (ATAM) Evaluator courses. Attendees will
also be prepared for other courses in the curriculum, such as ATAM Evaluator
Training, Documenting Software Architectures, and Software Product Lines.
Course Materials
Participants receive a
copy of the lecture slides and the book Software Architecture in Practice, 2nd
Edition.
Documenting Software Architectures
April 28-29, 2008
8:30 AM - 5:00 PM
Instructor: Paul Clements
Course Description
Software architecture has become a widely accepted
conceptual basis for the development of nontrivial software in all application
areas and by organizations of all sizes. However, the treatment of architecture
to date has largely concentrated on its design and, to a lesser extent, its
validation. Effectively documenting an architecture is as important as crafting
it; if the architecture is not understood (or worse, misunderstood), it cannot
be analyzed effectively or meet its goal as the unifying vision for system and
software development. Documentation-based architecture strategies stop short of
prescribing documentation standards.
- What are effective architecture documentation guidelines?
- How do you represent architectural elements and the relations
among them?
- How do you document interface semantics and architectural
rationale?
- How do you provide relevant architectural information to
important stakeholders?
- Are there templates for architecture documentation?
This two-day course provides in-depth coverage of
effective software architecture documentation practices that meet the needs of
the entire architecture stakeholder community. This course presents the
information in the context of prevailing prescriptive models, including the
Rational Unified Process (RUP), the Siemens Four Views software approach, the
IEEE 1471-2000 standard, and the Unified Modeling Language (UML). The course is
based on the book Documenting
Software Architectures: Views and Beyond.
Audience
This course is targeted at
- software architects and software lead designers whose jobs
include producing architectural documentation
- software technical managers whose jobs include overseeing and/or
managing the architecture definition process
- software engineers who may be expected to use architecture
documentation
Prerequisites
Before registering for this
course, participants must
- have experience in designing and developing software-intensive
systems
- understand the basic concepts of software architecture. If
desired, they can gain this understanding by completing the SEI Software
Architecture: Principles and Practices course.
Topics
- principles of sound documentation
- viewtypes, styles, and views
- advanced concepts such as refinement, context diagrams,
variability, software interfaces, and how to document interfaces
- documenting the behavior of software elements and software
systems
- choosing relevant views
- building a documentation package using a seven-part template
Objectives
This course shows software
architects how to produce a comprehensive documentation package for a software
architecture that is useful to stakeholders. After attending this course,
participants will have a better understanding of
- the basic principles of sound technical documentation
- a stakeholder- and view-based approach to documenting software
architectures
- which views are available for documenting an architecture
- how to choose the set of views that will be most valuable to the
architecture's community of stakeholders
- the information needed to document a view
- how to use formal and informal notations (including UML) to
represent elements and relations in a view
- how to document a software interface and software behavior
- the information needed to document information that applies
across views
Course Materials
Participants receive a
copy of the lecture slides, exercises, and the book Documenting Software Architectures: Views
and Beyond.