软件基础的理论(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:实践

posted @ 2022-08-04 16:39  小胖子学编程  阅读(299)  评论(0编辑  收藏  举报