现已临近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作为我们的需求管理工具,在整个项目中发挥了不可或缺的作用。它帮助我们系统地组织和跟踪需求变更,提供了强大的版本控制和历史记录功能,使得需求分析过程更为严谨和可追溯。通过这些工具的应用,我们明显感受到了工作效率的提升和项目管理的便捷性。