系统分析师论文——论软件需求分析方法和工具的选用

现已临近2024年软考,周围一些报名参加系统分析师考试的“小伙伴”还未准备论文,我分享早年写的一些内容(包括参加继续教育准备的论文),仅供大家结合最新考纲要求酌情参考,希望予人玫瑰,手有余香。

注1:为了不涉及敏感数据,文中年份、合同金额、建设周期等数字均做了“马赛克”处理-_-||b

目录

【摘要】

【正文】

 第一步:通过逆向工程获取原有系统的基本需求。

第二步:基于初步分析,继续使用PowerDesigner绘制用例,并明确系统基本需求

第三步:使用Axure Pro进行UX设计,完善需求分析与原型设计


【摘要】

本文以出入境信息管理系统的升级改造项目为背景,探讨了信息系统需求分析的实践过程。该项目的重要特征在于,它是对现有系统的一次重要升级,而非全新系统的建设。因此,需求分析过程具有其独特性,并可分为三个关键阶段:首先,通过实施逆向工程对原系统进行深入剖析,以获得对系统的初步了解;其次,在逆向工程的基础上,撰写详细的分层用例图,并客户进行沟通、评审和补充,以确保需求的准确性和完整性;最后,根据基本需求文档开发系统原型,并利用原型与客户进行多轮次交流,从而获取稳定的基线需求。本文详细阐述了不同阶段中所采用的分析方法与工具,以及在实践中遇到的一些典型问题和相应的解决措施。同时,本文也对需求分析中使用的工具进行了反思,分享了笔者对于如何更好地应用这些工具的初步体会。

【正文】

笔者于2011年9月至2012年6月参与了出入境信息管理系统的升级改造项目。由于甲方已有旧系统正在使用,并承载着重要的出入境信息管理任务。然而,老系统存在几个显著的问题:一是系统运行效率低下,特别是在处理大量出国境申请时,查询和更新操作的响应时间耗时较长,严重影响了用户体验和受理人员的工作效率;二是系统数据存在一定的不准确性,有时会出现实际申请信息与系统中记录的历史数据不一致的情况,给管理工作带来了诸多不便。三是系统的用户界面过时,不符合现代操作习惯,使得用户在使用时感到不便。为了解决这些问题,甲方决定对原有系统进行升级改造。

鉴于出入境信息管理系统的复杂性、涉及人员众多以及项目时间紧凑、资源有限等实际情况,我们决定对原系统的需求进行深入且切实可行的分析。为避免前一系统出现的结构混乱、操作体验较差与运维难度大等问题,我们采取了一种系统性的方法来确保需求的准确性和可行性。由于原有系统已经运行了一段时间,且用户已积累了一定的使用经验,同时基本业务流程保持稳定,我们将需求分析过程划分为三个主要步骤:一是深入分析原有系统的结构,特别是数据库结构和程序操作流程与逻辑;二是在第一步分析的基础上,撰写分层用例图和DFD,既表达需求,又描述数据流程,并提交给客户进行沟通、评审和补充;三是根据第二步的结果,设计系统原型,并通过与客户交流,不断完善和优化需求,最终确定切实可用的需求。接下来,笔者将详细阐述这三个步骤的实施过程。


 第一步:通过逆向工程获取原有系统的基本需求。

由于原有出入境信息管理系统在功能上已基本满足用户需求,并且在长期服务中积累了大量经验,因此,我们可以从中汲取宝贵的信息,避免不必要的摸索。在这一阶段,为了深入分析系统的数据库结构和程序流程,我们主要采用了专业的逆向工程工具。这些工具帮助我们高效地解析了复杂的数据存储结构和程序流程,使得开发人员和高级用户能更清晰地理解系统的工作原理。

我们选择这些工具的原因是原有系统规模庞大、模块众多,且缺乏完整的设计文档。通过工具辅助,我们能够更准确地把握系统的整体架构和细节。在使用这些工具对数据库和程序进行深入分析后,我们初步了解了原系统的结构,并结合实际使用情况,进一步明确了功能和流程的需求。在此基础上,我们采用PowerDesigner整理并记录了初步的需求文档。需要注意的是,在使用这些工具时,我们也遇到了一些挑战。例如,当数据库表字段过多或表间关系复杂时,生成的图表可能会显得混乱且难以阅读。为了克服这一不足,我们采取了一系列措施,如定制化PowerDesigner图表模板、添加注释等,以提高文档的可读性和易用性。

第二步:基于初步分析,继续使用PowerDesigner绘制用例,并明确系统基本需求

在进行了初步的逆向工程之后,我们获取了原有系统的基本需求。为了更直观、更清晰地展现这些需求,并便于客户理解和评审,我们决定在第二步中使用PowerDesigner这一工具。PowerDesigner不仅能够帮助我们深入解析数据库结构,还能通过图形化的方式展示系统的各个组成部分及其关系。在这一阶段,我们主要利用PowerDesigner绘制了数据模型图(PDM)、实体关系图(ERD)以及分层用例图等,以全面、准确地描述系统的需求。

首先,我们根据逆向工程的结果,在PowerDesigner中创建了新系统的实体关系图,直观地展示了系统中各个实体之间的关系,包括一对一、一对多、多对多等关系。这有助于我们深入理解系统的业务逻辑和数据流程。逻辑数据模型,明确了各个数据表、字段以及表之间的关系。接着,我们绘制了新系统的逻辑和物理数据模型,这有助于我们和客户共同理解系统的数据结构和数据存储方式。

最后,我们根据客户的需求和业务流程,绘制了分层用例图。用例图从用户的角度出发,描述了系统的功能和操作流程。通过用例图,我们可以清晰地看到各个用例之间的关系,以及每个用例的具体步骤和期望结果。这不仅有助于我们和客户确认需求,还为后续的开发工作提供了明确的指导。

在完成了这些图形化描述之后,我们将这些图表和文档提交给客户进行评审和补充。客户根据这些直观的图表,更容易地理解了我们的需求分析工作,并提出了宝贵的反馈意见。我们根据客户的反馈对需求进行了进一步的完善和调整。通过使用PowerDesigner并绘制分层用例图等来描述需求,我们不仅提高了需求分析的准确性和效率,还增强了与客户之间的沟通和协作。这为后续的开发工作奠定了坚实的基础,并确保了项目能够按照客户的要求顺利进行。

第三步:使用Axure Pro进行UX设计,完善需求分析与原型设计

在第二步的基础上,我们进入了项目的第三阶段,这一阶段的目标是结合Axure Pro和PowerDesigner两款工具,进一步完善需求分析与原型设计。首先,我们使用Axure Pro创建了可交互的原型。Axure Pro的强大功能使我们能够模拟出非常接近真实系统的交互体验,这帮助客户更直观地理解系统的预期行为。通过原型的交互演示,客户能够在实际开发前对系统有一个更为准确的预期。

与此同时,我们使用PowerDesigner的UML组件工具来绘制功能模块图。功能模块图能够清晰地展示出系统的整体结构,以及各个功能模块(或类、组件)之间的关联。这有助于开发人员和其他利益相关者更好地理解系统的组成和相互关系。通过PowerDesigner,我们不仅绘制了详细的功能结构图,使得复杂的系统结构变得更为清晰易懂。

这种结合Axure Pro和PowerDesigner的工作方式,使我们能够更全面地捕捉和记录客户的需求。Axure Pro提供的交互式原型让客户能够直观地看到系统的未来形态,而PowerDesigner的UML功能结构图则为我们提供了一个逻辑清晰、直观可视的功能框架。最终,经过这一阶段的工作,我们成功地获得了经过客户确认,达到了需求基线,这为后续的开发工作奠定了坚实的基础。

总结这个项目需求分析阶段的工作,我们综合运用了多种工具来提升需求分析和管理的效率。逆向工程分析工具则协助我们从现有系统中提取关键信息,加速了需求分析的进程;PowerDesigner帮助我们进行了数据库结构和业务流程的建模,通过其UML功能,我们能够清晰地绘制出分层用例图,从而更直观地展现系统的功能需求和用户操作流程;Axure Pro清晰地表达了用例图描述的需求,并以可交互式原型展示了系统构建后的状态,这既是需求直观可视的表达,又是进一步挖掘需求的利器;同时,PowerDesigner作为我们的需求管理工具,在整个项目中发挥了不可或缺的作用。它帮助我们系统地组织和跟踪需求变更,提供了强大的版本控制和历史记录功能,使得需求分析过程更为严谨和可追溯。通过这些工具的应用,我们明显感受到了工作效率的提升和项目管理的便捷性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/690529.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

N5183B是德科技n5183b信号源

181/2461/8938产品概述: 简  述: N5183B 频率范围:9 kHz 至 20 GHz,具有 AM、FM、相位调制功能。N5183B MXG X 系列微波模拟信号发生器拥有 9 kHz 至 40 GHz 的频率覆盖范围,以及接近 PSG 级别的相位噪声性能&…

飞书API(8):MySQL 入库定制版本

一、引入 通用版能解决百分之八九十的任务,剩下的部分任务需要进行定制。 先说明通用版本和定制版本有什么不同,通用版本就是只管大的数据类型,将数据处理为对应的类型入库,而定制版本会考虑局部列的数据类型,。举个…

政安晨:【Keras机器学习示例演绎】(四十三)—— 使用 KerasNLP 实现英语到西班牙语的翻译

目录 简介 设置 下载数据 解析数据 数据标记化 格式化数据集 建立模型 训练我们的模型 解码测试句子(定性分析) 解码测试句子(定性分析) 评估我们的模型(定量分析) 10 个轮次后,得分…

PostgreSQL的学习心得和知识总结(一百四十三)|深入理解PostgreSQL数据库之Support event trigger for logoff

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

auto->decltype

auto c11标准才有的,c14丰富了很多这个相关的用法 声明变量别用auto,auto是让编辑器来自己推断,很影响运行效率 #include<iostream> using namespace std;auto ave(int a, int b) {return a b; }int main() {cout << typeid(ave(1, 2)).name()<<endl;ret…

TMS320F280049 CLB模块--FSM(3)

功能框图 FSM有效状态机内部框图如下图所示&#xff0c;可以看到内部有S0 / S1两个状态和下一状态的跳转查找表。还有个输出查找表。 下图是FSM LUT的示意框图。FSM还可以工作在3输入或4输入的查找表模式下。对于输入&#xff0c;EXTRA_EXT_IN1/0可以替换S0/1。 寄存器 参考文…

Java - Json字符串转List<LinkedHashMap<String,String>>

需求&#xff1a;在处理数据时&#xff0c;需要将一个Object类型对象集合转为有序的Map类型集合。 一、问题 1.原代码&#xff1a; 但在使用时出现报错&#xff1a; Incompatible equality constraint: LinkedHashMap<String, String> and LinkedHashMap 不兼容的相等…

[AutoSar]BSW_Diagnostic_002 DCM模块介绍

目录 关键词平台说明背景一、DCM所处架构位置二、DCM 与其他模块的交互三、DCM 的功能四、DCM的内部子模块4.1 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c; EB芯片厂商TI 英飞凌编程语言C&…

kali搭建Vulhub靶场

简单概述 Vulhub是一个面向大众的开源漏洞靶场&#xff0c;借助Docker简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。旨在让漏洞复现变得更加简单&#xff0c;让安全研究者更加专注于漏洞原理本身。 Docker是一个开源的容器引擎&#xff0c;它有助于更快地交付应用…

【Android】Kotlin学习之数据容器 -- 集合

一. 定义 List : 是一个有序列表, 可通过下标访问元素. 元素可以在list中出现多次, 元素可重复 Set : 是元素唯一的集合, 一般来说Set中元素的顺序并不重要, 无序集合. Map : 是一组键值对, 键是唯一的, 每个键刚好映射到一个值, 值可以重复 二. 集合创建 三. 示例 mutabl…

[ue5]编译报错:使用未定义的 struct“FPointDamageEvent“

编译报错&#xff0c;错误很多&#xff0c;但很明显核心问题是第一个&#xff1a;使用未定义的 struct“FPointDamageEvent“&#xff1a; 程序没有找到FPointDamageEvent的定义。 解决办法&#xff1a; 处理这类未定义都可以先F12&#xff0c;找到它的库位置&#xff0c;之后…

基于Django实现的校园疫情监控平台

基于Django实现的校园疫情监控平台 开发语言:Python 数据库&#xff1a;MySQL所用到的知识&#xff1a;Django框架工具&#xff1a;pycharm、Navicat、Maven 系统功能实现 登录注册功能 用户在没有登录自己的用户名之前只能浏览本网站的首页&#xff0c;想要使用其他功能都会…