Development Methodology

Our software development page gives an overview of how we develop customised software. Here we explain in more detail some of our development methodology.

Our methodology incorporates the following principles:

 

Principle Features and Benefits
Model Based

Unified Modeling Language
We use a model based approach to software design, building a graphical model of your business requirements using the industry standard Unified Modeling Language (UML) notation. As well as aiding our communication with you, this is the basis for the actual construction of your system.
The modeling tool we use – ModelMaker – provides us with a seamless transition from design, through implementation, to system documentation.
This allows us to concentrate more on design and system architecture - i.e. solving your business problem - rather than our technical ones.
Object Oriented

Object Oriented
Historically, computer software has been viewed as a logical procedure that takes input data, processes it, and produces output data.
In contrast, Object-Oriented (OO) programming takes the view that what we really care about are the objects we want to manipulate rather than the logic required to manipulate them. Examples of objects range from human beings (described by name, address, and so forth) to buildings and floors, down to the little widgets on your computer desktop (such as buttons and scroll bars).
In other words, objects whose properties can be described and controlled.

Features and Benefits of an Object-Oriented approach include:
  • Object Inheritance provides more thorough data analysis, reduces development time, and ensures more accurate code.
  • Data Hiding prevents accidental access to data and provides greater system security and avoids unintended data corruption.
  • Objects can be reused not only by the program for which it is initially created but also by other object-oriented programs. This is how we create our development frameworks.
The main programming tool we use, Codegear Delphi, has supported OO since version 1 was released in 1995.
Test Driven

DUnit: Unit Testing for Delphi
One of the problems of traditional software development methodologies has been that quality is one of the last tasks to occur – and is often cut short because the project timelines are under pressure.

Test-Driven Development (TDD) completely turns traditional development around. Instead of writing functional code first and then the testing code as an afterthought – if it gets written at all – instead the test code is written before the functional code.
This results in significantly better code testing than traditional techniques – because quality is built in from the start.

We use an Open Source testing framework called DUnit– which automates much of the process. By making the process easy, DUnit ensures it happens.
Design Patterns Why reinvent the wheel ?
Christopher Alexander, an architect, wrote a book "A Pattern Language" 30 years ago. According to Alexander:
"A pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice".
Patterns occur in everyday life in many situations. In software engineering, a design pattern is a proven solution for a general design problem. The usefulness of the solution given in the pattern has been proven in many designs. As such it captures design experience of experienced programmers and makes it easier to reuse successful designs and architectures.
Put simply, design patterns help a designer get a design 'right' faster.

This is another reason we use ModelMaker, because support for patterns is built right in.
Data Driven At an early stage of development we take a sample of your existing data. We use this for two purposes:
  • To ensure our model accurately captures your requirements
  • To plan the conversion of your existing data for migration to the new system. Also, by populating our development database with real data, we spot and correct any potential performance bottlenecks early on – before the new system goes live.

 

Feel free to ask us any questions you may have after reading this.

Next page