软件开发方法发展回顾与展望
详细信息    查看全文 | 推荐本文 |
  • 英文篇名:Software Development Methods:Review and Outlook
  • 作者:马晓星 ; 刘譞哲 ; 谢冰 ; 余萍 ; 张天 ; 卜磊 ; 李宣东
  • 英文作者:MA Xiao-Xing;LIU Xuan-Zhe;XIE Bing;YU Ping;ZHANG Tian;BU Lei;LI Xuan-Dong;State Key Laboratory for Novel Software Technology(Nanjing University);Department of Computer Science and Technology,Nanjing University;Institute of Software,School of Electronics Engineering and Computer Science, Peking University;Key Labortory of High Confidence Software Technologies of Ministry of Education (Peking University);
  • 关键词:软件开发方法 ; 回顾 ; 展望
  • 英文关键词:software development method;;review;;outlook
  • 中文刊名:RJXB
  • 英文刊名:Journal of Software
  • 机构:计算机软件新技术国家重点实验室(南京大学);南京大学计算机科学与技术系;北京大学信息科学技术学院软件研究所;高可信软件技术教育部重点实验室(北京大学);
  • 出版日期:2018-11-23 07:18
  • 出版单位:软件学报
  • 年:2019
  • 期:v.30
  • 基金:国家自然科学基金委-中国科学院学科发展战略研究项目:软件学科发展战略研究(XK2017XXC01)~~
  • 语种:中文;
  • 页:RJXB201901002
  • 页数:19
  • CN:01
  • ISSN:11-2560/TP
  • 分类号:6-24
摘要
软件是信息化社会的基础设施,而构造并运用软件的能力成为一种核心竞争力.软件开发方法凝结了系统化的软件构造过程和技术.简要回顾了50年来软件开发方法发展历程中具有重要影响的里程碑,包括基于结构化程序设计和模块化开发的基本方法、面向对象方法、软件复用与构件化方法、面向方面的方法、模型驱动的方法,以及服务化的方法.而后针对Internet的发展普及以及人机物融合应用对软件开发方法提出的挑战,介绍了网构软件的研究和探索,并展望未来人机物融合的软件方法和技术.
        Software constitutes the infrastructure of an information society, and the production and utilization of software systems become a core competency. A software development method embodies a systematic set of processes and techniques enabling the engineering of software systems. This paper briefly reviews some most important software development methods thrived in the last five decades, including fundamental methods based on structured programming and modular development, object-oriented methods, software reuse and component-based methods, aspect-oriented methods, model-driven methods, and service-oriented methods. After that it gives an outlook with an introduction to the research efforts on Internetware and a call for future software development methods for emerging social-cyber-physical systems.
引文
[1] Zhang XX, Xu JF, et al., eds. Encyclopaediaof Computer Science and Technology. 3rd ed., Beijing:Tsinghua University Press,2018(in Chinese).
    [2] Simon HA. The Sciences of the Artificial. 3rd ed., Cambridge:The MIT Press, 1996.
    [3] Jr Brooks FP. The Mythical Man-Month. Boston:Addison-Wesley, 1995.
    [4] Wirth N. A brief history of software engineering. IEEE Annals of the History of Computing, 2008,30(3):32-39.
    [5] Jr Brooks FP. No silver bullet—Essence and accidents of software engineering. IEEE Computer, 1987,20(4):10-19.
    [6] Dijkstra EW. Go to statement considered harmful. Communications of the ACM, 1968,11(3):147-148.
    [7] Booch G. Object-Oriented Analysis and Design with Applications. 2nd ed., Redwood City:Benjamin Cummings, 1993.
    [8] Meyer B. Object-Oriented Software Construction. Prentice Hall, 1988.
    [9] Xu JF, Wang ZJ, Zhai CX. Object-Oriented Programming Language. Nanjing:Nanjing University Prerss, 1993(in Chinese).
    [10] Martin RC. Agile Software Development:Principles, Patterns, and Practices. Prentice Hall, 2002.
    [11] Liskov BH, Wing JM. A behavioral notion of subtyping. ACM Trans. on on Programming Languages and Systems, 1994,16(6):1811-1841.
    [12] Ole-Johan D, Bjorn M, Kristen N. Common Base Language. Norwegian Computing Center, 1970.
    [13] Parnas DL. A technique for software module specification with examples. Communications of the ACM, 1972,15(5):330-336.
    [14] Hoare CAR. Proof of correctness of data representations. Acta Informatica, 1972,4:271-281.
    [15] Liskov B, Zilles S. Programming with abstract data types. In:Proc. of the ACM SIGPLAN Symp. on Very High Level Languages.Santa Monica, 1974. 50-59.
    [16] Chen PP. The entity-relationship model:Toward a unified view of data. ACM Trans. on Database Systems, 1976,1(1):9-36.
    [17] Kay AC. The early history of smalltalk. In:Proc. of the 2nd ACM SIGPLAN Conf. on History of Programming Languages(HOPL-II). New York:ACM Press, 1993. 69-95.
    [18] Coad P, Yourdon E. Object-Oriented Analysis. Prentice-Hall, 1990.
    [19] Coad P, Yourdon E.Object-Oriented Design. Prentice-Hall, 1992.
    [20] Rumbaugh JR, et al. Object-Oriented Modeling and Design. Prentice-Hall, 1991.
    [21] Jacobson I. Object-Oriented Software Engineering:A Use Case Driven Approach. New York:ACM Press, 1972.
    [22] Jacobson I, Booch G, Rumbaugh JR. The Unified Software Development Process. Boston:Addison-Wesley Longman Publishing Co., Inc., 1999.
    [23] Erich G, Helm R, Johnson R, Vlissides J. Design Patterns:Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
    [24] Mary S, David G. Software Architecture:Perspectives on an Emerging Discipline. Upper Saddle River:Prentice-Hall, 1996.
    [25] Mylopoulos J, Chung L, Yu E. From object-oriented to goal-oriented requirements analysis. Communications of the ACM, 1999,42(1):31-37.
    [26] Lopes CIVD. A language framework for distributed programming[Ph.D. Thesis]. Boston:Northeastern University, 1997.
    [27] Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Loingtier JM, Irwin J. Aspect-Oriented programming. In:Proc. of the Object-Oriented Programming(ECOOP'97). LNCS 1241, Berlin, Heidelberg:Springer-Verlag, 1997. 220-242.
    [28] Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG. An overview of AspectJ. In:Proc. of the 15th European Conf.on Object-Oriented Programming(ECOOP 2001). London:Springer-Verlag, 2001. 327-353.
    [29] Coady Y, Kiczales G, Feeley M, Smolyn G. Using aspectc to improve the modularity of path-specific customization in operating system code. In:Proc. of the 8th European Software Engineering Conf. on Held Jointly with 9th ACM SIGSOFT Int'l Symp. on Foundations of Software Engineering. New York:ACM Press, 2001. 88-98.
    [30] Spinczyk O, Lohmann D, Urban M. Advances in aop with aspectc++. In:Proc. of the Conf. on New Trends in Software Methodologies, Tools and Techniques. Amsterdam:IOS Press, 2005. 33-53.
    [31] Sampaio A, Rashid A, Chitchyan R, Rayson P. Ea-Miner:Towards automation in aspect-oriented requirements engineering. Trans.on Aspect-Oriented Software Development III. LNCS 4620, Berlin, Heidelberg:Springer-Verlag, 2007. 4-39.
    [32] Shepherd D, TourwéT, Pollock L. Using language clues to discover crosscutting concerns. In:Proc. of the Workshop on Modeling and Analysis of Concerns in Software(MACS 2005). New York:ACM Press, 2005. 1-6.
    [33] Whittle J, Araujo J. Scenario modelling with aspects. IEEE Software, 2004,151(4):157-171.
    [34] Dausend M, Raschke A. Towards a comprehensive extension of abstract state machines for aspect-oriented specification. Science of Computer Programming, 2016,131:22-41.
    [35] Jacobson I, Ng PW. Aspect-Oriented Software Development with Use Cases. Addison-Wesley Professional, 2005.
    [36] Tkatchenko M, Kiczales G. Uniform support for modeling crosscutting structure. In:Proc. of the Model Driven Engineering Languages and Systems. LNCS 3713, Berlin, Heidelberg:Springer-Verlag, 2005. 508-521.
    [37] Aldawud T, Bader A. UML profile for aspect-oriented software development. In:Proc. of the 3rd Int'l Workshop on Aspect Oriented Modeling. 2003.
    [38] Supakkul S, Chung L. A UML profile for goal-oriented and use case-driven representation of nfrs and FRS. In:Proc. of the 3rd ACIS Int'l Conf. on Software Engineering Research, Management and Applications(SERA 2005). Washington:IEEE Computer Society, 2005. 112-121.
    [39] Chavez C, Lucena C. A meta-model for aspect-oriented modeling. In:Proc. of the Workshop on Aspect-Oriented Modeling with UML. 2002.
    [40] Wimmer M, Schauerhuber A, Kappel G, Retschitzegger W, Schwinger W, Kapsammer E. A survey on UML-based aspect-oriented design modeling. ACM Computing Surveys(CSUR)Surveys, 2011,43(4):28.
    [41] Xie T, Zhao J, Marinov D, Notkin D. Automated test generation for AspectJ programs. In:Proc. of the 1st Workshop on Testing Aspect-Oriented Programs(WTAOP 2005). Chicago, 2005.
    [42] Zhao J. Data-Flow-Based unit testing of aspect-oriented programs. In:Proc. of the 27th Annual Int'l Conf. on Computer Software and Applications(COMPSAC 2003). Washington:IEEE Computer Society, 2003. 188-197.
    [43] Massicotte P, Badri L, Badri M. Towards a tool supporting integration testing of aspect-oriented programs. Journal of Object Technology, 2007,6(1):67-89.
    [44] Zhao J, Xie T, Li N, Towards regression test selection for AspectJ programs. In:Proc. of the 2nd Workshop on Testing AspectOriented Programs(WTAOP 2006). New York:ACM Press, 2006. 21-26.
    [45] Xu G, Rountev A. Regression test selection for AspectJ software. In:Proc. of the 29th Int'l Conf. on Software Engineering(ICSE2007). Washington:IEEE Computer Society, 2007. 65-74.
    [46] Xie T, Zhao J, Marinov D, Notkin D. Detecting redundant unit tests for AspectJ programs. In:Proc. of the 17th Int'l Symp. on Software Reliability Engineering. 2006. 179-190.
    [47] Harman M, Islam F, Xie T, Wrappler S. Automated test data generation for aspect-oriented programs. In:Proc. of the 8th Int'l Conf.on Aspect-Oriented Software Development. 2009. 185-196.
    [48] Parizi RM, Ghani AAA, Lee SP, Khan SUR. RAMBUTANS:Automatic AOP-specific test generation tool. Int'l Journal of Software Tools and Technology Transfer, 2017,19:743-761.
    [49] Xu D, Ariss OE, Xu W, Wang L. Aspect-Oriented modeling and verification with finite state machines. Journal of Computer Science and Technology, 2009,24(5):949-961.
    [50] Ubayashi N, Tamai T. Aspect-Oriented programming with model checking. In:Proc. of the 1st Int'l Conf. on Aspect-Oriented Software Development(AOSD 2002). New York:ACM Press, 2002. 148-154.
    [51] Binkley D, Ceccato M, Harman M, Ricca F, Tonella P. Automated refactoring of object-oriented code into aspects. In:Proc. of the21st IEEE Int'l Conf. on Software Maintenance(ICSM 2005). Washington:IEEE Computer Society, 2005. 27-36.
    [52] Breu S. Aspect mining for large systems. In:Proc. of the Companion to the 21st ACM SIGPLAN Symp. on Object-Oriented Programming Systems, Languages, and Applications(OOPSLA 2006). New York:ACM Press, 2006. 641-642.
    [53] Marin M, Deursen A, Moonen L. Identifying crosscutting concerns using fan-in analysis. ACM Trans. on Software Engineering and Methodology, 2007,17(1):1-37.
    [54] Badri M, Kout A, Badri L. Investigating the effect of aspect-oriented refactoring on the unit testing effort of classes:An empirical evaluation. Int'l Journal of Software Engineering and Knowledge Engineering, 2017,27(5):749-790.
    [55] Mourad A, Laverdiere MA, Debbabi M. An aspect-oriented approach for the systematic security hardening of code. Computers&Security, 2008,27(3-4):101-114.
    [56] Ali-Gombe A, Saltaformaggio B, Ramanujam J, Xu DY, Richard III GG. Toward a more dependable hybrid analysis of android malware using aspect-oriented programming. Computers&Security, 2018,73:235-248.
    [57] Pereira RH, Pérez-Schofield BG, Ortin F. Modularizing application and database evolution—An aspect-oriented framework for orthogonal persistence. Software Practice and Experience, 2017,47(2):193-221.
    [58] Soares S, Laureano E, Borba P. Implementing distribution and persistence aspects with AspectJ. In:Proc. of the 17th ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications(OOPSLA 2002). New York:ACM Press, 2002. 174-190.
    [59] Fan GS, Yu HQ, Chen LQ. A formal aspect-oriented method for modeling and analyzing adaptive resource scheduling in cloud computing. IEEE Trans. on Network and Service Management, 2016,13(2):281-294.
    [60] Bodden E, Havelund K. Aspect-Oriented race detection in Java. IEEE Trans. on Software Engineering, 2010,36(4):509-527.
    [61] Chen XQ, Yang FQ. Research on aspect oriented operating systems. Ruan Jian Xue Bao/Journal of Software, 2006,17(3):620-627(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/17/620.htm[doi:10.1360/jos170620]
    [62] Mei H, Cao DG. ABC-S2C:Enabling separation of crosscutting concerns in component-based software development. Chinese Journal of Computers, 2005,28(12):2036-2044(in Chinese with English abstract).
    [63] Cui ZQ, Wang LZ, Liu HG, Li XD. Computational error handling as aspects:A case study and evaluation. Ruan Jian Xue Bao/Journal of Software, 2011,22(11):2639-2651(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3892.htm[doi:10.3724/SP.J. 1001.2011.03892]
    [64] Mcllroy D. Mass produced software components. In:Proc. of the NATO Conf. on Software Engineering. 1968. 138-155.
    [65] Yang FQ, Mei H, Li KQ. Software reuse and software component technology. ACTA ELECTRONICA SINICA, 1999,27(2):68-75(in Chinese with English abstract).
    [66] Mili H, Mili F, Mili A. Reusing software:Issues and research directions. IEEE Trans. on Software Engineering, 1995,21(6):528-562.
    [67] Zhang XX. Encyclopaediaof Computer Science and Technology. 2nd ed., Beijing:Tsinghua Unversity Press, 2005(in Chinese).
    [68] Pfleeger SL. Software Engineering:Theory and Practice. 2nd ed., Upper Saddle River:Prentice Hall, 2001.
    [69] Yang FQ, Mei H, Lii J, Jin Z. Some discussion on the development of software technology. ACTA ELECTRONICA SINICA,2002,30(12A):1901-1906(in Chinese with English abstract).
    [70] Mellor SJ, Scott K, Uhl A, Weise D. MDA Distilled:Principles of Model-Driven Architecture. Addison Wesley, 2004.
    [71] Object Management Group, Miller J, Mukerji J, eds. MDA Guide Version 1.0.1. OMG White Paper, 2003.
    [72] France R, Rumpe B. Model-Driven development of complex software:A research roadmap. In:Proc. of the Future of Software Engineering(FoSE)on the 29th Int'l Conf. on Software Engineering(ICSE 2007). 2007. 37-54.
    [73] Schmidt DC. Guest editor's introduction:Model-driven engineering. IEEE Computer, 2006,39:25-31.
    [74] Frankel DS. Model Driven Architecture:Applying MDA to Enterprise Computing. Wiley, 2003.
    [75] Bézivin J. On the unification power of models. Software and Systems Modeling(SoSyM), 2005,4:171-188.
    [76] Kurtev I, Bézivin J, Jouault F, Valduriez P. Model-Based DSL frameworks. In:Proc. of the ACM SIGPLAN Int'l Conf. on ObjectOriented Programming, Systems, Languages, and Applications(OOPSLA 2006). ACM Press, 2006.
    [77] Brown A, Conallen J, Tropeano D. Introduction:Models, modeling, and model-driven architecture(MDA). In:Proc. of the ModelDriven Software Development. Springer-Verlag, 2005. 1-16.
    [78] Liu J, He JF, Miao HK. A strategy for model construction and integration in MDA. Ruan Jian Xue Bao/Journal of Software,2006,17(6):1411-1422(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/20060616.htm[doi:10.1360/jos171411]
    [79] Mellor SJ, Balcer MJ. Executable UML:A Foundation for Model-Driven Architecture. Addison-Wesley Professional, 2002.
    [80] Jiang ZM. Development of IT industry in China in the new age. Journal of Shanghai Jiaotong University, 2008,42(10):1589-1607(in Chinese with English abstract).
    [81] Mei H, Liu XZ. Software technology in the Internet era:Overview and outlook. Chinese Science Bulletin, 2010,55(13):1214-1220(in Chinese).
    [82] Papazoglou MP, Georgakapoulos G. Service-Oriented computing. Communications of the ACM, 2003,46(10).
    [83] Fielding RT, Taylor RN. Principled design of the modern Web architecture. In:Proc. of the Int'l Conf. on Software Engineering(ICSE 2000). 2000. 407-416.
    [84] Vinoski S. REST eye for the SOA guy. IEEE Internet Computing, 2007,11(1):82-84.
    [85] Armbrust M, Fox A, Griffith R, Joseph AD, Katz R, Konwinski A, Lee G, Patterson D, Rabkin A, Stoica I, Zaharia M. A view of cloud computing. Communications of the ACM, 2010,53(4):50-58.
    [86] Balalaie A, Heydarnoori A, Jamshidi P. Microservices architecture enables DevOps:Migration to a cloud-native architecture. IEEE Software, 2016,33(3):42-52.
    [87] Zhu LM, Bass L, Champlin-Scharff G. DevOps and its practices. IEEE Software, 2016,33(3):32-34.
    [88] LüJ, Ma XX, Tao XP, Xu F, Hu H. Researches and progresses on Internetware. Science in China(Series E), 2006,36(10):1037-1080(in Chinese with English abstract).
    [89] Milner R. Theories for the global ubiquitous computer. In:Proc. of the Foundations of Software Science and Computation Structures. LNCS 2987, Berlin:Springer-Verlag, 2004.
    [90] LüJ, Rosenblum DS, Bultan T, et al. Roundtable:The future of software engineering for internet computing. IEEE Software, 2015,32(1):91-97.
    [91] Cheng BHC, et al. Software engineering for self-adaptive systems:A research roadmap. In:Proc. of the Software Engineering for Self-Adaptive Systems. LNCS 5525, 2009. 1-26.
    [92] Zambonelli,F, Omicini A. Challenges and research directions in agent-oriented software engineering. Autonomous Agents and Multi-Agent Systems, 2004,9(3):253-283.
    [93] Beal J, Pianini D, Viroli M. Aggregate programming for the Internet of Things. IEEE Computer, 2015,48(9):22-30.
    [94] Zambonelli F, Viroli M. A survey on nature-inspired metaphors for pervasive service ecosystems. Journal of Pervasive Computing and Communications, 2011,7:186-204.
    [95] Mei H, LüJ. Internetware:A New Paradigm for Internet Computing. Springer-Verlag, 2016.
    [96] Yang F, LüJ, Mei H. Technical framework for Internetware:An architecture centric approach. Science in China(Series F:Information Sciences), 2008,51(6):610-622.
    [97] LüJ, Ma XX, Huang Y, Cao C, Xu F. Internetware:A shift of software paradigm. In:Proc. of the 1st Asia-Pacific Symp. on Internetware(Internetware 2009). 2009.
    [98] Mei H, Huang G, Lan L, Li J. A software architecture centric self-adaptation approach for Internetware. Science in China(Series F:Information Sciences), 2008,51(6):722-742.
    [99] LüJ, Ma XX, Tao XP, Cao C, Huang Y, Yu P. On environment-driven software model for Internetware. Science in China(Series F:Information Sciences), 2008,51(6):683-721.
    [100] Mei H, Huang G, Zhao H, Jiao W. A software architecture centric engineering approach for Internetware. Science in China(Series F:Information Sciences), 2006,49(6):702-730.
    [101] Wang P, Jin Z, Liu L, Cai G. Building toward capability specifications of Web services based on an environment ontology. IEEE Trans. on Knowledge and Data Engineering(TKDE), 2008,20(4):547-561.
    [102] Guoquan W, Jun W, Chunyang Y, Hua Z, Tao H, Hong H. Specification and monitoring of data-centric temporal properties for service-based systems. Journal of Systems and Software, 2012,85(12):2738-2754.
    [103] Zhang W, Mei H, Zhao H. Feature-Driven requirement dependency analysis and high-level software design. Requirements Engineering(RE), 2006,11(3):205-220.
    [104] Mei H, Guo Y. Toward ubiquitous operating systems:A software-defined perspective. Computer, 2018,51(1):50-56.
    [1]张效祥,徐家福,等,编.计算机科学技术百科全书.第3版,北京:清华大学出版社,2018.
    [9]徐家福,王志坚,翟成祥.对象式程序设计语言.南京:南京大学出版社,1993.
    [61]陈向群,杨芙清.面向Aspect的操作系统研究.软件学报,2006,17(3):620-627. http://www.jos.org.cn/1000-9825/17/620.htm[doi:10.1360/jos170620]
    [62]梅宏,曹东刚.ABC-S2C:一种面向贯穿特性的构件化软件关注点分离技术.计算机学报,2005,28(12):2036-2044.
    [63]崔展齐,王林章,刘慧根,李宣东.面向方面的误差处理技术:实例研究和评估.软件学报,2011,22(11):2639-2651.http://www.jos.org.cn/1000-9825/3892.htm[doi:10.3724/SP.J.1001.2011.03892]
    [65]杨芙清,梅宏,李克勤.软件复用与软件构件技术.电子学报,1999,27(2):68-75.
    [67]张效祥.计算机科学技术百科全书.第2版,北京:清华大学出版社,2005.
    [69]杨芙清,梅宏,吕建,金芝.浅论软件技术发展.电子学报,2002,30(12A):1901-1906.
    [78]刘静,何积丰,缪淮扣.模型驱动架构中模型构造与集成策略.软件学报,2006,17(6):1411-1422. http://www.jos.org.cn/1000-9825/20060616.htm[doi:10.1360/jos171411]
    [80]江泽民.新时期我国信息技术产业的发展.上海交通大学学报,2008,42(10):1589-1607.
    [81]梅宏,刘譞哲.互联网时代的软件技术:现状与趋势.科学通报,2010,55(13):1214-1220.
    [88]吕建,马晓星,陶先平,徐锋,胡昊.网构软件的研究与进展.中国科学(E辑),2006,36(10):1037-1080.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700