软件工程期末整理

基础

软件:软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。(1)能够完成预定功能和性能的可执行指令(program)

(2)使得程序能够适当地操作信息的数据结构(data)

(3)描述程序的操作和使用的文档(document)

软件工程:1.定义:是研究和应用功能如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程应用到软件上。

2.必要性

软件生命周期

由软件计划、软件开发和软件运行维护三个时期组成;

软件计划时期:问题定义、可行性研究、需求分析三阶段。

软件开发时期:软件概要设计、软件详细设计、软件实现、综合测试等阶段。

软件运行过程中需要不断地进行维护,使软件持久满足用户需要。

软件工程开发模型:

构建修复模型

规模小,对软件质量要求不高,只关注开发活动,对后期维护要求不高

瀑布模型

将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。

规范的、文档驱动的方法。是一直唯一被广泛采用的生命周期模型,现在是应用最广泛的过程模型。

优点:可以强迫开发人员采用规范的方法;严格的规定每个阶段必须提交的文档;每个阶段的产品必须经过质量保证。

缺点:过于理想化;时间长;需要推迟实现。

增量迭代模型

模块化。能在早期向用户提交部分产品和易于维护,软件的体系结构必须是开放的。

演化模型

演化模型主要针对需求不是很明确的软件项目,希望通过第一个原型来逐步探索和理解用户需求。

对于大型、生命周期很长的系统,演化模型给项目管理带来的问题比较突出,因此演化模型更适合于小规模系统或者生存期较短的中小型系统。

快速原型

构建原型系统让用户试用,获取用户真实需求。

是快速开发一个可以运行的原型系统,

螺旋模型

每经过一个周期,系统就细化完善一些。

适用于大规模内部开发项目,分析风险和排除风险。

项目管理

基本概念:

项目管理是一系列的伴随着项目的进行而进行的、目的是为了确保项目能够达到期望的结果的一系列管理行为。(围绕着项目计划执行的管理活动)

甘特图:

甘特图(Ganttchart)又称为横道图、条状图(Barchart)。其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况。

横轴表示时间,纵轴表示活动,线条表示整个项目期间计划和实际的活动完成情况。

甘特图包含以下三个含义:

1、以图形或表格的形式显示活动;

2、一种通用的显示进度的方法;

3、构造时应包括实际日历天和持续时间,并且不要将周末和节假日算在进度之内。

甘特图具有简单、醒目和便于编制等特点,在企业管理工作中被广泛应用。

优点:简单,能动态地反映开发进展

缺点:难以反映多个任务间的逻辑关系

网络图:

工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间。此外,它还显式地描绘各个作业彼此间的依赖关系。因此,工程网络图是系统分析和系统设计的强有力的工具。

关键路径:关键路径:图中花费时间最长的事件和活动的序列。

配置管理:

软件配置管理的定义

软件配置管理(Software Configuration Management,SCM)是一组针对软件产品的追踪和控制活动,它贯穿于项目生命周期的始终,并代表软件产品接受各项评审。

软件配置管理的目的

软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计用来:

标识变化

控制变化

保证变化被适当发现

向其他人员报告变化

软件配置

是一个产品在生存期各个阶段的不同形式和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合。

软件配置是一个集合,该集合中的每一个元素称为该软件产品软件配置中的一个配置项(Software Configuration Item,SCI。

软件配置项

是软件配置管理的对象,一个软件配置项是项目中的一个特定的、可文档化的工作产品集。

基线

是已经正式通过复审和批准的某规约和产品,它因此可作为进一步开发的基础,并且只能通过正式的变化控制过程来改变。基线通常标志开发过程一个阶段的结束(里程碑)。

里程碑是一个阶段标记;

基线是一个阶段软件工作产品。

基线和里程碑一般表现为一对一关系。

里程碑是检查点,检查点不一定是里程碑,因为检查点还可以是时间、计划和事件。

基线分类

功能基线

在系统分析和软件定义阶段结束时产生。

指派基线(需求基线、分配基线)

在软件需求分析阶段结束时产生。

产品基线

在系统软件组装和系统测试阶段结束时产生。

配置控制委员会

软件配置控制委员会(Software Configuration Conrtol Board,CCB)是负责管理软件配置项变更的组织。

配置管理活动:

1.标识配置项

2.版本管理

3.变更控制

4.配置审计

5.状态报告

6.软件发布管理

变更控制

变更申请:变更申请人

变更评估(CCB)

变更实施:CM工程师、变更实施人

变更验证与确认(CCB)

变更的发布(配置管理员)

基线的变更 :基线以内的。不用走。基线外要走变更流程

需求分析

结构化

数据流图

抽象性:数据流图中只有4个基本符号组成,没有任何具体的物理部件,只能描绘数据在软件中的流动和被处理的逻辑过程,是系统逻辑功能的表示,这种抽象性有助于系统的功能分析和进一步的总体设计。

概括性:数据流图作为信息交流工具,由简单的符号组成,不包括任何物理实现的细节,便于用户理解和评价它。

层次性:数据流图可以按照功能分解的方法逐层来画,从整个系统的基本模型开始,逐步的分解,每分解一次,系统的处理就增多一些,每个处理的功能也更加具体。

数据字典

数据字典与数据流图配合,能清楚地表达数据处理的求;词条描述——对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它等。

软件测试

基本概念:

检测和评价软件以确定其质量的过程和方法,即评价软件或程序的属性和能力,以确定它是否满足所需结果的过程与方法。

测试基本原则

(1)穷尽测试是不可能的。

(2)测试无法显示潜伏的软件缺陷。

(3)测试活动应尽早进行。

(4) 软件缺陷具有群聚性。

(5) 注意杀虫剂现象。

(6) 应尽量由独立的测试团队进行测试。

白盒:语句覆盖(p327,整理)

条件覆盖

路径覆盖

黑盒:等价类划分

将所有可能的输入数据划分为几类,从每一类中选取具有代表性的数据作为测试用例。

边界分析

取刚好等于、刚刚大于或者刚刚小于输入范围边界的值作为测试数据。

决策表

状态转换

设计模式

解决方案

典型问题

设计分析

案例

策略模式

典型问题

单独一个策略类无法灵活地体现这个行为可能有的多种不同的复杂实现;无法动态调整拥有的不同的算法实现;也不方便添加新的算法实现。

设计分析

策略模式使用的设计原则

减少耦合 减少策略的使用类和策略的实现类直接的耦合

依赖倒置 策略的使用类依赖的是策略的接口,而非策略的实现类

抽象工厂

迭代器

单件

体系结构

体系结构设计

基本概念:软件体系结构={部件,连接件,配置}

部件是软件体系结构的基本组成单位之一,承载系统的主要功能,包括处理与数据

连接件是软件体系结构的另一个基本组成单位,定义了部件间的交互,是连接的抽象表示

配置是对形式的发展,定义了部件以及连接件之间的关联方式

一个软件系统的体系结构规定了系统的计算部件和部件之间的交互。

体系结构风格:主程序-子程序

面向对象式

分层

MVC 模型 视图 控制

详细设计

结构化 模块化

分解 耦合 内聚 低耦合高内聚

耦合描述的是两个模块之间关系的复杂程度

内聚表达的是一个模块内部的联系的紧密型

信息隐藏

抽象 信息隐藏

抽象出来的是接口 隐藏的是实现

面向对象

单一职责原则

信息与行为除了要集中之外,还要联合起来表达一个内聚的概念,而不是单纯的堆砌

访问耦合 迪米特法则 如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。

级联 级联是用来设计一对多关系的

接口分离原则 将一个统一的接口匹配为多个更独立的接口,避免不必要的耦合,实现接口最小化。

继承耦合 里氏替换原则:子类型必须能够替换掉基类型而起同样的作用

内聚

封装 接口和实现分离

开闭原则(OCP) 在发生变更时,好的设计只需要添加新的代码而不需要修改原有的代码,就能实现变更。

依赖倒置原则(DIP)

抽象不应该依赖于细节,细节应该依赖于抽象。因为抽象是稳定的,细节是不稳定的

高层模块不应该依赖于低层模块,而是双方都依赖于抽象。因为抽象是稳定的,而高层模块和低层模块都可能是不稳定的。

人机交互

基本概念:人机交互(Human-Computer Interaction HCI)是指关于设计、评价和实现供人们使用的交互式计算机系统,并围绕相关的主要现象进行研究的学科。主要是研究人与计算机之间的信息交换。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部