软考-软件设计师 软件工程

1.概述

1.1 软件生存周期

可行性分析与项目开发计划

需求分析:输出有  流图、实体联系图、数据字典

概要设计

详细设计

编码

测试

维护

1.2 软件过程

能力成熟度模型(CMM)

1.初始级

2.可重复级

3.可定义级

4.已管理级

5.优化级

能力成熟度模型集成(CMMI)

1.阶段式模型

初始的:过程不可预测且缺乏控制

已管理的:过程为项目服务

已定义的:过程为组织服务

定量管理的:过程已度量和控制

优化的:集中于过程优化

2.连续式

CL0(未完成的)

CL1(已执行的)

CL2(已管理的)

CL3(已定义级的)

CL4(定量管理的)

CL5(优化的)

2.软件过程模型

2.1瀑布模型

假设:一个待开发的系统需求是完整的、简明的、一致的,并且可以先于设计和实现完成之前产生

变体----> V模型

优点:容易理解、成本低;强调开发的阶段性早期计划及需求调查和产品测试

缺点:需求要完整、正确、清晰;开始的两三个阶段很难评估进度;接近结束时要大量集成和测试工作;直到项目结束才能演示系统

瀑布模型的需求或设计的错误只有到后期才能被发现,对于项目风险的控制能力较弱,导致延期、超预算

V模型

2.2增量模型

第1个增量往往是核心产品,每一个增量可以分别开发。

是瀑布模型的变种,具有瀑布的全部优点,且第一个可交付版本所需要的成本和时间很少;开发由小系统所承担的风险不大;第一个版本开发很快,减少用户需求变更;可哟仅对一两个增量投资

缺点:管理成本、进度和配置的复杂;需求变更,初始增量可能会造成后来增量的不稳定;需求不稳定完整,一些增量要重新开发发布

2.3 演化模型

迭代的过程模型,适合对软件需求缺乏准确认识的情况。

1.原型模型

原型模型适合用户需求不清、需求经常变化的情况,系统规模不大不复杂时适合。

迅速开发出一个让用户看得见摸得着的系统框架

e0c3ea580e6f4e1ab02bb233b058f69f.jpg

2.螺旋模型

将瀑布模型和演化模型结合,加入风险分析。

适合庞大、复杂、高风险的系统。

1cca34d891e744528bad0c5366e17c69.jpg

2.4喷泉模型

以用户需求为动力,以对象为驱动,适合面向对象的开发方法。

具有迭代性和无间隙性。各阶段没有明显的界线,开发人员同步进行。提高效率节省时间,不利于管理。要求严格管理文档,审核难度加大。

2.5基于构件的开发模型

2.6形式化方法模型

建立在严格数学基础上

2.7 统一过程(UP)模型

“用例和风险驱动,以架构为中心,迭代并且增量”,由UML方法和工具支持。

2.8 敏捷方法

尽可能早地、持续地对有价值的软件的交付,使客户满意。

1.极限编程(XP)

2.水晶法(Crystal)

每个项目需要一套不同的策略、约定和方法论,认为人对软件质量有很大影响

3.并列争求法(Scrum)

把30天一次的迭代作为一个“冲刺”,按优先级实现产品。

4.自适应软件开发(ASD)

565b810867134bb18d46dc5a23deec68.jpg

5.敏捷统一过程(AUP)

3. 需求分析

4.系统设计

4.1 概要设计

软件体系结构设计、数据设计、接口设计

4.2 详细设计

模块内数据结构和算法设计

5.系统测试

5.1 软件测试方法

静态测试:

人工检测、计算机辅助静态分析

动态测试

1.黑盒测试

等价类划分

边界值分析

错误推测

因果图

2.白盒测试

逻辑覆盖

语句覆盖:语句执行一次

判定覆盖/分支覆盖:每个判定式都过一次

条件覆盖 :每个逻辑条件的可能值至少满足一次

路径覆盖:所有路径都走一遍

循环覆盖

基本路径测试

5.2 调试

试探法

回溯法

对分查找法

归纳法

演绎法

5.3 维护

评价指标:可理解性、可测试性、可修改性

5.3.2 系统维护

包括硬件维护、软件维护、数据维护

软件维护:

正确性维护:17%~21%,系统开发阶段发生而测试阶段未发现的错误

适应性维护:18%~25%,适应技术变化和管理需求变化

完善性维护:50%~60%,增加一些在系统分析和设计阶段没有的功能和性能特征

预防性维护:4%,适应未来

5.4 项目估算

方法:

COCOMO模型:基本、中级、详细 是一种静态单变量模型

COCOMOII:估算选择有 :对象点、功能点和代码行

  • 应用组装阶段
  • 早期设计阶段模型
  • 体系结构阶段模型

5.5 进度管理

5.5.1 Gantt甘特图

水平条形图,以日历为基准描述项目任务。描述每个项目何时开始何时结束,任务的进展情况以及各个任务之间的并行性。但不能反映出各任务之间的依赖关系,难以确定项目关键,和有潜力的部分。

​​​​​​​  

5.5.2 PERT图

有向图,箭头表示任务。描述每个项目何时开始何时结束和任务所需时间,和任务之间的关系,以及关键路径,但不能表现并行关系。

cc040a00f96342daabc371005fbb554f.jpg

5.6 软件质量

ISO/IEC软件质量模型

4a8f961f4eeb40799ad85a6becbad55a.jpg

674c5c376fbf4d77817f688a8cef942c.jpg

5.7 复杂度

McCabe 度量法

V(G) = m - n + 2

m:弧数,n:结点数

5.8 风险

风险的优先级通常根据  风险暴露  设定

风险:

  • 项目风险:预算、进度、人员、资源和客户相关的问题
  • 技术风险:潜在的设计、实现、对接、测试
  • 商业风险:市场风险、策略风险、管理风险、预算等
  • 业务风险:产品没人要、失去预算或人员承诺的风险

定义风险参照水准是 风险评估 活动常用的技术

风险避免是最好的风险控制策略,放弃或不进行可能带来损失的活动或工作。

风险监控是指在决策主体的运行过程中,对风险的发展与变化情况进行全程监督,并策略调整

风险管理在风险环境将风险减到最低,风险可以规避不能消除

风险预测从两个方面评估风险,即风险发生的可能性以及风险发生所产生的后果

5.9 其他

配置管理是软件开发过程的重要内容:软件配置标识、变更管理、版本控制、系统控制、配置审核和配置状态报告

文档的特性:针对性、清晰性、精确性、完整、灵活、可追溯

配置数据库:开发库、受控库、产品库

系统开发人员和项目管理人员在项目期内进行沟通的文档主要有 项目开发计划(工作任务分解表、PERT、甘特图和预算分配表)

正式技术评审的目标是 发现软件中的错误

冗余附加技术包括:冗余备份程序恢复程序、实现错误检测和错误恢复的程序、实现容错软件所需的固化程序

  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值