skip to main content
research-article

Modeling and Analyzing Incremental Natures of Developing Software

Authors Info & Claims
Published:10 July 2019Publication History
Skip Abstract Section

Abstract

The basic premise of iterative and evolutionary project management is that a project is divided into early, frequent, and short duration delivery steps. Each step attempts to deliver some real value to stakeholders. The increment size and iteration length usually depend on profitability, finance, deadline, and so on, rather than the functionality of a developing system. It is difficult to guarantee the correctness in every iteration step. In this article, we propose a method of ensuring the correctness of iterative design in terms of deadlock-freedom of the behavior of software. The method first obtains the correct (deadlock-free) atomic subsystems of a system using a decomposition approach. In the iterative development process, the method then requires that one atomic subsystem or the composition of multiple atomic subsystems should be regarded as one increment. Every increment is naturally correct and can be completely independently developed, independently deployed, and independently maintained. The currently released system in each iteration step is naturally guaranteed to be correct. It is not necessary for developers to consider the composition of the increment and the previously released system may cause flaws and errors. We also discuss the approach for ensuring correctness when design modifications are made in an iteration step. Finally, we explore the automatic decomposition of a system into multiple atomic subsystems and present the corresponding algorithm. A case demonstrates these results.

References

  1. Karine Altisen, Gregor Gossler, and Joseph Sifakis. 2002. Scheduler modeling based on the controller synthesis paradigm. Real-time Syst. 23, 1 (2002), 55--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Paolo Arcaini, Silvia Bonfanti, Angelo Gargantini, Atif Mashkoor, and Elvinia Riccobene. 2018. Integrating formal methods into medical software development: The ASM approach. Sci. Comput. Program. 158 (2018), 148--167.Google ScholarGoogle ScholarCross RefCross Ref
  3. Charles Ashbacher. 2004. “The unified modeling language reference manual, 2nd ed.,” by James Rumbaugh. J. Object Technol. 3, 10 (2004), 193--195.Google ScholarGoogle ScholarCross RefCross Ref
  4. Andrea Asperti and Nadia Busi. 2009. Mobile petri nets. Math. Struct. Comput. Sci. 19, 6 (2009), 1265--1278. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Paolo Baldan, Nadia Busi, Andrea Corradini, and G. Michele Pinna. 2004. Domain and event structure semantics for Petri nets with read and inhibitor arcs. Theor. Comput. Sci. 323, 1--3 (2004), 129--189. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Victor R. Basili and Albert J. Turner. 1975. Iterative enhancement: A practical technique for software development. IEEE Trans. Softw. Eng. 1, 4 (1975), 390--396. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Simon Bliudze and Joseph Sifakis. 2007. The algebra of connectors--structuring interaction in BIP. IEEE Trans. Comput. 57, 10 (Feb. 2007), 1315--1330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Tommaso Bolognesi and Ed Brinksma. 1987. Introduction to the ISO specification language LOTOS. Comput. Netw. ISDN Syst.—Special Issue: Protocol Spec. Test. 14, 1 (Mar. 1987), 25--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Egon Börger, Antonio Cisternino, and Vincenzo Gervasi. 2012. Ambient abstract state machines with applications. J. Comput. Syst. Sci. 78, 3 (2012), 939--959. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Daniel Brand and Pitro Zafiropulo. 1983. On communicating finite-state machines. J. ACM 30, 2 (Apr. 1983), 323--342. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David Broman, Edward A. Lee, Stavros Tripakis, and Martin Törngren. 2012. Viewpoints, formalisms, languages, and tools for cyber-physical systems. In Proceedings of the 6th International Workshop on Multi-Paradigm Modeling (MPM@MoDELS’12). ACM, 49--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Manfred Broy and Ketil Stølen. 2001. Specification and Development of Interactive Systems—Focus on Streams, Interfaces, and Refinement. Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Luca Cardelli and Andrew D. Gordon. 1998. Mobile ambients. In Proceedings of the 1st International Conference on Foundations of Software Science and Computation Structure (FoSSaCS’98). Springer, 140--155. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Morakot Choetkiertikul, Hoa Khanh Dam, Truyen Tran, Aditya Ghose, and John Grundy. 2018. Predicting delivery capability in iterative software development. IEEE Trans. Softw. Eng. 44, 6 (2018), 551--573.Google ScholarGoogle ScholarCross RefCross Ref
  15. Flemming M. Damm, Bo Stig Hansen, and Hans Bruun. 1991. On type checking in VDM and related consistency issues. In Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development (VDM’91). Springer, 45--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Luca de Alfaro and Thomas A. Henzinger. 2001. Interface automata. In Proceedings of the Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE’01). ACM, New York, NY, 109--120.Google ScholarGoogle Scholar
  17. Robert W. Floyd. 1967. Assigning meanings to programs. Math. Aspects Comput. Sci. 19, 1 (1967), 19--32.Google ScholarGoogle ScholarCross RefCross Ref
  18. Gregor Gößler and Joseph Sifakis. 2005. Composition for component-based modeling. Sci. Comput. Program. 55, 1--3 (2005), 161--183. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Des Greer and Günther Ruhe. 2004. Software release planning: An evolutionary and iterative approach. Info. Softw. Technol. 46, 4 (2004), 243--253.Google ScholarGoogle ScholarCross RefCross Ref
  20. Vineet Gupta. 2005. Concurrent Kripke Structures. Cornell CS-TR-93-1369. Retrieved from http://boole.stanford.edu/pub/cks.pdf.Google ScholarGoogle Scholar
  21. Anthony Hall and Roderick Chapman. 2002. Correctness by construction: Developing a commercial secure system. IEEE Softw. 19, 1 (2002), 18--25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Marjan Hericko and Ales Zivkovic. 2008. The size and effort estimates in iterative development. InfoSoftw. Technol. 50, 7--8 (2008), 772--781. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. A. R. Hoare. 1969. An axiomatic basis for computer programming. Commun. ACM 12, 10 (1969), 576--580. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Tony Hoare. 1978. Communicating sequential processes. Commun. ACM 21, 8 (Aug. 1978), 666--677. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Jianmin Jiang, Shi Zhang, Ping Gong, and Zhong Hong. 2011. Message dependency-based adaptation of services. In Proceedings of the IEEE Asia-Pacific Services Computing Conference. IEEE, 442--449.Google ScholarGoogle ScholarCross RefCross Ref
  26. Jianmin Jiang, Shi Zhang, Ping Gong, and Zhong Hong. 2013. Configuring business process models. ACM SIGSOFT Softw. Eng. Notes 38, 4 (July 2013), 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Jianmin Jiang, Shi Zhang, Ping Gong, Zhong Hong, and HouGuang Yue. 2012. Modeling and analyzing mixed communications in service-oriented trustworthy software. Sci. China Info. Sci. 55, 12 (Dec. 2012), 2738--2756.Google ScholarGoogle Scholar
  28. Jianmin Jiang, Huibiao Zhu, Qin Li, Shi Zhang, Ping Gong, and Zhong Hong. 2014. Configuration of services based on virtualization. In Proceedings of the 8th Theoretical Aspects of Software Engineering Conference. IEEE, 177--184. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Jian-Min Jiang, Huibiao Zhu, Qin Li, Yongxin Zhao, Lin Zhao, Shi Zhang, Ping Gong, and Zhong Hong. 2015. Analyzing event-based scheduling in concurrent reactive systems. ACM Trans. Embed. Comput. Syst. 14, 4 (2015), 86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Jian-Min Jiang, Huibiao Zhu, Qin Li, Yongxin Zhao, Lin Zhao, Shi Zhang, Ping Gong, Zhong Hong, and Donghuo Chen. 2017. Event-based mobility modeling and analysis. ACM Trans. Cyber-Phys. Syst. 1, 2 (Feb. 2017). Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Frederick P. Brooks Jr.1987. No silver bullet—Essence and accidents of software engineering. IEEE Comput. 20, 4 (1987), 10--19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Frank Alexander Kraemer and Peter Herrmann. 2009. Automated encapsulation of UML activities for incremental development and verification. In Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems (MODELS’09). Springer, 571--585.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Sudipta Kundu, Sorin Lerner, and Rajesh Gupta. 2007. Automated refinement checking of concurrent systems. In Proceedings of the International Conference on Computer-Aided Design (ICCAD’07). IEEE Computer Society, 318--325. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Thomas Lambolais, Anne-Lise Courbis, Hong-Viet Luong, and Christian Percebois. 2016. IDF: A framework for the incremental development and conformance verification of UML active primitive components. J. Syst. Softw. 113 (2016), 275--295. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ivan Lanese, Luca Bedogni, and Marco Di Felice. 2013. Internet of things: A process calculus approach. In Proceedings of the 28th Annual ACM Symposium on Applied Computing (SAC’13). ACM, 1339--1346. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Rom Langerak. 1992. Bundle event structures: A non-interleaving semantics for LOTOS. In Proceedings of the IFIP TC6/WG6.1 5th International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols (FORTE’92). North-Holland, 331--346. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Craig Larman and Victor R. Basili. 2003. Iterative and incremental developments: A brief history. Computer 36, 6 (2003), 47--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Sany M. Leinwand. 1982. Logical correctness by construction. In Proceedings of the 19th Design Automation Conference (DAC’82). ACM/IEEE, 825--831. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Richard C. Linger. 1994. Cleanroom process model. IEEE Softw. 11, 2 (1994), 50--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. David C. Luckham, James Vera, Doug Bryan, Larry Augustin, Frank Belz, and Larry M. Augustin. 1993. Partial orderings of event sets and their application to prototyping concurrent, timed systems. J. Syst. Softw. 21, 3 (June 1993), 253--265. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Nancy A. Lynch and Mark R. Tuttle. 1987. Hierarchical correctness proofs for distributed algorithms. In Proceedings of the 6th Annual ACM Symposium on Principles of Distributed Computing. ACM, 137--151. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Thomas J. McCabe. 1976. A complexity measure. IEEE Trans. Softw. Eng. 2, 4 (1976), 308--320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Peter J. McCann and G.-C. Roman. 1998. Compositional programming abstractions for mobile computing. IEEE Trans. Softw. Eng. 24, 2 (1998), 97--110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Steve McConnell. 2004. Code Complete—A Practical Handbook of Software Construction, 2nd ed. Microsoft Press. Retrieved from http://www.worldcat.org/oclc/249645389.Google ScholarGoogle Scholar
  45. Claudio Menghi, Paola Spoletini, Marsha Chechik, and Carlo Ghezzi. 2018. Supporting verification-driven incremental distributed design of components. In Proceedings of the 21st International Conference on Fundamental Approaches to Software Engineering (FASE’18) Springer, 169--188.Google ScholarGoogle ScholarCross RefCross Ref
  46. Bertrand Meyer. 1997. Object-Oriented Software Construction, 2nd ed. Prentice Hall, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Harlan D. Mills, Michael G. Dyer, and Richard C. Linger. 1987. Cleanroom software engineering. IEEE Softw. 4, 5 (1987), 19--25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Robin Milner. 1982. A Calculus of Communicating Systems. Springer-Verlag, New York, NY. Google ScholarGoogle Scholar
  49. Robin Milner, Joachim Parrow, and David Walker. 1992. A calculus of mobile processes. Info. Comput. 100, 1 (Sept. 1992), 1--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Stefan Mitsch, Jan-David Quesel, and André Platzer. 2014. Refactoring, refinement, and reasoning—A logical characterization for hybrid systems. In Proceedings of the 19th International Symposium on Formal Methods (FM’14). Springer, Singapore, 481--496. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Tadao Murata. 1989. Petri nets: Properties, analysis, and applications. Proc. IEEE 77, 4 (Apr. 1989), 541--580.Google ScholarGoogle ScholarCross RefCross Ref
  52. Michael J. Pont and Mark P. Banner. 2004. Designing embedded systems using patterns: A case study. J. Syst. Softw. 71, 3 (2004), 201--213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. John Michael Spivey. 1989. The Z Notation—A Reference Manual. Prentice Hall, NJ.Google ScholarGoogle Scholar
  54. Wayne P. Stevens, Glenford J. Myers, and Larry L. Constantine. 1974. Structured design. IBM Syst. J. 13, 2 (1974), 115--139. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Rob J. van Glabbeek and Gordon D. Plotkin. 1995. Configuration structures. In Proceedings of the 10th Annual IEEE Symposium on Logics in Computer Science (LICS’95). IEEE, 199--209. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Rob J. van Glabbeek and Gordon D. Plotkin. 2009. Configuration structures, event structures and Petri nets. Theoret. Comput. Sci. 410, 41 (Sept. 2009), 4111--4159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Glynn Winskel and Mogens Nielsen. 1995. Models for Concurrency. Handbook of Logic in Computer Science, Semantic Modelling, Vol. 4. Oxford Science Publications, Oxford. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Dianxiang Xu, Jianwen Yin, Yi Deng, and Junhua Ding. 2003. A formal architectural model for logical agent mobility. IEEE Trans. Softw. Eng. 29, 1 (2003), 31--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Didar Zowghi and Vincenzo Gervasi. 2003. On the interplay between consistency, completeness, and correctness in requirements evolution. Info. Softw. Technol. 45, 14 (2003), 993--1009.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Modeling and Analyzing Incremental Natures of Developing Software

      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

      • Published in

        cover image ACM Transactions on Management Information Systems
        ACM Transactions on Management Information Systems  Volume 10, Issue 2
        Special Section on Workshop on Information Technology and Systems (WITS) 2017
        June 2019
        118 pages
        ISSN:2158-656X
        EISSN:2158-6578
        DOI:10.1145/3334777
        Issue’s Table of Contents

        Copyright © 2019 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 10 July 2019
        • Accepted: 1 May 2019
        • Revised: 1 February 2019
        • Received: 1 June 2017
        Published in tmis Volume 10, Issue 2

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format