English

Capabilities Engineering: Constructing Change-Tolerant Systems

Software Engineering 2007-05-23 v1

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 change-tolerant systems.

Keywords

Cite

@article{arxiv.cs/0611071,
  title  = {Capabilities Engineering: Constructing Change-Tolerant Systems},
  author = {Ramya Ravichandar and James D. Arthur and Shawn A. Bohner},
  journal= {arXiv preprint arXiv:cs/0611071},
  year   = {2007}
}

Comments

10 pages, 4 Figures, To Appear in Hawaii International Conference on System Sciences 2007