University of Southern California
    
Home   Contact Us    
Center for Systems and Software Engineering

About us
News
History
People
Events
Upcoming
Highlights
Past
Publication
Tech. Report
TR by Author
Research
Projects
Tools
Courses
Education
Degrees
Admissions
Affiliates
List of Affiliates
Private Area
Other Resources


Technical Reports

USC-CSE-2001-518

Marija Mikic-Rakic, Nenad Medvidovic, "Increasing the Confidence in Off-the-Shelf Components: A Software Connector-Based Approach," Proceedings of the 2001 Symposium on Software Reusability (SSR 2001), Toronto, Canada, May 17-19, 2001, pp. 11-18 (pdf)

The promise of component-based software development is that larger, more complex systems can be built reasonably quickly and reliably from pre-fabricated (“off-the-shelf”) building blocks. Additionally, such systems can be upgraded incrementally, simply by replacing individual components with their new versions. However, practice has shown that, while it may improve certain aspects of an existing component, a new component version frequently introduces unforeseen problems. These problems include less efficient utilization of system resources, errors in the newly introduced functionality, and even new errors in the functionality carried over from the old version. This paper presents an approach intended to alleviate such problems. Our approach is based on explicit software architectures and leverages flexible software connectors in ensuring that component versions can be added and removed in the deployed, running system. Our connectors, called multi-versioning connectors, also unintrusively collect and compare the execution statistics of the running component versions (e.g., execution time and results of invocations). We illustrate our approach with the help of an example application.

Added November 13th, 2000


USC-CSE-2000-517

Ebru Dincel, Roshanak Roshandel, Nenad Medvidovic, "ADL-Independent Architectural Representation in XML," Proceedings of the 2001 Symposium on Software Reusability (SSR 2001), Toronto, Canada, May 17-19, 2001, pp. 11-18 (pdf)

The Extensible Markup Language, XML [1], is a proper subset of the Standard Generalized Markup Language, or SGML, which has been accepted as a standard by the World Wide Web Consortium (W3C) for structuring electronic documents. However, the first and still the most widely used markup language for the web is none other than HTML, or Hypertext markup Language. HTML’s goals are achieved by using pre-defined tags to add meaning to data. Taking this a step further, XML adds the ability to add the concept of relationships between tags, which helps in capturing the semantics of a particular domain. Such relationships are quantified in XML using the notion of Document Type Definition or DTD. DTD is a built-in feature in XML, and is used to represent metadata. This metadata describes the rules governing the relationships between elements in the XML file, or a set of constraints regarding the nesting of tags or their order. With DTD, we can specify whether stags are required or optional, and define the valid tags allowed for the particular domain of interest. Architecture Description Languages (ADLs) form a class of new and upcoming tools for designing software systems. Having an XML based representation for several ADLs could help extend their use in industry. Furthermore it would be interesting to look at several ADLs to find out their similarities and differences, and try to come up with an XML schema to describe them. For the purposes of this project, we experimented with C2, Acme, Darwin and SADL for to discover how an ADL-independent architectural representation might be accomplished in XML. Our updated DTDs, which are the result of this work, are outlined in the Appendix.

Added November 13th, 2000


USC-CSE-2001-516

Lei Ding, Nenad Medvidovic, Barry Boehm, "Focus: A Light-Weight, Incremental Approach to Software Architecture Recovery and Evolution," Proceedings of the 2001 Working IEEE/IFIP Conference on Software Architectures (WICSA-2), Amsterdam, the Netherlands, August 27-29, 2001, pp. 191-200 (pdf)

During the past decade, object-orientation (OO) has become the dominant software development methodology, accompanied by a number of modeling notations, programming languages, and development environments. OO applications of today are increasingly complex and user-driven. They are also developed more rapidly and evolved more frequently than was the case with software systems of the past. All of these factors contribute to a plethora of potential problems when maintaining and evolving an OO application. These problems are caused by architectural erosion, where the initial architecture of an application is (arbitrarily) modified to the point where its key properties no longer hold. We propose an approach, called Focus, whose goal is to enable effective evolution of such an application with minimal effort, by recovering its architecture and using it as the basis of evolution. Focus allows engineers to direct their primary attention to the part of the system that is directly impacted by the desired change; subsequent changes will incrementally uncover additional parts of the system’s architecture. We have applied Focus to four off-the-shelf applications to date. We discuss its key strengths and point out several open issues that will frame our future work.

Added November 13th, 2000


USC-CSE-2001-515

Andre van der Hoek, Marija Mikic-Rakic, Roshanak Roshandel, Nenad Medvidovic, "Taming Architectural Evolution," Foundations of Software Engineering, Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, Session: Architecture, Vienna, Austria, 2001, pp. 1-10 (pdf)

In the world of software development everything evolves. So, then, do software architectures. Unlike source code, for which the use of a configuration management (CM) system is the predominant approach to capturing and managing evolution, approaches to capturing and managing architectural evolution span a wide range of disconnected alternatives. This paper contributes a novel architecture evolution environment, called Mae, which brings a number of these alternatives together. The environment facilitates an incremental design process in which all changes to all architectural elements are integrally captured and related. Key to the environment is a rich system model that combines architectural concepts with those from the field of CM. Not only does this system model form the basis for Mae, but in precisely capturing architectural evolution it also facilitates automated support for several innovative capabilities. This paper demonstrates three of those: the provision of design guidance at the architecture level, the use of specialized software connectors to ensure run-time reliability during component upgrades, and the creation of component-leel patches to be applied to deployed system configurations.

Added November 13th, 2000


USC-CSE-2001-514

Barry Boehm, Dan Port, "Educating Software Engineering Students to Manage Risk," Proceedings of the 23rd International Conference on Software Engineering, Toronto, Canada, May 12-19, 2001, pp. 591-600 (pdf)

In 1996, USC switched its core two-semester software engineering course from a hypothetical-project, homework-and-exam course based on the Bloom taxonomy of educational objectives (knowledge, comprehension, application, analysis, synthesis, evaluation). The revised course is a real-client team-project course based on the CRESST model of learning objectives (content understanding, problem solving, collaboration, communication, and self-regulation). We used the CRESST cognitive demands analysis to determine the necessary student skills required for software risk management and the other major project activities, and have been refining the approach over the last four years of experience, including revised versions for one-semester undergraduate and graduate project course at Columbia.

This paper summarizes our experiences in evolving the risk management aspects of the project course. These have helped us mature more general techniques such as risk-driven specifications, domain specific simplifier and complicator lists, and the schedule as an independent variable (SSIV) process model. The largely positive results in terms of review padfail rates, client evaluations, product adoption rates, and hiring manager feedback are summarized as well.

Added July 18th, 2008


USC-CSE-2001-513

Barry Boehm, Dan Port, "Risk-Based Strategic Software Design," Economics-Driven Software Engineering Research, Toronto, Canada, May 2001 (pdf)

Risk consideration is a valuable assessment aid when making strategic software design decisions. Expressing development considerations in terms of risk exposures over an independent variable (e.g. time, cumulative effort, etc.) enables the quantitative assessment of typically qualitative attributes. Assuming total risk exposure is additive over individual risk exposure functions, optimal levels for the individual considerations can be identified as function of loss-magnitude and loss-probability estimates for risk sources. Such levels provide strategic trade off considerations (with respect to risk) and have proven valuable in several previous applications such as “how much testing is enough” with respect to defect removal and market window strategic risk considerations. Here we consider a similar application for making strategic design decisions in determining how much effort (or time) should be spent evaluating COTS products with respect to project cost, market window, and a multitude of COTS assessment attributes such as availability, ease of use, maturity, and vendor support.

Added June 24th, 2004


USC-CSE-2001-512

Hoh Peter In, Barry Boehm, Thomas Rodgers, Michael Deutsch, "Applying WinWin to Quality Requirements: A Case Study," 23rd ISCE, 2001, pp. 555-564 (pdf)

This paper describes the application of the WinWin paradigm to identify and resolve conflicts in a series of real-client, student-developer digital library projects. The paper is based on a case study of the statistical analysis of 15 projects and an in-depth analysis of one representative project. These analyses focus on the conflict resolution process, stakeholders' roles and their relationships to quality artificats, and tool effectiveness.

Added June 24th, 2004


USC-CSE-2001-511

Barry Boehm, Paul Grunbacher, Robert O. Briggs, "EasyWinWin: A Groupware-Supported Methodology for Requirement Negotiation," 8th European Software Engineering Conference (ESEC), 9th ACM SIGSOFT Symposium on The Foundations of Software Engineering (FSE-9), September 2001, pp. 320-321 (pdf)

EasyWinWin is a requirement definition methodology that builds on the win-win negotiation approach and leverages collaborative technology to improve the involvement and interaction of the key stakeholders. With EasyWinWin, stakeholders move through a step-by-step win-win negotiation where they collect, elaborate, and prioritize their requirements, and then surface and resolve issues.

Added June 24th, 2004


USC-CSE-2001-510

Victor R. Basili, Barry Boehm, "Software Defect Reduction Top 10 List," Computer, January 2001, pp. 135-137 (pdf)

Recently, a National Science Foundation grant enabled us to establish the Center for Empirically Based Software Engineering. CeBASE seeks to transform software engineering as much as possible from a fad-based practice to an engineering-based practice through derivation, organization, and dissemination of empirical data on software development and evolution phenomenology. The phrase “as much as possible” reflects the fact that software development must remain a people-intensive and continually changing field. We have found, however, that researchers have established objective and quantitative data, relationships, and predictive models that help software developers avoid predictable pitfalls and improve their ability to predict and control efficient software projects.

Added June 24th, 2004


USC-CSE-2001-509

Barry Boehm, Dan Port, "Balancing Discipline and Flexibility with The Spiral Model and MBASE," CrossTalk: The Journal of Defense Software Engineering, December 2001, pp. 23-28 (pdf)

This article details how the spiral model and its recent extension, Model-Based Architecting and Software Engineering (MBASE) can be used to tailor a project’s balance of discipline and flexibility via risk considerations. It also describes and rationalizes the major MBASE extensions to the spiral model – model clash avoidance, stakeholder win-win – and elaborates on the use of these extensions and risk considerations in the anchor-point milestones used in MBASE and the spiral model


USC-CSE-2001-508

Barry Boehm, Paul Grunbacher, Robert O. Briggs, "Developing Groupware for Requirements Negotiation: Lessons Learned," IEEE Software, May/June 2001, pp. 46-55 (pdf)

Defining requirements is a complex and difficult process, and defects in the process often lead to costly project failures. There is no complete and well-defined set of requirements waiting to be discovered in system development. Different stakeholders—users, customers, managers, domain experts, and developers—come to the project with diverse expectations and interests. Requirements emerge in a highly collaborative, interactive, and interdisciplinary negotiation process that involves heterogeneous stakeholders.

Added June 24, 2004


USC-CSE-2001-506

Nenad Medvidovic, Marija Mikic-Rakic, "Architectural Support for programming in the Many" (pdf)

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-in-the-large (PitL). 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. We refer to software development in this new setting as programming-in-the-many (PitM). This paper presents an approach intended to address the challenges of PitM. The centerpiece of our approach is a software architectural style with explicit support for the needs of PitM applications: selfawareness, distribution, heterogeneity, dynamism, mobility, and disconnected operation. The style is accompanied by a set of implementation, deployment, and runtime evolution tools targeted to a variety of traditional (i.e., desktop) and mobile computing platforms. Our approach has been successfully applied on a number of applications. While several issues pertaining to PitM remain areas of future work, our experience to date has been very positive.

Added March 14th, 2001


USC-CSE-2001-504

Victor Basili, Barry Boehm, "COTS-Based Systems Top 10 List," Computer, Volume 34, Number 5, May, 2001, pp. 91-93 (pdf)

In the January 2001 issue of Computer (pp. 135-137), we published the Software Defect Reduction Top 10 List—one of two foci pursued by the National Science Foundation-sponsored Center for Empirically Based Software Engineering (CeBASE).

COTS-based systems (CBS) provide the other CeBASE focus. For our intent, COTS software has the following characteristics: The buyer has no access to the source code; the vendor controls its development; and it has a nontrivial installed base (that is, more than one customer; more than a few copies).

Added May 15th, 2001


USC-CSE-2001-503

Barry Boehm, Victor Basili, "The CeBASE Framework for Strategic Software Development and Evolution" (pdf)

One of the challenges highlighted in the EDSER-3 Call for Papers is for a symmetric approach to cost, risk, benefit, and opportunity modeling and management. This position paper offers the CeBASE Method as a response to this challenge. It is the result of an effort by the CeBASE principals at USC and U. of Maryland to reconcile their various models of software phenomenology into a common framework for pursuing empirical software engineering research and for organizing the results into a useful experience base.

Added May 15th, 2001


USC-CSE-2001-502

Barry Boehm, A. Winsor Brown, "Mastering Rapid Delivery and Change with The SAIV Process Model," Proceedings, ESCOM 2001, April 2001, pp. 147-156 (pdf)

Ensuring on time, within-budget delivery is increasingly difficulty in the information technology (IT) field because of the increasingly rapid rate of requirement volatility of IT systems under development. This paper describes the Model-Based (System) Architecting and Software Engineering (MBASE)’s Schedule as Independent Variable (SAIV) approach to this problem, and illustrates the nature of the solution with examples.

Added February 22nd, 2001


USC-CSE-2001-501

Barry Boehm, Wilfred J. Hansen, "Understanding the Spiral Model as a Tool for Evolutionary Acquisition," CrossTalk, May 2001 (pdf)

Since its original publication [Boehm 88], the spiral development model has been used successfully in many defense and commercial projects. To extend this base of success the Department of Defense (DoD) has recently rewritten the defense acquisition regulations to incorporate "evolutionary acquisition," an acquisition strategy designed to mesh well with spiral development. In particular, DoD Instruction 5000.2 subdivides acquisition [DoD00]: "There are two ... approaches, evolutionary and single step to full capability. An evolutionary approach is preferred. … [In this] approach, the ultimate capability delivered to the user is divided into two or more blocks, with increasing increments of capability."

Added February 22nd, 2001


Copyright 2008 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.