软件基础的理论(1)
软件基础的理论
一, 什么是软件产品
它是一个逻辑产品,没有实体,包括程序,文档和数据,需要通过终端设备才能体现出来功能和作用
二, 软件产品的中间过程文档
客户需求
产品需求
需求规格
项目计划
版本计划
技术选型报告
竞争对手调研报告
概要设计
详细设计
测试计划
测试方案
测试用例
测试报告
缺陷跟踪单
三, 完成软件的角色有哪些
产品经理(PM):需求调研,客户对接,输出需求文档
项目经理(PM):项目计划,进度把控,重大事件决策,人员调度,风险管理,协调团队
架构师(FD): 技术选型,技术专家,关键模块实现
程序员(FG):设计,编码,修复bug
测试工程师(TE): 找出软件中存在的bug并提交
四, 软件产品的开发过程
软件产品从最初的构思到最后的版本发行的过程
五, 常见的开发模型
瀑布模型,敏捷开发模型,V模型,W模型,X模型,H模型,螺旋模型
1,瀑布模型的流程:项目计划-需求分析-软件计划-程序开发-软件测试-集成维护
- 特点:线性结构,各阶段都具有里程碑的意义,文档驱动,阶段评审机制
- 优点:提供了一个软件开发的基本框架,有利于大规模软件开发和管理,有利于开发方法和工具的使用,提高了软件的质量和效率
- 缺点:开发时间拉得太长,错误修改成本太高了
2, V模型
3, W模型
4,敏捷迭代模型
站会(晨会):
三个问题: 昨天做了什么、今天要做什么、遇到了什么问题
时间控制在15分钟内
不需要实际去解决问题(会后的事情)
产品负责人(PO): 指定产品发布日期和内容,有权接受或拒绝开发成果
流程管理员(SM): 负责整个开发过程的流程管理,打通开发和客户之间的沟通壁障
开发团队(ST): 根据规定流程完成开发工作,不同人负责不同的技术实现、工作方式不拘于形式,只要能完成目标即可.
六, 软件开发过程模型的目的
- 使软件满足客户的需求
- 提高产品质量,降低开发成本
- 项目可管理,进度可控
- 作为测试 ,运用自身的技能,尽量协助创造完美的软件
七, 软件的生命周期
需求-设计-编码-测试-维护-升级-废弃
八, 软件质量的定义:反应实体满足或隐含需要的能力的特性总和
九, 软件质量模型
六大特性:功能性,可靠性,易用性,效率,维护性,可移植性
(1) 功能性: 功能性是指当软件在指定条件下使用,软件产品满足明确和隐含要求功能的能力
(2) 可靠性:在规定的时间下,规定的条件下完成规定功能的能力
(3) 易用性:易理解,易学习,易使用,吸引用户
(4)效率性:对于资源利用情况,软件提供适当的性能的能力
(5)维护性:四规定,在规定条件下、规定时间内、使用规定方法或工具修复规定功能的能力
(6)可移植性:从一种环境迁移到另一种环境的能力
十, QA和QC的区别
(1) QA:主要从事事先的质量保证活动,以预防为主,减少降低错误的发生的几率
(2) QC:主要从事事后的质量检查活动,期望发现并报告问题
(3) QA偏向与质量管理体系和维护,质量培训,认证体系审核,QC便向与质量检测和控制
(4) QA的工作涉及全流程所有部门,范围较广,QC主要集中在质量检验这一方面
十一, CMMI:软件能力成熟度模型综合
(1)分为五个等级
- 第一级:初始级
- 第二级:受管理级
- 第三级:已定义级
- 第四级:定量管理级
- 第五级:持续优化级
(2)PA:过程域(一类实践的集合)
(3)Goal:目标
(4)Practice:实践