Technical Reports

USC-CSE-2003-520 PDF

 

Composable Process Elements for Developing COTS-Based Applications

 

Barry Boehm, Dan Port, Ye Yang, Jesal Bhuta, Chris Abts

 

Data collected from five years of developing e-service applications at USC-CSE reveals that an increasing fraction have been commercial-off-the-shelf (COTS)-Based Application (CBA) projects: from 28% in 1997 to 60% in 2001. Data from both small and large CBA projects show that CBA effort is primarily distributed among the three activities of COTS assessment, COTS tailoring, and glue code development and integration, with wide variations in their distribution across projects. We have developed a set of data-motivated composable process elements, in terms of these three activities, for

developing CBA's as well an overall decision framework for applying the process elements. We present data regarding the movement towards CBA's and effort distribution among them; we then proceed to describe the decision framework and to present a real-world example showing how it operates within the WinWin Spiral process model generator to orchestrate, execute, and adapt the process elements to changing project circumstances.

 

Document characteristics: Proceedings, ISESE 2003, September/October 2003

Added: June 24, 2004

 

 


USC-CSE-2003-519 PDF

 

Reasoning About the Value of Dependability: The iDave Model

 

Barry Boehm, LiGuo Huang, Apurva Jain

 

In this paper, we present a framework for reasoning about the value of information processing dependability investments called the Information Dependability Attribute Value Enhancement (iDAVE) model. We describe the overall structure of iDAVE, and illustrate its use in determining the ROI of investments in dependability for a commercial order processing system. We conclude that dynamic and adaptive value-based dependability mechanisms such as iDAVE model will become increasingly important provided evidence that dependability attribute requirement levels tend to be more emergent than pre-specifiable.

 

Document characteristics: EDSER-5 Proceedings, May 2003.

Added: June 24, 2004

 


USC-CSE-2003-518 PDF

 

Agility Through Discipline: A Debate

 

Barry Boehm, and Kent Beck

 

Kent says: There are those who see agility in software development as a tradeoff, a sort of shaving of the wing spars. By giving up safety or rigor or accountability, we can go faster. From inside Extreme Programming, though, “agility or safety” or “agility or discipline” look like false dichotomies. From inside Extreme Programming, it seems that the only way to achieve the results we seek is to

view the world in “both-and” terms instead of “either-or” terms. Why this disconnect?  

 

Document characteristics: Computer, June 2003, pp. 44-46.

Added: June 24, 2004

 


USC-CSE-2003-517 PDF

 

People Factors in Software Management: Lessons From Comparing Agile and Plan-Driven Methods

 

Barry Boehm, and Richard Turner

 

While methodologies, management techniques, and technical approaches are valuable, a study of agile and plan-driven approaches has confirmed that the most critical success factors are much more likely to be in the realm of people factors. This paper discusses five areas where people issues can have a significant impact: staffing, culture, values, communications, and expectations management.

 

Document characteristics:

Added: December 15, 2003


USC-CSE-2003-516

 

Calculating Architectural Reliability via Modeling and Analysis (Qualification Exam Report)

 

Roshanak Roshandel

 

Modeling and estimating software reliability during testing is useful in quantifying the quality and dependability of the developed software systems. However, such measurements applied so late in the development process leave little to be done to improve the quality of the software system in a cost-effective way. Reliability, an important dependability attribute, is defined as the probability that the system performs its intended functionality under specified design limits. We argue that reliability models must be built to estimate the system reliability throughout the development process, and specifically when exact context and execution profile of the system may be unknown, or when the implementation artifacts are not yet available. In the context of software architectures, various techniques for modeling software systems and specifying their functional properties have been developed. These techniques enable extensive analysis of the specification, but typically lack quantification. Additionally, their relation to dependability attributes of the modelled software system is unknown.

In this proposal, we present a software architecture-based approach to estimating system reliability. The approach is applicable to early stages of development when the implementation artifacts are not yet available, and exact execution profile is unknown. The uncertainty of the execution profile is modeled using stochastic processes with unknown parameters. The approach is compositional in nature: the overall reliability of the system is estimated as a function of the reliability of its constituent components and their (complex) interactions. In turn, the reliability of individual components is estimated using standard modeling and specification mechanisms of software architectures. Additionally, sensitivity analyses enabled by our reliability model prescribe defect mitigation strategies in a cost-effective manner.

 

Document characteristics:

Added: December 15, 2003


USC-CSE-2003-515 PDF

 

Improving Availability in Large, Distributed, Component-Based Systems via Redeployment

 

Marija Mikic-Rakic, Sam Malek, Nenad Medvidovic

 

In distributed and mobile environments, the connections among the hosts on which a software system is running are often unstable. As a result of connectivity losses, the overall availability of the system decreases. The distribution of software components onto hardware nodes (i.e., the system’s deployment architecture) may be ill-suited for the given target hardware environment and may need to be altered to improve the software system’s availability. The critical difficulty in achieving this task lies in the fact that determining a software system’s deployment that will maximize its availability is an exponentially complex problem. In this paper, we present a fast approximative solution for this problem, and assess its performance.

 

 

Document characteristics:

Added: December 15, 2003

 


USC-CSE-2003-514 PDF

 

Alfa: A Framework for Composing Software Architectures from Architectural Primitives

 

Nikunj R. Mehta and Nenad Medvidovic

 

Architectural styles represent composition patterns and constraints at the software architectural level and are targeted at families of systems with shared characteristics. They enable architectural reuse and hence can bring economy to architecture-based software development. Existing research on architectural styles provides little guidance for the systematic design and construction of architectural style elements. This paper proposes a framework, Alfa, for systematically and constructively composing “architectural primitives” to obtain elements of architectural styles. This is based on our observation that architectural styles and, indeed, software architectures share many underlying concepts that lead to architectural primitives. We have identified eight forms and nine functions as architectural primitives that reflect the syntactic and semantic characteristics of software architectures and are expressive enough to compose elements of architectural styles used in modern, distributed systems. Such an approach enables systematic construction of style-based architectures. In that direction, this paper evaluates the suitability of Alfa as an assembly language for software architectures and its suitability for composing architectural styles for network-based systems.

 

Document characteristics:

Added: November 25, 2003

 


USC-CSE-2003-513 PDF

 

The Schedule as Independent Variable (SAIV) Process for Acquisition of Software-Intensive Systems

 

Barry Boehm, Winsor Brown, LiGuo Huang, and Daniel Port

 

Many system acquisitions do not achieve on-time delivery because of delays in software development. This paper presents a highly successful approach for on-time delivery of software-intensive systems: the Schedule As Independent Variable (SAIV) process. The SAIV process involves prioritization of desired features; scoping a Core Capability of top-priority features easily achievable within the available schedule; architecting for ease of dropping or adding borderline-priority features; monitoring progress with respect to plans; and adding or dropping borderline-priority features to meet the schedule target. The paper summarizes experiences and discusses critical success factors in applying the SAIV acquisition process across a range from small in-house e-services projects to very large Government systems of systems.

 

Document characteristics:

Added: November 19, 2003

 


USC-CSE-2003-510 PDF

 

Concise Composition of Architectural Styles From Architectural Primitives

 

Nikunj R. Mehta, Nenad Medvidovic

 

Architectural styles represent composition patterns and constraints at the software architectural level and are targeted at families of systems with shared characteristics. They enable architectural reuse and hence can bring economy to the design of software architecture. Existing approaches support systematic description of style-based software architectures. Our approach, Alfa, focuses on the construction, instead of description, of style-based software architectures using architectural primitives. This is based on our observation that architectural styles and, indeed, software architectures share many underlying concepts that lead to architectural primitives. Previously, Alfa’s primitives were shown to be sufficient for modeling architectural styles. In this paper, we present the composition of a diverse set of styles for network-based systems using xAlfa, a systematic notation for composing styles from Alfa’s primitives. We then show that two reuse mechanisms in xAlfa, inheritance and composition, enable concise style compositions and unambiguously bring out similarities among architectural styles.

 

Document characteristics:

Updated: October 30, 2003

 


USC-CSE-2003-509 PDF

 

Effective Modeling of Software Architectural Assemblies Using Constraint Automata

 

Nikunj R. Mehta, Marjan Sirjani, Farhad Arbab

 

Alfa is a framework for the construction of software architectures and their elements from architectural primitives. In any system involving events from multiple sources, synchrony and asynchrony between events arise naturally. Support for simultaneous synchrony and asynchrony, and scalability to assemblies of large numbers of architectural primitives are central concerns for effectively modeling software architectural assemblies in Alfa. An increasingly popular formalism for event-based modeling of the behavior of software architectures, labeled transition systems (LTS), was initially chosen to model the behavior of Alfa assemblies. However, this creates an impedance mismatch with the architect’s mental model and lacks sufficient scalability. We therefore propose a formal approach to effectively model software architectural assemblies that addresses these limitations, using constraint automata. Constraint automata can be mapped to LTS thus utilizing existing techniques for analysis of behavioral properties. We evaluate the effectiveness of our approach using two application architectures assembled from Alfa’s primitives.

 

 

Document characteristics:

Updated: September 25, 2003

 


USC-CSE-2003-508 PDF

 

Using Multiple Views to Model and Analyze Software Architecture: An Experience Report

 

Roshanak Roshandel, Bradley Schmerl, Nenad Medvidovic, David Garlan, Dehua Zhang

 

Architectural modeling and analysis is a critical phase in developing large and complex software systems. The usefulness of multiple views has likewise long been recognized. In this experience report, we explain how we used two ADLs to model a system initially described in UML. The system SCRover) is designed and built in close collaboration with NASA’s Jet Propulsion Laboratory, using their Mission Data System technology. We describe (a) the processes that we used to extract architectural models from the UML description, (b) the way in which each ADL was used to model the system, (c) a classification of the architectural defects we uncovered, and (d) a comparison of the relative benefits of the two ADLs in terms of the different classes of defects they uncovered.

 

Document characteristics:

Updated: September 18, 2003

 


USC-CSE-2003-507 PDF

 

Using Testbeds to Accelerate Technology Maturity and Transition: The SCRover Experience

 

Barry Boehm, Jesal Bhuta, David Garlan, Eric Gradman, LiGuo Huang,

Alexander Lam, Ray Madachy, Nenad Medvidovic, Kenneth Meyer, Steven Meyers,

Gustavo Perez, Kirk Reinholtz, Roshanak Roshandel, Nicolas Rouquette

 

This paper is an experience report on a first attempt to develop and apply a new form of software: a full service testbed designed to evaluate alternative software dependability technologies, and to accelerate their maturation and transition into project use. The SCRover testbed includes not only the specifications, code, and hardware of a public safety robot, but also the package of instrumentation, scenario drivers, seeded defects, experimentation guidelines, and comparative effort and defect data needed to facilitate technology evaluation experiments.

 

The SCRover testbed’s initial operational capability has been recently applied to evaluate two architecture definition languages (ADLs) and toolsets, Mae and AcmeStudio. The testbed evaluation showed (1) that the ADL-based toolsets were complementary and cost effective to apply to mission-critical systems; (2) that the testbed was cost-effective to use by researchers; and (3) that collaboration in testbed use by researchers and the Jet Propulsion Laboratory (JPL) project users resulted in actions to accelerate technology maturity and transition into project use. The evaluation also identified a number of lessons learned for improving the SCRover testbed, and for development and application of future technology evaluation testbeds.

 

 Document characteristics:

Updated: September 18, 2003

 


USC-CSE-2003-506 PDF

 

Software Architectural Support for Disconnected Operation in Highly Distributed Environments

 

Marija Mikic-Rakic, and Nenad Medvidovic

 

In distributed and mobile environments, the connections among the hosts on which a software system is running are often unstable. As a result of connectivity losses, the overall availability of the system decreases. The distribution of software components onto hardware nodes (i.e., deployment architecture) may be ill-suited for the given target hardware environment and may need to be altered to improve the software system's availability. The critical difficulty in achieving this task lies in the fact that determining a software system's deployment that will maximize its availability is an exponentially complex problem. In this paper, we present an automated, flexible, software architecture-based solution for disconnected operation that increases the availability of the system during disconnection. We provide a fast approximative solution for the exponentially complex redeployment problem, and assess its performance.

 

 

Document characteristics: Submitted to ICDCS 2004.

Updated: September 17, 2003


USC-CSE-2003-505 PDF

 

Value-Based Software Engineering: A Case Study

 

Barry Boehm and Li Guo Huang

 

The value-based approach to software development integrates value considerations into current and emerging software engineering principles and practices, while developing an overall framework in which these techniques compatibly reinforce each other.

 

 

Document characteristics: Published at IEEE Computer, March 2003, Vol. 36, No. 3.

Updated: April 26, 2003

 


USC-CSE-2003-504 PDF

 

Relating Software Component Models

 

Roshanak Roshandel, and Nenad Medvidovic

 

A software component is typically modeled at one or more of four levels: interface, static behavior, dynamic behavior, and interaction protocol. Each of these levels helps to ensure different aspects of component compatibility and interoperability. Existing approaches to component modeling have either focused on only one of the levels (e.g., interfaces in various IDLs) or on well-understood combinations of two of the levels (e.g., interfaces and their associated pre- and post-conditions in static behavioral modeling approaches). This paper argues that, in order to accrue the true benefits of component-based software development, one may need to model components at all four levels. Before that can be possible, one needs to understand the relationships among the different models. We detail one such pair-wise relationship—between static and dynamic component models—and draw parallels between it and the remaining models.

 

Document characteristics:

added: March 26, 2003

 


USC-CSE-2003-503 PDF

 

Composing Architectural Styles From Architectural Primitives

 

Nikunj Mehta, and Nenad Medvidovic

 

Architectural styles are named collections of constraints on configurations of architectural elements, and are believed to bring economies of scale in applying software architecture techniques to software development. Most research on architectural styles focuses on analyzing and observing the properties of such styles from their descriptions. However, comparatively little is known about the systematic design and construction of software architectures using architectural styles. Existing classifications bring out differences between architectural styles, but none provides a clear understanding of the similarities among a large number of styles. The basis of our research is the observation that architectural styles share many underlying concepts. These shared concepts lead to “architectural primitives” that can be systematically and constructively composed to obtain elements of architectural styles. We have identified eight forms and nine functions as architectural primitives that, in our understanding, reflect the syntactic and semantic characteristics of a large number of styles. While proving such a hypothesis is difficult in the general case, we demonstrate it within the domain of network-based styles. Partial formal models of style elements composed from these architectural primitives are also constructed and shown to be analyzable.

 

Document characteristics: Submitted to ESEC/FSE 2003

added: March 16, 2003

 


USC-CSE-2003-502 PDF

 

Estimating the Cost of Security for COTS Software

 

Donald J. Reifer, Barry W. Boehm, and Murali Gangadharan

 

This paper describes enhancements being made to the University of Southern California's COnstructive COTS (COCOTS) integration cost model to address security concerns. The paper starts by summarizing the actions we have taken to enhance COCOMO® II to model the impact of security on development effort and duration. It then relates the COCOMO® II approach to the COCOTS estimating framework so that the enhancements proposed can be incorporated into the COCOTS model. After summarizing the team's progress in developing counterpart COCOTS security cost drivers and expert-consensus cost driver parameter values, the paper points to the steps that will be taken to validate the findings and calibrate the model.

Document characteristics: In Proceedings of 2nd International Conference on COTS-Based Software Systems, February 2003

added: February 28, 2003

 


USC-CSE-2003-501 PDF

 

Not All CBS Are Created Equally: COTS-Intensive Project Types

 

Barry W. Boehm, Dan Port, Ye Yang, and Jesal Bhuta

 

COTS products affect development strategies and tactics, but not all CBS development efforts are equal. Based on our experiences with 20 large government and industry CBS projects assessed during our development of the COCOTS estimation model, and our hands-on experience with 52 small e-services CBS projects within USC's graduate level software engineering course, we have identified four distinct CBS activity areas: assessment intensive, tailoring intensive, glue-code intensive, and non-COTS intensive. The CBS activity type fundamentally affects the COTS related activity effort and project risks. In this work we define the three COTS activity intensive CBS types and discuss their strategic comparisons based on an empirical study of the spectrum of large and small CBS projects.


Document characteristics: In Proceedings of 2nd International Conference on COTS-Based Software Systems, February 2003

added: February 28, 2003


USC-CSE-2003-500 PDF

 

JavaBeans and Software Architecture

 

Nenad Medvidovic, and Nikunj Mehta

 

Java has emerged as a popular programming language and platform for Web applications. JavaBeans? defines the software component model in the Java programming language that is used for creating reusable, coarse-grained components. Beans are used in numerous complementary technologies including Enterprise JavaBeans, Java Abstract Windowing Toolkit (AWT), Java Database Connectivity (JDBC), Java Mail, and Java Management Extensions (JMX) to create software components. Beans provide a hybrid of object-oriented and loosely-coupled architectural styles, where the interaction between components is in the form of both events and method calls. This chapter focuses on the support for component technology in Java, specifically in the form of JavaBeans and its technology variants that fulfil the needs of Web application development. The chapter also discusses the role of JavaBeans and its technology variants in architecture-based software development.

Document characteristics: Submitted to The Internet Encyclopedia by John Wiley and Sons
added: February 9, 2003

 

 

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.