软件过程与管理方法综述
作者:
作者简介:

荣国平(1977-),男,江苏苏州人,博士,助理研究员,CCF专业会员,主要研究领域为软件过程改进,DevOps;张贺(1971-),男,博士,教授,博士生导师, CCF专业会员,主要研究领域为软件过程,软件体系结构,服务计算,经验软件工程领域的科研和实践;邵栋(1976-),男,副教授,CCF专业会员,主要研究领域为软件过程,高科技市场理论,敏捷软件开发,软件工程教育;王青(1964-),女,博士,研究员,博士生导师,CCF高级会员,主要研究领域为以过程为中心的软件质量管理技术,建模技术,知识管理技术,软件协同工作技术.

通讯作者:

邵栋,E-mail:dongshao@nju.edu.cn

基金项目:

国家自然科学基金(61572251);南京大学计算机软件新技术国家重点实验室开放课题(KFKT2017A13)


Survey of Process and Management Approaches for Software Development
Author:
Fund Project:

National Natural Science Foundation of China (61572251); State Key Laboratory for Novel Software Technology (Nanjing University) (KFKT2017A13)

  • 摘要
  • | |
  • 访问统计
  • |
  • 参考文献 [70]
  • |
  • 相似文献 [20]
  • |
  • 引证文献
  • | |
  • 文章评论
    摘要:

    工程化软件开发需要对软件开发整个过程进行有效的组织和管理,由此产生了一系列软件开发组织和管理方法,其主要目的是形成一种载体,用以积累和传递关于软件开发的经验教训.然而,由于软件开发的一些天然特性(比如复杂性和不可见性)的存在,使得描述软件开发过程的软件开发与组织方法也天然地带着一定的抽象性.由此带来了很多概念上的误导和实践中的争论,影响了上述目的的达成.例如,对于究竟该如何选择和定义合适的软件开发过程以更好地满足某个特定项目的要求,目前仍然缺少可靠的手段.甚至有些面向工业界的调研报告表明:在实际软件项目开发中,过程改进(例如引入新的工具或者方法)的主要驱动力是佚闻.试图厘清软件组织与管理话题的若干核心概念,系统梳理软件组织和管理方法的特征,并且以软件发展的历史为主线,介绍软件组织与管理方法的历史沿革,整理出这种历史沿革背后的缘由.在此基础上,讨论和总结若干发现,以期为研究者和实践者提供参考.

    Abstract:

    Software development via engineering approaches requires effective organization and management of the entire software development process, which resulted in a series of methods to organize and manage the development of software systems. Its original intention is to form a carrier to accumulate and deliver experiences and lessons learned about software development. However, due to some of the intrinsic characteristics (e.g. complexity and invisibility) of software, the software development and organization methods that describe the software development process also naturally have a certain degree of abstraction. As a consequence, many conceptual misleadings and meaningless debates in practice have affected the achievement of the above objectives. For example, it is still lack of reliable means for how to select and define the right software development process to better meet the requirements of a particular project. Moreover, some industry-oriented research reports indicate that the main driving force for process improvement (i.e., the introduction of new tools or methods) in real software projects is anecdotes. This study attempts to clarify some core concepts related to software organization and management, then systematically sorts out the characteristics of software organization and management methods. Meanwhile, based on the history of software development, the reason behind of the method evolution is figured out. On this basis, several findings are discussed and summarized in order to provide references for researchers and practitioners.

    参考文献
    [1] Wester R, Koster J. The software behind Moore's law. IEEE Software, 2015,32(2):37-40.
    [2] Humphrey WS. The Watts new? Collection:Columns by the SEI's Watts Humphrey. Carnegie-Mellon University Pittsburgh Pa Software Engineering Institute, 2009. https://resources.sei.cmu.edu/library/
    [3] Andrew S, Jennifer G. Applied Software Project Management. O'Reilly Media, 2015.
    [4] Team CP. CMMI® for development, Version 1.3, improving processes for developing better products and services. Technical Report, CMU/SEI-2010-TR-033, Software Engineering Institute, Carnegie Mellon University, 2010.
    [5] Mei H, Chen F, Feng YD, Yang J. ABC:An architecture based, component oriented approach to software development. Ruan Jian Xue Bao/Journal of Software, 2003,14(4):721-732(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/14/721.htm
    [6] Centers for medicare & medicaid services (CMS) office of information service. Selecting a development approach. In:Proc. of the Selecting A Development Approach. 2008.
    [7] Linger RC. Cleanroom process model. IEEE Software, 1994,11(2):50-58.
    [8] Beck KL. Extreme Programming Explained-Embrace Change. Addison-Wesley, 1990. 1-190.
    [9] Schwaber K. SCRUM Development Process. 1997. 117-134. http://www.doc88.com/p-1438579221661.html
    [10] Stapleton J. DSDM:Dynamic systems development method. In:Proc. of the Technology of Object-Oriented Languages and Systems. 1999. 406.
    [11] Palmer SR, Felsing JM. A Practical Guide to Feature-Driven Development. Prentice Hall, 2002.
    [12] Karlström D, Runeson P. Integrating agile software development into stage-gate managed product development. Empirical Software Engineering, 2006,11(2):203-225.
    [13] Paulk MC, Curtis B, Chrissis MB, Weber CV. Capability maturity model for software. In:Proc. of the IEEE Software. 2001. 49-88.
    [14] Chrissis MB, Konrad M, Shrum S. CMMI:Guidelines for Process Integration and Product Improvement. Addison-Wesley Professional, 2003.
    [15] Osterweil LJ. Software processes are software too, revisited:An invited talk on the most influental paper of ICSE 9. In:Proc. of the 19th Int'l Conf. on Software Engineering (ICSE). 1997.
    [16] Glazer H, Dalton J, Anderson D, Konrad M D, Shrum S. CMMI or agile:Why not embrace both! 2008.[doi:10.1109/AGILE. 2006.30]
    [17] Fritzsche M, Patrick K. Agile methods and CMMI:Compatibility or conflict. e-Informatica Software Engineering Journal, 2007, 1(1):9-26.
    [18] Gandomani TJ, Zulzalil H. Compatibility of agile software development methods and CMMI. Indian Journal of Science & Technology, 2013,6(8):5089-5094.
    [19] Humphrey WS. Managing the Software Process, Vol.1. Reading:Addison-Wesley, 1989.
    [20] Sokovic M, Pavletic D, Pipan KK. Quality improvement methodologies:PDCA cycle, RADAR matrix, DMAIC and DFSS. Journal of Achievements in Materials and Manufacturing Engineering, 2010.
    [21] McFeeley B. IDEAL:A user's guide for software process improvement. In:Proc. of the HICSS. 1996.
    [22] El Emam K, Melo W, Drouin JN. SPICE:The Theory and Practice of Software Process Improvement and Capability Determination. Wiley-IEEE Computer Society Press, 1997.
    [23] Boehm B, Turner R. Balancing Agility and Discipline:A Guide for the Perplexed, Portable Documents. Addison-Wesley Professional, 2003.
    [24] Boehm B, Turner R. Balancing agility and discipline:Evaluating and integrating agile and plan-driven methods. In:Proc. of the 26th Int'l Conf. on Software Engineering (ICSE 2004). IEEE, 2004. 718-719.
    [25] Kalus G, Kuhrmann M. Criteria for software process tailoring:A systematic review. In:Proc. of the 2013 Int'l Conf. on Software and System Process. ACM Press, 2013. 171-180.
    [26] Kuhrmann M, Diebold P, Münch J, Tell P, Garousi V, Felderer M, Trektere K, McCaffery F, Linssen O, Hanser E, Prause CR. Hybrid software and system development in practice:Waterfall, scrum, and beyond. In:Proc. of the 2017 Int'l Conf. on Software and System Process. ACM Press, 2017. 30-39.
    [27] Rong G, Boehm B, Kuhrmann M, Tian E, Lian S, Richardson I. Towards context-specific software process selection, tailoring, and composition. In:Proc. of the 2014 Int'l Conf. on Software and System Process. ACM Press, 2014. 183-184.
    [28] Fowler M. The new methodology. Wuhan University Journal of Natural Sciences, 2001,6(1-2):12-24.
    [29] Anderson DJ. Kanban:Successful Evolutionary Change for Your Technology Business. Blue Hole Press, 2010.
    [30] Humphrey WS. PSP:A Self-Improvement Process for Software Engineers. Addison-Wesley Professional, 2005.
    [31] Humphrey W, Over J. Introduction to the Team Software Process. Addison-Wesley Professional, 1999.
    [32] Turk D, France R, Rumpe B. Limitations of agile software processes. In:Proc. of the Computer Science. 2014. 43-46.
    [33] Rong G. Are we ready for software process selection, tailoring, and composition. In:Proc. of the 2014 Int'l Conf. on Software and System Process. ACM Press, 2014. 185-186.
    [34] Benedicenti L, Ciancarini P, Cotugno F, Messina A, Sillitti A, Succi G. Improved agile:A customized scrum process for project management in defense and security. In:Mahmood Z, ed. Proc. of the Software Project Management for Distributed Computing, Computer Communications and Networks. Cham:Springer-Verlag, 2017.
    [35] David S. Applying the personal software process (PSP) with Ada. In:Proc. of the ACM Sigada Int'l Conf. on Ada ACM. 1998. 219-228.
    [36] Yang WR, et al. Investigating the benefits of combining PSP with agile software development. In:Proc. of the Int'l Workshop on Evidential Assessment of Software Technologies (EAST 2011), Conjunction with ENASE 2011. Beijing:DBLP, 2011. 36-43.
    [37] Park YK, et al. A study on the application of six Sigma tools to PSP/TSP for process improvement. In:Proc. of the IEEE/ACIS Int'l Conf. on Computer and Information Science 2006, and 2006 IEEE/ACIS Int'l Workshop on Component-Based Software Engineering, Software Architecture and Reuse. ICIS-Comsar IEEE, 2006. 174-179.
    [38] Brooks FP. No silver bullet. IEEE Computer, 1987,20(4):10-19.
    [39] Boehm BW. Software and its impact:A quantitative assessment. In:Proc. of the TRW Systems, Engineering and Integration Division. 1973.
    [40] Boehm B. A view of 20th and 21st century software engineering. In:Proc. of the 28th Int'l Conf. on Software Engineering. ACM Press, 2006. 12-29.
    [41] Naur P, Randell B. Software engineering:Report of a conference sponsored by the NATO science committee. In:Proc. of the Brussels, Scientific Affairs Division'68. Garmisch:NATO, 1969. 231.
    [42] Randell B, Buxton JN. Software engineering techniques:Report of a conference sponsored by the NATO science committee. In:Proc. of the Brussels, Scientific Affairs Division, 1969. Rome:NATO, 1970. 164.
    [43] Standards Australia. Information Technology:Software Life Cycle Processes. Australian/New Zealand Standard, 1997. https://infostore.saiglobal.com/preview/293342316700.pdf?sku=115590_SAIG_AS_AS_
    [44] Hoare CA. An axiomatic basis for computer programming. Communications of the ACM, 1969,12(10):576-580.
    [45] Dijkstra E. Cooperating Sequential Processes. Academic Press, 1968.
    [46] Royce WW. Managing the development of large software systems:Concepts and techniques. In:Proc. of the 9th Int'l Conf. on Software Engineering. IEEE Computer Society Press, 1987. 328-338.
    [47] Coad P. DOD-STD-2167, defense system software development:Point, counterpoint, and revision A. In:Proc. of the Computer Standards Conf., Computer Standards Evolution:Impact and Imperatives. IEEE, 1988. 47-50.
    [48] TP026B R. Rational unified process. Cited, 2017. https://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractices_TP026B.pdf
    [49] Kroll P, Kruchten P. The Rational Unified Process Made Easy:A Practitioner's Guide to the RUP. Addison-Wesley Professional, 2003.
    [50] Hoch F, Kerr M, Griffith A. Software as a service:Strategic backgrounder. In:Proc. of the Software & Information Industry Association (SⅡA). 2001.
    [51] Larman C, Basili VR. Iterative and incremental developments, a brief history. IEEE Computer, 2003,36(6):47-56.
    [52] Boehm B. A spiral model of software development and enhancement. ACM SIGSOFT Software Engineering Notes, 1986,11(4):14-24.
    [53] Crinnion J. Evolutionary Systems Development, A Practical Guide to the Use of Prototyping within A Structured Systems Methodology. New York:Plenum Press, 1991. 18.
    [54] Beck K, et al. Manifesto for Agile Software Development. 2001. http://agilemanifesto.org/
    [55] Ahmad MO, Markkula J, Oivo M. Kanban in software development:A systematic literature review. In:Proc. of the 39th EUROMICRO Conf. on Software Engineering and Advanced Applications (SEAA). IEEE, 2013. 9-16.
    [56] Abrahamsson P, Warsta J, Siponen M, Ronkainen J. New directions on agile methods:A comparative analysis. In:Proc. of the 25th Int'l Conf. on Software Engineering (ICSE 2003). Washington:IEEE Computer Society, 2003. 244-254.
    [57] Nerur SP, Mahapatra RK, Mangalaraj G. Challenges of migrating to agile methodologies. Communications of the ACM, 2005,48(5):72-78.
    [58] VersionOne. Annual State of Agile Development Survey. 2018.
    [59] Raymond ES. The Cathedral and the Bazaar. O'Reilly Media, 1999.
    [60] Stol KJ, Fitzgerald B. Inner source-adopting open source development practices in organizations:A tutorial. IEEE Software, 2015, 32(4):60-67.
    [61] Howe J. The rise of crowdsourcing. Wired Magazine, 2006,14(6):1-4.
    [62] Bass L, Weber I, Zhu L. DevOps:A Software Architect's Perspective. Addison-Wesley Professional, 2015.
    [63] Kim G, Humble J, Debois P, Willis J. The DevOps Handbook:How to Create World-Class Agility. 2016.
    [64] Roberts M. Serverless architectures. 2016. 4. https://martinfowler.com/articles/serverless.html
    [65] Sbarski P, Kroonenburg S. Serverless Architectures on AWS:With Examples Using AWS Lambda. Manning Publications Company, 2017.
    [66] Kim G, Behr K, Spafford K. The Phoenix Project:A Novel About IT, DevOps, and Helping Your Business Win. It Revolution Press, 2014.
    [67] Weinberg GM. The Psychology of Computer Programming. New York:Van Nostrand Reinhold, 1971.
    [68] DeMarco T, Lister T. Peopleware:Productive Projects and Teams. Addison-Wesley, 2013.
    附中文参考文献
    [5] 梅宏,陈锋,冯耀东,杨杰.ABC:基于体系结构、面向构件的软件开发方法.软件学报,2003,14(4):721-732. http://www.jos.org.cn/1000-9825/14/721.htm
    引证文献
引用本文

荣国平,张贺,邵栋,王青.软件过程与管理方法综述.软件学报,2019,30(1):62-79

复制
相关视频

分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2018-07-02
  • 最后修改日期:2018-09-25
  • 在线发布日期: 2018-11-23
文章二维码
您是第20525122位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号