网工中级系统开发与项目管理
项目开发时期
计划时期
问题定义
可行性研究
开发时期
需求分析
总体设计
详细设计
编码
测试
运行时期
维护
软件开发模型
瀑布模型
最早的模型,软件的开发是一步一步地递进,虽然条理清晰,但是前一阶段的问题将会被带到下一阶段,容易形成问题的积累而最终无法正常正常完成开发项目。只有在目的明确,或者开发相似的,且具有固定开发模型的情况下,才会使用瀑布模型。
V模型
和大致的开发周期差不多,不过在最后的测试流程中,测试的步骤更多,保证了软件最终的可靠性,可用性等等。但是问题和瀑布模型类似。
喷泉模型
主要针对面向对象的开发,在各个开发阶段是可以重叠的,即阶段与阶段之间没有分明的边界,前一阶段若出现了问题,最终还是可以返回到上一阶段重新修改,同时允许多个阶段并行进行。虽然有不断地迭代,但是依然存在问题地的叠加性问题。
原型化模型(抛弃型)
在一开始构建一个软件的原型模型,来给客户进行使用,由此来不断加深和确定客户的需求,保证了最终的软件开发出来与客户是契合的。当需求得到后,会将一开始构建的原型抛弃,然后根据最新的需求进行软件的开发。
演化模型(保留型)
先生成一个最初的原型,该原型具备最初的需求,然后由用户进行体验并提出相关的需求,开发人员在原型的基础上并结合客户的需求不断地完善迭代该软件项目。
增量模型(保留型)
先生成一个大致的框架,与演化模型的不同就是增量模型是通过对模块功能的不断地增加,而演化模型则是对整体的不断修饰。
螺旋模型
制定计划,风险分析,实施工程,客户评估这四个步骤在软件开发周期中不断地迭代,因为加入了风险分析,所以每个步骤中前都会进行风险地评判,由此可以减少风险,减少损耗
软件开发与测试
软件应该做到高内聚,低耦合
动态测试:人工进行动态运行测试
静态测试:从代码,相关帮助文档进行代码的排错
黑盒测试:功能性测试,输入和输出是否对应着设计好的功能
白盒测试:主要关注程序内部的代码是否合理,速度是否高效
灰盒测试:即白盒测试和黑盒测试之间的一种测试,即白盒和黑盒测试都有涉及到,但是都没有两者那么深入
单元测试
集成测试
系统测试
验收测试
数据耦合:模块间仅仅只有数据的交互
标记耦合:模块间仅依靠数据结构的交互
公共耦合:模块间通过公共区域交互
内容耦合:上面三个其他的模块间交互
巧合内聚:模块内的各个处理元素没有任何联系
逻辑内聚:模块内的语句具有相似的逻辑
时间内聚:模块内的语句在时间上有一定的联系,比如同时执行
通信内聚:使用同一个数据结构,或者使用相同的输入数据或输出相同的输出数据
顺序内聚:模块内的语句具有十分紧凑的顺序关系
功能内聚:最强的内聚,一个模块一个功能
瀑布模型主要特点:
1、利于大型软件的开发,利于开发人员的管理
2、瀑布模型的开发紧紧围绕客户的需求
演化模型的主要特点:
演化模型主要开发系统的核心功能,使得客户可以与开发人员一同改善功能,当开发人员获取到一手的软件需求,就会根据需求进行修改
增量模型的主要特点:
增量模型与演化模型的区别就在于增量模型的开发是功能的堆砌,同样是开发核心功能,但是后期的功能是以模块的增量进行的。可根据新增的模块功能判断是否进行下一步的拓展。开发灵活
喷泉模型的主要特点:
1、适用于面向对象开发
2、各个开发阶段没有严格的边界
3、需要大量管理人员对项目进行管理
V模型的主要特点:
1、以测试为中心
2、与瀑布模型类似,不过增加了大量的后期测试,保证了系统的正常
螺旋模型的主要特点
1、每个阶段有四个小阶段的迭代
2、每个阶段都有风险分析,减少了风险的发生概率
3、开发人员可轻松上阵,因为有客户参与风险的探讨
相关文章
- Spark家族:Win10系统下搭建Scala开发环境
- 2021年春季学期-信号与系统-第十一次作业参考答案-第七小题
- 基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统
- 【水声自适应通信】基于OFDM的水声自适应调制通信系统性能matlab仿真
- STM32MP157 Linux系统移植开发篇9:Linux内核eMMC驱动移植
- 《系统架构:复杂系统的产品设计与开发》——第3章,第3.3节系统的分解
- 《系统架构:复杂系统的产品设计与开发》——第3章,第3.4节特殊的逻辑关系
- 《系统架构:复杂系统的产品设计与开发》——第3章,第3.5节对复杂系统进行思索
- iOS系统提供开发环境下命令行编译工具:xcodebuild
- 人工智能交互系统界面设计(Tkinter界面设计)
- Android开发之深入理解Android 7.0系统权限更改相关文档
- 《Arduino家居安全系统构建实战》——1.5 介绍用于机器学习的F
- 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-04 项目范围(Scope)管理
- 《Android应用开发从入门到精通》——第1章,第1.1节认识Android系统
- 《jQuery EasyUI开发指南》——10.3 系统上线
- 基于C#开发(WinForm)排队叫号系统【100010339】
- 基于Java开发(PC)小说自检测系统【100010061】
- 牛腩新闻发布系统之发布
- iOS开发 - 滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)
- 【树莓派】树莓派新版系统SSH连接被拒绝问题处理
- Raspberry-Pi-PICO系列--第四篇 开发环境搭建-Windows系统 + Visual Studio Code开发
- windows7系统怎么设置自动开机
- 自定义架构实现基于golang中web开发与异步系统调用等方法进行mock在不同环境运行或测试