软件设计师:系统开发基础

本文最后更新于:2 个月前

课程地址

https://www.bilibili.com/video/BV1Eb411W7kc?p=139

思维导图

系统开发基础

  • 软件开发模型
  • 信息系统开发方法
  • 需求开发
  • 结构化设计
  • 软件测试
  • 系统运行与维护
  • 软件过程改进-CMMI
  • 项目管理

软件开发模型

软件开发模型

瀑布模型(SDLC) 结构化的典型代表

适用于需求明确的项目或二次开发

缺点:开发过程中需求不明确容易推翻已编码设计的过程,导致软件项目失败

瀑布模型

其他经典模型1

原型模型

针对需求不明确的情况,运用于需求分析阶段。构建一个简易的系统(Demo)给用户演示,利于获取用户的需求

演化模型

从原型基础上经过多轮演化为最终产品

增量模型

原型模型思想 + 瀑布模型思想

优先开发重要的部分(核心模块)给用户使用,再逐步添加其他功能

螺旋模型

由多个模型组成,引入了风险分析(最重要特征)

以风险为驱动,有利于防范风险

螺旋模型

V模型

V模型强调测试贯穿开发过程始终

需求分析阶段需要写验收测试与系统测试的测试计划,发现需求设计过程中产生的问题

概要设计阶段(模块划分)需要写模块之间的集成测试的测试计划,发现模块划分的问题

详细设计阶段需要写模块的单元测试的测试计划

其他经典模型2

喷泉模型 面型对象模型

构件组装模型(CBSD)

极大提高软件开发的复用性

构件组装模型(CBSD)

RAD模型 快速地构建应用系统

瀑布模型(SDLC)+构件组装模型(CBSD)

敏捷开发方法

局限性:只适用于小型项目(小步快跑)

敏捷开发方法

信息系统开发方法

信息系统开发方法

结构化法:流程固化不灵活

需求开发

需求分类与需求获取

结构化设计

基本原则

结构化设计的基本原则

内聚与耦合

内聚与耦合

系统结构/模块结构

系统结构/模块结构

软件测试(必考,主要出现在上午)

测试的原则及类型

测试的原则(思想)及类型

测试用例设计

测试用例设计

  • 黑盒测试

等价类划分:把所有的数据类进行汇总,一个范围只取一个,例如:优(95)、良(88)、及格(63)、不及格(8)

边界值分析:边界值、边界值+1、边界值-1,常与等价类划分结合

错误推测法:经验法

因果图:由果推因

  • 白盒测试

语句覆盖:测试用例走过程序中的所有语句

判定覆盖:所有判定的真假分支都要走一遍

条件覆盖:判定中的多个条件的分支也要都走一遍

路径覆盖:所有可行的路径都覆盖一遍

测试阶段

测试阶段

单元测试:关注模块,测试局部的功能、数据结构、相关接口

集成测试:将各个模块联合起来一次测试,测试模块之间的衔接手否有问题。

  • 一次性组装

  • 增量式组装:发现问题更加全面

确认测试:确认需求是否得到满足

系统测试:偏重于压力、性能测试

  • 压力测试:在极限值时的表现,会不会崩溃

  • 负载测试:不同负载下的性能表现

  • 强度测试:在系统异常时的应对情况

冒烟测试:修改后,初步检测是否有缺陷,没有回归测试全面

McCabe复杂度(重要)

环路复杂度:V(G)(环路个数) = m(有向弧数)) - n(节点数) + 2

McCabe复杂度

系统运行与维护

系统运行与维护

  • 改正性维护:修正bug

  • 适应性维护:适配操作系统、数据环境的变化

  • 完善性维护:扩充功能,改善性能

  • 预防性维护:重构、文档健全

软件过程改进-CMMI

CMM:能力成熟度模型

衡量软件开发商改善软件质量的能力

CMMI:能力成熟度模型集成

软件过程改进-CMMI

成熟度等级(利于推广)(选择题)

  • 1:混乱级 默认

  • 2:已管理级 个人经验、项目级

  • 3:已定义级 组织化、文档化、标准化

  • 4:定量管理级 量化管理

  • 5:优化级:持续优化

连续式分组(更适用于企业)

项目管理(1-2分)

项目管理

时间管理 Gantt图和PERT图

时间管理

风险管理

风险管理