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