当前位置: 首页 > news >正文

软考(高项)系统分析师--论软件开发模型及应用

文章目录

  • 前言
  • 一、前期准备:
  • 二、论文部分:


前言

本文对系统分析师,软件开发模型及其应用文章进行展示,可以拷贝后直接粘贴到word 文档中。


一、前期准备:

  • 项目主体功能
  • 项目背景
  • 常用的软件开发模型:瀑布模型;原型模型;螺旋模型;V模型;喷泉模型;等

二、论文部分:

摘要:202212月,通过公开招标的方式,我所在公司中标x集团地产公司,设计系统的开发工作;我有幸作为系统分析师,参与该项目的分析与设计工作;改系统主要包括,个人工作台,标准化管理,项目管理,系统管理4大功能模块;该项目对设计工作的各个流程进行标准化模块管理,建立线上标准化产品库,并且联动成本系统和运营系统,对标准化模块进行成本赋能,结合营销导向定位,精准解决项目痛点,提高项目利润;同时标准化的管理流程,提高工作效率,减少管理成本。该项目于202311月,历时11个月,正式交付运行至今,受到客户的一致好评;由于该系统成本系统和运营系统的中间层,对系统的可靠性和性能都有较高要求。本文结合笔者的实际工作经验,对项目的开发模型及应用进行论述;首先,根据开发模型的特点以及综合考虑到需求方面,小组成员的经验和技术,经过项目组成员的开会讨论,我们决定使用RUP 模型进行开发;其次,根据RUP模型的特定,我们将项目开发分为4个阶段和若干迭代,在项目早期尽可能的消除风险;最后,论述笔者在本项目的经验经验总结,不足以及改进方法;项目背景:x集团地产公司下,有x个局院;由于历时原因及行业特点,每个局院都建立了自己的项目管理,集中采购,ERP等系统;目前行业系统的建设方式有国内软件,国外软件,以及自己局院各自开发的系统;这些系统或基于各自单位的业务需求,或基于特级资质的基本要求,各单位系统之间尚未有效集成,无法确保数据从产生到使用的及时性和准确性;在业务层面上各单位的应用水平差异大,基本功能模块类似,重复投资;在数据层面上,各单位主数据不一致,出现指标同名不同义,同义不同名,相同指标口径计算不一致,各单位系统数据孤立;从技术层面上,各单位技术平台水平差异大,多数单位系统架构落后,给集成,升级和维护造成困难;从运维层面上来说各单位的运维能力不足,未能建立完善的运维体系;基于此个局院地产需要统一建立一套系统;202212月,通过公开招标的方式,我所在公司中标x集团地产公司,设计系统的开发工作;我有幸作为系统分析师,参与该项目的分析与设计工作;改系统目的是实现,地产设计研发,项目管理全过程的规范化,动态化管控;改系统主要包括个人工作台,标准化管理,项目管理,系统管理4个模块;其中个人工作台,用于登录用户用于查看代办任务,公告信息等;标准化管理模:将产品设计标准化管理,对设计管理过程中用到的数据进行在线化标准化管理;项目管理模块:对项目设计业务的全过程进行管理,运用分级管控模式,实现设计全专业的计划流管控;系统管理:实现对用户权限及基础字典进行管理;过度:在开发过程中,我们常用的有瀑布模型,原型模型,敏捷开发模型,RUP统一过程模型;其中,瀑布模型特点是自上而下,依次执行,前一过程的产出物是后一过程的输入物,该模型适应于需求明确的场景,因为其结构化的特点,后期对于需求的变动和数据的变动难以应对;
其中,原型模型特点是给出客户原型,然后经过客户评审,评审通过之后进行实现,适应于需求不明确的场景,因为其经过客户的评审,后续用户对实现的功能容易接受,不过改模型并没有很好的对其风险进行考虑;RUP统一过程模型也是一种迭代模型,改模型在前期就尽可能的消除风险点。经过项目组成员的讨论最终确定使用RUP统一过程模型进行项目的开发,我们将项目开发分为4个阶段和若干迭代,在初始阶段通过和领导层用户进行访谈,确定项目的主体功能,通过需求联合会议对不明确的需求进一步进行讨论,最终形成需求规格说明基线文档,并通过客户的审核;在细化阶段根据系统的模块,使用B/S架构,微服务模块,将整体服务拆分为系统设置,项目管理,标准化管理,个人工作台4个小服务,分为3次迭代,根据用户的需求,确定系统的体系架构;在构建阶段:分为4次迭代,3个开发小组并行开发,对所有用例完成集成测试,和系统测试,主要模块达到10%的路径覆盖;移交阶段,首先根据用户的需求使用程序进行历史数据的迁移,然后部署Beta 版本,进行测试和修改,并对用户进行培训,最终协助用户完成系统的验收。下文主要对RUP的前3个阶段进行论述;正文:初始化阶段,包括一个迭代,4周时间。首先,我们通过访谈x集团公司几位高层领导的方式,获取到了项目预期的功能,并且获取到了在招标文档没有明确的系统性能要求;其次,我们邀请x集团的中层领导,以及核心研发人员,进行线上会议,对一些有争论的需求,进行讨论,从而完成需求的确定;其中我们着重讨论了x个局院,对于各自数据存储的要求,并结合实际,确定每个局院各自存储本局院的数据,可以在技术层面上对各个局院的数据进行汇总整理,出具数据的可视化图形报表;最后,通过数据流图,功能原型,来分析确定需求,并排出需求的优先级,形成《需求的规格说明书》的初稿,并通过用户的评审。精细化阶段,包括3个迭代,每个迭代耗时三周。系统整体使用BS架构,采用微服务模式进行项目的开发;对于每个迭代都完成一个原型,消除一个主要风险。分别是:多个局院使用同一套系统,如何保证数据的隔离,及对多个局院的数据进行报表统计;对接上下游系统的接口如何保证数据的安全及接口性能要求满足;各个系统怎么能确保数据主键id的唯一性,从而保证数据可以顺利入湖;这里特别指出对于数据的隔离体系,用户提出多个局院数据可以放入同一个库使用局院编码进行区分,通过实际测试发现,改方案不能满足接口的性能要求以及违背项目的易维护性要求,我们提出了一种新的数据隔离体系,使用多数据源动态切换来实现数据隔离,开发新的模型,并且通过测试验证新的体系满足性能及易维护性的要求,最终客户接受了我们的方案。我们更新了需求规格说明书软件体系结构文档,并通过用户的评审。构建阶段,我们分为3个小组并行开发,包括5个迭代,每个迭代耗时五周。分别是:设计系统人员的单点登录,并根据用户角色展示不同的数据操作权限,进行操作权限隔离;为不同的业务建立对应指标标准库,初始化指标的标准模版,完成指标的标准化定义;完成核心业务如项目管理下的,楼栋地块管理,分期计划轨道,面积指标,产品适配,成果管理等功能;对接下游系统的审批流程及推送对审批通过的指标进行数据推送;个人工作台展示代办任务及公告信息,是其可以可以进行在线办公;每次迭代都将成果展示给客户,使用户了解项目的进度和功能,并收集客户端的反馈,及时调整开发。开发完成对所有用例完成集成测试和系统测试,主模块达到了10%的路径覆盖,出具测试报告,确保了项目的功能。改阶段结束后向用户提供项目的Beta 版本。移交阶段:包括一个迭代,四周时间;首先通过程序对用户的原有项目及分期数据进行迁移;其次,部署Beta 版本供用户测试,收集用户反馈,对系统的缺陷及时进行修改;最后,对用户进行了培训,并配合用户完成系统的验收。结尾:从202012月项目开始,历时11个月,该项目于202311月正式上线运行至今,受到了客户的一直好评;在本次项目中,我对RUP 开发模型有了更加深刻的学习和体会,对RUP的四个过程有了更加清晰的认识;,众人拾柴火焰高,一个项目的成功上线离不开团队的每一位成员的辛勤付出。同时也意识到随着用户需求的演变,对应软件开发的模型也在逐步演变,一些新的软件开发模型也在应运而生,如敏捷开发,极限编程等,不同的开发模型有着各自的特点,我还需要积极学习更多的开发模型,总结各个开发的优缺点及使用场景,在未来的软件分析与设计中更好的进行应用和实践。

相关文章:

软考(高项)系统分析师--论软件开发模型及应用

文章目录 前言一、前期准备:二、论文部分: 前言 本文对系统分析师,软件开发模型及其应用文章进行展示,可以拷贝后直接粘贴到word 文档中。 一、前期准备: 项目主体功能项目背景常用的软件开发模型:瀑布模型&#xff…...

同一天提档又撤档!电影《野孩子》宣布取消7月10日公映安排——浔川电影报

同一天提档又撤档! 7月3日晚上10点,电影野孩子 发声明官宣撤档,“由于后期进度原因,电影《野孩子》将取消7月10日的公映安排,我们向各影管院线的同仁及所有观众朋友们致以最诚挚的歉意,谢谢大家这段时间的…...

Shell编程之免交互

一、Here Document免交互 1:概述 Here Document 是一个特殊用途的代码块,它在 Linux Shell 中使用 I/O 重定向的方式将命令列表提供给交互式程序或命令,比如 ftp、cat 或 read 命令,Here Document 是标准输入的一种替代品 语法…...

基于opencv的斜光测距及python实现

1.前言 最近做了一个基于opencv的斜光测距的小项目,东西不多,但是很有意思,值得拿出来学一学。项目里面需要比较精确的定位功能,将前人matlab代码移植到python上,并且做了一些优化,简化逻辑(毕竟我是专业的…...

梯度下降算法

占楼,明天写...

第5章:软件工程

第5章:软件工程 软件工程概述 软件生命周期 软件过程 1.能力成熟度模型(CMM) CMM(能力成熟度模型)是一个评估和确定组织软件过程成熟度的模型。它最早于1987年由美国国防部软件工程研究所(SEI)提出,其目的…...

cefsharp在splitContainer.Panel2中显示调试工具DevTools(非弹出式)含源代码

一、弹出式调试工具 (ShowDevTools) ChromiumWebBrowser webbrowser; public void showDevTools(){//定位到某元素webbrowser.ShowDevTools(null, parameters.XCoord, parameters.YCoord);...

nginx部署多个项目;vue打包项目部署设置子路径访问;一个根域名(端口)配置多个子项目

本文解决: vue打包项目部署设置子路径访问;nginx部署多个子项目;一个ip/域名 端口 配置多个子项目;配置后,项目能访问,但是刷新页面就丢失的问题 注:本文需要nginx配置基础。基础不牢的可见文…...

02-部署LVS-DR群集

1.LVS-DR工作原理 LVS-DR模式,Director Server作为群集的访问入口,不作为网购使用,节点Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过Director Server 为了响应对整个群集的访问,…...

DataWhale-吃瓜教程学习笔记 (六)

学习视频**:第4章-决策树_哔哩哔哩_bilibili 西瓜书对应章节: 第五章 5.1;5.2;5.3 文章目录 MP 神经元- 感知机模型 (分类模型)-- 损失函数定义--- 感知机学习算法 - 随机梯度下降法 - 神经网络需要解决的问…...

在docker配置Nginx环境配置

应用于商业模式集中,对于各种API的调用,对于我们想要的功能进行暴露,对于不用的进行拦截进行鉴权。用于后面的付费 开发环境 正式上线模式 一、常用命令 停止:docker stop Nginx重启:docker restart Nginx删除服务&a…...

在不修改.gitignore的情况下,忽略个人文件的提交

Git提供了一个assume-unchanged命令&#xff0c;可以将文件标记为“假设未更改”。这意味着Git将忽略该文件的更改&#xff0c;不会将其提交到仓库中。要使用该命令&#xff0c;只需运行以下命令&#xff1a; git update-index --assume-unchanged <file>其中&#xff0…...

【Unity navmeshaggent 组件】

【Unity navmeshaggent 组件】 组件概述&#xff1a; NavMeshAgent是Unity AI系统中的一个组件&#xff0c;它允许游戏对象&#xff08;通常是一个角色或AI&#xff09;在导航网格&#xff08;NavMesh&#xff09;上自动寻路。 组件属性&#xff1a; Radius&#xff1a;导航…...

51单片机第18步_将TIM0用作13位定时器

本章重点学习将TIM0用作13位定时器。 1、定时器0工作在模式0框图 2、定时器0工作在模式0举例 1、Keil C51中有一些关键字&#xff0c;需要牢记&#xff1a; interrupt 0&#xff1a;指定当前函数为外部中断0&#xff1b; interrupt 1&#xff1a;指定当前函数为定时器0中断…...

构建现代医疗:互联网医院系统源码与电子处方小程序开发教学

本篇文章&#xff0c;笔者将探讨互联网医院系统的源码结构和电子处方小程序的开发&#xff0c;帮助读者更好地理解和掌握这些前沿技术。 一、互联网医院系统源码结构 互联网医院系统通常由多个模块组成&#xff0c;每个模块负责不同的功能。以下是一个典型的互联网医院系统的主…...

2024亚太赛(中文赛)数学建模竞赛选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;B<C<A&#xff0c;开放度&#xff1a;C<A<B。 综合评价来看 A题适合有较强计算几何和优化能力的团队&#xff0c;难度较高&#xff0c;但适用面较窄。 B题数据处理和分析为主&#xff0c;适合数据科学背景的团队…...

10 - Python文件编程和异常

文件和异常 在实际开发中&#xff0c;常常需要对程序中的数据进行持久化操作&#xff0c;而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词&#xff0c;可能需要先科普一下关于文件系统的知识&#xff0c;对于这个概念&#xff0c;维基百科上给出…...

AI绘画-Stable Diffusion 原理介绍及使用

引言 好像很多朋友对AI绘图有兴趣&#xff0c;AI绘画背后&#xff0c;依旧是大模型的训练。但绘图类AI对计算机显卡有较高要求。建议先了解基本原理及如何使用&#xff0c;在看看如何实现自己垂直行业的绘图AI逻辑。或者作为使用者&#xff0c;调用已有的server接口。 首先需…...

2024年过半,新能源车谁在掉链子?

2024年过半之际&#xff0c;各品牌上半年的销量数据也相继出炉&#xff0c;是时候考察今年以来的表现了。 理想和鸿蒙智行两大增程霸主占据头两名&#xff0c;仍处于焦灼状态&#xff1b;极氪和蔚来作为高端纯电品牌紧随其后&#xff0c;两者之间差距很小&#xff1b;零跑和哪…...

离线查询+线段树,CF522D - Closest Equals

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 522D - Closest Equals 二、解题报告 1、思路分析 考虑查询区间已经给出&#xff0c;我们可以离线查询 对于这类区间离线查询的问题我们通常可以通过左端点排序&#xff0c;然后遍历询问同时维护左区间信息…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...