Friday, July 18, 2008

Notion of Model

After having precised the concept of Method in a previous post, we're going today to define the notion of Model. I know it is obvious for the major part of you, but it is still useful to recall these concepts in mind.
A Model is a simplified view of a reality. It captures the essential relations of the system under study. The use of models during the software development is mandatory. It enables the developper to:
  • handle the complexity of the problem
  • communicate with everyone
  • be able to pursue the project with another team, contribue to the perenity of the project
  • render eventually possible automated tasks like code generation, tests and documentation

There has been a lot of work since few years to promote an Model Oriented Development, where the MDA is the most known perspective. It is clearly a trend today ; there is still maybe today a lack of simple and efficient tools to monopolize totally the attentions of the majority of developpers and decision-makers.

We distinguish, to simplify, four kinds of development models :
  • combinatorial models : output values are determined from the current input values (decision tables, truth table, karnaugh table, boolean logics, cause to effect graphs, ...)
  • sequential models : output values are determined from the current and past input values (FSM, Statecharts, Grafcets, petri nets, ...)
  • static models : describe a statical point of view of the system (class , use Cases , components , deployment, packages, ... diagrams)
  • descriptive models : it is often models describing a snapshot of the system ( activity, sequence, .., diagrams)
What are the elements of a model?

They are the following:
  • Subject : a model must have a well defined subject, e.g. the software under test
  • Pointof view/theory : a mode must be based upon a referential frame and principles which enables identifying relevant information, e.g. software testing models put typically under the light the behavior and/or focus on structure or elements aspects suspected to be bugged
  • Representation : the formalism used is very important and must be chosen carefully to express the most aspects as possible with the less artefacts possible. The formalism must also be understood by as many people as possible
  • Technics : models are tightly linked to the domain culture where people evolve, and are not necessarily transposable to other domains
That's all for today :-)

No comments: