1,721,019 research outputs found

    A Theory of Shared Understanding for Software Organizations

    No full text
    Effective coordination and communication are essential to the success of software organizations, but their study to date has been impaired by theoretical confusion and fragmentation. I articulate a theory that argues that the members of software organizations face a constant struggle to share and negotiate an understanding of their goals, plans, status, and context. This struggle lies at the heart of their coordination and communication problems. The theory proposes an analysis of organizational strategies based on four attributes of interaction that foster the development of shared understanding: synchrony, proximity, proportionality, and maturity. Organizations that have values, structures, and practices which facilitate these qualities find it easier to coordinate and communicate effectively. This argument has serious implications for traditional concepts in our literature. Project lifecycle processes and documentation are poor substitutes for informal but unscalable coordination and communication mechanisms. Practices and tools are valuable to the extent that they enable the development of shared understanding across our criteria. Co-location and group cohesion take advantage of the four criteria and therefore have direct advantages for software teams. Finally, growth is detrimental to the effectiveness of the organization because it hinders the use of small-scale mechanisms and it leads to an undesirable formalization. The theory is supported with empirical evidence collected from five case studies of a wide variety of software organizations, and it has explanatory and predictive power. The thesis links this theory to other current research efforts and shows that it complements and enhances them by providing a more solid theoretical foundation and by reclaiming the relevance of synchronous, proximate, proportionate, and mature interactions in software organizations.Ph

    Merging and Consistency Checking of Distributed Models

    No full text
    Large software projects are characterized by distributed environments consisting of teams at different organizations and geographical locations. These teams typically build multiple overlapping models, representing different perspectives, different versions across time, different variants in a product family, different development concerns, etc. Keeping track of the relationships between these models, constructing a global view, and managing consistency are major challenges. Model Management is concerned with describing the relationships between distributed models, i.e., models built in a distributed development environment, and providing systematic operators to manipulate these models and their relationships. Such operators include, among others, Match, for finding relationships between disparate models, Merge, for combining models with respect to known or hypothesized relationships between them, Slice, for producing projections of models and relationships based on given criteria, and Check-Consistency, for verifying models and relationships against the consistency properties of interest. In this thesis, we provide automated solutions for two key model management operators, Merge and Check-Consistency. The most novel aspects of our work on model merging are (1) the ability to combine arbitrarily large collections of interrelated models and (2) support for toleration of incompleteness and inconsistency. Our consistency checking technique employs model merging to reduce the problem of checking inter-model consistency to checking intra-model consistency of a merged model. This enables a flexible way of verifying global consistency properties that is not possible with other existing approaches. We develop a prototype tool, TReMer+, implementing our merge and consistency checking approaches. We use TReMer+ to demonstrate that our contributions facilitate understanding and refinement of the relationships between distributed models.Ph

    Extractive Product Line Requirements Engineering

    Full text link
    A software product line (SPL) succeeds because we exploit the similarities between a set of software-intensive systems, together with an understanding of their differences, to reduce development cost, maintenance cost, and user confusion. In SPL engineering, reuse is planned, enabled, and enforced. It is through the development of a set of core assets that reuse is systematically practiced. Requirements assets enhance the effectiveness of reuse since engineers can work on the abstractions closer to the systems' initial concepts. Contemporary SPL requirements engineerin (RE) approaches often adopt the proactive model to build a relatively complete and stable asset base. In practice, the substantial up-front effort and the abrupt transition from existing practices associated with the proactive model present a prohibitive SPL adoption barrier for many organizations that could otherwise benefit. The extractive model overcomes these shortcomings by reusing existing products for the SPL's initial baseline. In this thesis, we present a framework for applying lightweight techniques to extract, model, and analyze a SPL's requirements assets. We define the notion of functional requirements profiles (FRPs) according to the linguistic characterization of a domain's action-oriented concerns, and show that the FRPs can be extracted from a natural language document on the basis of domain-aware lexical affinities that bear a 'verb - direct object' relation. We model the extracted FRPs by analyzing their semantic cases and by extending the orthogonal variability model (OVM). We contribute a set of heuristic rules for uncovering the variation dimensions and dependencies, and discuss merging the OVMs extracted from multiple sources. We relate functional profiles to quality requirements via scenarios, and manage requirements interactions via concept analysis. We present two applications of FRPs to support some other activities in SPL engineering. We conduct several empirical studies to evaluate our framework. The results show that our approach allows the engineers to identify the domain elements more easily and develop the domain models more systematically. Our work fills the void with respect to extracting a SPL's requirements assets, and the main thrust of our work is to promote a set of lightweight, low adoption threshold techniques as a critical enabler for practitioners to capitalize on the order-of-magnitude improvements offered by SPL engineering.Ph

    Going Beyond Counting First Authors in Author Co-citation Analysis

    Full text link
    The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed

    Cognitive Context Elicitation and Modeling

    Full text link
    As computing becomes ubiquitous and intelligent, it is possible for systems to adapt their behavior based on information sensed from the situational context. However, determining the context space has been taken for granted in most ubiquitous applications, and so that context-adaptive systems often miss the situational factors that are most relevant to users. The mismatch between a system's computational model and users' mental model of the context may frustrate and disorient users. This thesis describes the CCM (cognitive context model)-based approach for eliciting individual cognitive views of a context-aware task and selecting an appropriate context space for context-aware computing. It captures the situational and cognitive context for each task, using a structural architecture in which individual participants use a context view to describe their situational perspective of the task. Clustering and optimization techniques are applied to analyze and integrate context views in CCM. Developers can use the optimization output to identify an appropriate context space, specify context-aware adaptation policies and resolve run-time policy conflicts. This approach simplifies the task of context elicitation, emphasizes individual variance in context-aware activity, and helps avoid user requirements misunderstanding.Ph

    Refactoring-based Requirements Refinement Towards Design

    No full text
    Building systems that satisfy the given requirements is a main goal of software engineering. The success of this process relies largely on the presence of an adequate architectural design. Traditional paradigms deal with requirements separately from design. Our empirical studies show that crossing the boundary between requirements and design is difficult, existing tools and methods for bridging the gap inadequate, and that software architects rely heavily on experience, prior solutions, and creativity. Current approaches in moving from requirements to design follow two schools. One is architecture-centric, focused on providing assistance to architects in reuse. The other is requirements-centric, and tends to extend established development frameworks and employ mappings to transition from requirements to architecture. Jackson indicates that clear understanding of requirements (the problem) is crucial to building useful systems, and that to evolve successfully, their design must reflect problem structure. Taylor et al. argue that design is the central activity in connecting requirements and architecture. Nonetheless, existing approaches either overlook underlying structure of requirements or design considerations. This dissertation presents a novel theory enabling requirements structuring and design analysis through requirements refinement and refactoring. The theory introduces a refinement process model operating on four abstraction levels, and a set of refactoring operators and algorithms. The method works in small, well-guided steps with visible progress. The theory provides a basis for designers to analyze and simplify requirement descriptions, remove redundancy, uncover dependencies, extract lower-level requirements, incorporate design concerns, and produce a system decomposition reflecting the underlying problem structure. A design built on top of this decomposition is better suited for evolution than one created without explicit structural analysis. The theory is validated on an industrial-sized project, wherein a suitable system decomposition is produced and a comparison made to a conventionally-devised solution. Examples demonstrate that the theory handles changes incrementally. It is explained how the theory addresses the existing challenges in going from requirements to design and supports fundamental software engineering principles. The method is assessed against common validation criteria. The approach is compared with prominent related work.Ph

    Cognitive Context Elicitation and Modeling

    No full text
    As computing becomes ubiquitous and intelligent, it is possible for systems to adapt their behavior based on information sensed from the situational context. However, determining the context space has been taken for granted in most ubiquitous applications, and so that context-adaptive systems often miss the situational factors that are most relevant to users. The mismatch between a system's computational model and users' mental model of the context may frustrate and disorient users. This thesis describes the CCM (cognitive context model)-based approach for eliciting individual cognitive views of a context-aware task and selecting an appropriate context space for context-aware computing. It captures the situational and cognitive context for each task, using a structural architecture in which individual participants use a context view to describe their situational perspective of the task. Clustering and optimization techniques are applied to analyze and integrate context views in CCM. Developers can use the optimization output to identify an appropriate context space, specify context-aware adaptation policies and resolve run-time policy conflicts. This approach simplifies the task of context elicitation, emphasizes individual variance in context-aware activity, and helps avoid user requirements misunderstanding.Ph

    Merging and Consistency Checking of Distributed Models

    Full text link
    Large software projects are characterized by distributed environments consisting of teams at different organizations and geographical locations. These teams typically build multiple overlapping models, representing different perspectives, different versions across time, different variants in a product family, different development concerns, etc. Keeping track of the relationships between these models, constructing a global view, and managing consistency are major challenges. Model Management is concerned with describing the relationships between distributed models, i.e., models built in a distributed development environment, and providing systematic operators to manipulate these models and their relationships. Such operators include, among others, Match, for finding relationships between disparate models, Merge, for combining models with respect to known or hypothesized relationships between them, Slice, for producing projections of models and relationships based on given criteria, and Check-Consistency, for verifying models and relationships against the consistency properties of interest. In this thesis, we provide automated solutions for two key model management operators, Merge and Check-Consistency. The most novel aspects of our work on model merging are (1) the ability to combine arbitrarily large collections of interrelated models and (2) support for toleration of incompleteness and inconsistency. Our consistency checking technique employs model merging to reduce the problem of checking inter-model consistency to checking intra-model consistency of a merged model. This enables a flexible way of verifying global consistency properties that is not possible with other existing approaches. We develop a prototype tool, TReMer+, implementing our merge and consistency checking approaches. We use TReMer+ to demonstrate that our contributions facilitate understanding and refinement of the relationships between distributed models.Ph

    Extractive Product Line Requirements Engineering

    No full text
    A software product line (SPL) succeeds because we exploit the similarities between a set of software-intensive systems, together with an understanding of their differences, to reduce development cost, maintenance cost, and user confusion. In SPL engineering, reuse is planned, enabled, and enforced. It is through the development of a set of core assets that reuse is systematically practiced. Requirements assets enhance the effectiveness of reuse since engineers can work on the abstractions closer to the systems' initial concepts. Contemporary SPL requirements engineerin (RE) approaches often adopt the proactive model to build a relatively complete and stable asset base. In practice, the substantial up-front effort and the abrupt transition from existing practices associated with the proactive model present a prohibitive SPL adoption barrier for many organizations that could otherwise benefit. The extractive model overcomes these shortcomings by reusing existing products for the SPL's initial baseline. In this thesis, we present a framework for applying lightweight techniques to extract, model, and analyze a SPL's requirements assets. We define the notion of functional requirements profiles (FRPs) according to the linguistic characterization of a domain's action-oriented concerns, and show that the FRPs can be extracted from a natural language document on the basis of domain-aware lexical affinities that bear a 'verb - direct object' relation. We model the extracted FRPs by analyzing their semantic cases and by extending the orthogonal variability model (OVM). We contribute a set of heuristic rules for uncovering the variation dimensions and dependencies, and discuss merging the OVMs extracted from multiple sources. We relate functional profiles to quality requirements via scenarios, and manage requirements interactions via concept analysis. We present two applications of FRPs to support some other activities in SPL engineering. We conduct several empirical studies to evaluate our framework. The results show that our approach allows the engineers to identify the domain elements more easily and develop the domain models more systematically. Our work fills the void with respect to extracting a SPL's requirements assets, and the main thrust of our work is to promote a set of lightweight, low adoption threshold techniques as a critical enabler for practitioners to capitalize on the order-of-magnitude improvements offered by SPL engineering.Ph
    corecore