2022年下半年 系统架构师,论文-软件开发模型(Software Development Model)

简介: 2022年下半年 系统架构师,论文-软件开发模型(Software Development Model)

软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架,软件开发过程包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要任务和活动,用来作为软件项目工作的基础。对于不同软件项目,针对应用需求、项目复杂度、规模等不同要求,可以采用不同的开发模型,并采用相应的人员组织策略、管理方法、工具和环境。

请围绕“软件开发模型及应用”论题,依次从以下三个方面进行论述

  1. 简要叙述你参与的软件开发项目以及你所承担的主要工作
  2. 列举出几种典型的软件开发模型,并概要论述每种软件开发模型的主要思想和技术的特点
  3. 根据你所参与的项目中使用的软件开发模型,具体阐述使用方法和实施效果

范例:摘要部分

2018年5月,我所在公司承担了自动化旅游平台的开发工作,我有幸作为该项目的技术负责人参与整个开发过程,并负责了该项目的需求分析与系统设计的工作。该系统主要包括供应商旅游产品自动化上架、价格订单的自动化同步、旅游产品的集成平台化、经销商以及集团公司平台的自动化销售等也业务模块。本文以旅游平台为例,主要论述了统一过程开发模型在该项目中的具体应用。在初始阶段,我们建立了业务模型并且确立项目的边界;在细化阶段,主要对需求流程进行补充和完善;在构件阶段,主要是开发构件和应用程序功能,并将其集成为产品。整个项目历时10个月开发完成,到目前运行稳定。实践证明,这种开发模型有效的提高了开发效率,降低了开发成本和项目风险。


正文部分:

目前由于网络的快速发展,旅游产品的多种多样,价格的变动、产品的热点变动也比较快,公司内存在很多的业务以及销售进行维护这些产品,会逐步出现人员的冗余现象,尤其是对于双十一这种,打折促销活动,单天的销售单量达到了10万左右,很难进行维护,于是集团决定搭建旅游平台的项目。

2018年5月,我所在公司承担了旅游平台的开发工作,我有幸作为该项目的技术负责人,参与整个开发过程,并负责了该项目的需求分析与系统设计工作。该系统主要解决供应商大量产品上、下架以及价格、库存的同步处理,同步更新经销商平台的产品上下架、库存、价格的处理,避免由于人员不足导致的产品无法进行及时的上架、下架、价格、库存更新问题;其中包括供应商的产品接口的接入,旅游平台进行接口的适配处理,然后转换为统一的产品,经过统一的接口分发到各个经销商的平台上面售卖;这个流程是一个产品整合、上家售卖;产品的下单是客户先通过集体旅游平台或者经销商的平台上面进行下单,然后通过旅游平台下单的处理更新到供应商平台进行结算;因此,如何能够让项目开发顺利进行,选择一种合适的开发模型组织开发显得至关重要的。

当前主流的开发模型主要有瀑布模型、演化模型、螺旋模型、统一过程和敏捷开发模型等。其中瀑布模型,是一种严格遵循软件生命周期各阶段的固定顺序,一个阶段完成再进入另一个阶段。适合于业务需求比较明确且很少变更的项目。演化模型,是从初始的模型中逐渐演化为最终软件产品,是一种“渐进式”原型法。适合于用户需求不明确的项目,且软件完善周期较长。螺旋模型,是一种结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析。适合项目规模庞大,复杂且高风险的项目,由于流程复杂,增加了大量成本和时间消耗;敏捷方法,是一种以人为核心、迭代、循序渐进的开发方法。适用于小规模软件或者小团队开发;统一过程(UP),一个通用过程框架,适合于各种应用领域、组织类型、性能水平、项目规模的项目;采用强大的UML建模语言,能够在团队中形成统一规范和模板,同时有很多成熟商业软件提供整个开发周期的相关支持,可以极大的降低开发和管理成本,提高开发效率。因此,我们选择采用统一过程(UP)开发模型。

基于统一过程(UP)的软件项目一般分为初始阶段,细化阶段,构建阶段和交付阶段四个阶段。本文主要着重从前3个阶段具体论述统一过程开发模型在该项目中的具体应用。

首先,初始阶段,我们主要为整个系统建立业务模型并确立项目的边界。由于旅游平台的很多业务流程基本相同,通过调研分析和整理,利用UML工具PowerDesigner对系统业务模型进行梳理,识别出于系统交互外部实体,比如景点门票、火车票、飞机票、以及酒店的住宿产品等;可以使用PowerDesigner建立相关的类结构图和数据结构的概念模型。同时,这些实体如何与系统进行交互的各种流程,为了整理的更加准确和清洗,期间,我们与各个供应商厂家进行反复的沟通和确认,最终定义尽量符合旅游供应商业务规范的通用流程,这样既满足了各种机制的业务要求,又能给成长中的其他旅游供应商提供更好的借鉴参考的空间,最后利用PowerDesigner的建立相关的用例图和时序图,并整理相关的设计文档,以备后续系统设计使用。同时,我们对各个旅游供应商一些特殊需求进行了梳理评估,对其中暂时无法实现或者实现成本较高的,加入风险列表,跟客户最后再进行协商和确认,有些进行进行调整变化,有些直接放到后续项目升级中加以实现。

其次,在细化阶段,主要是基于初始阶段确定下来的需求流程进行补充和完善,同时,淘汰业务中风险最高的元素。识别出主要功能和一些重要的非功能需求,做出最佳的决策。我们基于初始阶段的成果,对实体进行进一步的梳理,譬如,删除无用的实体类,抽象合并和留下真正需要的实体类,同时根据业务需求补充类之间的关系。我们对业务用例也进行进一步的梳理,譬如,一些业务组件,基于我们原有的构件库进行升级和改造,可以直接使用,我们就采取自研,这样既可以提高开发效率,又能既节省项目的成本。而譬如一些队列消息的组件,由于自研成本和本身团队的能力限制,所以采用第三方库的构件来实现。由于旅游平台是需要支持安卓,苹果两种手机操作系统,所以,为了减少后期开发和维护成本,对通信接口规范进行了统一的设计,同时,也在架构层面上降低项目的开发风险。

最后,构件阶段,主要是开发所有剩余的构件和应用程序功能,把这些构件集成为产品。由于平台包括手机端、电脑端的程序设计。我们采用了基于构件的方式进行具体功能的构件,譬如,我们设计开发了统一的登录模块,统一的权限管理模块,产品管理模块,订单查询模块,日志管理模块等。同时,我把团队又根据业务分为产品组与订单组,主要进行具体业务功能的开发;组件架构组,主要对通用的构件进行封装和集成;移动业务组,主要进行移动模块的开发。由于采用了组件进行开发,既能降低开发的风险和后续维护的成本,同时提高了开发效率,项目推进过程中取得了不错的效果。由于涉及了几十家的供应商旅游公司,同时,系统模块进行了功能的测试;同时,由于涉及浏览器和移动端,在各种版本兼容性上也进行了充分的测试;最好,考虑到用户体验,还对系统进行充分的压力测试和性能测试。

整个项目历时10个月开发完成,最终在2019年4月上线完成交付,到目前运行稳定。通过在生产环境一段时间的使用,用户普遍反馈良好,但同时,也存在一些不足,例如,在细化阶段没有充分考虑到供应商产品业务上的区别,缺少了灵活的配置策略,在后期的开发完后无法统一调整,只能在临时为存在差异的旅游供应商的公司进行代码层面的调整。以后在这种问题上准备结合原型法的一些思想进行调整,尽量减少类似问题的出现。

实践证明,这种开发模型的选择有效的降低开发成本和项目风险,提高了团队开发效率。旅游平台是一个通用的管理平台,接下来,作为项目的负责人,我会总结现阶段的经验教训,在后续的系统升级完善中,不断思考和改进统一过程的方法在项目中的应用,充分发挥统一过程开发模型的更大作用,为公司创造效益的同时,也能够为公司开发出更加稳定更高效的系统

相关文章
|
10月前
|
算法 关系型数据库 文件存储
ProxylessNAS:直接在目标任务和硬件上进行神经架构搜索——论文解读
ProxylessNAS是一种直接在目标任务和硬件上进行神经架构搜索的方法,有效降低了传统NAS的计算成本。通过路径二值化和两路径采样策略,减少内存占用并提升搜索效率。相比代理任务方法,ProxylessNAS在ImageNet等大规模任务中展现出更优性能,兼顾准确率与延迟,支持针对不同硬件(如GPU、CPU、移动端)定制高效网络架构。
508 126
ProxylessNAS:直接在目标任务和硬件上进行神经架构搜索——论文解读
|
10月前
|
机器学习/深度学习 算法 物联网
μNAS:面向微控制器的约束神经架构搜索——论文解读
μNAS是一种专为微控制器设计的神经架构搜索方法,旨在解决物联网设备中资源受限的挑战。通过多目标优化框架,μNAS能够在有限的内存和计算能力下,自动搜索出高效的神经网络结构。该方法结合了老化进化算法与贝叶斯优化,并引入结构化剪枝技术,实现模型压缩。实验表明,μNAS在多个数据集上均取得了优异的精度与资源使用平衡,显著优于现有方法,为边缘计算设备的智能化提供了可行路径。
667 129
|
9月前
|
机器学习/深度学习 人工智能 缓存
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
本文提出面向边缘通用智能的多大语言模型(Multi-LLM)系统,通过协同架构、信任机制与动态编排,突破传统边缘AI的局限。融合合作、竞争与集成三种范式,结合模型压缩、分布式推理与上下文优化技术,实现高效、可靠、低延迟的边缘智能,推动复杂场景下的泛化与自主决策能力。
781 3
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
|
10月前
|
数据采集 机器学习/深度学习 搜索推荐
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
MIT与丰田研究院研究发现,扩散模型的“局部性”并非源于网络架构的精巧设计,而是自然图像统计规律的产物。通过线性模型仅学习像素相关性,即可复现U-Net般的局部敏感模式,揭示数据本身蕴含生成“魔法”。
395 3
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
|
10月前
|
机器学习/深度学习 人工智能 资源调度
MicroNAS:面向MCU的零样本神经架构搜索——论文阅读
MicroNAS是一种专为微控制器单元(MCU)设计的零样本神经架构搜索(NAS)框架,无需训练即可通过理论驱动的性能指标评估网络架构。相比传统NAS方法,其搜索效率提升高达1104倍,同时兼顾精度与硬件效率,适用于边缘计算场景。该框架结合神经切线核(NTK)条件数、线性区域计数及硬件感知延迟模型,实现快速、高效的架构搜索,为资源受限设备上的AI部署提供了新思路。
574 2
MicroNAS:面向MCU的零样本神经架构搜索——论文阅读
|
10月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
1551 0
|
9月前
|
机器学习/深度学习 存储 缓存
115_LLM基础模型架构设计:从Transformer到稀疏注意力
大型语言模型(LLM)的架构设计是其性能的核心决定因素。从2017年Transformer架构的提出,到如今的稀疏注意力和混合专家模型,LLM架构经历了快速的演进。本文将全面探讨LLM基础架构的设计原理,深入分析Transformer的核心机制,详细介绍稀疏注意力、MoE等创新架构,并展望未来架构发展方向。通过数学推导和实践案例,为构建高效、强大的LLM提供全面指导。
1209 0
|
9月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
438 0
|
11月前
|
编解码 文字识别 自然语言处理
Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22
Dots.ocr 是一款仅1.7B参数的视觉语言模型,正在重塑文档处理技术。它将布局检测、文本识别、阅读顺序理解和数学公式解析等任务统一于单一架构,突破传统OCR多模块流水线的限制。在多项基准测试中,其表现超越大参数模型,展现出“小而精”的实用价值,标志着OCR技术向高效、统一、灵活方向演进。
996 0
Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22