1:软件定义
是系统通过特定的顺序组织的计算机数据和指令的集合
2:软件开发模型
分为6种开发模式:瀑布模型,快速原型模型,螺旋模型,迭代模型,增量模型,敏捷开发模式
瀑布模型:
1:瀑布模型它是一个类似流水线的一个工作模式,它的定义是将软件的生命周期按固定顺序连接,最终得到软件产品的项目。
2:需求分析→系统设计→程序设计→编码→测试→运行维护,由这些进行瀑布模式开发各个阶段完成之后才能进行下一个阶段
2:快速原型模型:
快速原型模型就是首先搭建一个大概的模型,通过跟客户交流再去细化某些功能或者添加某些功能,跟客户确定下来明确的产品之前的模型全部丢掉,去做客户满意的产品软件,其实就是体现了速度快,在原有的基础上去修改。
3:螺旋模型:
螺旋模型它是瀑布模型和快速原型模型的结合,它强调了其他模型所忽视的风险分析,适用于大型复杂的系统。
4:迭代模型:
迭代模型它是一种传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点具有更高的成功率和生产率
迭代模型开发可以在明确需求前开发,在后面一次次迭代的时候去完成一些部分的功能和业务逻辑的开发工作,在通过客户的反馈来细化需求,并开始新一轮的迭代。
5:增量模型:
类似于建造大厦一样,软件一步步建立起立的,在增量模型中,软件被作为一系列的增量,简单来说就是由于各个构件的相互作用集成起来,慢慢的细化业务和功能,就是后续需要什么需求在往上面加就行了
6:敏捷模型:
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷开发小组主要的工作方式可以归纳为:作为一个整体工作; 按短迭代周期工作; 每次迭代交付一些成果,关注业务优先级,检查与调整。
3:软件质量(6大特性)
1:功能性:适应性,准确性,互操作性,安全性,功能合规性
2:可靠性:成熟性,容错性,易恢复性,可靠合规性
3:可使用性:易理解性,易学习性,易操作性,用户粘性,易用合规性
4:效率:时间特性,资源利用率,效率合规性
5:可维护性:易分析性,稳定性,易变更性,易测试性,可维护合规性
6:可移植性:适应性,易安装性,共存性,易替换性,可移植
4:影响软件质量的因素
1:需求模糊
2:软件开发缺乏规范性文件指导
3:软件开发人员问题
4:缺乏软件质量控制管理
5:软件分类
1:按使用场景:
工具类软件,游戏型软件,媒体型软件,电商型软件
2:软件架构:
单机版软件,
3:分布型软件:
c/s:client(客户端),server(服务端):QQ,QQ音乐等
b/s:browser(浏览器),server(服务端):某网页等
6:软件开发背景
1:公司的组织架构
2.软件开发流程
2.1 项目启动
产品总监/产品经理 调研 ----》 《需求调研》文档
产品经理---》 梳理业务
2.2 需求阶段
产品经理--》产品原型,需求文档,需求评审,产品里程碑
2.3 设计阶段
ui设计师--》产品效果图,UI设计规范,标注图,切图
测试工程师----》测试用例(Test case)
项目经理--分配任务,写开发计划
2.4 开发阶段
开发工程师-- 写代码,技术文档
测试工程师----》测试用例(Test case),用例评审
2.5 测试阶段
测试工程师--》冒烟测试,执行用例,提交bug
开发工程师---》修改bug
测试工程师--》回归测试
2.6 上线
3.程序员日常
工作饱和度(百分比): 真实工作的时间 / 上班的时间 * 100%