西安 西安交通大学 刘海岩 安交 1
第 11章 软件工程的前景
取得的进展
未来之路
复习重点西安 西安交通大学 刘海岩 安交 2
1.1 取得的进展软件工程随着计算机技术的发展而发展。最初的研究重点是提高程序员的工作效率,开发了很多编程和调试工具,随后又增加了文件管理、版本管理、软件配置管理等功能,逐步形成 CASE。
与此同时,开发方法和开发过程的研究也取得了很多成果。瀑布模型的出现把其它行业中实施工程项目的做法搬到软件行业中来。为了支持用户对需求的变化以及解决大型软件的质量控制等问题,对传统的开发模型进行了变形与扩展,形成了很多增量与演化的开发模型。
开发方法和技术的发展表现在以面向过程为主流的开发方法发展为面向对象的开发方法。
Wasserman对软件工程走向成熟作了以下归纳:
西安 西安交通大学 刘海岩 安交 3
1,抽象:认识问题与解决问题抓住关键因素,避免过早的陷入细节。使用抽象可以发现模式,便于总结经验和复用。
2、分析与设计的方法和表示法:使用通用的分析与设计方法和表示法不仅帮助建立系统模型,还有利于交流、
验证和复用。
3、用户接口原型化:随着软件逐渐进入我们生活的许多关键领域,用户的角色变得越来越重要。通过把注意力集中在用户需求和商业需求上,可以构建更有针对性、
更有效的产品。
4、软件体系结构:不同的体系结构反应对同一个问题的不同解决方案,根据解决方案的特性选择合适的体系结构。体系结构模式的确定还处于初始阶段,还需扩展研究范围,以获得对模式、构件和风格含义的更好理解。
西安 西安交通大学 刘海岩 安交 4
5、软件过程:随着软件过程可见度和受控程度的提高,会不断影响软件的质量,如何影响是研究的一个主题。软件开发是一门科学也是一门艺术,它是创造与组合(不是制造)。必须了解怎样在不丧失创造性和灵活性的前提下,用软件过程来提高产品质量。 CMM描述了有效的软件过程的框架,能提高软件机构的软件开发能力,满足成本、进度、功能及质量的要求。
6、复用:不再是仅仅复用程序中的代码,复用构件、复用模式、复用框架、复用已有的经验和产品,软件开发和维护过程都可以寻找复用机会。软件开发构件化就是在复用的基础上提出来的软件开发技术,在一定的标准规范下复用构件,大大提高软件生产的效率和质量。
西安 西安交通大学 刘海岩 安交 5
7、度量:在软件工程的许多活动中都涉及到度量,过程度量、项目度量、软件质量度量。在生产率度量中,除了代码规模之外,还应该用各种不同的特性来度量;在产品质量度量中,除了错误和缺陷之外,还应包括用户满意度、需求等因素。度量数据对管理软件项目、改进软件过程有重要意义。
8、软件工具和开发环境:工具和环境能增强软件开发的能力,帮助我们更好的管理项目、自动完成一些任务、
更快地找到和排除软件中的错误从而更有效的保证质量。
目前的商品化工具注重了设计和测试阶段。支持分析、
度量、管理、复用等方面的工具和环境还需进一步研究与开发。
西安 西安交通大学 刘海岩 安交 6
11.2 未来之路
Roger S.Pressman对未来几年影响软件工程的有关软件技术的变化范围进行了以下探讨:
软件工程的变化将受到来自以下四方面的影响:
1、人以及他们构造系统的方式
,人,指建造和使用软件的人。经验表明,当一个项目组的人数增加时,并不能提高整体的软件生产率,为什么?个体间和项目组间低效的通信造成。软件开发离不开交流,网络改变了开发人员相互间通信的方式,充分利用电子邮件、公告牌、视频会议等交流手段。另外使用智能代理( agent)能改变开发人员的工作模式,提高他们的工作能力。知识获取的方式也对开发人员的培训、提高、交流、协作以及由此而产生的软件开发的整体文化有较大的甚至深层的改变。
西安 西安交通大学 刘海岩 安交 7
2、软件工程过程软件工程的前 20多年是,线性思维,的时代。如今待解决问题的复杂性、多样性、多变性改变了软件开发过程。演化过程模型强调了对增量式工作产品、风险分析、
计划修订以及用户反馈的需要。 CMM给出了进行软件工程实践时必需具备的过程域属性。对象技术结合基于构件的软件工程对软件开发生产率和产品质量产生深远影响。原型实现强调了用户参与,导致了更高的用户满意度。
基于 Web应用的快速增长正在改变软件工程过程及其参与者。 Web应用的即时性、安全性、美学成为主导性考虑。一个 Web工程小组融合了技术专家和内容专家
(艺术家、音乐家等)为大量且不可预测的用户群建造信息源。 Web应用开发的特殊性扩展了软件工程过程中的有关活动。
西安 西安交通大学 刘海岩 安交 8
3、表示信息的模式过去,开发的应用软件大多用于数据处理。当今数据处理逐步让位于,信息技术,,并在某些应用中出现了,知识,这个术语。
数据:未加工的信息,即记录下来的事实。
信息:通过将事实与给定的语境相关联而导出。
知识:将多个语境中得到的信息相关联。
软件的未来之路正走向处理知识的系统。已经处理数据近 50年,抽取信息近 30年,软件工程面临的挑战之一就是建造基于知识的系统。
西安 西安交通大学 刘海岩 安交 9
4、基本的计算技术建造和使用软件的人员、应用的软件工程过程以及处理的信息均受到硬件和软件技术方面的进展的影响。硬件技术提供了计算的潜能,软件开发者根据用户需求努力创建发挥该潜能的软件。硬件技术可能会沿着两条并行的路径发展:
( 1)继续发展,提供更大的能力。
( 2)非传统的硬件体系结构(如大规模并行机、光处理器、神经网络机)的发展可能会导致建造软件种类上的根本性变化以及软件工程方法的变化。
软件技术驱动着软件工程的未来,软件生产逐步走向构件化、标准化、工业化。软件工程会不断发生变化,但有效的分析、设计、测试等活动总是在软件开发中占据自己的位置。
西安 西安交通大学 刘海岩 安交 10
复习重点
1、软件工程研究的内容,各种软件开发模型的特点。
2、软件度量的意义及方法,软件项目估算,软件质量保证,
软件配置管理技术。
3、需求获取和需求分析的主要活动,OO的需求获取和分析的不同点。
4、软件设计的活动,体系结构风格,界面设计。
5、设计的有关指导原则及 OO对其的扩充。
6、软件测试的方法,测试用例的设计,测试策略,软件的可靠性。
7、软件维护的活动,软件的可维护性。
8、面向对象的分析活动与分析模型。
9、面向对象的设计活动,设计模式。
10、面向对象测试的特点,测试策略及用例设计与传统的区别。