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

About us
Tech. Report
TR by Author
List of Affiliates
Private Area
Other Resources

Technical Reports


Ivo Krka, Yuriy Brun, Nenad Medvidovic, "Automatically Mining Specifications from Invocation Traces and Method Invariants" (pdf)

Software library documentation often describes the APIs of individual methods, but does not capture the intended protocols and method interactions. This can cause developers to misuse the library by invoking its methods out of sequence, while also restricting effective runtime detection of protocol violations and automated verification of the client code. Specification mining, if accurate, can help mitigate these problems. There are two classes of specification mining techniques: one that observes library executions, and another that identifies internal-state invariants. Unfortunately, models inferred by these state-of-the-art techniques often suffer from inaccuracies. In this paper, we aim to improve the quality of mined specifications in order to facilitate API understanding, test generation, and verification tasks. To that end, we combine the two classes of techniques in two novel ways, producing a pair of new model-inference techniques. We find that our new techniques improve significantly upon the state-of-the-art when applied to nine off-the-shelf libraries, increasing the precision of the inferred models by 4% and the recall by 41% on average. Additionally, we find that our approach automatically exposes both behavior that avoids raising exceptions and good-practice rules that capture proper library use, while being robust to noisy inputs.

Added September 23rd, 2013


Joshua Garcia, Igor Ivkovic, Nenad Medvidovic, "A Comparative Analysis of Software Architecture Recovery Techniques" (pdf)

Many automated techniques of varying accuracy have been developed to help recover the architecture of a software system from its implementation. However, rigorously assessing these techniques has been hampered by the lack of architectural “ground truths”. Over the past several years, we have collected a set of eight architectures that have been recovered from opensource systems and independently, carefully verified. In this paper, we use these architectures as ground truths in performing a comparative analysis of six state-of-the-art software architecture recovery techniques. We use a number of metrics to assess each technique for its ability to identify a system’s architectural components and overall architectural structure. Our results suggest that two of the techniques routinely outperform the rest, but even the best of the lot has surprisingly low accuracy. Based on the empirical data, we identify several avenues of future research in software architecture recovery.

Added June 8th, 2013


Dan Ingold, Barry Boehm, Supannika Koolmanojwong, Jo Ann Lane, "A Model for Estimating Agile Project Process and Schedule Acceleration" (pdf)

Accelerating development schedules is increasingly important in a competitive world. Reduced time-to-market is a key response to competitive threats in the commercial sphere, and rapid response in deploying military systems may save lives in a geopolitical environment characterized by rapidly emerging and everchanging physical threats. Agile/lean development methodologies show promise in providing the desired schedule acceleration, but it can be difficult for planners to determine the effects of these factors on schedule duration, and to make appropriate choices to optimize project performance. The Constructive Rapid Application Development Model (CORADMO) attempts to quantify the effects of key schedule drivers, and thus enable planners to estimate the relative schedule that will result from varying these parameters.

Added April 15th, 2013


Supannika Koolmanojwong and Barry Boehm, "A Look at Software Engineering Risks in a Team Project Course" (pdf)

Risk identification, management, and mitigation are essential to the success of any software development projects. At the University of Southern California (USC), CSCI577ab is a graduate level software engineering course sequence that teaches the best software engineering practices, and allows students to apply the learned knowledge in developing real-client projects. This paper analyzes the risks encountered by teams, identifies the relationships between effective risk analysis and the success of the project, and discusses how risk patterns determine the student's course of action. This paper also reports the top risks of software development in the software engineering class.

Added April 15th, 2013


Supannika Koolmanojwong and Jo Ann Lane, "Enablers and Inhibitors of Expediting Systems Engineering" (pdf)

Rapid fielding or expedited systems development plays a major role in developing systems to provide a quick response to the organization. Instead of polishing and perfecting all requirements with possible delivery delays, these urgent needs programs must adapt themselves to have a life cycle that is driven by a “Faster, Faster and Faster” concept. Surprisingly, schedule has become more important than cost. Organizations have to fight with the “time to market”, “respond to competitor's threats”, and “urgent needs”. On one hand, project managers will not only have to find a way to make things work through the expedited lane, but also have to understand what factors are the accelerators and what are hindrances to the system development schedules. On the other hand, they have to ensure that these expedited processes will not lead to technical debt, especially in the areas of future flexibility, degradation of existing capabilities, or rework. This paper will report about the enablers and inhibitors and their estimated impact levels of three types of the expedited systems and software development a) New Single System b) Existing Single System and c) System of Systems

Added April 15th, 2013


Barry Boehm, JoAnn Lane, Supannika Koolmanojwong, Richard Turner, "An Evidence-Based Systems Engineering (SE) Data Item Description" (pdf)

Evidence-based SE is an extension of model-based SE that emphasizes not only using SysML or other system models as a basis of program decisions, but also the use of other models to produce evidence that the system models describe a feasible system. Such evidence is generally desired, but often is not produced because it is not identified as a project deliverable in a Data Item Description (DID). Going forward with such unproven solutions frequently leads to large program overruns. Based on experience in developing and using such a DID on a very large project, we summarize the content and form of such a DID, and a rationale for its use. Its basic content is evidence that if a system were produced with the specified Architecture, it would:

  • Satisfy the specified Operational Concept and Requirements;
  • Be developable within the specified Budget and Schedule;
  • Provide a superior return on investment over alternatives in terms of mission effectiveness; and
  • Provide satisfactory outcomes for the system's success-critical stakeholders.
One key factor of the DID is that the content of the evidence be risk-balanced between having too little evidence (often the case today) and having too much (analysis paralysis). Thus, it is not a one-size-fits-all DID, but one which has ways to be tailored to a project's most critical evidence needs.

Added April 15th, 2013


Barry Boehm, JoAnn Lane, Supannika Koolmanojwong, "An Orthogonal Framework for Improving Life Cycle Affordability" (pdf)

Many approaches to improving system affordability focus on one or two strategies (e,g., automation, outsourcing, repurposing, reuse, process maturity), and miss the opportunity for further improvements. Often, they focus on one phase (e.g., acquisition) at the expense of other factors that increase total ownership cost (TOC). Based on several related research projects, we have developed, applied, and evolved an orthogonal framework of strategies for improving Affordability. The framework includes:

  • Get the best from people (Staffing, Teambuilding, Facilities, Kaizen)
  • Make tasks more efficient (Tools, Work and Oversight Streamlining, Collaboration Technology)
  • Eliminate tasks (Lean and Agile Methods, Automation, Model-Based Product Generation)
  • Eliminate scrap and rework (Early Risk and Defect Elimination, Evidence-Based Decision Gates, Modularity around Sources of Change, Evolutionary Development,...)
  • Simplify products: KISS (Risk-Based Prototyping, Value-Based Capability Prioritization, Satisficing vs. Optimizing)
  • Reuse components (Domain Engineering, Composable Components and Services, Legacy Repurposing)
  • Reduce O&S costs (Automate Tasks, Design for Maintainability, Streamline Supply Chain, Anticipate/Prepare for Change)
  • Perform value-based tradespace analysis among the above.
The research presented will also summarize the use of calibrated quantitative cost models for reasoning about the strategy elements and their tradeoffs.

Added April 15th, 2013


Thammanoon Kawinfruangfukul, Supannika Koolmanojwong, Nupul Kukreja, "Representing Advances in Systems Engineering by Using an Electronic Process Guide" (pdf)

Systems Engineering is a discipline that never stops growing. Systems Engineers are just like students or life-long learners who have to keep themselves up to date with new best propositions. With recent additions of novel concepts in systems engineering such as Social Networking concepts, Value-Based Requirements Prioritization, and Program Model, it is often challenging to translate these concepts into practices. An Electronic Process Guide (EPG) for Incremental Commitment Spiral Model (ICSM) aims to define clear systems engineering practices by providing necessary roles, tasks, step-by-step practical guidance to perform each task, and input, output, and supporting artifacts. This paper introduces the advances in systems engineering field and reports on how this EPG helps in expediting the learning process and supports the process authors in continuous maintenance and enhancement of the process guide.

Added April 15th, 2013


Ivo Krka and Nenad Medvidovic, "Distributing Refinements of a System-Level Partial Behavior Model" (pdf)

Early in a system's life cycle, a system's behavior is typically partially specified using scenarios, invariants, and temporal properties. These specifications prohibit or require certain behaviors, while leaving other behaviors uncategorized into either of those. Engineers refine the specification by eliciting more requirements to finally arrive at a complete behavioral description. Partial-behavior models have been utilized to compactly capture, analyze, and elaborate the partial system specification. Under the current practices, software systems are reasoned about and their behavior specified exclusively at the system level, disregarding of the fact that a system typically consists of interacting components. However, exclusively refining a behavior specification at the system-level runs the risk of arriving at an inconsistent specification, i.e. one that is not realizable as a composition of the system's components. To address this problem, we propose a framework that provides the lacking support: when a system's partial behavior model is refined in accordance with a new requirement, our framework distributes the refinement to the components' models and ensures overall consistency. We discuss the framework's soundness and correctness, and demonstrate its features on a case study previously used in related literature.

Added April 15th, 2013


Jo Ann Lane, "What is a System of Systems and Why Should I Care?" (pdf)

Today's need for more complex, more capable systems in a short timeframe is leading more organizations towards the integration of new and existing systems with commercial-off-the-shelf (COTS) products into network-centric, knowledge-based systems of systems (SoS). With this approach, system development processes to define the new multi-system architecture, identify sources to either supply or develop the required components, and eventually integrate and test these high level components are evolving and are being referred to as SoS Engineering (SoSE). The goal of this paper is to further describe the concept of an SoS, explain why it is important to conduct engineering at the SoS level, briefly describe how SoSE tends to differ from single systems engineering including some of the key challenges associated with SoSE, provide an example of how SoSE can significantly improve SoS performance, and conclude with a discussion on some key SoS and SoSE research areas.

Added January 5th, 2013

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