Tutorials
- T1: Predictability by Construction
- T2: Software Architectural Knowledge = Architectural Design Decisions + Architectural Design
- T3: Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing
- T4: Information Systems Architecture: Stakeholders, Viewpoints and Perspectives
- T5: Integrating Architecture-Centric Methods into Object-Oriented Analysis and Design
- T6: Evaluating a Service-Oriented Architecture
T1: Predictability by Construction
29 April 2008, 8:30-12:00 AM
Kurt Wallnau, Software Engineering Institute,
Pittsburgh, PA
Gabriel Moreno, Software Engineering Institute, Pittsburgh,
PA
Scott Hissam, Software Engineering Institute, Pittsburgh, PA
Abstract:
Predictability by construction
means that if a system can be built (i.e., constructed), then it will have
predictable runtime behavior. A well-known gold standard for predictability by
construction is the modern programming language type system. For example,
strongly typed languages such as Java (C#, Ada, ML, etc.) guarantee specific
memory safety properties for all program executions. Less well-known is the
fact that predictability by construction can be achieved for a variety of
system-level properties for security, safety, and performance, to name a few.
Moreover, predictability by construction for such properties can be practically
achieved using available technologies and theories. In this tutorial, attendees
will learn about the principles and technologies of predictability by
construction. Topics covered in the tutorial include: the use of "smart
constraints" to establish the invariants needed to predict system behavior; the
use of quality attribute theories to identify smart constraints; the
relationship of quality attribute theories to software architecture,
architectural styles, and architecture-centric development; the use of software
component technology as a carrier of smart constraints from architecture to
code; and, the forms of evidence that can be obtained to provide an objective
basis for confidence in system quality. Attendees will receive a Starter Kit
that includes a component technology, specification language and code
generator, and software model checking and performance analysis tools, with
which to explore predictability by construction.
Presenters' Biographies:
Kurt Wallnau is a Senior Member of the Technical Staff at the Carnegie Mellon Software Engineering Institute (SEI). Mr. Wallnau has been an active contributor to research in component-based software engineering for over 20 years. He currently leads a SEI Research Initiative called "Predictable Assembly from Certifiable Components." Prior to this he led SEI research in the use of commercial off-the-shelf software components (COTS). Mr. Wallnau has published numerous papers and articles on component-based software, including the Addison-Wesley book "Building Systems from Commercial Components." Mr. Wallnau's current interests are to use theories of run-time behavior as non-standard semantics of component-based specification languages.
Gabriel Moreno received the BS degree in Computing Systems from University of Mendoza, Argentina, and the Master of Software Engineering degree from Carnegie Mellon University. He is a Senior Member of the Technical Staff at the Carnegie Mellon Software Engineering Institute, where he is a member of the Predictable Assembly from Certifiable Components initiative. Previously, he was at ITC Soluciones, Argentina, where he designed and developed multiplatform distributed systems and communication protocols for electronic transactions. He has received several awards, including a Fulbright Fellowship. His research interests include predictable assembly, performance modeling and analysis, component technology, and model-driven development.
Scott A. Hissam is a senior member of the technical staff for the Carnegie Mellon Software Engineering Institute where he conducts research on component-based software engineering and Open Source Software. His publications include two books, papers published in international journals including IEEE Internet Computing and Journal of Software Maintenance, and technical reports published by CMU. Prior to his position at the SEI, Mr. Hissam held positions at Lockheed Martin, Bell Atlantic, and the US Department of Defense. He has a Bachelor of Science degree in Computer Science from West Virginia University. Mr. Hissam's current interests include software component technology, runtime systems, and application of performance analysis.
T2: Software Architectural Knowledge = Architectural Design Decisions + Architectural Design
29 April 2008, 8:30-12:00 AM
Philippe Kruchten, University of British Columbia, Vancouver BC
Abstract:
Architectural knowledge consists
of architecture design as well as the architectural design decisions,
assumptions, context, and other factors that together determine why a
particular solution is the way it is. Except for the architecture design part,
where various notations (e.g., UML) or prototypes can help make it concrete,
most of the architectural knowledge usually remains hidden, tacit in the heads
of the architects. Capturing and visualizing a set of architecture decisions
can constitute an alternative representation of the architecture, and the
architectural knowledge, helpful for building and evolving systems, for
bridging software design with system design, for transmitting architectural
knowledge, education and training, and to provide at lower cost a design
rationale.
This tutorial introduces the concept of architectural design knowledge, its link with requirements; using simple examples of set of design decisions, we will look at various ways to exploit them in practice by architects, and we describe and discuss a few challenges still ahead for the researchers and the practitioner.
Presenter's Biography:
Philippe Kruchten is professor of software engineering in the department of electrical and computer engineering of the University of British Columbia, in Vancouver, Canada. He joined UBC in 2004 after a 30+ year career in industry, where he worked mostly in with large software-intensive systems design, in the domains of telecommunication, defense, aerospace and transportation. Some of his experience is embodied in the Rational Unified Process (RUP) whose development he directed from 1995 till 2003, when Rational Software was bought by IBM. RUP includes an architectural design method, known as "RUP 4+1 views". His current research interests still reside mostly with software architecture, and in particular architectural decisions and the decision process, as well as software engineering processes, in particular the application of agile processes in large and globally distributed teams. He is a senior member of IEEE CS, member of ACM and INCOSE, the founder of Agile Vancouver, and a Professional Engineer in British Columbia. He has a diploma in mechanical engineering from Ecole Centrale de Lyon, and a doctorate degree in informatics from Ecole Nationale Supérieure des Télécommunications in Paris.
T3: Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing
29 April 2008, 8:30-12:00 AM
Douglas Schmidt, Vanderbilt University
Abstract:
Developing software for
distributed computing applications that effectively utilizes concurrency over
high-speed, low-speed, and mobile networks is hard; developing high quality
reusable distributed applications is even harder. Many patterns in the software
literature focus on distributed computing. Until recently, however, there has
been no holistic view of distributed computing that emphasizes how groups of
patterns complete and complement each other architecturally. Building complex
distributed systems has therefore been a craft that many have tried, but few
have mastered. To help address this issue, this tutorial describes a pattern
language that links hundreds of patterns relevant for distributed computing,
including object interaction, interface and component partitioning, application
control, resource management, and concurrency and synchronization. This pattern
language has been used on production distributed applications and middleware at
hundreds of commercial companies for telecommunication systems, network
management for personal communication systems, electronic medical imaging
systems, real-time avionics and aerospace systems, and automated stock trading.
Presenter's Biography:
Douglas Schmidt is a Professor of Computer Science and Associate Chair of the Computer Science and Engineering program at Vanderbilt University. He has published over 400 technical papers and books that cover a range of research topics, including patterns, optimization techniques, and empirical analyses of software frameworks and domain-specific modeling environments that facilitate the development of distributed compting middleware and applications. In addition to his academic research, Dr. Schmidt has over fifteen years of experience leading the development of ACE, TAO, CIAO, and CoSMIC, which are widely used, open-source middleware frameworks and model-driven engineering tools.
T4: Information Systems Architecture: Stakeholders, Viewpoints and Perspectives
29 April 2008, 1:00-4:30 PM
Eoin Woods, Barclays Global Investors
Abstract:
Software architecture is made
challenging by the number of stakeholders the architect must consider and the
inherently multi-dimensional nature of a system. This situation has led to the
definition of the "viewpoint and view" based approach to architectural design
and description. A number of sets of viewpoints have been developed, that guide
architects through the process of designing and describing the different
structures of their systems (such as functional structure & deployment
environment), each viewpoint guiding the creation of a particular type of view.
More recently, the presenters have introduced a complimentary concept, that of
the "perspective", sets of which are used to guide an architect through the
process of designing systems with particular quality properties. This tutorial
will present a set of viewpoints and perspectives for information systems
architecture and will explain how they can help an architect to design a system
to meet the needs of its stakeholders.
Presenter's Biography:
Eoin Woods is a software architect at Barclays Global Investors, responsible for a new equities portfolio management system being built for the company's well known active management group. Prior to BGI, Eoin has worked in the software engineering field for over 15 years, for a number of companies including Groupe Bull, Sybase, InterTrust and UBS Investment Bank.
His main technical interests are software architecture, distributed systems, computer security, and data management and he is co-author of the book "Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives", published by Addison Wesley. Eoin can be contacted via his web site at www.eoinwoods.info.
T5: Integrating Architecture-Centric Methods into Object-Oriented Analysis and Design
29 April 2008, 1:00-4:30 PM
Raghvinder Sagwan, Pennsylvania State University, State College, PA
Abstract:
Architecture has been
established as a key to developing software systems that meet quality
expectations of their stakeholders. Object-Oriented Analysis and Design (OOAD)
methodologies, however, treat architecture only indirectly or implicitly. The
quality of a system developed using such methodologies, thus, depends largely
on the skill level and experience of its architect. It has been suggested,
therefore, that augmenting these methodologies with software
architecture-centric methods such as the SEI Quality Attribute Workshop (QAW)
and SEI Attribute-Driven Design (ADD) can provide explicit and methodical
guidance to an architect in creating systems with desirable qualities.
In this tutorial, we will first go through the exercise of applying OOAD techniques (use case analysis, domain modeling, and component-based design) for creating the architecture for a system from the building-automation domain. We then use the techniques prescribed by the architecture-centric methods (QAW and ADD) for creating the architecture for the same system. These two exercises are used to clearly demonstrate the shortcomings of OOAD. Finally, we demonstrate how OOAD can be augmented with architecture-centric methods to overcome these shortcomings.
Presenter's Biography:
Raghvinder S. Sangwan is an assistant professor of information science in the Great Valley School of Graduate Professional Studies at the Pennsylvania State University. He holds a PhD in computer and information sciences from Temple University. He teaches analysis, design, and development of software systems, their architecture, and automatic and semi-automatic approaches to assessment of their design and code quality. Prior to joining the Pennsylvania State University, he worked as a lead architect for Siemens on geographically distributed development projects, building information systems for integrated health networks. He continues to serve as a consulting technical staff member for Siemens Corporate Research in Princeton, New Jersey, investigating approaches to managing global software development projects. Dr. Sangwan's research includes requirements engineering and software architecture.
T6: Evaluating a Service-Oriented Architecture
29 April 2008, 1:00-4:30 PM
Paulo Merson, Software Engineering Institute,
Pittsburgh, PA
Phil Bianco, Software Engineering Institute, Pittsburgh,
PA
Rick Kotermanski, Summa Technologies, Pittsburgh, PA
Abstract:
Are you involved in the
development of a service-oriented architecture (SOA), or are you considering
this approach in your next project? Do you believe architecture evaluation is
an important step in the software life cycle because, among other benefits, it
detects problems that are hard to fix once the implementation is in place? If
you answered "yes" to both questions, we invite you to attend this tutorial
where we'll provide practical information for the architecture evaluation of an
SOA system. We'll discuss how to describe the architecture, what architectural
approaches are applicable, what questions and design considerations can be used
to probe the architecture, and other aspects of architecture analysis-always
looking at the specifics of SOA solutions. In this tutorial, the SEI
Architecture Tradeoff Analysis Method (ATAM) is used as a reference for the
steps, inputs, and outputs of an architecture evaluation technique.
Presenters' Biographies:
Paulo Merson has over 16 years of software development experience. He currently works at the Carnegie Mellon Software Engineering Institute (SEI) on software architecture, service-oriented architectures, the ATAM, and predictability in component-based development. One of his assignments at the SEI is teaching a two-day course called "Documenting Software Architectures" for industry and government practitioners. His recent speaking experience includes lectures to graduate students on topics such as J2EE, AOP, UML 2.0, and conference tutorials and invited talks at different companies. Prior to joining the SEI, he was a J2EE consultant and worked in the implementation of several enterprise applications. He holds a bachelor's degree in computer science from the University of Brasilia and a master's degree in software engineering from Carnegie Mellon University.
Philip Bianco is a member of the technical staff at the Carnegie Mellon Software Engineering Institute (SEI). He holds a master's degree in software engineering from Carnegie Mellon University and a bachelor's degree with honors in computer science from the University of Pittsburgh. Currently, he conducts research in the area of software architecture for the SEI's Product Line Systems Program. His research topics include tools to assist Architects (ArchE), service-oriented architecture (SOA), and architectural enforcement. Prior to joining the SEI in 2000, he worked in information systems development and database administration.
Rick Kotermanski is the chief technology officer for Summa Technologies. Rick brings more than 20 years of experience in the architecture, management, design, and implementation of mission-critical applications to his role as the leader of Summa's technology strategy and practice development. Rick led the development of Summa's practice areas, including enterprise architecture, application modernization, and service-oriented architecture. He also led Summa teams on numerous client projects including IT strategy definition and implementation at leading financial services, manufacturing, insurance, and product development companies. Prior to joining Summa, Rick was a WebSphere development manager at the IBM Pittsburgh Lab and held software engineering positions at Union Switch and Signal and PPG Industries.