A software development process for small projects

International Journal of Electrical Engineering Education, Jan 2004 by Trengove, E, Dwolatzky, B

Abstract

We have designed a software development process that is suitable for small software projects, of the type typically performed by postgraduate students. The aim of the process is twofold, namely to put in place a quality management system which is manageable and appropriate for student projects and to provide templates and guidelines to assist students to design good software, in keeping with the current best practices for software design.

Keywords software design; quality management system; Unified Software Development Process

It is a well-known phenomenon in the software industry that an unacceptably high number of software projects either exceed their budgets, are completed late or are abandoned before they are completed. According to a survey conducted by the Standish Group in 1998:1

* 46% of IT (information technology) projects are completed over budget or past the original deadline;

* Only 26% of projects succeeded, i.e. they were delivered on time and within budget;

* 28% of projects failed in the sense that they were abandoned before completion.

The IT industry's abysmal track record is due to the fact that software development is 'a craft and not an engineering discipline,' according to Koni Buhrer, a Rational Software Coiporation software engineer.2 To become an engineering discipline, software development must undergo a paradigm shift away from trial and error toward a set of first principles,' he said.

One way of moving away from trial and error toward a set of first principles is to implement a software engineering process. Engineers use processes to provide standards and guidelines aimed at reaching a particular goal efficiently. To develop high quality software efficiently, a software engineer needs to adopt an effective software development process3 that provides a disciplined approach to assigning tasks and to ensure that the software meets the needs of the end-users and is delivered on time and within budget.4

A software engineering process should comprise a quality management system and a software design process. Such systems and processes do exist. The ISO 9001 software lifecycle management standard is an example of an internationally accepted set of standards for quality management. The Unified Software Development Process (Unified Process) is a software design process for preparing the blue-prints of software systems. It was developed in the mid 1990s by three of the world's leading software methodologists, Grady Booch, Ivar Jacobson and James Rumbaugh.

Both ISO 9001 and the Unified Process are, however, very rich and complex and are suited to the development of very large commercial software products, for which the budgets typically exceed US$1 million. The Information Engineering Research Programme (IERP) of the School of Electrical and Information Engineering at the University of the Witwatersrand, Johannesburg, consists of staff members and postgraduate students involved in the development of software projects. The scale of these projects is, however, very much smaller than that of industrial software projects. To implement recommendations and systems as described by ISO 9001 and the Unified Process is too onerous and time consuming for projects of this nature.

This paper describes a software engineering process that was developed, based on ISO 9001 and the Unified Process, but in a way that is appropriate for small-scale software development projects. The system is currently being implemented by students in the IERP.

The process is illustrated using the example of the development of a software tool for routing medium voltage (MV) cables in a computer-aided design (CAD) environment. The routing project formed part of the research within the IERP to develop a suite of software tools that would reduce the cost of electrification projects by liberating electrification designers from as many repetitive and time-consuming tasks as possible.

When routing MV cables between transformers in a township, cables may be routed along roads and along stand boundaries, but they may not cross a stand. Any map can, therefore, be divided into areas that are either obstacles, where cable may not be routed, or free space where cables may be routed. This is similar to a maze routing problem, but traditional maze routers are too slow to be feasible for this routing project.

An alternative solution to the routing problem is to use intelligent map techniques. In a CAD map, the map features do not have any intelligence. An intelligent map consists of a graphic CAD file linked to a non-graphic database, which contains information about the features on the map.5 An automated cable router would have to have some intelligence built into it, as it would have to recognise stands as obstacles. The intelligent map routing technique can be broken down into the following steps:

* First, the transformers are connected to form a network, using the straight-line distances between them. The network is optimised by making the total length of the links as short as possible;

 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)

advertisement
Click Here
CXO UnpluggedSmart Business interviews on BNET

See and hear how senior level executives across the Asia Pacific are developing smart business ideas across a variety of sectors. The focus is on the future, and on how businesses need to evolve.

advertisement
  • Click Here
  • Click Here
  • Click Here
advertisement

Content provided in partnership with ProQuest