1.软件开发模式
1.瀑布模型:线形的、单向的(六个阶段:需求分析、系统设计、程序设计、编码、测试、运行及维护,每个阶段分别对应的是:系统设计书、程序设计书、程序清单、测试报告、维护报告,改进的系统),它有优点和缺点。
2.快速原型模型:建造一个快速原型,实现客户未来的用户与与系统的交互,进行评审然后改进,满足客户需求之后在圆形的基础上开发出来满意的软件。
3.螺旋模型:它将瀑布模型和快速原型模型结合起来的,它会按照螺旋线进行若干次迭代,其中的四个象限包括了一下几个活动:制定计划、风险分析、实施工程、客户评估,螺旋模型强调风险分析,螺旋模型只适合大规模软件项目,应该擅长寻找、分析风险。
4.迭代模型:(也被称作迭代增量式开发或迭代进化式开发)是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。
5.增量模型:它的灵活性可以使在开发过程中出现的变化能力优于瀑布模型和快速原型模型,但容易退化为边做边改模型,从而失去了整体性。
6.敏捷开发模式:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
2.软件质量概述
1.软件质量概念:软件质量是指软件产品满足基本需求及隐式需求的程度。软件产品满足基本需求是指其能满足软件开发 时所规定需求的特性,这是软件产品最基本的质量要求;其次是软件产品满足隐式需求的程度。软件质量的定义,分为3个层次(满足需求规定,满足用户需求,满足用户隐式需求)。
2.软件质量模型:软件质量分为六层(功能性、可靠性、可使用性、效率,可维护性、可移植性)。
3.影响软件质量的因素:由于软件自 身的特点和目前的软件开发模式使得隐藏在软件内部的质量缺陷无法完全根除,因此每一款软件都会存在 一些质量问题。比较常见的影响因素(需求模糊、软件开发缺乏规范性文件指导、软件开发人员问题、缺乏软件质量控制管理 )。
3.软件分类
1.根据应用场景分类:工具类软件、游戏型软件、媒体型软件、电商型软件等
2.根据软件架构分类:单机版软件、分布式软件
3.单机版软件:office、红警等
4.分布式软件:
C/S架构软件(C (客户端), S (服务端)):客户端需安装专门软件,如QQ 微信等
B/S架构软件(B (浏览器), S (服务端)):客户端为浏览器 ,如百度、hao123等
4.软件开发生态系统
1.App:App即应用程序,Application的缩写,主要指安装在智能手机上的软件,完善原始系统的不足与个性 化。使手机完善其功能,为用户提供更丰富的使用体验的主要手段。手机软件的运行需要有相应的手机 系统,目前主要的手机系统:
苹果公司的iOS
谷歌公司的Android(安卓)系统。 APP比如:微信,QQ。
华为的鸿蒙系统
2.微信小程序:小程序的一种,英文名Wechat Mini Program,不需要安装即可使用。
3.前端:前端,也称web前端。对于网站来说,通常是指网站的前台部分,包括网站的表现层和结构层。浏览器、APP、应用程序的界面展现和用户交互就是前端。
4.后端:后端开发即“服务器端”开发,主要涉及软件系统“后端”的东西。简单地说,那些你在屏幕上看不到但又被用来为前端提供支持的东西就是后端。
day02. 1.软件开发背景
1.公司的组织架构
2.软件开发流程
2.1 项目启动
产品总监/产品经理 调研--》 《需求文档》文档
产品经理---》梳理业务
2.2 需求阶段
产品经理--》产品原型,需求文档,需求评审,产品里程碑
2.3 设计阶段
UI设计师--》产品效果图,UI设计规范,标注图,切图
测试工程师--》设计用例(Test case)
2.4 开发阶段
开发工程师--写代码,技术文档
测试工程师--》设计用例(Test case),用例评审
2.5 测试阶段
测试工程师--》冒烟测试,执行用例,提交BUG
开发工程师--》修改BUG
测试工程师--》回归测试
2.6 上线
3.程序员日常
工作饱和度(百分比):真是工作时间 / 上班的时间 * 100%