软考架构师论文:论软件开发模型及其应用

前言:

软考架构师考试中最难准备的就是论文题,2023年11月第一次参加软考架构师考试就通过了,当时是参加了一个老师的培训,在准备过程中按照老师的要求练习了几篇论文,掌握了论文的写作框架,所以到了考试中即使遇到没有写过的题目,也能选一个自己比较熟悉的题目按照框架来写,接下来就将我当时练习的论文发布出来供更多的人参考。对论文中的项目信息进行了脱密处理,可以根据自己的实际项目进行修改。

要:

xxxx年x月,我司中标了某xxx项目,该项目合同金额为xxx万,建设工期为x个月,在该项目中我担任系统架构师。项目建设内容包含新建一个xxx和x个子系统。选定一个合适的软件开发模型对于科学合理地安排软件开发工期和确定项目所需资源具有十分重要的意义。本文以该项目为例,介绍了常见的软件开发模型如瀑布模型、原型模型、螺旋模型等,并在实践中采用了瀑布模型和原型模型相结合的方法,把项目周期分成了需求分析、系统设计、程序设计、编码实现、单元测试、集成测试、系统测试、运行维护等阶段,并通过快速原型获取了用户需求,取得了良好的效果。系统最终于xxx年底上线,试运行一个月后正式通过了客户的验收,至今运行稳定,有效支撑了xxx。

正文

xxx(项目背景介绍)。某xxx于xx年xx月就xxx项目进行公开招标,我司以较高分数中标,中标价为xxx万,项目建设工期为xx个月,我有幸担任该项目的系统架构师,负责项目的设计、开发、测试等。

系统建设内容包括xxx(哪些子系统),以及提供x年维护服务。系统采用微服务架构,前端微服务采用JavaScript语言和Vue框架开发,后端微服务采用Java语言和Spring Boot框架开发,数据库使用MySQL,分布式缓存使用Redis,所有微服务和组件部署在政务云的k8s集群上。此项目是xxx项目,xxx对此项目很重视,必须保证系统开发过程宏观可控、科学合理。

随着软件系统的规模越来越大,复杂程度越来越高,软件开发过程中的风险和可靠性问题也越来越突出。为了解决这些问题,各种开发模型被广泛应用于软件开发领域的项目规划和实施中,常见的开发模型有:

  1. 瀑布模型:是最早使用的开发模型之一,包含需求分析、系统设计、程序设计、编码实现、单元测试、集成测试、系统测试、运行维护一系列活动,这些活动从一个阶段到另一个阶段逐次下降,它的工作流程在形式上很像瀑布,因此被称为瀑布模型。瀑布模型的特点是因果关系紧密相连,前一阶段工作的输出结果,是后一阶段工作的输入。每一个阶段都是建筑在前一个阶段正确实施的结果之上。每一个阶段工作完成后都伴随着一组检查条件,对该阶段的工作进行审查和确认。瀑布模型有利于人员的组织管理,有利于软件开发方法和工具的研究。
  2. 原型模型:又称快速模型,主要有两个阶段:一是原型开发阶段,软件开发人员根据用户提出的软件系统的定义,快速的开发一个原型;二是目标软件开发阶段,在征求用户对原型的意见后对原型进行修改完善,确认软件系统的需求并达成一致的理解,进一步开发实际系统。
  3. 螺旋模型:是在快速原型的基础上扩展而成,是生命周期模型和原型模型的结合,它把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证、评审4部分组成。螺旋模型的软件开发过程是这4个部分的迭代过程,每迭代一次,螺旋线就增加一圈,软件系统就生成一个新版本。螺旋模型支持大型软件开发。

在该项目实践中,由于总体的系统需求比较明确,仅仅是xx子系统的需求不太明确,因此采用了瀑布模型和原型模型相结合的方式,把项目周期分成需求分析、系统设计、程序设计、编码实现、单元测试、集成测试、系统测试、运行维护阶段,并通过快速开发原型确认门户子系统的需求。具体的开发实践如下:

  • 需求分析阶段,我们制定了需求收集和分析计划,把系统划分为多个子系统,每个子系统都有对应的责任人和客户进行需求沟通,同时也关注了非功能性需求。例如xxx功能,客户比较xxx;xxx子系统中,客户比较关注xxx,其中xxx信息出于安全考虑在页面上应该脱敏显示;xxx包含xxx功能,客户比较关注xxx;xxx子系统涉及xxx,应该考虑xxx,同时要考虑对xxx;由于xxx子系统涉及比较多的定制化开发,客户刚开始对需求不是很明确,为此我们组织产品研发人员绘制了xxx原型,和客户多次讨论后明确了需求。最后我们编写了需求规格说明书,提交了双方管理层评审通过,成为后期设计、开发、测试和验收的重要依据。
  • 系统设计阶段,我们根据需求规格说明书进行了架构设计、数据设计、用户界面设计和过程设计。架构设计方面,由于系统的几个子系统相互独立,我们采用了微服务架构,每个子系统可以独立的开发、部署,不会互相影响开发进度,也可以根据每个子系统的业务需要进行单独的升级和部署不同数量的实例。数据设计方面,我们选用使用比较多的MySQL数据库,先分析出ER模型,再将ER模型转换为MySQL的数据表。同时xxx显示的字段位于多个数据表中,考虑到性能,我们使用了反规范化设计,在xx表中冗余了一些字段。用户界面设计方面,我们设计了全套系统UI,包括色系、字体、布局等,保持整体设计风格统一,以增强用户的使用体验和品牌认知。过程设计方面,我们根据需求规格说明书中的业务流程要求,充分考虑各种正常和异常场景,进行了过程设计,保证业务流程的正确性和高效性。
  • 程序设计和编码实现阶段,我们根据需求规格说明书和系统设计文档,先进行了详细的程序设计,然后再进行编码实现。在程序设计中,尽量选用已有的组件,不重复造轮子,例如审批流程功能选用了Activiti开源组件。在编码实现中,在保证功能正确实现的前提下,遵循了编程规范,运用了设计模式,保证代码的可读性、可扩展性和可维护性。
  • 单元测试、集成测试、系统测试阶段,开发人员在开发过程中也进行单元测试用例代码开发,确保每次修改后单元测试用例都能通过,同时组织代码了代码审查,然后对开发的功能进行测试。功能没有问题后交由测试团队进行集成测试和系统测试,关注各子系统之间的接口交互是否有问题、系统的整体功能、性能以及安全性。
  • 运行维护阶段,该系统于xxx年底在客户现网进行部署,试运行一个月后各方面情况非常平稳,最终于xxx年x月通过了客户的正式验收,目前处于维护阶段。

该项目整体实现了既定目标,xxx平台通过xxx技术实现xxx,为xxx提供助力,达到了客户的预期。这得益于我们选用了正确的软件开发模型,采用瀑布模型和原型模型相结合的开发模型,保证了项目按时交付。但是在交付过程中由于运维部署人员的工作变动,重新进行人员培训和工作交接花费了一周多的时间,幸好未对项目的整体进度造成影响,需要在以后的工作中注意这方面的风险。

培训老师给这篇论文的点评:

1. 整体框架是合格的。
2. 文中主要采用了两种开发模型,整体是按照瀑布模型过程写的,原型模型只在需求分析那段做了简单的描述,再适当拓展一下。具体可以调整一下该段落,重点放在如何通过原型模型活动用户需求,将其他内容用简单的话概括。也就是说要让判卷老师更加清晰地看到怎么运用的原型。 
3. 瀑布的一些关键特征要体现出来,比如每个阶段都要进行评审,前一个阶段的输出是下一个阶段的输入,注重文档等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值