Finite State Machine Architecture for Software Development

After an application generated by programmers and released to end users, the end users identify errors in the application or enhancements that would improve the usefulness of the application. Then, the programmers create an updated application using a high-level programming language such as C++. The post release support activities are highly expensive because they require the involvement of highly skilled programmers who must perform the often time consuming task of writing, rewriting, and testing code in a high level programming language. Such high life cycle costs are particularly problematic for organizations that perform a wide variety of tasks under changing operational environments using a variety of software applications.

Naval Surface Warfare Center, Crane Division (NSWC Crane), has developed and patented a method and a system for developing an application program having functionality that corresponds to a finite state machine (FSM) architecture to generate, modify, and maintain software applications. Due to its simple program language, this technology reduces the need for involvement of high-level programmers in the life cycle of certain software applications. Any of a variety of suitable markup languages or similar languages may be used. The development and maintenance of the applications may be performed by properly trained technicians familiar with the requirements of the applications and the operational environments, but not necessarily familiar with abstract programming. The architecture of this system permits on-site trained, non-programmer technicians to work with end-users to provide application updates rather than requiring communication with remote programmers who are less familiar with the actual deployment of the application.

Advantages: -Reduction in life cycle cost -Eliminates misunderstanding between end users and programmers -Faster response time