软件基本知识
- 软件:
- 软件是指计算机程序及其他相关文档,是交付给客户的一整套解决方案。
- 软件=程序+文档
- 其他相关文档:是指用自然语言描述的有关这个软件的一些内容,如功能需求、软件设计、项目计划、项目报告、用户手册等。
- 文档的意义:通过文档,人们清楚地了解软件的功能结构、程序的设计思想、系统的运行环境、软件的操作方法,让人们更方便对软件进行使用和维护。
- 软件是指计算机程序及其他相关文档,是交付给客户的一整套解决方案。
- 软件的本质:
- 软件是人类思维程序化的体现
- 软件是人类思维程序化的体现
- 软件的分类:
- 应用程序
- 操作系统:
- 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。
- 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。
- 驱动程序
- 其他软件:
- 1.编译程序(Compiler,compiling program):也称为编译器,把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式的目标程序。
- 2.数据库(Database):按照数据结构来组织、存储和管理数据的仓库,用户可以对仓库中的数据进行增、删、改、查等操作。
- 1.编译程序(Compiler,compiling program):也称为编译器,把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式的目标程序。
- 应用程序
- 程序设计语言分类:
- 机器语言
- 汇编语言
- 高级语言
- 机器语言
- 软件研发概念:
- 软件的本质:
- 软件是人类思维的程序化体现。
- 软件是人类思维的程序化体现。
- 什么是编码:
- 为了解决某一个问题,将人脑的思路、方法用程序语言编写成代码的过程什么是
- 为了解决某一个问题,将人脑的思路、方法用程序语言编写成代码的过程什么是
- 软件开发:
- 软件开发不止是编程,是从版本计划、需求分析、软件设计、到代码的编写、调试的一系列过程。
- 软件开发不止是编程,是从版本计划、需求分析、软件设计、到代码的编写、调试的一系列过程。
- 什么是软件研发:
- 软件研发不止是软件开发,是从接到用户原始需求开始,到需求澄清、版本计划,需求分析、软件设计、UI设计、测试计划、测试设计、代码编写、测试执行,最终验收交付的整个全过程。所以,软件研发起码包括, 需求、设计、开发、测试。
- 软件研发不止是软件开发,是从接到用户原始需求开始,到需求澄清、版本计划,需求分析、软件设计、UI设计、测试计划、测试设计、代码编写、测试执行,最终验收交付的整个全过程。所以,软件研发起码包括, 需求、设计、开发、测试。
- 需求(Requirement):
- 来源于客户,由BA(产品经理)进行整理归纳,描述系统应该做什么的文档
- 来源于客户,由BA(产品经理)进行整理归纳,描述系统应该做什么的文档
- 需求分析/澄清:
- 学习需求,确定系统的运行环境、建立逻辑模型、确定系统的功能和性能要求
- 学习需求,确定系统的运行环境、建立逻辑模型、确定系统的功能和性能要求
- 需求变更 CR:
- 客户的需求总是在变化的
- 客户的需求总是在变化的
- 流程图:
- 以特定的图形符号加上说明,表示算法的图
- 以特定的图形符号加上说明,表示算法的图
- 开发设计(architect, design):
- 1)概要设计:建立系统总体结构、划分功能模块、定义各个功能模块的接口
- 2)详细设计:设计各个模块的具体实现算法,确定各个模块间的详细接口
- 1)概要设计:建立系统总体结构、划分功能模块、定义各个功能模块的接口
- 程序编码(coding):编写程序源代码、进行调试
- 部署(Deployment):将程序配置安装到网络硬件环境中,使之能够被用户使用
- 环境(Environment):程序运行所依赖的网络、硬件、服务、DB等的总称
- 接口:就是一系列已经过编译的,可被调用的函数库
- 软件的生命周期:
- 是指从需求分析开始一直到软件废弃的整个过程,包括需求-设计-编码-测试-上线-维护-升级-废弃
- 是指从需求分析开始一直到软件废弃的整个过程,包括需求-设计-编码-测试-上线-维护-升级-废弃
- 迭代:
- 在进行较大规模的项目任务时,将研发过程分为若干轮次,每轮次称为一个迭代,迭代都要经历从项目的计划、分析、设计、实现、报告的整个过程。
- 在进行较大规模的项目任务时,将研发过程分为若干轮次,每轮次称为一个迭代,迭代都要经历从项目的计划、分析、设计、实现、报告的整个过程。
- 软件的本质:
- 软件研发模型:
- 包括瀑布模型、V模型、螺旋模型、快速模型、敏捷模型等
- 瀑布模型:
- 瀑布模型的软件研发过程与软件生命周期一致,它由文档驱动,两相邻阶段之间存在因果关系,需要对阶段性的产品进行评审。将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了他们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。若某一阶段发现上一阶段产品不能满足要求, 则需返回重做。
- 瀑布模型的软件研发过程与软件生命周期一致,它由文档驱动,两相邻阶段之间存在因果关系,需要对阶段性的产品进行评审。将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了他们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。若某一阶段发现上一阶段产品不能满足要求, 则需返回重做。
- V模型:
- V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期
- V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期
- 敏捷模型:详细见上课图
- 敏捷模型是一种以人为核心、迭代、循序渐进的开发思想。在敏捷开发中,软件项目的研发被切分成多个阶段,各个阶段都具备可独立运行以及独立交付的特征。
- Scrum:敏捷的一种典型的管理实践。
- 敏捷模型是一种以人为核心、迭代、循序渐进的开发思想。在敏捷开发中,软件项目的研发被切分成多个阶段,各个阶段都具备可独立运行以及独立交付的特征。
- 包括瀑布模型、V模型、螺旋模型、快速模型、敏捷模型等
- 软件测试相关概念:
- 软件测试是软件研发的一部分,不只是找出软件错误的活动,更是软件研发每一环节中一系列质量活动的总称,包括研发过程改进和软件质量评定,软件测试人员是需要参与研发流程每一环节的关键角色。
- 1.为了发现程序中的错误,依据产品需求执行软件的全过程
- 2.保证软件研发过程中文档质量的过程
- 3.分析错误的产生原因和发生趋势,提出研发过程改进意见
- 4.未发现错误的测试也有价值,测试是评定软件质量的有效方法
- 1.为了发现程序中的错误,依据产品需求执行软件的全过程
- 软件测试对象:
- 测试的主要对象是程序,但不仅仅是程序,还包括软件研发各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档等
- 测试的主要对象是程序,但不仅仅是程序,还包括软件研发各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档等
- 软件测试的价值:
- 1. 质量检测:尽可能发现版本缺陷
- 2. 质量改进:完善软件研发的过程
- 3. 质量鉴定:证明版本是可以发布
- 4. 质量督导:提高团队能力成熟度
- 1. 质量检测:尽可能发现版本缺陷
- 测试人员应具备的技能:
- 快速学习需求、测试基础扎实、测试工具使用、代码写作能力
- 快速学习需求、测试基础扎实、测试工具使用、代码写作能力
- 软件测试的误区:
- 1.软件测试只是对程序的测试
- 2.软件测试在开发完成后进行
- 3.软件质量是测试人员的责任
- 4.软件发布后的缺陷是测试人员的错误(1.有但不全部是软件测试的错误2.评审环节没有发现漏测3.UAT为什么没有发现这些错误4.没有尽善尽美的测试)
- 5.软件测试对测试人员的技术要求不高
- 6.软件测试是测试的事与开发无关(1.需保证测试、BA、开发对需求理解达成一致 2.开发自测得保证质量 3.缺陷需要跟开发沟通修复)
- 1.软件测试只是对程序的测试
- 软件测试的流程:
- 一般而言,软件测试从项目确立时就应开始,前后要经过以下环节:
- 需求分析→测试计划→思维导图→测试设计→用例编写→测试环境搭建→测试执行→缺陷提交→回归测试→测试报告。
- 需求分析→测试计划→思维导图→测试设计→用例编写→测试环境搭建→测试执行→缺陷提交→回归测试→测试报告。
- 一般而言,软件测试从项目确立时就应开始,前后要经过以下环节:
- 软件测试是软件研发的一部分,不只是找出软件错误的活动,更是软件研发每一环节中一系列质量活动的总称,包括研发过程改进和软件质量评定,软件测试人员是需要参与研发流程每一环节的关键角色。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?