Wednesday, October 2, 2013
Modeling in the software development process is intended to reduce the gap between problem understanding and software implementation through the use of models that describe complex systems at multiple levels of abstraction and from a variety of perspectives. However, there are a number of challenging issues as to how we create and use problem-level abstractions in our modeling languages.
This panel will discuss the importance of abstraction, and its role in software development and related disciplines. The questions addressed by this panel include: what are "good" abstractions, where do they come from, why do they work or not work, how do we identify, represent and evolve appropriate abstractions, how do we validate and achieve common understanding of the semantics of the abstractions, how does notation and its interaction metaphor play a role, how can we measure, test, and teach abstraction skills suitable for modeling, and what can be learned from decades of programming language design (if anything)?