DPS Computing – The Next Generation

DPS ComputingAs promised previously, we have lots of new (nice) surprises coming your way.  And it gives me great pleasure to be able to announce the first surprise!

As our regular members and visitors will know we are constantly striving to provide the best computing resource in the Internet – in terms of information, services and products to individuals and businesses alike.

To enable us to further continue on our mission to do this, we are extremely pleased to announce that we have today received confirmation from The Registrar of Companies for England and Wales that our application to form DPS Computing Limited has been approved and that the company has been duly incorporated as of today.

David Smith has been appointed Director of the new company and will lead it on it’s mission.

This is a major milestone for DPS Computing and our members and visitors and will enable us to provide better products and services.

The next new surprise is a brand new website – although don’t worry, the blog won’t disappear, it is going to be incorporated into a wider design which will showcase the products and services which we can provide you with.

The new services will include web hosting, web design, web application development and website maintenance and updates.

Our first software release has also been scheduled to occur within the next two weeks.

We hope you agree that there are exciting times ahead and hope that many of the members and visitors of our blog will decide to take some of our products and services which are competitively priced and of the highest quality.

Many thanks for all the support from our members and visitors.  You are the reason that we constantly strive to improve, break barriers, and be at the forefront of technological and computing developments.

David Smith.
DPS Computing Limited.

Interactive Systems Design Using An Iterative Model

Iterative Design ModelFurther to our previous article on the Waterfall Model, we will now discuss interactive systems design using an iterative model.

The iterative design model is a fairly new model when compared to the waterfall model, however it is growing in popularity for a number of reasons.  Firstly, what exactly is the iterative design model?

The iterative design model is a dynamic model of design that involves multiple iterations of the design process, rather than just one (such as in the Waterfall model).  The iterative design model implies repeated design, implementation and evaluation of a system.  An aspect which is often feature in and works well with iterative design is prototyping, in the form of rapid prototype development.  Iterative design also lends itself to User Centred Design (UCD).

Rapid prototype development has multiple benefits and as many prototypes as can fit into the allocated project time should be created.

The first benefit of iterative design is that it allows initial design mistakes to be overcome.  It is rare in any project that a design is right the first time – in fact, it is usually hard to know the exact requirements of a project before implementation has started.  In a linear model, after the design stage is over, it’s over.  There’s no going back and modifying the design during the implementation stage.  Whether your design decisions were good or bad, you are stuck with them and this can impact the final system you create.  With an iterative approach, this problem is solved (partly).  You set out your requirements, design the system, produce a prototype and then evaluate the prototype.  You can then use what you have learnt from that prototype to redesign the system and produce another prototype.  The idea is that the system improves with each iteration.

Secondly, as previously mentioned, during the requirements phase of a project you are unlikely to know the exact requirements of the system.  As you realise more requirements or changes to your requirements later during the iteration, you can make modifications to the design on the next iteration.

Another benefit is that, in many cases, you will be working for and with a non technical customer (and possibly non technical users).  They may not necessarily understand complex design documents or technical specifications.  However, they do understand prototypes that they can play with!!  It’s a lot easier for them to test a prototype, see it in action, and see the implications of decisions made during the requirements and design phases.

One thing that does have to be noted though is, as with any other design model, this isn’t perfect.  And you most certainly can’t make huge errors due to carelessness and expect their to be no implications.  Sometimes, initial bad design decisions cannot be overcome due to design inertia – basically some decisions made in the early stages of the project can have such drastic consequences or be so fundamental that it cannot be changed significantly enough to negate the initial bad design decision.

Overall, the iterative design model is a good design model, that is currently underused.  Some businesses have become aware of its potential and have started using it with their software products with some promising results.  The iterative design model is likely to increase in popularity in the future, but there will also be a place for the Waterfall model as well.

When choosing a design model for a project it is always important to consider which design model best suits the project and the circumstances surrounding it.  There isn’t one model that is good for every project – some models benefit some projects better than others!

Application Design – Waterfall Model

The Waterfall model of computer application design has been around for a long time.  It has been typically favoured in the past compared with other design models – and to some extent still is today.

Waterfall Model

The Waterfall model involves exactly one iteration of the design process.  Usually there is a requirements phase, a design phase, an

implementation phase, a verification phase and a maintenance phase.

During the requirements phase the actual requirements of the final system are defined.  This is formed in conjunction by the person or organisation commissioning the project – basically the customer.  During this stage you have to be careful with how you treat the customers input.  Remember, as strange as it sounds, the customer may not actually know what they want!  Now

this can sound strange, but keep it in mind.  Unless suitably qualified, the customer may suggest certain implementations that are not possible, not efficient or simply won’t work.  However, it is important to consider the customers input carefully so that you end up producing a system that the customer is both happy with and can use for its intended purpose.

The design phase involves designing the actual application.  Usually during this stage, storyboards will be developed, the user interface will be mapped out and exactly what is in the system will be defined – as well as how the functionality in the system will work.  During the design phase it is often good to consult and show the customer your designs so that their initial ideas that they expressed during the requirements phase are fully understood and that the customer sees the designs evolving in the way in which the originally intended.  It is important to catch important misunderstandings at this stage – if found out a later stage they can be very detrimental to the project – and in some cases cause the whole project to fail.

The implementation phase is where the designs are put into practice.  This involves the design of the multimedia elements of the system as well as the programming code for the final system.  As much as possible the implementation should fully represent the original designs.  With the Waterfall model, there is little room for manoeuvre and there is no redesign stage – you must stick to the original design!

The verification stage is the final development process phase which would include the testing phase.  The testing may include many different types of testing including functionality and user interface testing.  During this stage there may also be an evaluation stage which reports on the project and can include the input of the customer based on the product that you have developed.

The maintenance stage is a post development process phase which can continue for a very long time depending on the software.  This phase involves providing routine maintenance and possibly additions to the system as necessary.  It

also can include making patches for the software to rectify errors.  Equally it can include patches to improve security or make improvements based on technological developments since the implementation of the original software.

Overall, the Waterfall method is very inflexible.  Mistakes in the design, unless rectified at the time, become mistakes of the final system.  The use of the Waterfall method can also cause unnecessary delay on at any stage, as the designers and developers are aware that once that stage has passed, it has passed – there is no going back to it.  The Waterfall method is a traditional method of application development – and is still relatively popular.  However, companies are now embracing alternatives such as iterative design, which, although it can be more volatile, can lead to much better results for the final application.

Cognitive Psychology and Computer Applications

Keyboard / PsychologyCognitive psychology is an important aspect of human computer interaction and is a key component that needs to be considered when optimising applications for their use by end users.

Firstly, cognitive psychology is essentially the way that people, and therefore your users, think and learn things.  Cognitive psychology plays a part in computer applications development when how your users think and learn is then accommodated within the design and implementation of your application.

There are certain processes that occur for your users to learn and acquire knowledge, and subsequently recall and use that learned knowledge to use your application.

A number of factors have to be considered including:

  • Perception
  • Attention
  • Memory
  • Learning
  • Thinking
  • Social influences
  • Environmental influences

Perception – how does your user perceive the application and the tasks that it is supposed to perform.

Attention – how can you draw and channel the users attention so that they can effectively use your application.

Memory – the human memory has to be considered when designing applications.  Short term memory has a small capacity (around 7 items) so it is important not to overwhelm the user with too much information.  The program must be logical, easy to use and include a help system.  If a user initially gets frustrated with using your application, then they may well seek an alternative rather than trying to master your application.  Make it easy for your end user – especially at the beginning.  Only provide necessary and relevant information to the task.  Don’t overfill your screens.  Use sections and divide your program up into tasks and subtasks.

Learning – consider how the human mind learns processes, gains knowledge and subsequently recalls and uses this knowledge.

Thinking – consider how your end user thinks and how they will believe that certain tasks should be carried out.  Integrate this thinking into your application as much as possible.

Social influences – are there any social influences that affect your application or its target user audience?  If so, don’t forget to consider these when designing and implementing your application.

Environmental influences – equally, are there any environmental influences that will affect the way the user uses your application or the target users?  If so, then again consider these when designing and implementing your application.