文章目录
0x01 软件生命周期概念
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。
软件生命周期过程:
- 问题定义
- 可行性分析
- 总体描述
- 系统设计
- 编码
- 调试和测试
- 验收与运行
- 维护升级到废弃等阶段
也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。
0x02 软件生命周期阶段
可行性研究阶段
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
需求分析阶段
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
需求分析阶段是一个很重要的阶段,也是在整个软件开发过程中不断变化和深入的阶段,能够为整个软件开发项目的成功打下良好的基础。
软件设计阶段(概要设计和详细设计)
根据需求分析的结果,对整个软件系统进行设计。
软件编码阶段
是将软件设计的结果转换成计算机可运行的程序代码。
在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
软件测试阶段
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
软件运行和维护阶段
是软件生命周期中持续时间最长的阶段,包括纠错性维护和改进性维护两个方面。
0x03 软件开发生命周期
软件开发生命周期是在一些书上提到的名词,作用和软件生命周期非常相似,英文是 Software Development Life Circle,简称SDLC。
流程一般为:
- 收集需求
- 设计
- 开发
- 测试
- 维护
0x04 工作说明书
通常在给客户开发软件时,会用到工作说明书
工作说明书,简称SOW,是对项目所要提供的产品或服务的叙述性的描述。
- 对内部项目而言,项目发起者或投资人基于业务需求,或产品或服务的需求提出工作说明书。
- 对外部项目而言,工作说明书作为投标文档的一部分从客户那里得到。
0x05 工作分解结构
工作分解结构(简称WBS)是把一个项目,按一定的原则分解,项目分解成任务,任务再分解成一项项工作,再把一项项工作分配到每个人的日常活动中,直到分解不下去为止。
在很多考试中,最小的分解结构叫工作包。
工作分解结构以可交付成果为导向,对项目要素进行的分组,它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义。WBS总是处于计划过程的中心,也是制定进度计划、资源需求、成本预算、风险管理计划和采购计划等的重要基础。
项目管理协会 (PMI) 项目管理知识手册 (PMBOK) 将工作分解结构WBS定义为:
“项目团队将要执行的工作的面向可交付成果的层次分解”。
WBS 有两种类型:
-
基于可交付成果
-
基于阶段
最常见和首选的方法是基于可交付成果的方法。两种方法之间的主要区别在于WBS 第一级中确定的要素。
构建工作分解结构
-
收集关键文件
收集关键的项目文件,并识别包含项目可交付成果的内容,例如项目章程、范围管理说明书和项目管理计划等。 -
识别团队成员
确定项目团队成员。 -
定义一级元素
定义一级元素。级别一元素是必须涵盖 100% 项目范围的可交付成果摘要描述。
验证 100% 的范围被捕获,此要求通常称为100% 规则。 -
分解元素
开始将一级可交付成果分解为独特的较低级别可交付成果的过程。
继续分解工作,直到每个元素所涵盖的工作由单个个人或组织管理。确保所有元素都是互斥的。 -
创建 WBS 字典
定义WBS 词典的内容,WBS 词典是对 WBS 中每个要素所涵盖工作的叙述性描述。WBS 中最低级别的元素称为工作包。
在工作包级别创建足够详细的 WBS 字典描述,以确保涵盖 100% 的项目范围。描述应包括边界、里程碑、风险、所有者、成本等信息。 -
创建甘特图时间表
将工作包分解为适当的活动。
将工作分解结构导出或输入到甘特图中,以进行进一步的调度和项目跟踪。
0x06 软件创建过程中隐私保护级别
P1 高度隐私风险
包括个人可识别信息PII
PII 可以单独使用或与其他相关数据结合使用来识别个人,并且可以包含可以唯一识别个人的直接标识符,例如护照信息或可以与其他准标识符结合的准标识符,例如种族。标识符,如出生日期,以成功识别个人。
保护 PII 对于个人隐私、数据隐私、数据保护、信息隐私和信息安全至关重要。窃贼只需少量个人信息,就可以以个人名义创建虚假账户、承担债务、制作伪造护照或将个人身份出售给犯罪分子。
由于个人的个人数据每天都被记录、跟踪和使用——例如在指纹生物特征扫描和用于解锁设备的面部识别系统中——保护个人身份和他们独有的任何识别信息变得越来越重要。
P2 适度隐私风险
包括一次性的用户数据匿名传输
P3 低度隐私风险
在产品和服务中,没有影响隐私隐私的行为存在
0x07 测试阶段
-
单元测试
个体组件位于一个受控的环境中,编程人员在这里确认数据结构、逻辑和边界条件。 -
集成测试
验证组件是否按设计规范中概述的那样协同工作。 -
验收测试
确保代码满足客户的需求。 -
回归测试
进行系统变更后重新测试,以确保功能性、性能和保护级别。
References
www.workbreakdownstructure.com/