Skip Navigation
York U: Redefine the PossibleHOME | Current Students | Faculty & Staff | Research | International
Search »FacultiesLibrariesCampus MapsYork U OrganizationDirectorySite Index
Future Students, Alumni & Visitors

Models in Software Engineering

Software development is the process of transforming the user's requirements (in the problem domain) to a suitable solution (in the solution domain) that is satisfactory to the customer.

What is the “glue” that links all phases of the development process? A suitable model of the future system to be built allows us to discover what the user's problems are, to invent a suitable solution and finally to build and maintain it.

Models are as old as the enterprise of engineering (Vitruvius). In software construction, models are not the same thing as programming code. The purpose of code is to instruct the computer (once a solution has been devised). By contrast, models are abstract representations of certain parts of a complex system that are there to instruct ourselves – thereby helping us to understand the system and devise a solution that can be implemented as code.

If the model is mathematical then it can also be used to analyze, to calculate, and to predict the behaviour of the future system under constuction. Such models can be used early – starting in the requirements phase – and can thereby can help to minimize risk by detecting errors and omissions early in the design cycle (at a lower cost than building the actual system). Models allow us to discover what the problem is, to communicate our understanding with stakeholders (clients, users, implementers, testers, documenters, etc.) and to construct a reliable implementation that satisfies the requirements.

Research Topics

Recent Publications

  • Jonathan S. Ostroff, Faraz Ahmadi Torshizi, Hai Feng Huang, and Bernd Schoeller, Beyond contracts for concurrency, Formal Aspects of Computing, vol. 21:4 (to appear 2009).
  • Piotr Nienaltowski1 , Bertrand Meyer, and Jonathan S. Ostroff, Contracts for Concurrency, Formal Aspects of Computing, vol. 21:4 (to appear 2009).
  • R.F. Paige, P.J. Brooke, and J.S. Ostroff. Metamodel-Based Model Conformance and Multiview Consistency Checking, ACM Transactions on Software Engineering and Methodology 16(3), July 2007. 49 pages
  • Jonathan Ostroff & Faraz Ahmadi Torshizi, “Testable Requirements and Specifications”, Tests and Proofs 2007 (TAP 2007), LNCS 4454, 2007.
  • Jonathan S. Ostroff, Chen-Wei Wang, Eric Kerfoot, and Faraz Ahmadi Torshizi, Automated Model-based Verification of Object-Oriented Code, Workshop on Verified Software: Theory, Tools, and Experiments 2006 (VSTTE'06), Seattle, 2006.

Other Publications

Last modified:
2009/06/29 17:33