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.
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- Charles Ashbacher. 2004. “The unified modeling language reference manual, 2nd ed.,” by James Rumbaugh. J. Object Technol. 3, 10 (2004), 193--195.Google ScholarCross Ref
- Andrea Asperti and Nadia Busi. 2009. Mobile petri nets. Math. Struct. Comput. Sci. 19, 6 (2009), 1265--1278. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Simon Bliudze and Joseph Sifakis. 2007. The algebra of connectors--structuring interaction in BIP. IEEE Trans. Comput. 57, 10 (Feb. 2007), 1315--1330. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Daniel Brand and Pitro Zafiropulo. 1983. On communicating finite-state machines. J. ACM 30, 2 (Apr. 1983), 323--342. Google ScholarDigital Library
- 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 ScholarDigital Library
- Manfred Broy and Ketil Stølen. 2001. Specification and Development of Interactive Systems—Focus on Streams, Interfaces, and Refinement. Springer, Berlin. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- Robert W. Floyd. 1967. Assigning meanings to programs. Math. Aspects Comput. Sci. 19, 1 (1967), 19--32.Google ScholarCross Ref
- Gregor Gößler and Joseph Sifakis. 2005. Composition for component-based modeling. Sci. Comput. Program. 55, 1--3 (2005), 161--183. Google ScholarDigital Library
- Des Greer and Günther Ruhe. 2004. Software release planning: An evolutionary and iterative approach. Info. Softw. Technol. 46, 4 (2004), 243--253.Google ScholarCross Ref
- Vineet Gupta. 2005. Concurrent Kripke Structures. Cornell CS-TR-93-1369. Retrieved from http://boole.stanford.edu/pub/cks.pdf.Google Scholar
- Anthony Hall and Roderick Chapman. 2002. Correctness by construction: Developing a commercial secure system. IEEE Softw. 19, 1 (2002), 18--25. Google ScholarDigital Library
- Marjan Hericko and Ales Zivkovic. 2008. The size and effort estimates in iterative development. InfoSoftw. Technol. 50, 7--8 (2008), 772--781. Google ScholarDigital Library
- C. A. R. Hoare. 1969. An axiomatic basis for computer programming. Commun. ACM 12, 10 (1969), 576--580. Google ScholarDigital Library
- Tony Hoare. 1978. Communicating sequential processes. Commun. ACM 21, 8 (Aug. 1978), 666--677. Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Frederick P. Brooks Jr.1987. No silver bullet—Essence and accidents of software engineering. IEEE Comput. 20, 4 (1987), 10--19. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Craig Larman and Victor R. Basili. 2003. Iterative and incremental developments: A brief history. Computer 36, 6 (2003), 47--56. Google ScholarDigital Library
- Sany M. Leinwand. 1982. Logical correctness by construction. In Proceedings of the 19th Design Automation Conference (DAC’82). ACM/IEEE, 825--831. Google ScholarDigital Library
- Richard C. Linger. 1994. Cleanroom process model. IEEE Softw. 11, 2 (1994), 50--58. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Thomas J. McCabe. 1976. A complexity measure. IEEE Trans. Softw. Eng. 2, 4 (1976), 308--320. Google ScholarDigital Library
- Peter J. McCann and G.-C. Roman. 1998. Compositional programming abstractions for mobile computing. IEEE Trans. Softw. Eng. 24, 2 (1998), 97--110. Google ScholarDigital Library
- Steve McConnell. 2004. Code Complete—A Practical Handbook of Software Construction, 2nd ed. Microsoft Press. Retrieved from http://www.worldcat.org/oclc/249645389.Google Scholar
- 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 ScholarCross Ref
- Bertrand Meyer. 1997. Object-Oriented Software Construction, 2nd ed. Prentice Hall, NJ. Google ScholarDigital Library
- Harlan D. Mills, Michael G. Dyer, and Richard C. Linger. 1987. Cleanroom software engineering. IEEE Softw. 4, 5 (1987), 19--25. Google ScholarDigital Library
- Robin Milner. 1982. A Calculus of Communicating Systems. Springer-Verlag, New York, NY. Google Scholar
- Robin Milner, Joachim Parrow, and David Walker. 1992. A calculus of mobile processes. Info. Comput. 100, 1 (Sept. 1992), 1--40. Google ScholarDigital Library
- 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 ScholarDigital Library
- Tadao Murata. 1989. Petri nets: Properties, analysis, and applications. Proc. IEEE 77, 4 (Apr. 1989), 541--580.Google ScholarCross Ref
- 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 ScholarDigital Library
- John Michael Spivey. 1989. The Z Notation—A Reference Manual. Prentice Hall, NJ.Google Scholar
- Wayne P. Stevens, Glenford J. Myers, and Larry L. Constantine. 1974. Structured design. IBM Syst. J. 13, 2 (1974), 115--139. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Glynn Winskel and Mogens Nielsen. 1995. Models for Concurrency. Handbook of Logic in Computer Science, Semantic Modelling, Vol. 4. Oxford Science Publications, Oxford. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
Index Terms
Modeling and Analyzing Incremental Natures of Developing Software
Recommendations
Superlinearly convergent approximate Newton methods for LC1 optimization problems
In the literature, the proof of superlinear convergence of approximate Newton or SQP methods for solving nonlinear programming problems requires twice smoothness of the objective and constraint functions. Sometimes, the second-order derivatives of those ...
Estimate of the Appropriate Iteration Length in Agile Development by Conducting Simulation
AGILE '12: Proceedings of the 2012 Agile ConferenceAgile development refers to the group of software development methodologies based on an iterative and incremental process model. It divides the development period into short time frames called iterations and uses a body of knowledge obtained from past ...
A Modified Forward-Backward Splitting Method for Maximal Monotone Mappings
We consider the forward-backward splitting method for finding a zero of the sum of two maximal monotone mappings. This method is known to converge when the inverse of the forward mapping is strongly monotone. We propose a modification to this method, ...
Comments