Skip to main content
ARS Home » Research » Publications at this Location » Publication #71600

Title: APPLYING SYSTEMS ENGINEERING PRACTICES ON A SMALL-SCALE: USING SOFTWARE ENGINEERING TO SUPPORT A DATA ACQUISITION SYSTEM UPGRADE

Author
item Korthals, Rodney

Submitted to: Agronomy Journal
Publication Type: Proceedings
Publication Acceptance Date: 6/24/1996
Publication Date: N/A
Citation: N/A

Interpretive Summary: This paper presents an example of systems engineering applied to a small project. A description is given of what the Biological Engineering Research Unit (BERU) has done to implement software engineering in the development of a data acquisition system. The software developed for the data acquisition upgrade was the first team-based development project attempted by the developers. Examples given of why and how software engineering practices were applied to address the problems encountered during software developments include: 1) gathering requirements and establishing objectives to ensure that the project addresses the user's problems; 2) planning and overseeing the project on a regular basis to review progress, plan what needs to be done next, and commit to responsibilities to complete specific tasks; 3) controlling the version of the software being developed to prevent multiple versions from being distributed and to prevent the loss of corrections that would result if non-up-to-date copies are used; and 4) controlling the quality of the resulting software for development to meet the requirements, to simplify maintenance, and to make the software easy to use. The two software engineering practices that helped the most were the use of version control and the team meetings.

Technical Abstract: Software engineering was used to define requirements, plan, and track an upgrade of data acquisition equipment. Examples are given of why and how software engineering practices were applied to address the novel aspects of this project. Software engineering practices discussed were: 1) Requirements gathering was used to establish objectives for maintainability, usability, especially as it related to user interface, ease of reconfiguration, and data availability. 2) Project planning and project oversight were addressed in weekly meetings to review progress, to define what needed to be done next, and to assign responsibilities for specific tasks to individual developers. 3) Software configuration management was maintained by physically controlling access to the latest floppy disk version of the software. 4) Quality control efforts included using coding standards, peer reviews, prototyping, modular code, and database techniques. The two software engineering practices that helped the most were the use of version control and the team meetings. Although version control was unsophisticated, it did prevent problems caused by losing software changes made to non- designated copies of the software. The regular project management meeting kept the project progressing. The synergistic team approach ensured that any team member could support the resulting software. More importantly, the team developed better software than would likely have resulted by any one of the team members working alone.