skip to main content
research-article

Inspired software design early jackson methods to thread architectures

Published:06 July 2009Publication History
Skip Abstract Section

Abstract

This is a somewhat personal account of a journey starting with assembly coding based on Jackson Structured Programming (JSP) and ending with the design of thread architectures for reactive software systems using entity-life modeling (ELM). As the level of abstraction rises, the basic concepts remain the same: The software takes its shape from structures in the problem domain. JSP bases control structures on regular expressions describing data streams. Jackson System Development (JSD) introduces long-running processes patterned on the life histories of entities in the problem domain. Unfortunately, implementing long-running processes in sequential programs leads to awkward solutions. ELM lets us im-plement the processes as threads. This is a natural fit, which re-moves the awkwardness.

References

  1. Alexander, C. Notes on the Synthesis of Form. Harvard University Press, 1964.Google ScholarGoogle Scholar
  2. Asker, B. Algol-Genius -- An early success for high-level languages. In History of Nordic Computing: First Working Conference of Nordic Computing (HiNC1), Trondheim, Norway, June 16-18, 2003, ed. J. Bubenko, J. Impagliazzo, and A. Solvberg. Springer Verlag, 2005, pp. 251--260.Google ScholarGoogle Scholar
  3. Barnes, J.G.P. Programming in Ada 2005. Addison-Wesley, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Beizer, B. Software Testing Techniques, 2nd ed. Thomson Computer Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Blum, B.I. Software Engineering: A Holistic View. Oxford University Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Böhm, C., and G. Jacopini, Flow diagrams, Turing machines, and languages with only two formation rules. CACM 9, 5 (May 1966), 366--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bollella, G., J. Gosling, B. Brosgol, P. Dibble, S. Furr, D. Hardin, M. Turnbull, D. Locke, S. Robbins, P. Solanki, and D. de Niz, The Real-time Specification for Java. Addison-Wesley, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bollella, G., and J. Gosling, The real-time specification for Java. IEEE Computer 33, 6 (June 2000), 47--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Brooks, F.P. Jr. The Mythical Man-Month, Anniversary ed. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cameron, J.R. An overview of JSD. IEEE TSE 12, 2 (Feb. 1986), 222--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cameron, J.R. JSP&JSD: The Jackson Approach to Software Development, 2nd ed. IEEE Computer Society Press, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Carter, J.R., and B.I. Sandén, Practical uses of Ada-95 concurrency features. IEEE Concurrency 6, 4 (Oct./Dec. 1998), 47--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Fairley, R.E., and N. Martin, Software engineering programs at the Wang Institute of Graduate Studies. In Proceedings of the 1983 annual conference on Computers: Extending the human resource, 240--250. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Ferguson, E.S. Engineering and the Mind's Eye, Reprinted. The MIT Press, 1994.Google ScholarGoogle Scholar
  15. Gamma, E., R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gomaa, H. A software design method for distributed real-time applications. J. Systems and Software 9, 2 (Feb. 1989), 81--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Harel, D., and A. Pnueli, On the development of reactive systems. In Logics and Models of Concurrent Systems, ed. K.R. Apt. Springer Verlag, 1985, 477--498. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ingevaldsson, L. JSP: A Practical Method of Program Design. Studentlitteratur and Chartwell-Bratt, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Jackson, M.A. Principles of Program Design. Academic Press, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Jackson, M.A. System Development. Prentice-Hall, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Jackson, M.A. Software Requirements&Specifications. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Jackson, M.A. The origins of JSP and JSD: A personal re-collection. IEEE Annals of the History of Computing 22, 2 (Apr.-June 2000), 61--63, 66.Google ScholarGoogle Scholar
  23. Langefors, B. Algol-Genius: A programming language for general data processing. BIT 4, 3 (Sept. 1964), 162--176.Google ScholarGoogle ScholarCross RefCross Ref
  24. Sandén, B.I. Systems Programming with JSP. Lund, Sweden: Studentlitteratur and Brookfield, VT: Chartwell-Bratt, 1985. (First published in Swedish by Studentlitteratur, Lund, Sweden, 1983 as Systemprogrammering med JSP.)Google ScholarGoogle Scholar
  25. Sandén, B.I. Systems programming with JSP: Example: a VDU controller. CACM 28, 10 (Oct. 1985), 1059--1067. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Sandén, B.I. An entity-life modeling approach to the design of concurrent software. CACM 32, 3 (Mar. 1989), 330--343. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Sandén, B.I. Entity-life modeling and structured analysis in real-time software design -- a comparison. CACM 32, 12 (Dec. 1989), 1458--1466. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Sandén, B.I. Software Systems Construction. Prentice-Hall, 1994.Google ScholarGoogle Scholar
  29. Sandén, B.I. Modeling concurrent software. IEEE Software 14, 5 (Sept. 1997), 93--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Sandén, B.I. Entity-life modeling: Modeling a thread architecture on the problem environment. IEEE Software 20, 4 (July/Aug. 2003), 70--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Sandén, B.I. Coping with Java threads. IEEE Computer 37, 4 (Apr. 2004), 20--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Sandén, B.I. and J. Zalewski, Designing state-based systems with entity-life modeling. Journal of Systems and Software 79, 1 (Jan. 2006), 69--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Sandén, B.I. Multithreading. Colorado Technical University, Colorado Springs, 2009.Google ScholarGoogle Scholar
  34. P. Taylor, Designerly thinking: What software methodology can learn from design theory. In Proceedings of the International Conference on Software Methods and Tools, 2000, (SMT 2000), 107--116. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Inspired software design early jackson methods to thread architectures

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader