Sumary of “Software Aspects of Strategic Defense Systems” By David Parnas
The paper presents a discussion about software engineering, which the Strategic Defense Initiative Organization (SDIO) has considered adopting for their weapon systems. Currently, bugs are almost inevitable in software, and this presents a challenge for the users because of unreliability, making software hard to integrate with critical systems. Software developers argue that no software can be entirely void of challenges and problems. The strategic defense system has certain requirements that must be met for the software to be used. These requirements include a quick and consistent warning of an attack, identification of the likely targets of attack, identification of the source of an attack, and coordinated interception of the missiles (Parnas, 1985).
Engineering systems are classified into three categories; discrete, analog and hybrid systems. Analog systems have an extensive operating series and an unlimited number of steady states, digital systems comprise components with a restricted number of steady states, and hybrid systems are a mixture of analog and digital systems. Building software involves the development of simple programs that are highly organized, and divided into modules. These programs are called structured programs, and the modules keep the software running (Parnas, 1985). Software has numerous components that deal with a range of cases when handled appropriately. However, challenges are common because of the inability of human developers to entirely address the software complications and predict the outcome of specific components. Since software systems vary, different problems arise that are unique to the technology used (Parnas, 1985). Most of the programmers do not uphold the use of the programming tools in design, but instead, they support the use the mathematical engineering tools.
There are many reasons for the lack of trust in the SDI software systems. The paper states that the system should identify and track a weapon. The system, however, works in an uncertain environment with difficulties in distinguishing the characteristics of the weapons for accurate identification and tracking (Parnas, 1985). The systems would work on a computer that is connected to other components, whose behavior cannot be predicted at the time of action. Moreover, it is challenging to test the system under unrealistic situations before it is put into use (Demir, 2015). The conventional software development processes do not result in robust programs, since these programs are designed to solve small problems, and so they fail when implemented in large and complex problems.
Parnas suggests that software engineering has limited applications because of the gaps existing between theory and practice. The implementation of automated programming is not yet a reality because of the limitations and inefficiency of the software (Parnas, 1985). There has been minimal research in the field to determine software success, and the author is skeptical about the usage of software in fragile systems.