Software design for applications in rehabilitation
John L Dallaway and Robin D Jackson
Department of Engineering
University of Cambridge, UK
1 Attributes of well designed software
Software design criteria for applications in rehabilitation are broadly similar to those in other application areas. Some of the important attributes of well designed software are as follows:
- Maintainable
- Modular
- Portable
- Accessible
Within the context of rehabilitation, the issue of accessibility adopts an extended meaning due to the difficulties experienced by certain disabled individuals in accessing computer systems.
1.1 Maintainable software
It is a fact that the user requirements of software applications change with time. Software rapidly becomes obsolete unless it is upgraded to reflect these changes. Code must also be understood by personnel other than the original author if such upgrades are to be made when the author has moved on.
Code may be made maintainable by adhering to strict conventions during the coding process. There are several software design methodologies which facilitate good code structure. The use of strongly typed programming languages can also encourage structure. Authors should comment their code liberally and be prepared to sacrifice speed and size for legibility. This is an increasingly common practice as the cost of computer hardware continues to fall. Finally, code should adhere to all the latest standards for software and hardware interfaces. This will reduce the short-term maintenance requirements.
1.2 Modular software
Software modularity facilitates the re-use of code in other applications. It also encourages good structure. The re-use of code saves both time and money.
In order to achieve modularity, it is important to consider code outside its current context during software development. The use of object-oriented programming concepts such as encapsulation make it relatively easy to re-use code even when using non-OO programming languages. It is also helpful to use third party libraries and toolkits where practical. There are many high quality libraries available for common application functions.
1.3 Portable software
Portability enhances both the market scope and the life of software. Potential users are unlikely to invest in additional hardware to run a single application and will instead select software which runs on their existing computer platform. This is especially true in the rehabilitation market. By coding for several platforms, the risk associated with investing development time for a platform which becomes obsolete is also reduced.
Platform-dependent code should be avoided where possible and contained within a single module of code where unavoidable. Third party libraries and toolkits should also be selected on the basis of the platforms they support and are likely to support in the future.
1.4 Accessible software
The market potential of a piece of software can be greatly enhanced by ensuring that it is easy to use. With the widespread adoption of graphical operating environments, it is particularly important that software exhibits the 'look and feel' common to other applications running in the same environment. The operation of the software must also be intuitive. Software companies are now taking this issue very seriously. For example, Microsoft have recently set up a 'usability lab' in which novice users of their software products are scrutinised [1]. User errors are logged and provide useful feedback into the design process.
2 Accessibility in rehabilitation software
Accessibility is a critical issue in the design of software for users with restricted computer interaction abilities. In particular, the user requirements for screen layout and the most effective user input methods must be accurately assessed early in the design process.
2.1 Screen layout
The development of screen layouts for application software has been recently revolutionised by the use of Computer Aided Software Engineering (CASE). Certain CASE tools facilitate the rapid prototyping of several candidate user interface designs. This allows the designer to adopt a 'try it and see' approach to establishing the user requirements. It is also possible to interactively modify certain aspects of a design during an evaluation session.
Some forms of user interaction are more appropriate for users of certain input devices than others. For example, the traditional command line is well suited to users of hardware-based keyboard emulators. However, users of mouse or joystick input devices would generally prefer a form of 'drag and drop' interface. Rehabilitation software should be highly configurable in the sense that many forms of user interaction are accommodated.
2.2 Computer access
Computer access for non-keyboard users has traditionally taken the form of a proprietary hardware/software system which is dedicated to a particular interface device and a particular target application. For example, an access solution might provide switch input to WordStar running under MS-DOS only.
More recently, the advent of graphical operating environments has enforced some standardisation in the way application software communicates with the computer hardware. It is now possible to create software-based access solutions which work with all applications running in a particular operating environment. This is of particular benefit to users of multiple applications such as those with computer-based vocations.
The benefits of graphical operating environments have led to the introduction of third party access software products which allow designers of rehabilitation software to concentrate on the functionality of their product. For example, in porting the Cambridge University Robot Language (CURL) [2] to the Windows environment, the author was required only to ensure that the application conformed to the relevant programming interface standards. Access to CURL is now provided by products such as Switch Access to Windows (SAW) [3] and the Windows Visual Keyboard (WiViK) [4] where necessary.
3 Future trends
In order to maintain rehabilitation software markets, it is vital that software engineers keep pace with advances in mainstream computing technologies. They should be considering how new technologies can be exploited in the rehabilitation context. One important trend is that of application integration, it is already possible to link and embed one type of data file in another. For example, a spreadsheet might be embedded in a word processor document. In the future, technologies such as Microsoft Object Linking and Embedding (OLE) will extend this concept, allowing our work to become document-centred rather than application-centred. OLE will allow applications to be used as tools to work on application-independent data files. Our future plans for rehabilitation software should reflect this possibility.
The use of RISC processors to perform platform emulation will also affect the way we write software. The PowerMacintosh range of computers already allow users to run Microsoft Windows applications using software-based processor emulation. The hardware-specific layers of application programming interfaces will become increasingly removed from the application software itself and it will be a rigid requirement that all software conforms to the relevant programming specifications.
Finally, the introduction of alternative input devices on mainstream computing platforms will provide opportunities for computer access at reduced cost. For example, certain Macintosh computers now include voice command facilities using a limited speech recognition system. It may be possible to use these facilities to provide more generic speech input in the future. Video mail is now being introduced on some workstation platforms and it is possible that the video cameras required to implement this technology could also be used to implement a head gesture recognition system for computer access.
4 References
- Smith JU (ed) (1992) The way we work. Microsoft Magazine. 2. 4. 24-27
- Dallaway JL, Mahoney RM, Jackson RD, Gosine RG (1993) An interactive robot control environment for rehabilitation applications. Robotica. 11. 541-551
- Head P, Poon P, Morton C, Colven D, Lysley A (1993) Switch Access to Windows 3 (SAW) - A new concept in emulation techniques. ECART 2 - Proceedings. 22.2
- Shein F, Hamann G, Brownlow J, Treviranus J, Milner M, Parnes P (1991) WiViK: A visual keyboard for Windows 3.0. RESNA 91 - Proceedings. 160-162
This paper may be referenced as follows:
Dallaway JL, Jackson RD (1994) Software design for applications in rehabilitation. Proceedings of the third Cambridge Workshop on Rehabilitation Robotics. 76-78.