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

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

相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 分布式计算
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
137 3
|
14天前
|
机器学习/深度学习 测试技术 定位技术
新扩散模型OmniGen一统图像生成,架构还高度简化、易用
近期,一篇题为“OmniGen: Unified Image Generation”的论文介绍了一种新型扩散模型OmniGen,旨在统一图像生成任务。OmniGen架构简洁,无需额外模块即可处理多种任务,如文本到图像生成、图像编辑等。该模型通过修正流优化,展现出与现有模型相当或更优的性能,尤其在图像编辑和视觉条件生成方面表现突出。OmniGen仅含3.8亿参数,却能有效处理复杂任务,简化工作流程。尽管如此,OmniGen仍存在对文本提示敏感、文本渲染能力有限等问题,未来研究将继续优化其架构与功能。
43 16
|
28天前
|
网络协议 网络架构
TCP/IP协议架构:四层模型详解
在网络通信的世界里,TCP/IP协议栈是构建现代互联网的基础。本文将深入探讨TCP/IP协议涉及的四层架构,以及每一层的关键功能和作用。
136 5
|
27天前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
43 3
|
29天前
|
机器学习/深度学习 存储 人工智能
【AI系统】模型演进与经典架构
本文探讨了AI计算模式对AI芯片设计的重要性,通过分析经典模型结构设计与演进、模型量化与压缩等核心内容,揭示了神经网络模型的发展现状及优化方向。文章详细介绍了神经网络的基本组件、主流模型结构、以及模型量化和剪枝技术,强调了这些技术在提高模型效率、降低计算和存储需求方面的关键作用。基于此,提出了AI芯片设计应考虑支持神经网络计算逻辑、高维张量存储与计算、灵活的软件配置接口、不同bit位数的计算单元和存储格式等建议,以适应不断发展的AI技术需求。
36 5
|
1月前
|
监控 持续交付 API
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
47 3
|
29天前
|
监控 物联网 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
32 0
|
29天前
|
监控 持续交付 API
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
34 0
|
21天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
1月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
43 3

热门文章

最新文章