2.6 小结
软件工程包含过程、方法和工具,这些工具使得快速构建高质量的复杂计算机系统成为可能。软件过程包括五个框架活动:沟通、策划、建模、构建和部署,这些活动适用于所有软件项目。软件工程实践遵照一组核心原则,是一项解决问题的活动。
尽管我们关于构建软件所需的软件知识和技能增长了,但仍有大量的软件神话将管理者和从业人员诱入歧途。随着对软件工程理解的深化,你就会逐渐明白,为什么无论何时遇到这些神话,都要不遗余力地揭露。
习题与思考题
2.1 图2-1中,将软件工程的三个层次放在了 “质量关注点”这层之上。这意味着在整个开发组织内采用质量管理活动,如“全面质量管理”。仔细研究并列出全面质量管理活动中关键原则的大纲。
2.2 软件工程对构建WebApp是否适用?如果适用,需要如何改进以适应WebApp的独特特点?
2.3 随着软件的普及,由于程序错误所带来的公众风险已经成为一个愈加重要的问题。设想一个真实场景:由于软件错误而引起“世界末日”般的重大危害(危害社会经济或是人类生命财产安全)。
2.4 用自己的话描述过程框架。当我们谈到框架活动适用于所有的项目时,是否意味着对于不同规模和复杂度的项目可应用相同的工作任务?请解释。
2.5 普适性活动存在于整个软件过程中,你认为它们均匀分布于软件过程中,还是集中在某个或者某些框架活动中?
2.6 在2.4节所列举的神话中,增加两种软件神话,同时指出与其相对应的真实情况。
扩展阅读与信息资源
软件工程及软件过程的当前发展状况可以参阅一些期刊,如《IEEE Software》 《IEEE Computer》 《CrossTalk》和《IEEE Transactions on Software Engineering》。《Application Development Trends》和《Cutter IT Journal》等行业期刊通常包含一些关于软件工程的文章。每年,IEEE 和ACM资助的研讨会论文集《Proceeding of the International Conference on Software Engineering》都是对当年学术成果的总结,并且在《ACM Transactions on Software Engineering and Methodology》 《ACM Software Engineering Notes》和《Annals of Software Engineering》等期刊上有进一步深入讨论。当然,在互联网上有很多关于软件工程和软件过程的网页。
近年出版了许多关于软件过程和软件工程的书籍,有些是关于整个过程的概要介绍,有些则深入讨论过程中一些重要专题。下面是一些畅销书(除本书之外):
《SWEBOK: Guide to the Software Engineering Body of Knowledge》, IEEE, 2013,见http:www.computer.org/portal/web/swebok。
Andersson, E.等, 《Software Engineering for Internet Applications》, MIT Press, 2006。
Braude, E.和M. Bernstein, 《Software Engineering: Modern Approaches》, 2nd ed., Wiley, 2010。
Christensen, M.和 R. Thayer,《A Project Manager’s Guide to Software Engineering Best Practices》, IEEE-CS Press (Wiley), 2002。
Glass, R.,《Fact and Fallacies of Software Engineering》, Addison-Wesley, 2002。
Hussain, S., 《Software Engineering》, I K International Publishing House, 2013。
Jacobson, I.,《Object-Oriented Software Engineering: A Use Case Driven Approach》, 2nd ed., Addison-Wesley, 2008。
Jalote, P.,《An Integrated Approach to Software Engineering》, 3rd ed., Springer, 2010。
Pfleeger, S., 《Software Engineering: Theory and Practice》, 4th ed., Prentice Hall, 2009。
Schach, S.,《Object-Oriented and Classical Software Engineering》, 8th ed., McGraw-Hill,2010).
Sommerville, I.,《Software Engineering》, 9th ed., Addison-Wesley, 2010。
Stober, T., 和U. Hansmann, 《Agile Software Development: Best Practices for Large Development Projects》, Springer, 2009。
Tsui, F., 和 O.karam,《Essentials of Software Engineering》, 2nd ed., Jones&Bartlett Publishers, 2009。
Nygard(《Release it!: Design and Deploy Production-Ready Software》,Pragmatic Bookshelf,2007)、Richardson和Gwaltney(《Ship it! A Practical Guide to Successful Software Projects》,Pragmatic Bookshelf,2005)以及Humble和Farley(《Continues Delivery: Reliable Software Releases through Build,Test,and Deployment Automation》,Addison-Wesley,2010)的书给出了大量有用的指导原则,可用于部署活动。
在过去的几十年里,IEEE、ISO以及附属其下的标准化组织发布了大量软件工程标准。Moore(《The Road Map to Software Engineering: A Standards-Based Guide》,IEEE Computer Society Press[Wiley],2006)对相关标准进行了调查并指出了这些标准应如何应用到实际工程中。
网上有很多有关软件工程和软件过程相关问题的信息资源,与软件过程相关的最新参考文献可以在SEPA网站www.mhhe.com/pressman找到。