目录
1. 需求工程
需求开发是主线,是目标;需求管理是支持,是保障。
1.1 需求开发
包括需求获取、需求分析、编写需求规格说明书(需求定义)、需求验证 4个阶段。
-
需求开发的工作:问题识别、分析和综合、编制需求分析文档、需求分析与评审 。
-
需求开发的原则
-
需求分类:功能需求、非功能需求、设计约束,其他:业务需求,用户需求,系统需求
-
详细步骤:
-
需求获取
主要技术:用户访谈、用户调查、现场观摩、阅读历史文档、联合讨论会
-
需求分析
方法有:结构化分析方法、面向对象分析方法、面向问题域分析(PDOA, Problem Domain Oriented Analysis)。-
业务流程分析
-
数据流图:数据流图是结构化分析中的重要方法和工具,是表达系统内数据的流动并通过数据流描述系统功能的一种方法。
DFD中有四种基本符号:数据流、加工、数据存储、外部实体 。
数据流式具有名字和流向的数据,用标有名字的箭头表示;加工是对数据流的变换,用圆圈表示;数据存储是可访问的存储信息,用直线段表示;外部实体是位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分。
-
-
-
数据字典:对数据流图中所有元素的定义的集合,是关于数据的信息的集合。
-
数据流设计
-
数据元素字典设计
-
数据处理字典设计
-
数据结构字典设计
-
数据存储字典设计
-
对加工的描述:结构化语言、判定树、判定表
-
-
-
需求定义
-
严格定义方法
-
原型方法
-
软件需求说明书
-
-
需求验证
-
1.2 需求管理
包括定义需求基线、处理需求变更、需求跟踪 。
1.3 需求分析方法
-
结构化分析方法
-
软系统方法
-
面向对象分析方法
-
面向问题域分析
2. 软件设计
从工程管理的角度看,软件设计可分为概要设计和详细设计两个阶段。概要设计也称为高层设计或总体设计,即将软件需求转化为数据结构和软件的系统结构。详细设计也称为底层设计,即对结构图进行细化,得到详细的数据结构与算法。
2.1 软件设计活动
数据设计、软件结构设计、人机界面设计、过程设计。
2.2 结构化设计
-
抽象化:过程的抽象、数据抽象、控制抽象。
-
模块独立
-
信息隐藏
-
自顶向下、逐步求精
2.3 工作流设计
-
工作流与BPR
-
工作流机
-
以工作流实现ERP和OA集成
3. 软件测试
3.1 测试类型
-
动态类型
-
黑盒测试:等价类划分、边界值分析、错误推测、因果图
-
白盒测试:逻辑覆盖、循环覆盖、基本路径法、灰盒法
-
-
静态测试
-
桌前检查
-
代码审查
-
代码走查
-
3.2 测试阶段
-
单元测试
-
集成测试
-
确认测试
-
内部确认测试
-
Alpha测试
-
Beta测试
-
验收测试
-
-
系统测试
3.3 性能测试
-
负载测试:指数据在超负荷环境中运行,程序是否能够承担。
-
强度测试:在系统资源特别低的情况下考察软件系统运行情况。
-
容量测试 :确定系统可处理的同时在线的最大用户数等。
4. 软件维护
4.1 分类
-
改正性维护
-
适应性维护
-
完善性维护
5. 软件开发环境和工具
5.1 软件开发环境
-
环境机制:提供工具集成机制(数据集成、控制集成、界面集成)和方法机制。
-
环境信息库:存储软件工程项目在生存周期中的全部信息,是软件开发环境的核心
-
过程控制和消息服务
-
用户界面规范
-
-
工具集:系统规划工具、项目管理工具、支撑工具、分析设计工具、程序设计工具、测试工具、原型建造工具、维护工具和框架工具等。
5.2 软件开发工具
-
建模工具
-
设计工具
-
编程工具
-
测试工具
-
项目管理工具
参考
- 《系统架构师》
关于作者:
犇叔,浙江大学计算机科学与技术专业,研究生毕业,而立有余。先后在华为、阿里巴巴和字节跳动,从事技术研发工作,资深研发专家。主要研究领域包括虚拟化、分布式技术和存储系统(包括CPU与计算、GPU异构计算、分布式块存储、分布式数据库等领域)、高性能RDMA网络协议和数据中心应用、Linux内核等方向。
专业方向爱好:数学、科学技术应用
关注犇叔,期望为您带来更多科研领域的知识和产业应用。
内容坚持原创,坚持干货有料。坚持长期创作,关注犇叔不迷路