This Article 
 Bibliographic References 
 Add to: 
Documentation Driven Development for Complex Real-Time Systems
December 2004 (vol. 30 no. 12)
pp. 936-952
This paper presents a novel approach for development of complex real-time systems, called the documentation-driven development (DDD) approach. This approach can enhance integration of computer aided software development activities, which encompass the entire life cycle. DDD will provide a mechanism to monitor and quickly respond to changes in requirements and provide a friendly communication and collaboration environment to enable different stakeholders to be easily involved in development processes and, therefore, significantly improve the agility of software development for complex real-time systems. DDD will also support automated software generation based on a computational model and some relevant techniques. DDD includes two main parts: a documentation management system (DMS) and a process measurement system (PMS). DMS will create, organize, monitor, analyze, and transform all documentation associated with the software development process. PMS will monitor the frequent changes in requirements and assess the effort and success possibility of development. A case study was conducted by a tool set that realized part of the proposed approach.

[1] P. Abrahamsson, O. Salo, J. Ronkainen, and J. Warsta, “Agile Software Development Methods-Review and Analysis,” technical report, ESPOO, 2002.
[2] A. Albrecht and J. Gaffney, “Software Function Source Lines of Code and Development Effort prediction,” IEEE Trans. Software Eng., vol. 9, 1983.
[3] R. Alur, D. Arney, E. Gunter, I. Lee, W. Nam, and J. Zhou, “Formal Specifications and Analysis of the Computer Assisted Resuscitation Algorithm (CARA) Infusion Pump Control System,” Proc. Conf. Integrated Design and Process Technology (IDPT), 2002.
[4] K. Beck, Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000.
[5] K. Beck et al., “Manifesto for Agile Software Development,”, Feb. 2001.
[6] N. Bjorner, Z. Manna, H. Sipma, and T. Uribe, “Deductive Verification of Real-Time Systems Using STeP,” Theoretical Computer Science, vol. 253, no. 1, pp. 27-60, 2001.
[7] B. Boehm, Software Engineering Economics. Prentice Hall, 1981.
[8] B. Boehm, “Software Risk Management: Overview and Recent Developments,” Proc. 17th Int'l Forum on COCOMO and Software Cost Modeling, , Oct. 2002.
[9] M. Broy, “Toward a Mathematical Foundation of Software Engineering Methods,” IEEE Trans. Software Eng., vol. 27, no. 1, pp. 42-53, Jan. 2001.
[10] M. Broy and O. Slotosch, “From Requirements to Validated Embedded Systems,” Proc. First Int'l Workshop Embedded Software (EMSOFT 2001), pp. 51-65, Oct. 2001.
[11] R. Burton and B. Obel, Strategic Organizational Diagnosis and Design. Developing Theory for Application. Kluwer Academic, 1998.
[12] S. Campos, E. Clarke, W. Marrero, and M. Minea, “Verus: A Tool for Quantitative Analysis of Finite-State Real-Time Systems,” Proc. Workshop Languages, Compilers, and Tools for Real-Time Systems, pp. 70-78, June 1995.
[13] D. Clarke and I. Lee, “Automatic Test Generation for the Analysis of a Real-Time System: Case Study,” Proc. Third IEEE Real-Time Technology and Applications Symp. (RTAS '97), pp. 112-124, June 1997.
[14] A. Cockburn, Agile Software Development. Addison-Wesley, 2001.
[15] J. Corbett, M. Dwyer, J. Hatcliff, and Robby, “Expressing Checkable Properties of Dynamic Systems: The Bandera Specification Language,” Int'l J. Software Tools for Technology Transfer, 2002.
[16] T. DeMarco and B. Boehm, “The Agile Methods Fray,” Computer, vol. 36, no. 6, pp. 90-92, June 2003.
[17] X. Deng, M. Dwyer, J. Hatcliff, and M. Mizuno, “Invariant-Based Specification, Synthesis and Verification of Synchronization in Concurrent Programs,” Proc. 24th Int'l Conf. Software Eng., pp. 442-452, May 2002.
[18] P. Devanbu, P. Selfridge, R. Branchman, and B. Ballard, “LaSSIE: A Knowledge-Based Software Information System,” Proc. IEEE 12th Int'l Conf. Software Eng., pp. 249-261, 1990.
[19] J.P. Dupont, “Complexity Measure for the Prototype System Description Language (PSDL),” master's thesis, Naval Postgraduate School, Mar. 2002.
[20] J. French, J. Knight, and A. Powell, “Applying Hypertext Structures to Software Documentation,” , 1997.
[21] D. Garlan, S. Khersonsky, and J. Kim, “Model Checking Publish-Subscribe Systems,” Proc. 10th Int'l SPIN Workshop Model Checking of Software (SPIN 03), pp. 166-180, May 2003.
[22] L. Goldin and D. Berry, “AbstFinder: A Prototype Abstraction Finder for Natural Language Text for Use in Requirement Elicitation,” Automated Software Eng., no. 4, pp. 375-412, 1997.
[23] E. Hall, Managing Risk Methods for Software Systems Development. Addison Wesley, 1997.
[24] J.A. Highsmith, Adaptive Software Development: A Collaborative Approach to Managing Complex Systems. Dorset House, 2000.
[25] D. Hoffman and P. Strooper, “API Documentation with Executable Examples,” The J. Systems and Software, vol. 66, pp. 143-156, 2003.
[26] H. Hong, I. Lee, O. Sokolsky, and H. Ural, “A Temporal Logic Based Theory of Test Coverage and Generation,” Proc. Int'l Conf. Tools and Algorithms for Construction and Analysis of Systems (TACAS2002), pp. 327-341, Apr. 2002.
[27] /, Oct. 2004.
[28] N. Johnson and S. Kotz, and N. Balakrishnan, Continuous Univariate Distributions, vol. 1. Wiley & Sons, 1994.
[29] D. Karolak, Software Engineering Management. IEEE CS Press, 1996.
[30] M. Kim, I. Lee, U. Sammapun, J. Shin, and O. Sokolsky, “Monitoring, Checking, and Steering of Real-Time Systems,” Proc. Second Int'l Workshop Runtime Verification, July 2002, available at
[31] X. Liang, J. Puett, and Luqi, “Perspective-Based Architectural Approach for Dependable Systems,” Proc. ICSE 2003 Workshop Software Architectures for Depenable Systems, pp. 1-6, May 2003.
[32] Luqi, “Real-Time Constraints in a Rapid Prototyping Language,” Computer Languages, vol. 18, pp. 77-103, 1993.
[33] Luqi, V. Berzins, and R. Yeh, “A Prototyping Language for Real Time Software,” IEEE Trans. Software Eng., vol. 14, no. 10, pp. 1409-1423, Oct. 1988.
[34] Luqi and Z. Guan, “A Software Engineering Tools for Requirement Document Based Prototyping,” Proc. Seventh World Multiconf. Systemics, Cybernetics and Infromatics, vol. VI, pp. 237-243, July 2003.
[35] Luqi, Y. Qiao, and L. Zhang, “Computational Model for High-confidence Embedded System Development,” Proc. Monterey Workshop— Radical Innovations of Software and Systems Eng. in the Future, pp. 265-303, Oct. 2002.
[36] Luqi, X. Liang, M. Brown, and C. Williamson, “Formal Approach for Software Safety Analysis and Risk Assessment via an Instantiated Activity Model,” Proc. 21st Int'l System Safety Conf., pp. 1060-1069, Aug. 2003.
[37] M. Lyu, Software Reliability Engineering. IEEE CS Press, 1995.
[38] J. Martin, Rapid Application Development. Prentice Hall, May 1991.
[39] M. Murrah, “Enhancements and Extensions of Formal Models for Risk Assessment in Software Projects,” PhD dissertation, Naval Postgraduate School, Sept. 2002.
[40] J.C. Nogueira, “A Formal Model for Risk Assessment in Software Projects,” PhD dissertation, Naval Postgraduate School, Sept. 2000.
[41] S.R. Palmer and J.M. Felsing, A Practical Guide to Feature-Driven Development. Pearson Education, Feb. 2002.
[42] C. Paris and K. Linden, “Building Knowledge Bases for the Generation of Software Documentation,” Proc. Int'l Conf. Computational Linguisitics, pdf , 1996.
[43] M. Poppendieck and T. Poppendieck, Lean Software Development: An Agile Toolkit for Software Development Managers. Addison-Wesley, 2003.
[44] J. Puett, “Holistic Framework for Establishing Interoperability of Heterogeneous Software Development Tools,” PhD dissertation, Naval Postgraduate School, June 2003.
[45] M. Saboe, “A Software Technology Transition Entropy Based Engineering Model,” PhD dissertation, Naval Postgraduate School, Mar. 2002.
[46] K. Schwaber and M. Beedle, Agile Software Development with SCRUM. Prentice Hall, Oct. 2001.
[47] O. Sheyner, S. Jha, and J. Wing, “Automated Generation and Analysis of Attack Graphs,” Proc. IEEE Symp. Security and Privacy, pp. 273-284, May 2002.
[48] Software Engineering Institute, “Software Risk Management,” Technical Report CMU/SEI-96-TR-012, Carnegie Mellon Univ., June 1996.
[49] J. Stapleton, DSDM: Business Focused Development. Addison-Wesley, 1997.
[50] L. Williams and A. Cockburn, “Agile Software Development: It's about Feedback and Change,” Computer, vol. 36, no. 6, pp. 39-43, June 2003.
[51] L. Wills, S. Sander, S. Kannan, A. Kahn, J. Prasad, and D. Schrage, “An Open Control Platform for Reconfigurable, Distributed, Hierarchical Control Systems,” Proc. Digital Avionics Systems Conf., Oct. 2000, dasc_00 .pdf .
[52] J. Wing, “Scenario Graph Generation and MDP-Based Analysis,” Presentation at ARO Kickoff Meeting, Univ. of Pennsylvania, Philadelphia, May 2001, frame.htm.
[53] WRAIR Dept. of Resuscitative Medicine, “Narrative Description of the CARA Software,” Proprietary Document, WRAIR, Jan. 2001.
[54] WRAIR Dept. of Resuscitative Medicine, “CARA Pump Control Software Questions,” Version 6.1, Proprietary Document, WRAIR, Jan. 2001.
[55] WRAIR Dept. of Resuscitative Medicine, “CARA Tagged Requirements, Increment 3,” Version 1.2, Proprietary Document, WRAIR, Mar. 2001.
[56] P. Young, V. Berzins, J. Ge, and Luqi , “Using an Object Oriented Model for Resolving Representational Differences between Heterogeneous Systems,” Proc. 17th ACM Symp. Applied Computing (SAC), pp. 976-983, Mar. 2002.

Index Terms:
Software development, documentation, agility, information representation, complex systems, real-time systems.
Luqi , Lin Zhang, Valdis Berzins, Ying Qiao, "Documentation Driven Development for Complex Real-Time Systems," IEEE Transactions on Software Engineering, vol. 30, no. 12, pp. 936-952, Dec. 2004, doi:10.1109/TSE.2004.100
Usage of this product signifies your acceptance of the Terms of Use.