系统分析与设计
系统分析
目的:提交系统方案说明书!将现有系统的物理模型转化为目标系统的物理模型
系统分析步骤
物理模型 --> 逻辑模型 --> 具体化的物理模型
系统设计
系统设计基本原理
- 抽象:本质方面
- 模块化:可组合,分解和更换的单元
- 信息隐蔽:将程序拆分隐蔽的封装在一个单一的设计模块中
- 模块独立:高内聚,低耦合
步骤
概要设计:设计软件系统总体结构,数据结构及数据库设计,编写概要设计文档、评审
详细设计:模块内详细算法设计·数据结构设计,物理设计,其他设计(用户界面),编写详细设计说明书、评审
内聚耦合
内聚
耦合
模块设计
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9RLgKEL7-1668504410086)(结构化开发.assets/image-20221013145153116.png)]
需求分析
软件需求
按需求内容分类:
-
业务需求:宏观的功能需求
-
用户需求:每个用户的具体需求
-
系统需求:经过整合后,包括功能,性能,设计约束三方面
从客户角度分类:
- 基本需求:需求明确规定的功能
- 期望需求:客户认为理所当然的其他功能
- 兴奋需求:客户未要求的其他功能需求,会浪费项目开发时间和成本
软件需求分类:
- 功能需求:软件必须完成的基本动作
- 性能需求:系统响应速度、处理速度等
- 设计约束:受其他标准硬件限制等方面
- 属性:可用性,安全性,可维护性,可转移性
- 外部接口需求:用户接口,硬件接口,软件接口,通信接口
需求工程
需求分析方法
结构化分析SA
**自顶向下,逐步分解,是面向数据的,强调分析对象的数据流,**需要建立:
- 功能模型(数据流图)
- 行为模型(状态转换图)
- 数据模型(ER图)
- 数据字典(数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体)
缺点:人为的将系统分割开来,无法获取各个功能之间的关联情况;
- 根据加工规格说明和控制规格说明 进行程序设计
- 根据数据字典和实体关系图 进行数据设计
- 根据数据流图 进行接口设计和体系结构设计
测试基础知识
测试阶段
-
单元测试:桩模块(用来模拟被测试模块所调用的子模块测试)
-
集成测试
-
确认测试:
-
系统测试:系统性能测试
-
回归测试:软件修改错误后检查是否引入新的错误
测试策略
- 自底向上:测试模块后合并,优点:早教验证了底层模块
- 自顶向下:测试整个系统后逐步细分。优点:较早验证了系统的主要控制
- 三明治:自底向上+自顶向下,优点涵盖,缺点工作量大
测试类型
- 黑盒测试
- 白盒测试
- 灰盒测试
测试方法
- 路径覆盖测试
- 折半查找测试
- 语句覆盖测试
测试用例设计【常考】
黑盒测试用例:
- 等价类划分:一个测试用例代表一类条件
- 边界值划分:数据采用边界值
- 错误推测:
白盒子测试用例:
- 语句覆盖:所有语句都要执行
- 判定覆盖:所有判断分支都要执行
- 路径覆盖:所有路径都需要覆盖
维护
维护工具
- 版本控制工具
- 文档分析工具
- 开发信息库工具
- **逆向工程(从产品到设计的过程,在需求分析阶段进行)**工具
- 再工程工具
- 配置管理支持工具
维护类型
- 正确性:正在系统开发阶段已发生且未被发现的错误
- 适应性:应用软件适应信息技术变化和管理需求变化而进行的修改
- 完善性:扩充功能和改善性能的修改
- 预防性:为了适应未来软硬件环境的改变,主动做出的修改
系统可维护性的评价指标(软件质量特性)
- 易理解性
- 易测试性
- 易修改性
- 稳定性