软件的生命周期
可行性分析与项目开发计划
确定软件开发目标和可行性,阶段主要文档有可行性分析报告和项目开发计划
需求分析
确定软件的功能,性能,数据和界面等要求,阶段主要文档有软件需求说明书
概要设计
设计软件结构,明确软件由哪些模块组成,阶段主要文档有概要设计说明书
详细设计
把功能描述转化成明确的、结构化的过程描述。即该模块的控制结构是怎样的,先做什么,后做什么,有什么条件判定等,并用根据把这些控制结构表示出来。阶段主要文档有详细设计文档
编码
测试
阶段主要文档:软件测试计划、测试用例和软件测试报告
维护
软件生存周期中最长的阶段
软件开发模型(软件过程模型)
典型的软件过程模型有瀑布模型,增量模型,演化模型(原型模型,螺旋模型),喷泉模型,基于构建的开发模型,形式化方法模型,统一过程模型等。
瀑布模型
结构化开发。
问题出在需求分析通常无法明确,通常用在需求明确或者二次开发的情况。
其他基本模型
快速原型开发工具 — 墨刀(先构造一个简易的系统,适合需求不明确的情况)
增量模型与螺旋模型
增量模型 — 迭代升级,边交付边迭代
螺旋模型集合了快速原型模型和增量模型的特点(书上是说结合了瀑布模型和演化模型的特点),另外与其他两个模型不同的是引入了风险分析过程
其他经典模型
V模型比较注重测试过程,在需求分析的阶段就确定验收测试和系统测试的测试计划,在概要设计确定集成测试的测试计划,在详细设计阶段确定单元测试的阶段。
瀑布模型,增量模型,快速原型模型和V模型都是结构化模型
喷泉模型是较早的面向对象的模型
RAD:快速开发模型,由瀑布模型(SDLC)和构件组装模型(CBSD)构成
构建组装模型
会生成一个构件库,使得软件开发的复用性强并且可靠性高
敏捷开发方法
一系列的开发方法和理念,比较适合中小型的项目。规模大的项目并不适合。
信息系统开发方法
结构化法是大的缺点是结构固化,一个环节的修改,往往可能涉及多个面。
结构化方法:代表瀑布模型
原型法:代表快速原型模型
面向对象方法:代表喷泉模型
面向服务(SO)方法:
SOA:面向服务架构
需求分析
需求分析原则
需求过程
- 需求获取
- 需求分析与协商
- 系统建模
- 需求规约
- 需求验证以及需求管理
需求分类与需求获取
系统设计
结构化设计
基本原则
内聚与耦合
表中内聚是从上到下,内聚程度越来越低,耦合是从上到下,耦合程度越来越高
系统结构/模块结构
软件测试
传统软件的测试策略
- 单元测试
- 集成测试
- 确认测试
- 系统测试
面向对象软件的测试策略
- 单元测试
- 集成测试
测试方法:
- 静态测试(人工检测和计算机辅助静态分析)
- 动态测试(黑河测试法和百盒测试法)
测试原则与类型
动态测试是利用计算机进行的,静态测试是没有利用计算机进行的,即手动点点点
测试用例设计
测试阶段
单元测试,测试每个单元(模块)的正确性
集成测试,测试的是单元间的衔接
确认测试,测试的是需求确认
McCabe复杂度
交叉位置可以计为结点,也可以不计为, 如上图的点5,6,8,11是可以省略的
系统运行与维护
系统维护主要包括硬件维护,软件维护和数据维护
软件过程改进 — CMMI
项目管理
主要分为软件项目估算,进度管理,软件项目的组织,软件配置管理和风险管理
重点:时间管理,风险管理
时间管理(进度管理)
甘特图和pert图
注:圆圈左侧数字是事件号,圆圈右上数字是最早开始时间,右下是最晚开始时间,箭头上的数据是事件持续时间
关键路径是图中从开始结点到结束结点的最长路径
解答:D,C
解题方法是先求出各个结点的最早开始时间,根据最后的结点的最晚开始时间逆推各个结点的最晚开始时间,如下图:
风险管理
试题
以下关于增量模型的叙述中,不正确的是( )。
增量模型又称为渐增模型,也称为有计划的产品改进模型,它从一组给定的需求开始,通过构造一系列可执行中间版本来实施开发活动。第一个版本纳入一部分需求,下一个版本纳入更多的需求,依此类推,直到系统完成。每个中间版本都要执行必需的过程、活动和任务。增量模型是瀑布模型和原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。比较瀑布模型、原型进化模型,增量模型具有非常显著的优越性。但增量模型对软件设计有更高的技术要求,特别是对软件体系结构,要求它具有很好的开放性与稳定性,能够顺利地实现构件的集成。增量模型有以下不足之处:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需要不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。一开始需求不清晰,会影响开发的进度,D选项错误。
本文链接: http://www.ionluo.cn/blog/posts/70e2e99f.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!