Reengineering Real-Time Software Systems

Abstract

The problem this thesis solves is how to reengineer existing real- time applications implemented without software engineering (SE) attributes; with poor modularity and robustness, and that are difficult to read and maintain. The real-time system chosen for this study was the Model-based Mobile robot Language (MML) used on the Yamabico- 11 mobile robot, which was implemented without SE attributes. The approach taken was reengineering MML with a focus on improving modifiability while preserving functionality. First we developed a systematic plan using manual static analysis, then we incrementally reengineered the application with thorough system-level testing. Code review was used to locate and remove dead code, and synonymous and redundant variables and functions (improving modifiability, readability and robustness). Call-hierarchy tracing was used to gain explicit module restructuring insight for tighter cohesion (improving modifiability, modularity, and readability). Global-variable tracing was used to improve module coupling by localizing and minimizing global variables (improving modularity, readability, and robustness). The results were as follows: A method for applying SE to existing real-time applications after- the-fact called 'Reengineering Real-Time Software Systems' was developed, which improves modifiability, modularity, robustness and readability. MML now has improved modularity and robustness, and is easier to read and maintain.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 09, 1993
Accession Number
ADA273408

Entities

People

  • Randall C. Scott

Organizations

  • Naval Postgraduate School

Tags

Communities of Interest

  • Autonomy
  • Materials and Manufacturing Processes
  • Sensors
  • Weapons Technologies

DTIC Thesaurus Topics

  • Collision Avoidance
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Engineering
  • Hierarchies
  • High Level Languages
  • Language
  • Motion Planning
  • Object Oriented Programming
  • Operating Systems
  • Reliability
  • Robotics
  • Software Development

Fields of Study

  • Computer science
  • Engineering

Readers

  • Robotics and Automation.
  • Software Engineering.

Technology Areas

  • AI & ML
  • AI & ML - Autonomous Systems
  • Autonomy