Technical Reports

 

 

Return to Technical Report System


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
Added: June 24, 2004


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
Added: June 24, 2004


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
Added: June 24, 2004


USC-CSE-2002-512 PDF

Using The Spiral Model and MBASE to Generate New Acquisition Process Models: SAIV, CAIV, and SCQAIV

 

Barry Boehm, Dan Port, LiGuo Huang, Winsor Brown

 

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 University of Southern California electronic services projects, followed by discussions of SAIV/CAIV/SCQAIV application in the commercial and defense sectors, of model application within the DoD acquisition framework, and of the resulting conclusions.

 

Document characteristics:  CrossTalk, January 2002, pp.20-25.
Added: June 24, 2004

 


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
Added: October 29, 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
Added: October 15, 2002


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.


Document characteristics:  Submitted to ICSE 2003
Added: September 16, 2002

 


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.


Document characteristics:
Added: September 8, 2002

 


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.


Document characteristics:
Modified: September 6, 2002

 


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.


Document characteristics:
Modified: September 5, 2002

 


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.


Document characteristics:
Modified: September 5, 2002

 


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.


Document characteristics:
added: August 21, 2002


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.

Document characteristics:
added: May 23, 2002



USC-CSE-2002-502 PDF

 

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.

Document characteristics:
added: May 23, 2002



USC-CSE-2002-501 PDF

 

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:
Updated: October 29, 2002



USC-CSE-2002-500 PDF

 

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.

Document characteristics:
added: March 14, 2002

 

 

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.