系统架构设计师教程-学习-记录(26)系统开发基础知识-软件开发方法(2)软件开发模型
初
- 学习《系统架构设计师教程》,初心是为了学习更多知识,在计算机技术方面得到更大的提升。希望自己记录学习的时候也能总结一些知识分享出来。也可能错误很多,希各个大佬多多包涵并指点一二,在此感谢。
记
软件开发模型
软件生存周期模型又称软件开发模型( software develop model) 或软件过程模型(software process model),它是从某一个特 定角度提出的软件过程的简化描述。模型的主 要特点是简单化。软件过程模型是软件开发实际过程的抽象与概括,它应该包括构成软件过程的各种活动,也就是对软件开发过程各阶段之间关系的一个描述和表示。
软件过程模型的基本概念:软件过程是制作软件产品的一组活动以及结果。 活动主要是:(这些活动主要由软件人员来完成)
- 软件描述。必须定义软件功能以及使用的限制。
- 软件开发。也就是软件的设计和实现,软件工程人员制作出能满足描述的软件。
- 软件有效性验证。软件必须经过严格的验证,以保证能够满足客户的需求。
- 软件进化。软件随着客户需求的变化不断改进。
软件过程模型是软件工程的重要内容,它为软件工程管理提供里程碑和进度表,为软件开发过程提供原则和方法。 软件过程有各种各样的模型,如瀑布模型、演化模型、原型模型、螺旋模型、喷泉模型和基于可重用构件的模型等。
瀑布模型
瀑布模型( waterfall model):最早使用的软件生存周期模型之一
- 问题定义
- 可行性研究
- 需求分析
- 总体设计
- 详细设计
- 编码与单元测试
- 综合测试
- 运行与维护
瀑布模型的特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。或者说,每一个阶段在前一个阶段正确结果之上,前一个阶段的错漏会隐蔽地带到后一个阶段。因此每一个阶段工作完成后,都要进行审查和确认
(瀑布模型起到了重要作用,它的出现有利于人员的组织管理,有利于软件开发方法和工具的研究)
瀑布模型的主要缺点:
- 软件需求分析的准确性很难确定,甚至是不可能和不现实的。因为用户不理解计算机,无法回答目标系统是“什么”的情况,对系统将来的改变部分难以确定,往往用“我不能准确地告诉你”回答开发人员。
- 用户和软件项目负责人要相当长的时间才能得到初始版本,这时如果改变需求,将会带来巨大的损失(例如人力、财力、时间等)。该模型的应用有-定的局限性。
原型模型
原型模型(prototype model)又称快速原型
原型模型主要是两个阶段:
- 原型开发阶段。(该原型应该包含目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能等)
- 目标软件开发阶段。(通过原型何用户沟通,拿到最新的意见后对原型进行完善)
开发原型可以考虑 3 种途径
- 利用模拟软件系统的人机界面何人机交互方式
- 真正开发一个原型
- 赵来一个或几个正在运行的类似软件进行对比
原型模型的使用应该注意:
- 用户对系统模糊不清,无法准确回答目标系统的需求
- 要有一定的开发环境和工具支持
- 经过对原型的若干次修改,应收敛到目标范围内,否则可能回失败
- 对大型软件来说,原型可能非常复杂而难以快速形成,如果没有现成的,就不应考虑用原型模型
螺旋模型
- 目标设定
- 风险分析
- 开发和有效性验证
- 评审
每一个阶段都相当于是一个新的版本,没错一个目标,然后再开发评审。
该模型支持大型软件开发,适用于面向规格说明、面向过程和面向对象的软件开发方法,也适用于几种开发方法的组合。
基于可重用构件的模型
构建的可重用,我们可以把需求需要是心啊的一些技术或者常用的一些地方,独立出来,做成一个可重用的构建,然后通过组合构建集成到我们的目标系统钟,这样大大地提高了软件的可靠性和生产率
基于面向对象的模型
面向对象模型描述了软件从需求开始,通过检索重用构件库,-方面进行构件开发,另一方面进行需求开发,需求开发完成后,在进行面向对象分析过程中,它可以在重用构件 库中读取构件,并快速建立00A (Object-Oriented Analysis )原型。 同理,在进行面向对象设计时,它可以在重用构件库中读取构件,并快速建立00D ( Object-Oriented Design)原型。最后利用生成技术,建造,无劉结界统。在这个模型中,一个系统可以由重用构件组装而成,甚至通过组装可重用的子系统而创建更大的系统。
基于四代技术的模型
四代语言(4th Generation Language, 4GL)是在大型数据库管理系统的基础.上发展起来的程序设计语言。程序设计语言可分成机器语言、汇编语言、高级语言和第四代语言,以及为人工智能领域应用而设计的语言:第 五代语言。
4GL:
- 用于快速开发应用软件的高产工具(重点强调了提高软件开发的生产率)
- 用于快速事务处理系统的高产工具(突出了主要应用领域)
特征如下:
- 非过程化的语言,目的在于高效、直接地实现各种应用系统。它完全不用编程的方式来构造应用系统。程序员可以不再使用通常编程的方法、算法等来完成某一个功能,而是利用一些生成器,例如,菜单生成器、报表生成器、屏幕生成器、图形软件包等。在屏幕上以对话的交互方式,通过填表或操作屏幕上的窗口和按钮图标,或者在某一个按钮定义时加上适当的一段程序从而构造用户需要的应用系统生成器自动生成源程序
- 它与数据库的关系密切,能够对大型数据库进行高效处理。它被广泛地应用于数据库管理系统中。
2022 年的当下,这种系统例如:一些快速构建的网址,一键生成二维码,一键生成 APP 这些。包括一些人工智能的图形图像分析软件
|