《实践者的研究方法》—— 第2章 软件工程 2.6 小结

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找到。

时间: 2024-08-03 17:44:10

《实践者的研究方法》—— 第2章 软件工程 2.6 小结的相关文章

《实践者的研究方法》—— 第1章 软件的本质 1.1 软件的本质

第1章 Software Engineering: A Practitioner's Approach, Eighth Edition 软件的本质 要 点 浏 览 概念:计算机软件是由专业人员开发并长期维护的软件产品.完整的软件产品包括:可以在各种不同容量及系统结构的计算机上运行的程序.程序运行过程中产生的各种结果以及各种描述信息,这些信息可以以硬拷贝或是各种电子媒介形式存在. 人员:软件工程师开发软件并提供技术支持,产业界中几乎每个人都间接或直接地使用软件. 重要性:软件之所以重要是因为它在我

《实践者的研究方法》—— 导读

前 言 如果有这样一款计算机软件,它能满足用户的需求,能在相当长的时间内无故障地运行,修改起来轻松便捷,使用起来更是得心应手,那么,这款软件必定是成功的,它切实改善了我们的生活.但是,如果有这样一款软件,它令用户失望,错误频出,修改起来困难重重,使用起来更是举步维艰,那么,这必定是一款失败的软件,它使我们的生活一团糟.谁都希望开发出优秀的软件,为我们的生活带来便利,而不是把自己陷入失败的深渊.要想使软件获得成功,在设计和构建软件时就需要有规范,需要采用工程化的方法. 自本书第1版问世以来的近35

《实践者的研究方法》—— 第2章 软件工程 2.4 软件开发神话

2.4 软件开发神话 软件开发神话,即关于软件及其开发过程的一些被人盲目相信的说法,这可以追溯到计算技术发展的初期.神话具有一些特点,让人觉得不可捉摸.例如,神话看起来是事实的合理描述(有时的确包含真实的成分),它们符合直觉,并且经常被那些知根知底的有经验的从业人员拿来宣传. 今天,大多数有见地的软件工程师已经意识到软件神话的本质--它实际上误导了管理者和从业人员对软件开发的态度,从而引发了严重的问题.然而,由于习惯和态度的根深蒂固,软件神话遗风犹在. 管理神话.像所有领域的经理一样,承担软件职

《实践者的研究方法》—— 第2章 软件工程 2.3 软件工程实践

2.3 软件工程实践 在2.2节中,曾介绍过一种由一组活动组成的通用软件过程模型,建立了软件工程实践的框架.通用的框架活动--沟通.策划.建模.构建和部署--和普适性活动构成了软件工程工作的体系结构的轮廓.但是软件工程的实践如何融入该框架呢?在以下几节里,读者将会对应用于这些框架活动的基本概念和原则有一个基本了解.   2.3.1 实践的精髓 在现代计算机发明之前,有一本经典著作<How to Solve it>,在书中,George Polya[Pol45]列出了解决问题的精髓,这也正是软件

《实践者的研究方法》—— 第3章 软件工程 3.1 通用过程模型

第3章 Software Engineering: A Practitioner's Approach, Eighth Edition 软件过程结构 要 点 浏 览 概念:在开发产品或构建系统时,遵循一系列可预测的步骤(即路线图)是非常重要的,它有助于及时交付高质量的产品.软件开发中所遵循的路线图就称为"软件过程". 人员:软件工程师及其管理人员根据需要调整开发过程,并遵循该过程.除此之外,软件的需求方也需要参与过程的定义.建立和测试. 重要性:软件过程提高了软件工程活动的稳定性.可控

《实践者的研究方法》—— 第2章 软件工程 2.2 软件过程

2.2 软件过程 软件过程是工作产品构建时所执行的一系列活动.动作和任务的集合.活动(activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域.项目大小.结果复杂性或者实施软件工程的重要程度没有直接关系.动作(action,如体系结构设计)包含了主要工作产品(如体系结构设计模型)生产过程中的一系列任务.任务(task)关注小而明确的目标,能够产生实际产品(如构建一个单元测试). 在软件工程领域,过程不是对如何构建计算机软件的严格的规定,而是一种具有可适应性的调整方法,以便于工作

《实践者的研究方法》—— 第2章 软件工程 2.5 这一切是如何开始的

2.5 这一切是如何开始的 每个软件工程项目都来自业务需求--对现有应用程序缺陷的纠正,改变遗留系统以适应新的业务环境,扩展现有应用程序功能和特性,或者开发某种新的产品.服务或系统. 在软件项目的初期,业务需求通常是在简短的谈话过程中非正式地表达出来的.以下这段简短谈话就是一个典型的例子. SafeHome 如何开始一个软件项目   [场景] CPI公司的会议室里.CPI是一个虚构的为家庭和贸易应用生产消费产品的公司. [人物] Mal Golden,产品开发部高级经理:Lisa Perez,营

《实践者的研究方法》—— 第3章 软件工程3.2 定义框架活动

3.2 定义框架活动 尽管第2章描述了5种框架活动,并给出了每种活动的基本定义,但是软件团队要在软件过程中具体执行这些活动中的任何一个,还需要更多信息.因此,我们面临一个关键问题:针对给定的问题.开发人员和利益相关者,哪些动作适合于框架活动? 对于由个人负责的小型软件项目(可能远程),其需求简单明确,沟通活动也许仅仅是与合适的利益相关者的一个电话或一封邮件.因此,主要的动作是电话交流,这个动作所包括的主要工作任务(任务集)有: 1.通过电话与利益相关者取得联系. 2.讨论需求并做记录. 3.将笔

《实践者的研究方法》—— 第3章 软件工程 3.3 明确任务集

3.3 明确任务集 我们再来看图3-1,每一个软件工程动作(如需求获取以及与沟通活动相关的动作)都由若干个任务集(task set)构成,而每一个任务集都由软件工程工作任务.相关工作产品.质量保证点和项目里程碑组成.需要选择最能满足项目需要并适合开发团队特点的任务集.这就意味着软件工程动作可以根据软件项目的特定需要和项目团队的特点做适当的调整. 信息栏 任务集 任务集定义了为达到一个软件工程动作的目标所需要完成的工作.例如,需求获取(通常称为"需求收集")就是发生在沟通活动中的一个重要