[DYNAMIC Alternatives Logo Image]

Philosophy

Home Contents News Search Feedback Our Story


Up

World View

A software program is an executable model of some part of a real or imaginary universe. The users of the program expect that the program accurately models the relevant universe so that manipulating the model allows understanding of the reality being modeled.

As human beings, we do the same sort of modeling when we think about the world around us. We observe the world and make mental models of portions of it that are of interest. We then understand the world based on the models we have made.

When we deal with the real world, the quality of our mental models, the degree to which the models accurately reflect reality, determines how well we think and thus how well we survive.

The same is true of the software we develop -- the quality of the models is of paramount importance.

With software, however, there are considerations in addition to the quality of the models:

User issues:
Suitability -- the degree to which the software does what it needs to do in order to be useful to its user population.
Usability -- ease of manipulating and understanding the model.
Developer Issues -- all of the issues relating to the development and maintenance of the program.

World View

We operate from a basic view of the process involved in software development.

Entities and Attributes

The universe is populated by entities -- individual objects. We characterize the state of an entity in terms of it attributes. We choose the attributes that we deem important based on the nature of the problem we are attempting to solve. The state of an entity at any point is time consists of the values of the set of attributes.

Relationships

Relationships link entities to each other in various ways. Relationships may have attributes of their own.

Behaviors

Entities have behaviors. They respond to events by changing the value of some of their attributes.

Classes

Classes abstract features that collections of entities have in common. 

Inheritance

Subclasses are specializations of their parent classes. This is the basis of inheritance, abstraction, and encapsulation. 

Our world view supports multiple inheritance which allows a class to inherit from more than one parent class. 

We admit multiple inheritance because it is closer to the way our mind works than the single inheritance model. The decision to use multiple inheritance or even single inheritance in developing a particular piece of software is a design decision that is made with regard to the specific problem to be solved and the features available in the language(s) to be used.

Object Oriented model

This is our view of the Object Oriented paradigm. It doesn't correspond completely with any of the prevailing models, but it is compatible with them all.

 

 
 
Mail comments about this website to webmaster@dynalt.com.
Copyright 2000 DYNAMIC Alternatives
Last modified: March 19, 2000