Abstract: The early phases of the software-development lifecycle (SDLC) for enterprise-scale systems – in particular, requirements elicitation, functional design, and technical design – are difficult to automate because they involve the application of several different kinds of domain knowledge. In this paper, we will provide a vision of how creating semantic models of domain knowledge used in each phase, and defining semantic representation, through which tools in the various phases can communicate knowledge across phases, can help provide more automation both within and across these phases. We refer to the collection of semantic models needed to support this automation as the semantic bus for software development. We refer to the semi-automated process that we envision making use of this bus to support the SDLC as, Model-Assisted Software Development (MASD), which is a variation on the Model-Driven Development idea. We will describe tooling we have built which realizes part of this vision, and will outline a roadmap of potential research opportunities in this space.
Keywords: Software engineering, semantic bus, model-assisted software development