一.今日学习内容
A.软件研发概念
a.软件概念
1.软件指计算机程序及其他相关文档,是交付给客户的一整套解决方案
2.软件=程序+文档
3.文档包括:功能需求,软件设计,项目计划,项目报告,用户手册
4.文档的意义:通过文档,可以让人们清楚的了解软件的结构、程序的设计思想、软件的运行环境等等,让人们能更好的对软件进行使用和维护
b.软件的分类
1.应用程序:为了解决用户的特定需求而研发的程序
2.驱动程序:连接操作系统和硬件之间的桥梁
3.操作系统:管理软件和硬件的一整套系统程序
4.其他程序:
1)编译程序:也叫做编译器,把用高级程序设计语言编写的源代码转化为等价的二进制机器语言的目标程序
2)数据库:按照数据结构来存储管理数据的仓库,用户可以对数据库中的数据增删改查
c.程序设计语言
1.高级语言
1)解释型语言:JavaScript ,Python,php
2)编译型语言:Java,C++,C#
2.低级语言
1)汇编语言:对机器语言进行简单封装,方便用户更好编写程序
2)机器语言:二进制语言,计算机底层只识别二进制
d.什么是编码
为了解决某一个问题,将人脑四路想法用程序语言编写成代码的过程
e.什么是软件开发
软件开发不止是编码,是从版本计划,需求分析,软件设计,到代码编写调试整个过程
f.什么是软件研发
1.软件研发不仅仅包括软件开发,是从接到用户的原始需求开始到需求澄清,版本计划,需求分析,软件设计,UI设计,测试计划,测试设计,代码编写,测试执行,最终验收交付的整个流程
2.软件研发起码包括:需求,设计,开发,测试,交付
g.需求的相关概念
1.需求来源于用户,由产品经理进行归纳整理描述系统应该做什么的文档
2.SRS:用户需求规格说明书
3.需求分析/需求澄清:学习需求,确定系统的运行环境,建立逻辑模型,确定系统的功能和性能需求
h.开发设计
1.概要设计:建立系统的总体结构,划分功能模块,定义各模块之间的交流方式
2.详细设计:设计各模块的具体实现,确定各模块之间交流的详细内容
i.部署
将程序配置安装到网络硬件环境中,使之能被用户使用
j.环境
程序运行所依赖的网络,硬件,服务,数据库
j.接口
1.硬件:USB,TYPE-C,HTML
2.软件
1)内部:软件内部信息交流(VIP视频)
2)外部:12306买票,跳转微信支付
l.软件公司的人员架构
1.项目经理 2.产品经理 3.架构师 4.需求分析师 5.UI设计师 6.开发dev 7.测试和QA 8.实施工程师 9.运维工程师
B.软件研发模型
a.瀑布模型
1.瀑布模型是种线性的有顺序的软件开发模型
2.瀑布模型的流程:计划-需求分析-设计-编码-测试-运维
3.特点:上一阶段是下一阶段的输入,每个环节不能改变顺序,如果中间一部分出错要返回重做
4.优点:有利于大型项目开发过程中的人员组织管理,利于开发方法,工具的选择,提高软件质量效率
5.缺点:收集需求时间长,要在初始阶段收集全部需求,否则中间更改付出的代价会比较大
b.敏捷模型
1.概念:敏捷模型是一种以人为核心,循序渐进,迭代的开发思想,在敏捷开发中,软件项目的研发被切分为多个阶段,各个阶段都具有独立交付和独立运行的特征
2.Scrum:敏捷的一种典型的管理实践
3.站立会:每天早晨15分钟的站会,分享进度以及问题
4.看板:包括开发的完成情况,哪些是未完成、哪些是正在完成、哪些是已完成
5.用户故事:就是用户的需求点
6.燃尽图:其实就是进度图,横轴是时间,总轴是工作量
c.基于敏捷的研发流程
|