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