Systems Services

 DSDM,RAD,XProgramming 

 SOFTWARE PROTOTYPING 

Welcome to our Software Prototyping  site. We provide consultancy services and hands on project developments.

 

We operate in the UK and are local to Hertfordshire, Cambrideshire, Bedfordshire (Herts,Cambs,Beds), Essex  and North London. We mainly provide Software Prototyping support to I.T. departments who are using EXTREME PROGRAMMING (XProgramming) and Dynamic Systems Development Method (DSDM) and Rapid Applications Development (RAD) techniques.

 

Contact the Business Manager at : logical@btinternet.com for more information.

Phone: +44 (0)1763 288165

Fax: 01763 288 393

 

Our main business is Software Prototyping and System Prototyping however we can also help with :

  • Project Formulation

  • Project Planning

  • Project Requirements Capture

  • Test planning

  • Testing

  • Project Delivery in time and in budget

 Contact us here : logical@btinternet.com .

An overview of Software Prototyping

Software Prototyping is concerned with the rapid development of a system

 In the past, prototyped software was normally thought of as being inferior  to the required system so further development was required. Now, the boundary between prototyped and normal system development is blurred and many systems are developed using an evolutionary approach which may sometimes reuse elements or all of a prototype.
 

Uses of System Prototypes
 
System Prototypes help business sponsors, end users (customers) and developers understand the requirements for the system as follows :
 

  • Requirements elicitation - users can experiment with a prototype to see how the system supports their work

  • Requirements validation - the prototype can reveal errors and omissions in the requirements

  • Prototyping reduces risks in developing a project such risks may be divergence from the required business purpose, errors in requirements...


System Prototyping benefits

  • Misunderstandings between users and software developers are exposed

  • Missing services may be detected and confusing services reengineered

  • A working system is available early in the process

  • The prototype may serve as a basis for deriving a system specification

  • The system can support user training and system testing

  • Closer match to the system needed

  • Improved design quality

  • Improved maintainability

  • Reduced overall development effort

What we do

We can undertake any or all of the following as required :

  • Meet to discuss the project and the issues

  • Agree the objectives and benefits of the project

  • Undertake requirements capture

  • Plan the project

  • Project Manage projects

  • Undertake Software Prototyping

  • Undertake Software Test Planning and Testing

  • Undertake Developments based on Software Prototypes

 

About Us

  • Company operational for over 15 years

  • Staff have over 30 years of experience in the I.T. industry

  • Recent work in  Rapid Applications Development and Software Prototyping

  • Recent use of Open Source software development tools

  • Developments in both WINDOWS and LINUX environments

  • Use of TCL/TK , JAVA and 'C' for software prototyping

Software Prototyping

This is used in software development projects using such techniques as  EXTREME PROGRAMMING (XProgramming) , Dynamic Systems Development Methods (DSDM) and Rapid Applications Development (RAD) to quickly develop elements of the system as running software. These elements are typically those which  need further investigation or insight or are impossible to evaluate without a model to work from and agree with management, end users and technical authorities.

Generally Software Prototyping can be categorised as follows :

Feasibility prototyping : used to test the feasibility of a specific
technology that may be used in an information system for example using hardware or software which can be categorised as 'new technology' and therefore untried.

Requirements prototyping (discovery prototyping) : used to
"discover" the users' business requirements from a broad statement of the problem to be solved (the idea is that managers/users/technical staff  will recognise the requirements when they see them). Formal requirements can then be developed from the prototype with features, quantification of schedules, costs, performance goals and quality all addressed.

Design prototyping (behavioural prototyping) : used to
simulate the design of the final information system (whereas requirements prototyping focuses on content only, design prototyping focuses on form and operation of the desired system). This is useful where usability of the system and its user interfaces and procedures are important and/or the interchange of information throughout the system needs to be investigated prior to productionising the system.


Implementation prototyping (production oriented prototyping): where the prototype evolves directly into a production system. This can be useful in smaller scale systems where requirements are well known or where the performance and/or final quality constrains are not severe eg for small scale 'in house' projects where end users are expert and only need to use the system in a particular well documented way. This approach is also useful as an extension to design prototyping. 

Prototyping for automated testing : testing prototypes may be developed and refined to meet the automated testing needs of a projects. This applies to both unit testing, acceptance testing (including stress and volume testing). The same applies to production testing for example where a hardware solution or combined hardware/software solution is produced and a testbed is needed to verify that the hardware works within tolerance limits before release to a customer.

DSDM - Dynamic Systems Development Method

DSDM addresses the whole of of a software project delivery cycle in situations where time to delivery and the resources for this are fixed with final functionality variable. It is very largely a commonsense approach to organising a software project so that the focus is on a business solution within a defined time.

The initial focus is on developing a feasiblity study and business study to evaluate the business benefits before a project is started proper.

Functional software prototyping is then undertaken to evaluate such things as : business value; usability of the system; optimum ways of constructing the system. This may be an iterative process.

The prototyping phase then moves towards a final production of the system. This phase can again be iterative. Documentation is finalised as the system is finalised. 

Finally the system is maintained.

The key elements of a DSDM software project are as follows :

Active user involvement - is a must. DSDM is a user centred approach. Active involvement by management and users throughout the development project is very important.


Team Empowerment - DSDM teams must be empowered to make decisions. DSDM project teams consist of management,  developers and users. The team must be given the power to make key decisions. The developers need to be able to rapidly decide on technical solutions and business users need to be able to decide upon key requirements. 

Frequent Releases of software product - the focus is on frequent delivery of products. The work of a DSDM project is focused on application products that can be delivered within agreed periods of time. This project team aims to define the optimal approach to achieving the business solution required in the time available.

Business solution oriented - a solution which is fit for business purpose is the key for sofware delivery. The main focus of a DSDM project is to deliver the needed business functionality in the required time. This means that a system may be rigorously engineered later if this is felt fit. Traditionally, the focus has been on rigorously and rigidly defining and implementing systems which may or may not have been fit for the business purpose or over engineered.

Iterative and incremental development  - is necessary to converge on an accurate business solution. The key emphasis in DSDM is on evolving a system by incremental steps. Partial solutions may be delivered to fulfill immediate business need. Lessons learned in the feedback process from users are used to evaluate future enhancements. Reworking a system in this way helps to produce a solution which accurately fits a business purpose.

Reversible Changes - It should always be possible to backtrack to a previously released version of the system to protect against error prone implementations or systems in which design decisions have been made wrongly.  Requirements are 'frozen' at a high-level by agreeing the purpose and scope of the system without imposing unnecessary and possibly inaccurate constraints on the remaining development cycle.


Testing is integrated throughout the life cycle - As the system is developed incrementally, so is it tested incrementally. Both unit testing and acceptance testing is conducted both to ensure that the software solution is fulfilling the business need in addition to being technically sound.

 
Collaborative and co-operative approach between all stakeholders  - DSDM projects must have continuous collaboration between sponsors, developers and users throughout their life.

 

XProgramming - Extreme Programming

Extreme Programming (XP) is normally used for software projects in which the requirements are likely to change as the project progresses and are therefore risky but still need to be delivered on time.

Some less well understood aspects of the project (called project spikes)  may need to be prototyped using Software Prototyping to determine their feasibility or to further understand their scope and inherent problems .

The goal of an XP project is to develop the software needed for a business solution on time.

There is an emphasis on simplicity for both design and the implementation of the design

The method emphasises end user involvement and promotes teamwork between managers, end users and software development staff. It aims to use the different people involved in the development process to their full and best effect. 

XP promotes  iterative development.

There is a strong emphasis on building in the ability to test all produced code at both unit test level and acceptance test level as part of the development process from the inception of the project.

Software releases are always well planned and are part of the iterative design process. Releases are kept small.

XP can be used in a remedial way to rescue software projects which are in trouble or are likely to have problems.

 

RAD - Rapid Applications Development

RAD is all about the implementation and delivery of software applications in a well  defined time scale. The applications must deliver an agreed business solution but features, usability and efficiency may be compromised to achieve the business solution in the required time.

RAD projects are suitable for software developments from a few days up to a maximum of about six months.

As with other development methods it is often stated that a usable 80% of the solution can be produced in 20% of the time it would take to develop a full solution to the business problem.

RAD developments rely heavily on Software Prototyping and evolution of requirements from prototyping. Software applications are developed into a final production system by iterative development of prototypes.

RAD developments aim to drastically reduce change - changes proposed late in the development cycle are regarded critically and may be dropped if the impact on timescales is too great and business functionality is still maintained.

Involvement and 'buy in' to the project of management, end users and technical staff is important throughout the life of the development.

 

Links

Data Recovery Advice - Data recovery advice for UK businesses and individuals

I.T. Services - Complete range of I.T. Services, Programming ,Software testing....

Online disk backup - Secure,remote online backup services.

www.btinternet.com/~logical/publish.htm - Callout service for computer problems

Data Recovery UK - Data recovery service in UK

www.btinternet.com/~logical/webinf.htm - Web information services

 

 

I.T. Services