Real-time software life cycle with the model system

The use of an assertive specification language for real-time software development and maintenance is considered. The language is used for asserting the acts or relations inherent in the problem to be solved; this is in contrast to conventional programming languages, which are used to express the computer solution. Expressing a problem in Model consists of declaring array variables and defining their relationships through equations. This is different from conventional programming, which relates the problem in terms of computer operations. The language is supported by an automatic system which interacts with the user in soliciting missing definitions or correcting inconsistencies, and which translates the specification into a near-optimal computer solution. The main advantages of this approach are indicated. The use of Model in real-time software development and maintenance is reviewed. Differences from conventional programming are stressed through an example, which also illustrates the use of the three automatic components of the Model system.

[1]  Robert M. Keller,et al.  Formal verification of parallel programs , 1976, CACM.

[2]  Kang-Sen Lu Program optimization based on a non-procedural specification , 1981 .

[3]  Amir Pnueli,et al.  Compilation of Nonprocedural Specifications into Computer Programs , 1983, IEEE Transactions on Software Engineering.

[4]  Michael J. O'Donnell,et al.  Computing in systems described by equations , 1977, Lecture Notes in Computer Science.

[5]  Per Brinch Hansen,et al.  Distributed processes: a concurrent programming concept , 1978, CACM.

[6]  Richard C. Holt Structured concurrent programming with operating systems applications , 1978 .

[7]  Arie Shoshani,et al.  System Deadlocks , 1971, CSUR.

[8]  Brian W. Kernighan The Unix System and Software Reusability , 1984, IEEE Transactions on Software Engineering.

[9]  Richard C. Holt,et al.  Some deadlock properties of computer systems , 1971, SOSP '71.

[10]  Noah S. Prywes,et al.  Use of Very High Level Languages and Program Generation by Management Professionals , 1984, IEEE Transactions on Software Engineering.

[11]  Tomas Mirtin Realtime programming language PEARL - Concept and characteristics , 1978, COMPSAC.

[12]  Richard N. Taylor,et al.  A general-purpose algorithm for analyzing concurrent programs , 1983, CACM.

[13]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[14]  Amir Pnueli,et al.  Use of a Nonprocedural Specification Language and Associated Program Generator in Software Development , 1979, TOPL.

[15]  Richard C. Holt,et al.  Comments on prevention of system deadlocks , 1971, Commun. ACM.

[16]  Christoph M. Hoffmann,et al.  Programming with Equations , 1982, TOPL.

[17]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[18]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[19]  C. A. R. Hoare A Calculus of Total Correctness for Communicating Processes , 1981, Sci. Comput. Program..

[20]  Brian W. Kernighan,et al.  The UNIX™ programming environment , 1979, Softw. Pract. Exp..

[21]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[22]  Amir Pnueli,et al.  On the scope of static checking in definitional languages , 1984, ACM '84.

[23]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[24]  Pamela Zave,et al.  The operational versus the conventional approach to software development , 1984, CACM.

[25]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[26]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[27]  Amir Pnueli,et al.  Very High Level Concurrent Programming , 1987, IEEE Transactions on Software Engineering.

[28]  Michael J. O'Donnell,et al.  Equational Logic as a Programming Language , 1985, Logic of Programs.

[29]  F. André,et al.  Synchronization of Parallel Programs , 1985 .

[30]  Per Brinch Hansen Edison—a multiprocessor language , 1981, Softw. Pract. Exp..

[31]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[32]  Robert M. Keller,et al.  Specification of Synchronizing Processes , 1983, IEEE Transactions on Software Engineering.

[33]  Boleslaw K. Szymanski,et al.  Synchronized Distributed Termination , 1985, IEEE Transactions on Software Engineering.

[34]  N. S. Prywes Distributed large scale computation: with an application to world-wide econometric studies , 1984 .

[35]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[36]  Niklaus Wirth,et al.  Toward a discipline of real-time programming , 1977, CACM.

[37]  Boleslaw K. Szymanski,et al.  Nonprocedural-dataflow specification of concurrent programs , 1983 .

[38]  Richard Gary Greenberg Simultaneous Equations in the Model System With an Application to Econometric Modelling , 1981 .