Abstract-We propose a Capabilities-based approach for building long-lived, complex systems that have lengthy development cycles. User needs and technology evolve during these extended development periods, and thereby, inhibit a fixed requirements-oriented solution specification. In effect, for complex emergent systems, the traditional approach of baselining requirements results in an unsatisfactory system. Therefore, we present an alternative approach, Capabilities Engineering, which mathematically exploits the structural semantics of the Function Decomposition graph -a representation of user needs -to formulate Capabilities. For any given software system, the set of derived Capabilities embodies change-tolerant characteristics. More specifically, each individual Capability is a functional abstraction constructed to be highly cohesive and to be minimally coupled with its neighbors. Moreover, the Capability set is chosen to accommodate an incremental development approach, and to reflect the constraints of technology feasibility and implementation schedules. We discuss our validation activities to empirically prove that the Capabilities-based approach results in changetolerant systems.
We introduce a Capabilities-based approach for constructing large-scale systems such that they are change-tolerant. The inherent complexity of software systems increases their susceptibility to change when subjected to the vagaries of user needs, technology advances, market demands, and other change-inducing factors. Despite the inevitability of change, traditional requirements engineering strives to develop systems based on a fixed solution; a mostly unsuccessful approach as evidenced by the history of system failures. In contrast, we utilize Capabilities-functional abstractions that are neither as amorphous as user needs nor as rigid as system requirements-to architect systems that accommodate change with minimum impact. These entities are designed to exhibit the desirable characteristics of high cohesion, low coupling, and balanced abstraction levels and are generated by a two-phased process called Capabilities Engineering. Phase I mathematically exploits the structural semantics of a function decomposition graph-a representation of user needs-to formulate change-tolerant Capabilities. Phase II optimizes these Capabilities to comply with schedule and technology constraints. In this paper, we present the overall framework of this process and detail the algorithm to identify Capabilities. In addition, we empirically evaluate the change tolerance of Capabilities resulting from Phase I. For this we examine the ripple effect of needs change on a real-world Course Evaluation System based on the original requirements-based design and the corresponding Capabilities-based design. Our experimental results indicate, with statistical significance, that the Capabilities-based design is less impacted by change and thereby improves the change tolerance of the system when subjected to needs volatility.
Stakeholders' expectations and technology constantly evolve during the lengthy development cycles of a largescale computer based system. Consequently, the traditional approach of baselining requirements results in an unsatisfactory system because it is ill-equipped to accommodate such change.In contrast, systems constructed on the basis of Capabilities are more change-tolerant; Capabilities are functional abstractions that are neither as amorphous as user needs nor as rigid as system requirements. Alternatively, Capabilities are aggregates that capture desired functionality from the users' needs, and are designed to exhibit desirable software engineering characteristics of high cohesion, low coupling and optimum abstraction levels.To formulate these functional abstractions we develop and investigate two algorithms for Capability identification: Synthesis and Decomposition. The synthesis algorithm aggregates detailed rudimentary elements of the system to form Capabilities. In contrast, the decomposition algorithm determines Capabilities by recursively partitioning the overall mission of the system into more detailed entities. Empirical analysis on a small computer based library system reveals that neither approach is sufficient by itself. However, a composite algorithm based on a complementary approach reconciling the two polar perspectives results in a more feasible set of Capabilities. In particular, the composite algorithm formulates Capabilities using the cohesion and coupling measures as defined by the decomposition algorithm and the abstraction level as determined by the synthesis algorithm.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.