Day01_软件基础

Day01_软件基础

1. 软件的概念

  • 软件: 程序 + 文档

  • 文档概念: 是交付给客户的一整套解决方案

  • 文档的意义:

    • 让使用者更好使用

    • 让运维更好的维护软件

2. 文档的类型

  • 开发文档

    • 开发文档包括: 《功能要求》、《投标方案》、《需求分析》、《技术分析》、《系统分析》、《数据库文档》、《功能函数文档》、《界面文档》、《编译手册》、《QA文档》、《项目总结》等。
  • 产品文档

    • 《产品简介》、《产品演示》、《疑问解答》、《功能介绍》、《技术白皮书》、《评测报告》
  • 管理文档

    • 《安装手册》、《使用手册》、《维护手册》、《用户报告》、《销售培训》等
  • 需求文档

  • 软件设计

  • 项目计划

  • 项目报告

  • 用户使用手册

3. 软件分类

  • 应用程序: 是为了满足用户特定的需求而研发的程序

  • 操作系统: 管理软件和硬件的一整套方案

    • PC:

      • Windows | Linux(服务器操作系统) | Mac
    • 移动端:

      • Android | 鸿蒙(管理软件和硬件的一整套操作系统) | IOS
  • 驱动程序: 连接操作系统和硬件的桥梁

  • 其他程序:

    • 编译程序: 用高级程序设计语言编写的源程序,翻译成等价的机器语言程序

    • 数据库: 按照数据结构来组织, 存储和管理数据的仓库(增删改查)

4. 程序设计语言

  • 高级程序语言:

    • 解释型语言 : 一边翻译, 一边执行
      • Python PHP JS
    • 编译型语言 : 先编译, 再执行
      • C语言 Java
  • 汇编语言: 将机器语言进行简单封装

  • 机器语言: 二进制代码

5. 软件研发

5.1 编码

概念 : 为了解决某个问题, 将人脑的思路, 方法, 用程序语言编写成代码的过程

5.2 软件开发
  • 流程 :
    • 版本计划
    • 需求分析
    • 软件设计
    • 编码
    • 调试
5.3 软件研发

概念 : 不只是软件开发, 是从需求澄清(分两个部分)、版本计划、需求分析、软件设计、UI设计、测试计划、测试设计、代码编写、测试执行、最终验收交付的全过程

  • 流程 :
    • 需求
    • 设计
    • 开发(编码)
    • 测试
    • 上线
    • 维护
    • 升级
    • 废弃
5.4 软件需求规格说明书(SRS)
  • 需求澄清(分两个部分)
    • 产品跟客户
    • 产品跟开发
5.6 开发设计
5.6.1 概要设计

概念 : 建立系统的总体结构, 划分功能模块, 定义各个功能模块的接口

5.6.2 详细设计

概念 : 设计各个模块的具体实现算法, 确定各个模块间接口的详细内容

  • 环境 : 网络 硬件 服务 数据库 操作系统
  • 部署 : 将程序配置安装到网络硬件环境中, 使他能被用户使用
  • 接口 : 是一系列已经被编译的, 可以被调用的函数库
    • 硬件接口 : HDMI USB
    • 软件接口 : 分为
      • 内部接口 :
      • 外部接口 :
5.7 软件的生命周期
  1. 需求
  2. 设计
  3. 开发(编码)
  4. 测试
  5. 上线
  6. 维护
  7. 升级
  8. 废弃
5.8 软件公司人员架构
  • 项目经理(PM)
  • 产品经理
  • 架构师
  • 需求分析师(BA)
  • UI(UE / UX / UCD)
  • 前端
  • 后端
  • 测试
    • QC(质量控制) - 控制结果
    • QA(质量保证) - 控制过程
  • 实施
  • 运维
5.9 软件架构
  • 客户端(CS架构: 更新时要更新客户端,使用自己的协议
  • 服务端(SS架构:
  • 浏览器(BS架构: 没客户端,不需要更新客户端,使用http协议

6. 项目

6.1 项目介绍
  • 一个项目一般会有十几个模块,一个模块大概十五个左右的接口
  • 开发和测试的比例,在国外1:2 - 1:5,国内相反
  • 每一千行代码,会有10-20个缺陷,好的开发可以保持在5个左右
  • 简单功能的测试,测试用例的数量一般在80-100;逻辑复杂的测试用例一般在30条;每个测试人员一天发现的bug数量在3-5个
  • 一个迭代(Sprint)的时间在1-2个月
6.2 项目的发布流程
  • 项目发布的话肯定是测试结束了的,然后测试这边会出一个测试报告,如果时间充足的话就会出一个详细的测试报告,如果时间比较急的话,我们会发一个邮件,邮件内容包含我们项目目前的一个质量,还有市面的一些问题是否达到了我们的发布标准,然后把邮件发送给相关人员,包含产品经理,开发,项目经理,告诉他们我们的产品达到了上线标准,可以上线了。之后开发会做一个新的上线的包,然后会给到相应的人员部署生产环境,然后我们测试会在生产环境在简单测试一下基本的功能有没有问题。如果没有问题就可以正常发布,如果有问题的话就需要做一个版本的回滚。

7. 软件研发的模型

1. 瀑布模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9RQOkw8R-1658884076160)(D:\typora\img\1652170604447.png)]

  • 上一阶段的结果 , 是下一阶段的输入
  • 相邻的两个阶段具有因果关系 , 可以反向验证上一阶段的结果
  • 上下次序固定 , 不可改变
  • 中间任何一个环节出错 , 都必须返回重做 , 代价极大
  • 优 点 :
    • 有利于大型项目的人员组织和管理
    • 有利于开发方法和工具的使用
    • 可以提高软件的质量和效率
  • 缺点 :
    • 收集需求的时间太长
    • 修改代价太大
2. 敏捷模型
  • 概念: 是一种以人为核心, 迭代、循序渐进的开发思想。在敏捷开发中 , 软件项目的研发被切分为多个阶段 , 各个阶段要具备独立运行 , 独立交付的特征, 敏捷模型有四大部分:概念、计划、实施、交付。

- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VKa7anyF-1658884076163)(D:\typora\img\1652173508524.png)]

  • 概念阶段:市场调研,可行性分析和风险评估

    计划阶段:立项,项目总体报告计划

    实施和交付阶段:分为多个sprit,每个sprit又分为多个build。在sprit阶段,要进行测试需求分析,测试设计和计划,每个sprit阶段里面的build需要完成编码、用例编写、搭建环境、冒烟测试、执行测试提交BUG修复BUG、缺陷回归、测试报告的过程,最后一个build结束后要进行版本回归,将之前的用例和BUG重跑一遍,通过后就进入到了sprit的交付阶段,交付阶段需要进行show BUG 和show CASE 用户UAT,所有sprit跑完以后进行产品回归,将之前所有的用例和BUG重跑一遍,进入到产品交付阶段,需要提交SHOW CASE 和SHOW bug 及用户UAT的东西。

  • Scrum : 是敏捷的一种典型的管理实践

    • 迭代 : 在进行较大规模的项目时 , 将研发过程分为若干轮次 , 每一个轮次都是一个迭代
    • 轮次 : 项目 -> 计划 -> 分析 -> 设计 -> 实现 -> 报告
    • 站立会 : 分享项目进度 , 交流问题
    • 看板 : 所有员工每天的工作任务, 问题和解决方法(哪些完成 , 哪些没完成 , 哪些实现了)
    • 用户故事 : 用户需求
    • 燃尽图 : 描述剩余工作的进度图
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值