软工复习资料

第一章

软件危机

软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
造成的原因:
     1.用户需求不明确
     2.缺乏正确的理论指导
     3.软件开发规模越来越大
     4.软件开发复杂度越来越高
     5.缺少有效的软件评测手段

软件工程概念

     软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

典型文档

     1.软件需求规格说明书:描述将要开发的软件做什么
     2.项目计划:描述将要完成的任务及其顺序;并估计所用时间及工作量
     3.软件测试计划:描述如何测试软件,确保软件应实现相应的功能并达到预期性能
     4.软件设计说明:描述软件的结构,包括概要设计和详细设计
     5.用户手册:描述如何使用软件

软件质量及其子特性

质量特性含义质量子特性
功能性软件所实现功能达到它设计规范和满足用户需求成度适应性、正确性、安全保密性
可靠性在规定时间和条件下能够完成工作的能力成熟性、恢复性、容错性
易用性为了使用该软件所需要的能力易理解、易学习、易操作
效率在规定的条件下用软件实现某种功能所需要的计算机资源有效性时间特性、资源特性
维护性当环境改变或软件运行发生故障时,为使其恢复正常所做努力的成度易分析性、易修改性、易测试性
可移植性软件从一环境转移到另一环境时努力成度适应性、易替换性

第三章

需求分析

需求分析:需求获取-需求分析-需求定义-需求验证
需求分析考虑的方面:
     完整性:每一项需求都应给出清楚的描述
     正确性:获取的每项需求必须准确无误的、并且要求需求定义无歧义性
     合理性:各需求之间、软件需求与系统之间应协调一致的,不应存在矛盾和冲突
     可行性:每个需求都应满足:技术可行性,经济可行性、社会可行性
     充分性:获取需求是否充分,全面,周到。

结构化分析方法

结构化分析方法:结构化分析方法是一种建模技术,该模型的核心是数据字典,包括在目标系统中使用和生成的所有数据对象。
     数据流图(DFD):描述系统中数据如何被传送和变换,以及描述如何对数据流进行变换的功能,用于功能建模
     实体-关系图(E-R):描述数据对象及数据对象的关系,用于数据建模
     状态-迁移图(STD):描述系统对外部事件如何响应,如何动作,用于行为建模

文件设计

以下几种适用于文件存储:
     1.数据量较大的非结构化数据。如多媒体信息
     2.数据量大,信息松散。如历史记录、档案文件等。
     3.非关系层次化数据。如系统配置文件。
     4.对数据存取速度要求极高的情况。
     5. 临时存放的数据。
     6.文件的组织方式:顺序文件、直接索引文件、分区文件、虚拟存储文件。

第六章

面向对象的三种模型:

     1.用例模型:由用例和场景表示的功能模型
     2.对象模型:由类和对象表示的静态模型
     3.交互模型:由状态图,顺序图等表示的动态模型

确认业务需求用例:

     1.从参与者的角度获取用例
     2.从系统功能的角度获取用例
     3.利用场景获取用例

建立对象模型五个层次

     1.主题层:划分主题
     2.类-对象层:确定类和对象
     3.结构层:确定结构
     4.属性层:确定属性
     5.服务层:确定服务

第七章

C/S体系结构和B/S体系结构各自优缺点

C/S体系结构由三部分组成:服务端-网络-客户端
三层体系结构将整个系统分为表示层、应用逻辑层、数据层三部分
C/S体系结构优缺点为:
优点
1 C/S架构的界面和操作可以很丰富。
2 安全性能可以很容易保证,实现多层认证也不难。
2.3 由于只有一层交互,因此响应速度较快。

缺点:

1.适用面窄,通常用于局域网中。
2.用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3. 维护成本高,发生一次升级,则所有客户端的程序都需要改变。

B/S体系结构由三部分组成:浏览器-网络-服务端
B/S架构优缺点:
优点:

1.客户端无需安装,有Web浏览器即可。
2.BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3.BS架构无需升级多个客户端,升级服务器即可。

缺点:

1.在跨浏览器上,BS架构不尽如人意。
2.表现要达到CS程序的程度需要花费不少精力。
3.在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
4.客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

设计模式

设计模式四要素:
1.模式名称:用于描述模式名字,说明模式问题、解决方案和效果。
2.问题:说明在何种场合使用模式。
3.解决方案:描述设计的组成成分、他们之间的相互关系、各自的职责和合作方式。
4.效果:描述模式使用效果,及使用模式应当权衡的问题。

第八章

面向对象设计过程

1.建立系统环境模型
2.设计系统体系结构
3.对各自子系统进行设计
4.对象设计及优化

第十章

白盒测试与黑盒测试

黑盒测试:
已知产品的功能设计规格,通过测试证明每个实现了的功能是否符合要求。
黑盒顾名思义就是不知道内部执行原理,通过外部使用说明,对功能进行测试,看功能是否满足要求,黑盒测试的目的就是发现是否有遗漏或者不正确的功能。
黑盒测试的用例设计:
1.等价类划分:将数据分为有效等价类和无效等价类如输入数据范围为[0,1],可以划分为一个有效等价类和两个无效等价类。(-无穷,0)[0,1] (1, +无穷)三个等价类
2.边界值分析:如果测试数据规定了值范围则应取刚达到这个范围的边界值,以及刚好超过这个范围边界值的数据进行测试。
白盒测试:
已知产品的内部工作过程,通过测试每种内部操作是否符合设计规格要求。
白盒顾名思义就是已知内部逻辑,设计专门针对内部逻辑的测试用例对软件进行测试通过在不同点检查程序状态确认实际的状态是否与预期相同。白盒测试又称为结构测试或者逻辑驱动测试。
白盒测试用例设计:
1)语句覆盖:设计若干个测试用例,运行被测试程序,使得每一个可执行语句至少执行一次。语句覆盖是最弱的逻辑覆盖
2)判定覆盖:设计若干个测试用例,运行被测试程序,使得程序中每个判断的取真分支和取假分支最少执行一次。
3)条件覆盖:设计若干个测试用例,运行被测试程序,使得程序中每个判断的每个条件的可能取值最少执行一次。
4)判定-条件覆盖:设计若干个测试用例,运行被测试程序,使得程序中每个条件的所以可能取值至少执行一次,同时每个判断本身的所以可能判断结果至少执行一次。
5)条件组合覆盖:设计若干个测试用例,运行被测试程序,使得每个判断的所有可能的多个条件取值组合至少执行一次。
6)路径覆盖:设计若干个测试用例,运行被测试程序,覆盖程序中所有可能的路径。

第十一章

软件维护

定义:在软件运行/维护阶段对软件产品所进行的修改就是所谓的维护。
软件维护活动分类:
1)改正性维护:主要是修改在运行阶段暴漏出的错误
2)适应性维护:使软件适应外部环境的变化所作的维护
3)完善性维护:为了满足用户新提出的需求或性能要求所作的维护
4)预防性维护:为了提高软件的可维护性可靠性所做的维护

软件维护的策略:

1、改正性维护
1)使用新技术提升软件可靠性,减少改正性维护的需要
2)利用应用软件包
3)使用结构化技术
4)防错性程序设计:把自检能力引入程序,通过非正常状态的检查,提供审查追踪。
5)进行周期性维护审查

2、适应性维护
1)在配置管理时,把硬件、操作系统和其他相关环境因素的可能变化考虑在内,可以减少某些适应性维护工作量。
2)把与硬件、操作系统以及其他外围设备有关的程序归到特定的程序模块中,可把因环境变化而必须修改的程序局部于某些程序模块中。
3)使用内部程序列表、外部文件以及处理的例行程序包,可为维护时修改程序提供方便。
4)使用面向对象技术,增强软件系统稳定性,易于修改和移植。

3、完善性维护
做好上述两点维护可以减少这一类维护,此外建立软件系统的原型,把它在实际系统开发之前提供给用户,用户通过研究原型,进一步完善他们的功能要求,可以减少以后完善性维护的需要。

软件维护性

定义:软件维护性是指当对软件进行各种类型的维护修改时,软件产品可被修改的能力。

软件维护性的子特性:
易分析性:软件产品被诊断出含有缺陷或发现了失效的原因,或是能被找到要修改部位的能力。
易变更性:软件产品使规定的修改能够实现的能力。
稳定性:软件产品避免因修改带来不希望产生的影响的能力。
测试性:被修改软件的被确认能力
维护符合性:软件符合与维护相关的标准或约定的能力

第十二章

CMMI模型两种表示

1、分级式表示的成熟度等级
1)初始级:处于初始级软件组织其过程处于无序状态,许多工作充满了任意性。
2)已管理级:已初步实施了项目管理是这一等级的主要特点,这包括已能按组织的方针对软件进行策划,并能按已制定的计划执行。
3)已定义级:过程已获得很好的说明和解释,并且对标准、规程、工具和方法进行了描述。
4)已量化管理级:组织和项目对质量和过程制定了量化目标,并以此作为管理过程的标准。
5)持续优化级:基于对过程具有偏差的共同原因的量化理解,处于优化级的组织可持续的改进自己的过程。

2、连续式表示的能力等级
1)不完整级:不完整级的过程没有实施或只是部分实施了过程改进,过程域的特定目标未得到满足,也就谈不到制度化的要求。
2)已执行级:已执行级的过程能满足该过程域的特定目标。虽然开展了一些重要的改进,但因不能做到制度化,其改进的成效也就无法保持。
3)已管理级:能根据方针制定计划,并且计划能够得以执行;聘用能够胜任工作的人员,保证能获得受控的结果。
4)已定义级:已定义级的过程是按照组织的裁剪指南对标准过程进行裁剪而得到的并且要把过程中的产品、测量数据以及过程改进信息提供给组织的过程资产。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值