一、软件开发模式
1、瀑布模式:
需求分析(需求说明书):根据规定的需求分析实现方式
系统设计(系统设计书):
程序设计(程序设计书):整体app原型设计
编码(程序清单):开发
测试(测试报告):测试
运行及维护(维护报告,改进的系统)
优点:当第一个模块完成后不需要关注,只需要关注后续的模块
缺点:当地一个模块完成后,开始下始模块时第一个模块不能修改,
见不到整个开发成果,到最后有开发风险,
模块化需要在规定时间验收成果
瀑布模型的突出缺点是不适应用户需求的变化
2、快速原型模式
快速原型就是有一个固定的模型,开发人员可以确定需求
第一步是建造一个快速原型,用来实现客户或者用户和系统的交互,然后用户进行评价,进一步细化待开发软件的需求
第二部就是在第一步的基础上开发客户满意的产品
3、螺旋模型
螺旋模型是判断目标,可选方案和限制,明确名解决风险,评价可选方案,开发和测试,进入下一阶段测试决定下一步做法
制定规划:要确定软件的目标,使用方案 清楚开发的限制条件
风险分析:要提前考虑有哪些风险,提前解决、评估分析所选的方案
实事工程:开始开发和验证
客户评估:评价开发实现的功能 和提出建议,制定下一步计划
4、迭代模型
迭代模型是和瀑布式开发相反的软件开发过程
优点:成功率,生产率高。
降低开支风险
降低上线时期发现的风险,
加快整个开发工作的进度
5、增量模型
增量模型是在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品,整个产品被分为若干个构件,开发人员逐个构件的交付产品,好处就是软件开发可以较好的适应变化,客户可以看到开发的软件,降低开发风险
缺点:
在完整app基础上去添加功能必须不破坏已经构造好的系统部分
由于各个构件是逐渐并入已有的软件结构中的所以加入构件必须不破坏已构造好的系统部分,这需要软件不被开放是的体系结构
迭代模型和增量模型的区别:
迭代模型是先有一个完整的app然后在每个部分细化加色
增量模型是根据组件化
6、敏捷开发模式
敏捷开发就是以人为核心,迭代、循序渐进的开发方法,就是在整个项目中被分为多个小项目,然后项目的成果都测试过,具备集成和可运行的特征
核心思想:
必须要沟通交流项目的开发流程和使用工具
必须要快速适应,
团队合作,
二、软件质量概述
定义:软件质量是指软件质量满足基本需求及隐式需求的程度,软件产品满足基本需求是指能满足软件开发是所规定需求的特性,这是软件产品最基本的质量要求,其次就是软件产品满足隐式需求的程度(界面美观,用户操作简单,容易理解等等)
软件质量模型:
功能性:准确性,互操作性 安全性,功能合规性 适应性
可靠性:成熟性 易恢复性
可使用行:容易理解 容易学习 容易操作 用户黏度
效率:时间快 资源利用高
可维护:容易分型 稳定 容易变更 容易测试 可以维护
可移植:容易安装 容易替换 共存
影响软件质量因素:
需求模糊:再开发之前要确定开发需求文档 ,但是需求是不可视的,需要有需求文档避免理解误差导致影响开发
三、软件分类
根据应用场景分类:
工具类软件 游戏 媒体 电商
根据架构分类:
单机版 分布式(lol)
2、软件开发生态系统
1、App
微信 QQ需要下载 的软件APP
2、微信小程序
不需要下载安装就可以用的应用
前端:
web前端通常是值网站的前台部分比如浏览器、app、应用程序的界面展示和用户交互就是前端
后端:
服务器开发 比如管理微信客户数据等等
day02- 软件开发背景
软件开发流程:
项目启动阶段 需求阶段 设计阶段 开发阶段 测试阶段 项目上线
项目启动阶段:
产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导,产品总监、技术总监
成果负责人:
调研文档、了解项目背景、了解项目干系人目标方向-----产品经理
团队组建确认团队人员及配置---产品总监
业务梳理、明确项目的目标、角色、各端口及模块----产品经理
需求阶段:
产品经理面向整个团队进行需求的讲解。
设计阶段:
研发工程师子界面效果图、输出“需求规格”、需求规格应包含最终要实现的内容的一切要素
开发阶段:
研发工程师正式进入编发阶段
测试阶段:
测试工程师按阶段设计“测试实例”、未通过的流程测试提交到Jira或禅道,分配给相应的开发人员调整
系统上线:
与客户或者上级达成一致后,系统进行试运行,稳定后上线
工作流程
程序员日常工作:
完成分配项目的实施和技术支持工作,赋值软件项目的详细设计,编码和内部测试的组织实施
协助项目经理和相关人员同客户进行沟通,保持良好的客户关系
参与需求调研,项目可行性分析,技术可行性分析和需求分析
熟悉并熟练掌握交付软件不开发的软件项目的相关软件技术
负责现将项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议
负责相关技术文档的拟定
负责对业务领域内的技术发展动态
周期性报告:
日报:每日晨会或者站立会需要
周报:本周工作内容总结和下周工作内容计划
月报:本月总结和下月计划