软件基本知识

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