Results 1 - 10
of
89
Exploring the Structure of Complex Software Designs: An Empirical Study of . . .
, 2004
"... Much recent research has pointed to the critical role of architecture in the development of a firm’s products, services and technical capabilities. A common theme in these studies is the notion that specific characteristics of a product’s design – for example, the degree of modularity it exhibits – ..."
Abstract
-
Cited by 57 (3 self)
- Add to MetaCart
Much recent research has pointed to the critical role of architecture in the development of a firm’s products, services and technical capabilities. A common theme in these studies is the notion that specific characteristics of a product’s design – for example, the degree of modularity it exhibits – can have a profound effect on among other things, its performance, the flexibility of the process used to produce it, the value captured by its producer, and the potential for value creation at the industry level. Unfortunately, this stream of work has been limited by the lack of appropriate tools, metrics and terminology for characterizing key attributes of a product’s architecture in a robust fashion. As a result, there is little empirical evidence that the constructs emerging in the literature have power in predicting the phenomena with which they are associated. This paper reports data from a research project which seeks to characterize the
The structure and value of modularity in software design
- SIGSOFT Software Engineering Notes
, 2001
"... The concept of information hiding modularity is a cornerstone of modern software design thought, but its formulation remains casual and its emphasis on changeability is imperfectly related to the goal of creating added value in a given context. We need better explanatory and prescriptive models of t ..."
Abstract
-
Cited by 53 (19 self)
- Add to MetaCart
The concept of information hiding modularity is a cornerstone of modern software design thought, but its formulation remains casual and its emphasis on changeability is imperfectly related to the goal of creating added value in a given context. We need better explanatory and prescriptive models of the nature and value of information hiding. We evaluate the potential of a new theory—developed to account for the influence of modularity on the evolution of the computer industry—to inform software design. The theory uses design structure matrices to model designs and real options techniques to value them. To test the potential utility of the theory for software we apply it to Parnas’s KWIC designs. We contribute an extension to design structure matrices, and we show that the options results are consistent with Parnas’s conclusions. Our results suggest that such a theory does have potential to help inform software design.
Information hiding interfaces for aspect-oriented design
- in ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
"... The growing popularity of aspect-oriented languages, such as AspectJ, and of corresponding design approaches, makes it important to learn how best to modularize programs in which aspect-oriented composition mechanisms are used. We contribute an approach to information hiding modularity in programs t ..."
Abstract
-
Cited by 49 (7 self)
- Add to MetaCart
The growing popularity of aspect-oriented languages, such as AspectJ, and of corresponding design approaches, makes it important to learn how best to modularize programs in which aspect-oriented composition mechanisms are used. We contribute an approach to information hiding modularity in programs that use quantified advising as a module composition mechanism. Our approach rests on a new kind of interface: one that abstracts a crosscutting behavior, decouples the design of code that advises such a behavior from the design of the code to be advised, and that can stipulate behavioral contracts. Our interfaces establish design rules that govern how specific points in program execution are exposed through a given join point model and how conforming code on either side should behave. In a case study of the HyperCast overlay network middleware system, including a real options analysis, we compare the widely cited oblivious design approach with our own, showing significant weaknesses in the former and benefits in the latter.
Product development decisions: a review of the literature
- Management Science
, 2001
"... This paper is a review of research in product development, which we define as the transformation of a market opportunity into a product available for sale. Our review is broad, encompassing work in the academic fields of marketing, operations management, and engineering design. The value of this bre ..."
Abstract
-
Cited by 47 (1 self)
- Add to MetaCart
This paper is a review of research in product development, which we define as the transformation of a market opportunity into a product available for sale. Our review is broad, encompassing work in the academic fields of marketing, operations management, and engineering design. The value of this breadth is in conveying the shape of the entire research landscape. We focus on product development projects within a single firm. We also devote our attention to the development of physical goods, although much of the work we describe applies to products of all kinds. We look inside the “black box ” of product development at the fundamental decisions that are made by intention or default. In doing so, we adopt the perspective of product development as a deliberate business process involving hundreds of decisions, many of which can be usefully supported by knowledge and tools. We contrast this approach to prior reviews of the literature, which tend to examine the importance of environmental and contextual variables, such as market growth rate, the competitive environment, or the level of top-management support.
SHARE: A Methodology and Environment for Collaborative Product Development
, 1993
"... The SHARE project seeks to apply information technologies in helping design teams gather, organize, re-access, and communicate both informal and formal design information to establish a "shared understanding" of the design and design process. This paper presents the visions of SHARE, along with the ..."
Abstract
-
Cited by 41 (1 self)
- Add to MetaCart
The SHARE project seeks to apply information technologies in helping design teams gather, organize, re-access, and communicate both informal and formal design information to establish a "shared understanding" of the design and design process. This paper presents the visions of SHARE, along with the research and strategies undertaken to build an infrastructure toward its realization. A preliminary prototype environment is being used by designers working on a variety of industry sponsored design projects. This testbed continues to inform and guide the development of NoteMail, MovieMail, and Xshare, as well other components of the next generation SHARE environment that will help distributed design teams work together more effectively.
Modularity in Design: Formal Modeling and Automated Analysis
, 2006
"... Designers often seek modular architectures for complex systems so that their systems better accommodate expected changes, have parts that can be developed and evolved without further coordination, and to ease the understanding of complex designs through abstraction of details hidden within modules. ..."
Abstract
-
Cited by 24 (18 self)
- Add to MetaCart
Designers often seek modular architectures for complex systems so that their systems better accommodate expected changes, have parts that can be developed and evolved without further coordination, and to ease the understanding of complex designs through abstraction of details hidden within modules. However, current design modeling techniques do not effectively support design modularization and evolution analysis. In this paper, we present a framework to enable automatic and quantifiable software modularization and evolution analyses for high-level design abstractions. The framework contributes a model to substantiate the concept of information hiding as a measurable criterion for software designs, an algorithm to extract the dependence structure of an abstract design, and an approach to quantitatively analyzing the changeability of a design. We have imported existing engineering techniques and economic analysis into software, and made these abilities formalized and automated. We illustrate and demonstrate the potential utility of our modeling and analysis techniques by modeling and analyzing several design examples.
A Hypergraph Framework For Optimal Model-Based Decomposition Of Design Problems
- Computational Optimization and Applications
, 1997
"... Decomposition of large engineering system models is desirable since increased model size reduces reliability and speed of numerical solution algorithms. The article presents a methodology for optimal model-based decomposition (OMBD) of design problems, whether or not initially cast as optimization p ..."
Abstract
-
Cited by 17 (11 self)
- Add to MetaCart
Decomposition of large engineering system models is desirable since increased model size reduces reliability and speed of numerical solution algorithms. The article presents a methodology for optimal model-based decomposition (OMBD) of design problems, whether or not initially cast as optimization problems. The overall model is represented by a hypergraph and is optimally partitioned into weakly connected subgraphs that satisfy decomposition constraints. Spectral graph-partitioning methods together with iterative improvement techniques are proposed for hypergraph partitioning. A known spectral K-partitioning formulation, which accounts for partition sizes and edge weights, is extended to graphs with also vertex weights. The OMBD formulation is robust enough to account for computational demands and resources and strength of interdependencies between the computational modules contained in the model. KEYWORDS: Model decomposition, multidisciplinary design, hypergraph partitioning, larges...
An Agent-Based Approach to Concurrent Cable Harness Design
, 1994
"... .... of the detailed models, called "agent model images," are shared with other agents. In conjunction with the architecture and design representations, issues pertaining to the exchange of information among different views of the design, management of dependencies and constraints, and propagation o ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
.... of the detailed models, called "agent model images," are shared with other agents. In conjunction with the architecture and design representations, issues pertaining to the exchange of information among different views of the design, management of dependencies and constraints, and propagation of design changes are discussed.
A Network Reliability Approach To Optimal Decomposition Of Design Problems
- J. of Mechanical Design, ASME
, 1994
"... Methods for solving partitioned mathematical programming problems require that an appropriate structure suitable for decomposition be identified. This first step consists of identifying linking variables that effect independent subproblems coordinated by a master problem. This article presents a net ..."
Abstract
-
Cited by 10 (7 self)
- Add to MetaCart
Methods for solving partitioned mathematical programming problems require that an appropriate structure suitable for decomposition be identified. This first step consists of identifying linking variables that effect independent subproblems coordinated by a master problem. This article presents a network reliability-based solution of the optimal decomposition problem that avoids subjective criteria to identify linking variables and partitions. The relationships among design variables are modeled as the processing units of a network. The design variables themselves are modeled as the communication links between these units. The optimal decomposition is attained by minimizing the network reliability while maximizing the number of operating links. NOMENCLATURE (0 i , e)= (e 1 ,, e i -1 , 0, e i +1 ,, e m ) (1 i , e)= (e 1 ,, e i -1 , 1, e i +1 ,, e m ) E = vector of state random variables: E i for each ith edge e = vector of binary state variables: e i for each ith edge E(G)= set of edges in graph G E[X]= expected value of random variable X f = objective function A = all-terminal network state PC = network resilience NESTOR F. MICHELENA PANOS Y. PAPALAMBROS 2 G = graph g, h = vectors of constraint functions h i , g i G---i= graph obtained from graph G after deleting ith edge Gi= graph obtained from graph G after contracting ith edge m = number of design variables or (hyper-)edges N = {1, 2, 3, } n = number of design functions or nodes p = vector of reliabilities p i for ith edge P[X]= probability of event [X] R A = all-terminal network reliability R PC = pair-connected network reliability V(G)= set of nodes in graph G w = weighting coefficient x = vector of design variables, x i n = n-dimensional Euclidean space = operator defined by (e i e j ...
Automatic Modularity Conformance Checking
- ICSE'08
, 2008
"... According to Parnas’s information hiding principle and Baldwin and Clark’s design rule theory, the key step to decomposing a system into modules is to determine the design rules (or in Parnas’s terms, interfaces) that decouple otherwise coupled design decisions and to hide decisions that are likely ..."
Abstract
-
Cited by 8 (7 self)
- Add to MetaCart
According to Parnas’s information hiding principle and Baldwin and Clark’s design rule theory, the key step to decomposing a system into modules is to determine the design rules (or in Parnas’s terms, interfaces) that decouple otherwise coupled design decisions and to hide decisions that are likely to change in independent modules. Given a modular design, it is often difficult to determine whether and how its implementation realizes the designed modularity. Manually comparing code with abstract design is tedious and error-prone. We present an automated approach to check the conformance of implemented modularity to designed modularity, using design structure matrices as a uniform representation for both. Our experiments suggest that our approach has the potential to manifest the decoupling effects of design rules in code, and to detect modularity deviation caused by implementation faults. We also show that design and implementation models together provide a comprehensive view of modular structure that makes certain implicit dependencies within code explicit.

