![]()
Technical Reports
![]()
|
USC-CSE-2002-515 PDF The
Agile Methods Fray Tom DeMarco, Barry Boehm In Computer’s January 2002 issue, Barry Boehm presented
a fresh look at a set of software development methods often referred to as
agile or extreme programming (“Get Ready for Agile Methods, with Care,” Jan. 2002, pp. 64-69). This
favorable assessment by one of the software establishment’s leading
lights prompted the latest of several e-mail dialogues between Boehm and
software luminary Tom DeMarco, who strongly
advocates that the software establishment begin moving toward agile methods. Document characteristics: Computer, June 2002, pp. 90-92 USC-CSE-2002-514 PDF Disaggregating
and Calibrating the CASE Tool Variable in COCOMO II Barry
Boehm, Bert Steece, Jongmoon
Baik Software systems of today are
frequently composed from prefabricated, heterogeneous components that provide
complex functionality and engage in complex interactions. Software
architecture research has revealed the importance of component interactions
on our ability to perform software composition. Various development
organizations have found interaction mismatches to be both difficult and a
core issue behind failed software integration efforts. This paper is aimed at
improving the understanding of component interactions, embodied in the notion
of software connectors, in order to prevent such failures. Our previous work
has resulted in a four-level classification framework for studying the
characteristics of connectors. This paper presents a comprehensive taxonomy
of software connectors based on the previously published connector
classification framework. This taxonomy is used to explain various existing
software connectors and study compatibility of connector characteristics,
intended to prevent component interaction mismatches. Document characteristics: IEEE
Trans. SW Engr, Nov, 2002, pp. 1009-1022 USC-CSE-2002-513 PDF Get Ready for Agile Methods, with Care Barry Boehm Software systems of today
are frequently composed from prefabricated, heterogeneous components that
provide complex functionality and engage in complex interactions. Software
architecture research has revealed the importance of component interactions
on our ability to perform software composition. Various development
organizations have found interaction mismatches to be both difficult and a
core issue behind failed software integration efforts. This paper is aimed at
improving the understanding of component interactions, embodied in the notion
of software connectors, in order to prevent such failures. Our previous work
has resulted in a four-level classification framework for studying the
characteristics of connectors. This paper presents a comprehensive taxonomy
of software connectors based on the previously published connector
classification framework. This taxonomy is used to explain various existing
software connectors and study compatibility of connector characteristics,
intended to prevent component interaction mismatches. Document characteristics:
Computer, January 2002, pp. 64-69 USC-CSE-2002-512 PDF Using
The Spiral Model and MBASE to Generate New Acquisition Process Models: SAIV,
CAIV, and SCQAIV Barry Boehm, In this article, we show how you can use the MBASE process
framework to generate a family of acquisition process models for delivering
user-satisfactory systems under schedule, cost, and quality constraints. We
present the six major steps of the Schedule/Cost/Schedule-Cost-Quality as
Independent Variable (SAIV/CAIV/SCQAIV) process using SAIV and a
representative Department of Defense (DoD) Command,
Control, and Communications Interoperability application as context. We then
summarize our experience in using SAIV on 26 Document characteristics: CrossTalk,
January 2002, pp.20-25. USC-CSE-2002-511 PDF Understanding Software Connector Compatibilities Using A Connector
Taxonomy Nikunj R. Mehta and Nenad Medvidovic Software systems of today
are frequently composed from prefabricated, heterogeneous components that
provide complex functionality and engage in complex interactions. Software
architecture research has revealed the importance of component interactions
on our ability to perform software composition. Various development
organizations have found interaction mismatches to be both difficult and a core
issue behind failed software integration efforts. This paper is aimed at
improving the understanding of component interactions, embodied in the notion
of software connectors, in order to prevent such failures. Our previous work
has resulted in a four-level classification framework for studying the
characteristics of connectors. This paper presents a comprehensive taxonomy
of software connectors based on the previously published connector
classification framework. This taxonomy is used to explain various existing
software connectors and study compatibility of connector characteristics,
intended to prevent component interaction mismatches. Document characteristics: Submitted to SoDA
2002 USC-CSE-2002-510 PDF Adaptable Architectural Middleware for
Programming-in-the-Small-and-Many Marija Mikic-Rakic
and Nenad Medvidovic A
recent emergence of small, resource-constrained, and highly-mobile computing
platforms presents numerous new challenges for software developers. We refer
to development in this new setting as programming-in-the-small-and-many
(Prism). This paper provides a description and evaluation of a middleware
intended to support software architecture-based development in the Prism
setting. The middleware, called Prism-MW, provides highly efficient and
scalable implementation-level support for the key aspects of Prism
application architectures. Additionally, Prism-MW is easily extensible to
support different application requirements and, in fact, different
architectural styles suitable for the Prism setting. Prism-MW is accompanied
with design, analysis, deployment, and run-time monitoring tool support. It
has been applied in a number of applications and used as an educational tool
in a graduate-level embedded systems course. Recently, Prism-MW has been
successfully evaluated by a major industrial organization for use in one of
their key distributed embedded systems. Our experience with the middleware
indicates that the principles of architecture-based software development can
be successfully, and flexibly, applied in the Prism setting. Document characteristics: Submitted to ICSE 2003 USC-CSE-2002-509 PDF Distilling
Software Architecture Primitives from Architectural Styles Nikunj R. Mehta, and Nenad Medvidovic Architectural
styles codify commonly used idioms in system structures, organizations, and
interactions. Existing classifications of architectural styles provide
empirical guidelines for style selection, but fail to systematically
characterize styles or reveal their foundations. Moreover, the mapping
between architectural styles and their implementations is generally poorly
understood. This paper introduces an approach towards a systematic
understanding of architectural styles based on a small set of recurring
architectural primitives. Also proposed is an extensible composition
framework for architectural styles based on these primitives, which is, in turn,
used as the basis of style implementation. This framework, called Alfa, has
been applied successfully to four different architectural styles to date.
Lightweight compositional models of the styles have been created using the
Alloy formal modeling notation, whereas implementation infrastructures for
these styles have been developed in Java. While it would be premature to
claim that Alfa is sufficiently expressive to represent any arbitrary
architectural style, our experience to date suggests that we have converged
on a set of primitives that effectively captures the characteristics of a
large number of styles. As such, we feel that Alfa already presents a unique
contribution and is worthy of careful further study.
USC-CSE-2002-508 PDF Software
Architecture-Based Development Support for Ubiquitous Systems. Marija Mikic-Rakic
and Nenad Medvidovic Over
the past several decades software researchers and practitioners have proposed
various approaches, techniques, and tools for developing large-scale software
systems. A new set of challenges has arisen with the emergence of
inexpensive, small, heterogeneous, resource-constrained, possibly embedded,
highly-distributed, and highly-mobile computing platforms that are permeating
virtually every facet of life (i.e., ubiquitous systems). This paper presents
an approach to software development for ubiquitous systems whose intent is to
address these challenges. Our approach to Prism directly leverages the
principles and solutions from the emerging body of work on software
architectures. We refer to software development in this setting as
programming in the small and many (Prism), in order to distinguish it from
the commonly adopted software engineering paradigm of programming in the
large (PitL). The centerpiece of our approach is a
software architectural style and its middleware that support the key aspects
of Prism applications: self-awareness, distribution, heterogeneity, dynamism,
mobility, and graceful degradation. Our approach has been successfully
applied on a number of ubiquitous applications. While several issues
pertaining to Prism remain areas of future work, our experience to date has
been very positive.
USC-CSE-2002-507 PDF An example
product line architecture: The Library System
Ebru Dincel, Nenad Medvidovic, Andre van der Hoek
The
Library System case study was performed to experiment with alternative
approaches for realizing diverse concepts within the KobrA
[Atkinson, 2002 #1195] method developed at Fraunhofer
Institute for Experimental Software Engineering (IESE) [IESE, #1197] . The
case study is publicly available on the institute’s web site [Bayer,
#1196]. The scope of the domain of library system is characterized by the
common and variable aspects of different systems in the library systems
product line. For this case study, the scope is based on three types of
library systems: a city library, a university library and a research library.
The IESE research library is a specialized, scientific library for the
researchers, students, and employees working at the IESE. Information
gathering, documentation, training, and consulting tasks are a few of the
responsibilities of this library. Similarly, the university library is a
scientific library. Its purpose is to provide university members
comprehensively with scientific literature. Finally, the city library is a
public library. Its purpose is to provide all citizens of a city and the
surrounding areas with literature and media for personal education and
training. There is also an additional artificial fourth member, basic library
system, that provides only the basic functionalities
of a library.
USC-CSE-2002-506 PDF An example product
line architecture: Troops Deployment System
Ebru Dincel, Nenad Medvidovic, Andre van der Hoek
Troop
Deployment System (TDS) is an application for distributed deployment of personnel,
intended to deal with situations such as natural disasters, search-and rescue
efforts, and military crises. One specific instance of this application
depicted in Figure 1 addresses military Troops Deployment and battle
Simulations. A computer at Headquarters gathers
information from the field and display the current battlefield status:
the locations of friendly and enemy troops, as well as obstacles such as mine
fields. The Headquarters computer is networked via secure links to a
set of PDAs used by officers in the field. The Commanders
are capable of controlling their own quadrant of the battlefield. The General
can see a summarized view of the entire battlefield (shown) or detailed
views of each quadrant. The General can issue direct troop deployment
orders to individual Commanders or request transfers of troops among
the Commanders. General can also request for deployment
strategy suggestions from Headquarters. Finally, the General can
issue a “fight” command, resulting in a battle simulation that
incrementally determines the likely winner. The example configuration in
Figure 1 shows four Commanders and no General. All four Commanders
have the same set of components. For the sake of simplicity, only the Commander1’s
architecture is shown. Another group of applications involve the
civilians where instead of military civilians are used for search and rescue
efforts.
USC-CSE-2002-505 PDF An example
product line architecture: Digital Library Projects
Ebru Dincel, Nenad Medvidovic, Andre van der Hoek
Software
application families and their accompanying architectures (also referred to
as product line architectures or PLAs) are a
promising area in which the potential of software component reuse can be
fully realized. Evolving such application families necessitates making
informed architectural decisions. Among industry and research communities, it
is recognized that software metrics can provide guidance during the making of
such decisions. In an earlier paper [1], we introduced metrics that are
specifically geared to assess product line architectures and help in
maintaining their quality.
USC-CSE-2002-504 PDF Distilling
Software Architectural Primitives from Architectural Styles (Qualification
Exam Report)
Nikunj Mehta
Software
architecture-based approaches provide high-level abstractions to deal with
complexity and richness of modern software systems. Many software systems
have been found to share organizational and interaction characteristics.
Architectural styles have been proposed to codify commonly used idioms
of component structures, organizations and interactions. Existing
classifications of architectural styles provide empirical support for style
selection, but fail to systematically characterize them and do not reveal the
basis underlying them. Moreover, the mapping between software architecture
and design is poorly understood. My doctoral research proposes to create an
understanding of, and as a result a composition framework for architectural
styles using a small set of architectural primitives that are reused across
styles to produce effective style implementation infrastructures.
USC-CSE-2002-503 PDF Realizing the
Benefits of the CMMI with the CeBASE Method
Dr. Barry Boehm, Dr. Dan Port, Dr. Victor Basili
Future systems will be
increasingly software-intensive, but the type of software development they
will need is not well covered by current development and maturity models such
as the waterfall model and Software Capability Maturity Model development of
software-intensive systems will need situation-specific balancing of
discipline and flexibility to address such issues as COTS, open source,
distribution, mobility rapid change, agents, collaboration support, and
simultaneous achievement of rapid development and high dependability. This
paper shows how the CMMI's integration of modern
systems engineering, software engineering, and integrated process and product
development concepts provides a framework for redressing the shortfalls of
the Software CMM, and for enabling projects and organizations to achieve the
right balance of discipline and flexibility for their particular situations.
But the CMMI has shortfalls of its own. It provides little guidance on how to
define and execute specific processes for a specific project or organization.
The paper summarizes various process model generators for software intensive
systems such as the spiral, the Rational Unified Process (RUP), MBASE, and
the CeBASE Method. It concludes that the CeBASE Method best covers the full range of concerns in
the CMMI, resolves its practice-focus shortfalls, and covers additional best
practices not in the CMMI, such as business case analysis, requirements prioritization,
and evolution requirements.
Achieving CMMI
Level 5 Improvements with MBASE and the CeBASE
Method
Dr. Barry Boehm, Dr. Daniel Port, Dr. Victor Basili,
Apurva Jain,
Each branch of service in the
Department of Defense has major initiatives to pursue more advanced
software-intensive systems concepts involving network-centric warfare with
self adaptive networks and cooperating human and autonomous agents. The
ability to balance discipline and flexibility is critically important to
developing such highly dependable software-intensive systems in an
environment of rapid change. Risk-management orientation enables users of
Capability Maturity Model® IntegrationSM (CMMISM)
to apply risk considerations to determine how much discipline and how much
flexibility is enough in a given situation. The risk-driven nature of the
spiral model and MBASE enables them to achieve a similar balance of
discipline and flexibility. When these project-level approaches are combined
with the organization-level approaches in the Experience Factory, the result
is the unified Center for Empirically Based Software Engineering (CeBASE) method described in this article.
Middleware for
Software Architecture-Based Development in Distributed, Mobile, and
Resource-Constrained Environments
Marija Mikic-Rakic, Nenad Medvidovic, Vladimir Jakobac
Over
the past several decades software researchers and practitioners have proposed
various approaches, techniques, and tools for developing large-scale software
systems. The results of these efforts have been characterized as programming-inthe-large (PitL). A new
set of challenges has arisen with the emergence of inexpensive, small,
heterogeneous, resourceconstrained, possibly
embedded, highly-distributed, and highly-mobile computing platforms. We refer
to software development in this new setting as programming-in-the-small-and-many
(Prism). This paper provides a description and evaluation of a middleware
intended to support software architecture-based development of applications
in the Prism setting. The middleware provides implementation-level support
for the key aspects of Prism application architectures: components,
connectors, architectural configurations, and communication events.
Additionally, the middleware directly facilitates several system qualities
necessitated by Prism, including light weight, distribution, mobility,
context awareness, asynchrony, and support for disconnected operation. Our
middleware has been applied successfully in a number of applications and used
as an educational tool in a graduate-level embedded systems course. Recently,
the middleware has been successfully evaluated by a major industrial
organization for use in one of their key distributed embedded systems. While
a number of issues remain to be explored, our experience with the middleware
thus far has been very positive, indicating that the principles of
architecture-based software development can be successfully applied in the
Prism setting. Document characteristics:
A Family of Software
Architecture Implementation Frameworks
Nenad Medvidovic,
Nikunj Mehta, and Marija Mikic-Rakic
Software architectures provide high-level
abstractions for representing the structure, behavior, and key properties of
software systems. Various architecture description languages, styles, tools,
and technologies have emerged over the past decade. At the same time, there
has been comparatively little focus on techniques and technologies for
transforming architectural models into running systems. This often results in
significant differences between conceptual and concrete architectures,
rendering system evolution and maintenance difficult. Furthermore, it calls
into question the ability of developers to consistently transfer the key
architectural properties into system implementations. One solution to this
problem is to employ architectural frameworks. Architectural frameworks
provide support for implementing, deploying, executing, and evolving software
architectures. This paper describes the design of and our experience with a
family of architectural frameworks that support implementation of systems in
a specific architectural style-C2. These frameworks have been implemented in
different programming languages and used on different hardware platforms,
including resource constrained (e.g., hand held) devices. The frameworks are
lightweight and extensible, and allow application monitoring and analysis at
run time. To date, the C2 frameworks have been used in the development of
over 100 applications by several academic and industrial organizations. The
paper discusses the issues we have encountered in implementing and using the
frameworks, as well as the approaches adopted to resolve these issues. |
![]()
![]()
Copyright 1995, 1996, 1997, 1998, 1999 The University of Southern California
The written material, text, graphics, and software available on this page and all related pages may be copied, used, and distributed freely as long as the University of Southern California as the source of the material, text, graphics or software is always clearly indicated and such acknowledgement always accompanies any reuse or redistribution of the material, text, graphics or software; also permission to use the material, text, graphics or software on these pages does not include the right to repackage the material, text, graphics or software in any form or manner and then claim exclusive proprietary ownership of it as part of a commercial offering of services or as part of a commercially offered product.