University of Southern California USC Software Architecture Research Viterbi School of Engineering
The USC Software Architecture Research Group
People Research Projects Publications Courses

The tile style is a biologically-inspired architectural style for distributing computation on large insecure networks such as the Internet. The tile style allows one to use a large network to solve a computational problem without telling the nodes on the network the algorithms and input to that computation. For example, one can use the tile style to decode an encrypted message with the help of the Intenet, without anyone on the Internet knowing the encryption and the encoded and decoded messages. Learn more...

The in silico process is a scientific methodology which relies on computer processing and simulation as the primary means of experimentation. Scientific workflows are an area of computer science research poised to greatly impact the way scientists conduct in silico research. They are not widely applied, though, because current workflow systems require scientists to manage engineering aspects of workflow design as well as the science being conducted. SWSA is a domain specific software architecture for scientific software in workflow systems that can abstract engineering aspects of workflow design from the scientist while giving design guidance for the composition of algorithms, reducing time-to-integration. Learn more...

The eXtensible Tool-chain for Evaluation of Architectural Models (XTEAM) implements a model-driven engineering (MDE) approach to software architecture that combines extensible modeling languages based on architectural constructs with a model interpreter framework that enables rapid implementation of customized dynamic analyses at the architectural level. XTEAM consists of a suite of architecture description language (ADL) extensions and model transformation engines targeted specifically for highly distributed, resource-constrained, and mobile computing environments. XTEAM model transformations generate system simulations that provide a dynamic, scenario- and risk-driven view of the executing system. XTEAM provides the extensibility to easily accommodate both new modeling language features and new architectural analyses. Learn more...

Ever-growing amounts of data that must be distributed from data providers to consumers across the world (especially in scientific domains) necessitate a greater understanding of the software architectural implications of choosing data movement technologies. Currently, this understanding is mired in the minds of software architects who have "been there before," and who rely on past intuition and choices, failing to properly document their rationale and context. To recify this situation, we have developed a software architecture-based decision making framework called DISCO for selecting data movement technologies, or software connectors. DISCO effectively captures (traditionally undocumented) insight, observation and ultimately architectural knowledge about the connectors, demonstrating the effectiveness of using such information to accurately encode the connector selection decision making process. Learn more...

GLIDE provides a suite of grid services (e.g. resource discovery, resource description and search and retrieval) layered on top of an event-based middleware for resource-constrained devices. Programmers use GLIDE's Product Server component to abstract away interfaces to heterogeneous underlying resources (e.g. websites, file systems and storage systems). Profile Server components describe the type and location of resources in a GLIDE system deployment. Query Servers are GLIDE components which are used to integrate and aggregate resources that satisfy a particular query, and deliver the aggregrate resources back to the requestor. Since GLIDE was developed using the Prism middleware, programmers and designers can design their grid systems at the architectural level. Learn more...

Researchers with deep knowledge of scientific domains are becoming more interested in developing highly-adaptive and irregular (asymmetrical) parallel computations, leading to development challenges for both delivery of data for computation and mapping of processes to physical resources. Using software engineering principles, we have developed a new communications protocol and architectural style for asymmetrical parallel computations called ADaPT. Utilizing the support of architecturally-aware middleware, ADaPT provides an efficient solution in terms of message passing and load balancing. Additionally, developers using ADaPT gain significant windfall from good practices in software engineering, including implementation-level support of architectural artifacts and separation of computational loci from communication protocols. Learn more...

Doctoral Students
Masters Students

Architectural Styles
Compliance & Recovery
Energy Consumption
Modeling & Analysis
Product Line Architectures
Software Connectors

Tile Style

Prior years
Complete list

CSCI 377
CSCI 578
CSCI 589