Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-030-55089-9_5guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Software Abstractions and Human-Cyber-Physical Systems Architecture Modelling

Published: 21 April 2019 Publication History
  • Get Citation Alerts
  • Abstract

    It is over fifty years since the subject discipline of software engineering and more than forty years from when the area of formal methods have been established. During this period, the academic community has accomplished extensive research in foundations and methods of software engineering, as well as developing and teaching a large body of software engineering knowledge and techniques. At the same time, the IT industry has produced larger, more complex, and better (in many aspects) software systems. Yet, these large projects are largely developed using a trial and error approach, without systematic use of the developed software engineering methods and tools. The cost of these projects is high, the percentage of project delay and cancellation is significant, and the dependability of the systems is low in many requirements. The most serious problem of this ad hoc development approach is that the development process is not repeatable and the systems developed are not well evolvable. This problem is particularly crucial for the design and implementation of modern networked distributed software systems, known as Human-Cyber-Physical Systems (HCPS).
    In this tutorial paper, we reflect the development of software engineering through software abstractions and show that these abstractions are integral in the notion of software system architectures. We discuss the importance of architecture modelling and argue for a seamless combination of informal and formal activities in the modelling and design of the architecture. A point that we make is that it is important to engineer systems using formal methods in relation to the definition and management of development processes, and how a model of the software architecture, with rich semantics and refinement relations, plays an important role in this process. We consider development of two typical types of software components and use examples to discuss the traditional processes for their domain modelling and software requirements modelling. We then propose to combine these modelling approaches and this naturally leads to a unified modelling process for HCPS architecture modelling, design, and evolution. Based on the unified processes, we outline a framework in engineering formal methods for HCPS modelling, including the mapping of the system architecture to the technology architecture and organization of the development team with the expertise required, and decide the appropriate formal methods and tools to be used.

    References

    [1]
    Abrial JR The B-Book: Assigning Programs to Meanings 1996 Cambridge Cambridge University Press
    [2]
    Ambler, S.: The Agile Unified Process (AUP). http://www.ambysoft.com/unifiedprocess/agileUP.html
    [3]
    Back, R.J.: On the correctness of refinement steps in program, development. Ph.D. thesis, University of Helsinki, Finland (1978)
    [4]
    Bergstra JA and Tucker VJExpressiveness and the completeness of Hoare’s logicJ. Comput. Syst. Sci.1982253267-2846842620549.68021
    [5]
    Berry G and Gonthier GThe Esterel synchronous programming language: design, semantics, implementationSci. Comput. Program.199219287-1520772.68013
    [6]
    Bjørner, N.: The Z3 theorem prover. GitHub. https://github.com/Z3Prover/z3
    [7]
    Boehm BW A spiral model of software development and enhancement IEEE Comput. 1988 21 5 61-72
    [8]
    Booch G Object-Oriented Analysis and Design with Applications 1994 Boston Addison-Wesley
    [9]
    Bowen, J.P.: The Z notation: whence the cause and whither the course? In: Liu, Zhang [68], pp. 103–151. 10.1007/978-3-319-29628-9_3
    [10]
    Bowen JP and Hinchey MG Gonzalez TF, Díaz-Herrera J, and Tucker AB Formal methods Computing Handbook. Computer Science and Software Engineering 2014 3 Boca Raton Chapman and Hall/CRC Press 1-25
    [11]
    Brooks FP The Mythical Man-Month: Essays on Software Engineering 1975 Boston Addison-Wesley
    [12]
    Brooks FP No silver bullet: essence and accidents of software engineering IEEE Comput. 1987 20 4 10-19
    [13]
    Brooks FP The mythical man-month: after 20 years IEEE Softw. 1995 12 5 57-60
    [14]
    Brooks, F.P.: Learn the hard way - a history 1845–1980 of software engineering. In: Keynote at 40th International Conference on Software Engineering (ICSE), Gothenburg, Sweden (2018). https://www.icse2018.org/info/keynotes
    [15]
    Broy M and Stefanescu GThe algebra of stream processing functionsTheoret. Comput. Sci.20012581–299-12918261070973.68172
    [16]
    Broy M and Wirsing M Díaz J and Ramos I On the algebraic extensions of abstract data types Formalization of Programming Concepts 1981 Heidelberg Springer 244-251
    [17]
    Chandy KM and Misra J Parallel Program Design: A Foundation 1988 Reading Addison-Wesley
    [18]
    Chen L, Babar MA, and Nuseibeh B Characterizing architecturally significant requirements IEEE Softw. 2013 30 2 38-45
    [19]
    Chen X, Liu Z, and Mencl V van Leeuwen J, Italiano GF, van der Hoek W, Meinel C, Sack H, and Plášil F Separation of concerns and consistent integration in requirements modelling SOFSEM 2007: Theory and Practice of Computer Science 2007 Heidelberg Springer 819-831
    [20]
    Chen Z et al. Rausch A, Reussner R, Mirandola R, Plášil F, et al. Modelling with relational calculus of object and component systems - rCOS The Common Component Modeling Example 2008 Heidelberg Springer 116-145
    [21]
    Chen Z, Liu Z, Ravn AP, Stolz V, and Zhan NRefinement and verification in component-based model driven designSci. Comput. Program.2009744168-19626494721178.68158
    [22]
    Clarke EM and Emerson EA Kozen D Design and synthesis of synchronization skeletons using branching time temporal logic Logics of Programs 1982 Heidelberg Springer 52-71
    [23]
    Codd, E.F., Lowry, E.S., McDonough, E., Scalzi, C.A.: Multiprogramming STRECH: feasibility consideration. Commun. ACM 2(11) (1959). 10.1145/368481.368502
    [24]
    Collette P and Jones CB Plotkin GD, Stirling CP, and Tofte M Enhancing the tractability of rely/guarantee specifications in the development of interfering operations Proof, Language, and Interaction: Essays in Honour of Robin Milner 2000 Cambridge The MIT Press 277-308
    [25]
    Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of Fourth ACM Symposium on Principles of Programming Languages, pp. 238–252. ACM Press, Los Angeles (1977)
    [26]
    Pigott, D.: Online historical encyclopaedia of programming languages (2020). http://hopl.info
    [27]
    de Alfaro, L., Henzinger, T.A.: Interface automata. ACM SIGSOFT Softw. Eng. Notes 26(5) (2001). 10.1145/503271.503226
    [28]
    Dijkstra EGuarded commands, non-determinacy and formal derivation of programsCommun. ACM1975188453-4570308.68017
    [29]
    Dijkstra EW A Discipline of Programming 1976 Upper saddle River Prentice Hall
    [30]
    Dijkstra EW The humble programmer Commun. ACM 1972 15 10 859-866
    [31]
    Floyd, R.W.: Assigning meanings to programs. In: Schwartz, J.T. (ed.) Mathematical Aspects of Computer Science. Proceedings of Symposium on Applied Mathematics, vol. 19, pp. 19–32. American Mathematical Society (1967). 10.1007/978-94-011-1793-7_4. Republished in Program Verification (1993)
    [32]
    Forsberg, K., Mooz, H.: The relationship of system engineering to the project cycle. In: Proceedings of the First Annual Symposium of National Council on System Engineering, pp. 57–65, October 1991
    [33]
    Giloi WK Konrad Zuse’s Plankalkül: the first high-level, “non von Neumann” programming language IEEE Ann. Hist. Comput. 1997 19 17-24
    [34]
    Goguen, J.A.: Higher-order functions considered unnecessary for higher-order programming. In: Research Topics in Functional Programming. Programming Research Group, Oxford University (1987)
    [35]
    Grattarola, F.: Margaret Hamilton - coding to the moon. In: A Computer of One’s Own, December 2018. https://medium.com/a-computer-of-ones-own/margaret-hamilton-coding-to-the-moon-6ba70b7e6b43
    [36]
    Guttag JV and Horning JJ Larch: Languages and Tools for Formal Specification 1993 New York Springer
    [37]
    Halbwachs N, Caspi P, Raymond P, and Pilanud D The synchronous data flow programming language LUSTRE Proc. IEEE 1991 79 9 1305-1320
    [38]
    Hamilton, M.H.: The language as a software engineer. In: keynote at 40th International Conference on Software Engineering (ICSE), Gothenburg, Sweden (2018). https://www.icse2018.org/info/keynotes
    [39]
    Harel DStatecharts: a visual formalism for complex systemsSci. Comput. Program.198783231-2748960040637.68010
    [40]
    He J, Li X, and Liu Z Hung DV and Wirsing M Component-based software engineering Theoretical Aspects of Computing 2005 Hanoi Springer 70-95
    [41]
    He J, Liu Z, and Li XrCOS: a refinement calculus of object systemsTheoret. Comput. Sci.20063651–2109-14222676431118.68049
    [42]
    Hoare CARAn axiomatic basis for computer programmingCommun. ACM19691210576-5800179.23105
    [43]
    Hoare CARCommunicating sequential processesCommun. ACM1978218666-6770383.68028
    [44]
    Hoare CAR and He J Unifying Theories of Programming 1998 Upper Saddle River Prentice Hall
    [45]
    IEEE: SWEBOK V3.0: software engineering body of knowledge. IEEE Computer Society (2014). http://www.swebok.org
    [46]
    Jackson MA Principles of Program Design 1975 Cambridge Academic
    [47]
    Jackson M Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices 1995 Boston ACM Press/Addison-Wesley Publishing
    [48]
    Jackson M Problem Frames: Analysing and Structuring Software Development Problems 2001 Boston Addison-Wesley
    [49]
    Jiang Z, Pajic M, Moarref S, Alur R, and Mangharam R Flanagan C and König B Modeling and verification of a dual chamber implantable pacemaker Tools and Algorithms for the Construction and Analysis of Systems 2012 Heidelberg Springer 188-203
    [50]
    Jones CB Systematic Software Development Using VDM 1990 Upper Saddle River Prentice Hall
    [51]
    Khaitan SK and McCalley JD Design techniques and applications of cyberphysical systems: a survey IEEE Syst. J. 2014 9 2 350-360
    [52]
    Kroll P and Kruchten P The Rational Unified Process Made Easy: A Practitioner’s Guide to the RUP 2003 Boston Addison-Wesley
    [53]
    Lamport L The temporal logic of actions ACM Trans. Program. Lang. Syst. 1994 16 3 872-923
    [54]
    Larman C Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process 2001 2 Upper Saddle River Prentice Hall
    [55]
    Laxsen KG, Pettersson P, and Yi W Alur R, Henzinger TA, and Sontag ED Diagnostic model-checking for real-time systems Hybrid Systems III 1996 Heidelberg Springer 575-586
    [56]
    Leavens GT and Baker AL Wing JM, Woodcock J, and Davies J Enhancing the pre- and postcondition technique for more expressive specifications FM’99 — Formal Methods 1999 Heidelberg Springer 1087-1106
    [57]
    Lee EA The past, present and future of cyber-physical systems: a focus on models Sensors 2015 1 3 4837-4869
    [58]
    Leondes CT Intelligent Systems: Technology and Applications 2002 Boca Raton CRC Press
    [59]
    Lindsey, C.H., Boom, H.J.: A modules and separate compilation facility for ALGOL 68. ALGOL Bull. 43 (1978). 10.5555/1061719.1061724
    [60]
    Liskov B and Zilles S Programming with abstract data types SIGPLAN Not. 1974 9 50-59
    [61]
    Liu, Z.: Software development with UML. Technical report 259, UNU-IIST: International Institute for Software Technology, United Nations University, Macau (2002)
    [62]
    Liu, Z.: Fault-tolerant programming by transformations. Ph.D. thesis, University of Warwick, UK (1991)
    [63]
    Liu, Z., Chen, X.: Model-driven design of object and component systems. In: Liu, Zhang [68], pp. 152–255. 10.1007/978-3-319-29628-9_4
    [64]
    Liu Z, Jifeng H, and Li X de Boer FS, Bonsangue MM, Graf S, and de Roever W-P rCOS: refinement of component and object systems Formal Methods for Components and Objects 2005 Heidelberg Springer 183-221
    [65]
    Liu Z, Jifeng H, Li X, and Chen Y Dong JS and Woodcock J A relational model for formal object-oriented requirement analysis in UML Formal Methods and Software Engineering 2003 Heidelberg Springer 641-664
    [66]
    Liu Z and Joseph MTransformation of programs for fault-toleranceFormal Aspects Comput.199245442-4690754.68084
    [67]
    Liu Z and Joseph M Specification and verification of fault-tolerance, timing, and scheduling ACM Trans. Program. Lang. Syst. 1999 21 1 46-89
    [68]
    Liu Z and Zhang Z Engineering Trustworthy Software Systems 2016 Cham Springer
    [69]
    Lynch, N.A., Tuttle, M.R.: Hierarchical correctness proofs for distributed algorithms. In: Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing (PODC 1987), pp. 137–151, August 1987. 10.1145/41840.41852
    [70]
    Manna Z and Waldinger RA deductive approach to program synthesisACM Trans. Program. Lang. Syst.1980290-1210468.68009
    [71]
    Manyika, J.: Big data: the next frontier for innovation, competition, and productivity (2011). http://www.mckinsey.com/insights/business_technology/big_data_the_next_frontier_for_innovation
    [72]
    Mauchly JW Randell B Preparation of problems for EDVAC-type machines (1947) The Origins of Digital Computers 1982 Heidelberg Springer
    [73]
    McCarthy, J.: Towards a mathematical science of computation. In: IFIP Congress, pp. 21–28. IFIP (1962)
    [74]
    Mills H Ruskin R Top-down programming in large systems Debugging Techniques in Large Systems 1971 Eaglewood Cliffs Prentice Hall
    [75]
    Milner R A Calculus of Communicating Systems 1980 Heidelberg Springer
    [76]
    Murray D and Fraser K Spinellis D and Gousios G Xen and the beauty of virtualization Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design 2009 Newton O’Reilly Media 172
    [77]
    Naur, P., Randell, B. (eds.): Software Engineering: Report of a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 October 1968, Brussels, Scientific Affairs Division, NATO. NATO, January 1969
    [78]
    NSF: Workshop on cyber-physical systems, Austin, Texas, 16–17 October 2006. https://cps-vo.org/node/179
    [79]
    Nygaard K and Dahl OJ The development of the SIMULA languages ACM SIGPLAN Not. 1978 13 8 439-480
    [80]
    Parnas DL On the criteria to be used in decomposing systems into modules Commun. ACM 1972 15 12 1053-1058
    [81]
    Parnas DL and Madey J Functional decomposition for computer systems Sci. Comput. Program. 1995 25 1 41-61
    [82]
    Paul C et al. Documenting Software Architectures: Views and Beyond 2010 2 Boston Addison-Wesley
    [83]
    Perry DE and Wolf AL Foundations for the study of software architecture ACM SIGSOFT Softw. Eng. Notes 1992 17 4 40-52
    [84]
    Petri CA and Reisig W Petri net Scholarpedia 2008 3 4 6477
    [85]
    Plotkin GDThe origins of structural operational semanticsJ. Logic Algebraic Program.200460–613-1520672271072.68063
    [86]
    Pnueli, A.: The temporal logic of programs. In: Proceedings of the 18th Annual Symposium on Foundations of Computer Science SFCS 1977, pp. 46–57. IEEE, September 1977. 10.1109/SFCS.1977.32
    [87]
    Queille JP and Sifakis J Dezani-Ciancaglini M and Montanari U Specification and verification of concurrent systems in CESAR International Symposium on Programming 1982 Heidelberg Springer 337-351
    [88]
    Randell B System structure for software fault tolerance IEEE Trans. Softw. Eng. 1975 22 220-232
    [89]
    Randell, B.: Position statement: how far have we come? In: Proceedings of the 32nd Annual IEEE International Computer Software and Applications Conference, COMPSAC 2008, 28 July–1 August 2008, Turku, Finland, p. 8. IEEE, IEEE Computer Society (2008). 10.1109/COMPSAC.2008.233
    [90]
    Randell, B.: Fifty years of software engineering or the view from Garmisch. In: Keynote at 40th International Conference on Software Engineering (ICSE), Gothenburg, Sweden (2018). https://www.icse2018.org/info/keynotes
    [91]
    Randell, B., Buxton, J.N. (eds.): Software engineering: report of a conference sponsored by the NATO science committee, Rome, Italy, 27–31 October 1969, Brussels, Scientific Affairs Division, NATO. NATO (1969)
    [92]
    Rausch A, Reussner R, Mirandola R, and Plás̆il F The Common Component Modeling Example 2008 Heidelberg Springer
    [93]
    Roscoe AW Theory and Practice of Concurrency 1997 Upper Saddle River Prentice Hall
    [94]
    Royce, W.W.: Managing the development of large software systems. In: Proceedings of IEEE WESCON, pp. 1–9. IEEE (1970). 10.5555/41765.41801. Reprinted in ICSE (1987)
    [95]
    Ryckman GF 17. The IBM 701 computer at the general motors research laboratories Ann. History Comput. 1983 5 12 210-212
    [96]
    Sangiovanni-Vincentelli A, Damm W, and Passerone RTaming Dr. Frankenstein: contract-based design for cyber-physical systemsEur. J. Control2012183217-23829846991264.93152
    [97]
    Schlingloff, B.H.: Cyber-physical systems engineering. In: Liu, Zhang [68], pp. 256–289. 10.1007/978-3-319-29628-9_5
    [98]
    Scott, D., Strachey, C.: Toward a mathematical semantics for computer languages. In: Technical Monograph PRG-6, Programming Research Group, Oxford University (1971)
    [99]
    Sommerville I Software Engineering 2016 10 Upper Saddle River Pearson
    [100]
    Spivey JM The Z Notation: A Reference Manual 1992 2 Upper Saddle River Prentice Hall
    [101]
    Stoy JE Denotational Semantics: The Scott-Strachey Approach to Programming Language Semantics 1977 Cambridge The MIT Press
    [102]
    Turing, A.M.: Checking a large routine. In: Report of a Conference on High Speed Automatic Calculating Machines, pp. 67–69. Cambridge University Mathematical Laboratory (1949). 10.5555/94938.94952. Reprinted in The Early British Computer Conferences (1989)
    [103]
    von Neumann, J.: Introduction to “the first draft report on the edvac”. Archive.org. (1945). https://web.archive.org/web/20130314123032/http://qss.stanford.edu/~godfrey/vonNeumann/vnedvac.pdf
    [104]
    Wang J, Zhan N, Feng X, and Liu ZOverview of formal methodsRuan Jian Xue Bao/J. Softw.201930133-61393193907109066
    [105]
    West, D.: Hermeneutic computer science. Commun. ACM 40(4) (1997). 10.1145/248448.248467
    [106]
    Wheeler, D.J.: The use of sub-routines in programmes. In: Proceedings of the 1952 ACM National Meeting, p. 235. ACM, Pittsburgh, USA (1952). 10.1145/609784.609816
    [107]
    Wilkes MV, Wheeler DJ, and Gill S Preparation of Programs for an Electronic Digital Computer 1951 Boston Addison-Wesley
    [108]
    Wirth NProgram development by stepwise refinementCommun. ACM1971144221-2270214.43005
    [109]
    Woodcock J, Larsen PG, Bicarregui J, and Fitzgerald J Formal methods: practive and experience ACM Comput. Surv. 2009 41 4 19:1-19:36

    Cited By

    View all

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    Engineering Trustworthy Software Systems: 5th International School, SETSS 2019, Chongqing, China, April 21–27, 2019, Tutorial Lectures
    Apr 2019
    235 pages
    ISBN:978-3-030-55088-2
    DOI:10.1007/978-3-030-55089-9

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 21 April 2019

    Author Tags

    1. Formal methods
    2. Human-Computer-Physical System
    3. Abstraction
    4. Architecture modelling
    5. Conceptual integrity
    6. System evolution

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Towards a model of human-cyber–physical automata and a synthesis framework for control policiesJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2023.102989144:COnline publication date: 1-Nov-2023
    • (2023)Formal Aspects of Component SoftwareFormal Aspects of Component Software10.1007/978-3-031-52183-6_9(168-193)Online publication date: 26-Oct-2023
    • (2022)Human-Cyber-Physical Automata and Their SynthesisTheoretical Aspects of Computing – ICTAC 202210.1007/978-3-031-17715-6_4(36-41)Online publication date: 27-Sep-2022
    • (2021)Formal Methods Communities of Practice: A Survey of Personal ExperienceSoftware Engineering and Formal Methods. SEFM 2021 Collocated Workshops10.1007/978-3-031-12429-7_21(287-301)Online publication date: 6-Dec-2021

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media