软件中级设计师 - 结构化开发

系统分析与设计

系统分析

目的:提交系统方案说明书!将现有系统的物理模型转化为目标系统的物理模型

系统分析步骤

物理模型 --> 逻辑模型 --> 具体化的物理模型

系统设计

系统设计基本原理

  • 抽象:本质方面
  • 模块化:可组合,分解和更换的单元
  • 信息隐蔽:将程序拆分隐蔽的封装在一个单一的设计模块中
  • 模块独立:高内聚,低耦合

步骤

概要设计:设计软件系统总体结构,数据结构及数据库设计,编写概要设计文档、评审

详细设计:模块内详细算法设计·数据结构设计,物理设计,其他设计(用户界面),编写详细设计说明书、评审

内聚耦合

内聚

软件中级设计师 - 结构化开发_第1张图片

耦合

软件中级设计师 - 结构化开发_第2张图片
软件中级设计师 - 结构化开发_第3张图片

模块设计

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9RLgKEL7-1668504410086)(结构化开发.assets/image-20221013145153116.png)]

需求分析

软件需求

按需求内容分类:

  • 业务需求:宏观的功能需求

  • 用户需求:每个用户的具体需求

  • 系统需求:经过整合后,包括功能,性能,设计约束三方面

从客户角度分类:

  • 基本需求:需求明确规定的功能
  • 期望需求:客户认为理所当然的其他功能
  • 兴奋需求:客户未要求的其他功能需求,会浪费项目开发时间和成本

软件需求分类:

  • 功能需求:软件必须完成的基本动作
  • 性能需求:系统响应速度、处理速度等
  • 设计约束:受其他标准硬件限制等方面
  • 属性:可用性,安全性,可维护性,可转移性
  • 外部接口需求:用户接口,硬件接口,软件接口,通信接口

需求工程

需求分析方法

结构化分析SA

**自顶向下,逐步分解,是面向数据的,强调分析对象的数据流,**需要建立:

  • 功能模型(数据流图)
  • 行为模型(状态转换图)
  • 数据模型(ER图)
  • 数据字典(数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体)

缺点:人为的将系统分割开来,无法获取各个功能之间的关联情况;

  • 根据加工规格说明和控制规格说明 进行程序设计
  • 根据数据字典和实体关系图 进行数据设计
  • 根据数据流图 进行接口设计和体系结构设计
测试基础知识

测试阶段

  • 单元测试:桩模块(用来模拟被测试模块所调用的子模块测试)

  • 集成测试

  • 确认测试:

  • 系统测试:系统性能测试

  • 回归测试:软件修改错误后检查是否引入新的错误

测试策略

  • 自底向上:测试模块后合并,优点:早教验证了底层模块
  • 自顶向下:测试整个系统后逐步细分。优点:较早验证了系统的主要控制
  • 三明治:自底向上+自顶向下,优点涵盖,缺点工作量大

测试类型

  • 黑盒测试
  • 白盒测试
  • 灰盒测试

测试方法

  • 路径覆盖测试
  • 折半查找测试
  • 语句覆盖测试

测试用例设计【常考】

黑盒测试用例:

  • 等价类划分:一个测试用例代表一类条件
  • 边界值划分:数据采用边界值
  • 错误推测:

白盒子测试用例:

  • 语句覆盖:所有语句都要执行
  • 判定覆盖:所有判断分支都要执行
  • 路径覆盖:所有路径都需要覆盖
维护

维护工具

  • 版本控制工具
  • 文档分析工具
  • 开发信息库工具
  • **逆向工程(从产品到设计的过程,在需求分析阶段进行)**工具
  • 再工程工具
  • 配置管理支持工具

维护类型

  • 正确性:正在系统开发阶段已发生且未被发现的错误
  • 适应性:应用软件适应信息技术变化和管理需求变化而进行的修改
  • 完善性:扩充功能和改善性能的修改
  • 预防性:为了适应未来软硬件环境的改变,主动做出的修改

系统可维护性的评价指标(软件质量特性)

  • 易理解性
  • 易测试性
  • 易修改性
  • 稳定性
数据流图DFD

软件中级设计师 - 结构化开发_第4张图片

你可能感兴趣的:(软件设计师中级考试,【结】,软考)