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