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

【系统分析师】-论文-论需求开发

1、题目描述

软件需求工程是包括创建和维护软件需求文档所必需的一切活动的过程,可分为需求开发和需求管理两大工作。在需求开发阶段需要确定软件所期望的用户类型,获取每种用户类型的需求,了解实际的用户任务和目标,以及这些任务所支持的业务需求。同时还包括分析源于用户的信息,对需求进行优先级分类,将所收集的需求编写成为需求规格说明书和需求分析模型,以及对需求进行评审等工作。

请围绕“论需求开发”论题,依次从以下三个方面进行论述。

1. 简要叙述所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。

2. 简要说明需求开发包括的工作有哪些。

3. 考生需结合自身参与项目的实际状况,指出其参与管理和开发的项目中是如何根据2中的工作进行需求开发的,给出具体的实践过程。

2、知识点分析

参考【系统分析师】-需求工程_系统工程需求验证-CSDN博客

提纲:

    需求开发可以分为:需求获取、需求分析、需求定义、需求验证4个阶段的工作。

2.1、 需求获取

image.png

2.2、需求分析

1、结构化分析:通过功能分解方式把系统功能分解到各个模块中,分析结果以数据流图(DFD)和实体关系图(ERD)呈现,还可以使用STD状态转换图。

2、面向对象分析:运用面向对象方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。最终产生一个符合用户需求,并能直接反映问题域和系统功能的面向对象分析模型及其详细说明。面向对象分析工作的两大成果:需求模型和分析模型。①需求模型用用例图建立,属于需求工作成果,为分析工作提供依据。构建用例模型的4个阶段:识别参与者、合并需求获得用例、细化用例描述和调整用例模型,其中前三个阶段是必需的。②分析模型属于分析工作成果,用类图建立。建立分析模型的过程:定义概念类、确定类之间的关系、为类添加职责、建立交互图等。

2.3、需求定义

需求定义的过程也就是形成需求规格说明书SRS的过程,通常有两种需求定义的方法,分别是严格定义方法和原型方法。

(1)严格定义法

①所有需求都能够被预先定义。

②开发人员与用户之间能够准确而清晰地交流。

③采用图形(或文字)可以充分体现最终系统。

(2)原型法

原型化的需求定义过程是一个开发人员与用户通力合作的反复过程。从一个能满足用户基本需求的原型系统开始,允许用户在开发过程中提出更好的要求,根据用户的要求不断地对系统进行完善。需求定义会产生需求规格说明书SRS,其内容包括:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解、附录。  

2.4、需求验证

需求验证也称为需求确认,其活动是为了确定以下几个方面的内容:

(1)SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征。

(2)SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。

(3)需求是完整的和高质量的。

(4)需求的表示在所有地方都是一致的。

(5)需求为继续进行系统设计、实现和测试提供了足够的基础。

需求验证的方法有需求评审与需求测试。     

3、论文部分

以下论文内容仅作参考,不具备实际的论文模板格式;

【系统架构师】-论文模板(二)_系统架构师论文-CSDN博客

【系统分析师】-2024-2010年系统分析师历年论文题目_系统分析师历年论文论题-CSDN博客

3.1、摘要

软件需求工程是软件开发过程中的关键环节,涉及对用户需求的获取、分析、管理及文档化工作。需求开发作为需求工程的重要组成部分,贯穿于项目的早期阶段,其主要任务是明确软件的目标用户,收集和分析用户的需求,建立需求规格说明书(SRS)以及需求模型,为后续开发提供指导性依据。在本文中,我将结合自身参与的项目实践,详细论述需求开发的各个环节及其在项目中的应用。首先,介绍所参与的软件项目和本人所承担的角色及职责;其次,详细说明需求开发所涵盖的核心工作内容;最后,结合项目实践,描述具体如何在实际项目中执行需求开发,并探讨其重要性及实施中的挑战与应对措施。本论文旨在通过理论与实践结合的方式,分析和总结需求开发对软件项目成功的重要性,并提出实践经验与思考,为从事需求开发工作的人员提供参考。


3.2、正文

1. 项目背景及参与角色

在我参与的项目中,我们团队负责开发一款企业级客户关系管理系统(CRM)。该系统主要面向企业用户,帮助其高效地管理客户信息、销售流程及市场活动,提升客户满意度与业务转化率。在该项目中,我担任需求分析师的角色,负责从项目初期的需求获取到需求规格说明书(SRS)的编写与需求评审全过程。我的主要职责包括:

  • 与客户和业务方进行需求访谈,了解项目背景及用户需求;
  • 收集不同类型用户的需求,并进行归纳和分类;
  • 制定需求优先级,并与开发团队、测试团队对需求进行评审;
  • 撰写需求规格说明书,并建立需求分析模型以指导开发。

项目开发过程采用了敏捷开发模式,因此需求开发贯穿整个项目周期,特别是每个迭代的计划阶段

2. 需求开发的核心工作

需求开发包括以下几个关键环节:

  1. 需求获取

    • 与用户和业务方进行沟通,了解他们的需求和期望。
    • 使用访谈、问卷、观察和需求研讨会等方式获取信息。
    • 将需求从业务层面转化为软件功能需求。
  2. 需求分析与分类

    • 对获取的需求进行分析,区分出功能需求非功能需求
    • 分析不同用户类型的需求是否存在冲突,并进行协调。
    • 对需求的优先级进行排序,以便在开发中分阶段实现。
  3. 建立需求规格说明书(SRS)与需求模型

    • 将需求整理成文档化的需求规格说明书,为开发团队提供具体指导。
    • 使用用例图、流程图等模型展示需求,以便更清晰地理解需求。
  4. 需求评审与确认

    • 邀请相关利益方对需求进行评审,确保需求理解一致。
    • 确保文档化的需求能够满足业务目标,并达成所有利益方的共识。
  5. 需求变更管理

    • 在开发过程中,如有新需求或需求变更,需通过变更流程及时跟进。
    • 维护需求追踪矩阵,以确保变更后的需求能够实现。

3. 项目实践中的需求开发过程

在我参与的CRM项目中,我们根据上述需求开发的步骤,分阶段实施了需求工作。具体过程如下

1. 需求获取

在项目初期,我们召开了多轮需求研讨会,邀请了企业客户的销售经理、市场专员及客户服务团队代表参与。通过访谈问卷调查,我们明确了不同用户群体的需求。例如,销售团队希望系统能够自动记录客户跟进记录,而市场部门则希望实现精准营销活动的分析功能。

2. 需求分析与分类

获取需求后,我们将其划分为必须实现的功能需求(如客户管理模块)和可选的非功能需求(如数据分析的响应速度)。此外,我们使用了Kano模型对需求优先级进行分类,并制定了每个迭代的功能清单。例如,在第一阶段实现了基本的客户信息管理模块,而高级的数据分析模块被安排在后续迭代中。

3. 建立需求规格说明书与需求模型

根据分析后的需求,我们撰写了详细的需求规格说明书(SRS)。文档中明确描述了每个功能模块的输入、输出及业务规则。此外,我们使用用例图展示了用户如何与系统进行交互,并创建了流程图以梳理核心业务流程,如客户跟进和销售订单处理。

4. 需求评审与确认

在需求文档完成后,我们召开了需求评审会议,邀请客户代表和开发团队参与。通过评审,我们发现了一些需求冲突(如不同部门对同一字段的定义不一致),并在会上进行协调。最终,所有参与方达成一致,并签署了需求文档。

5. 需求变更管理

在项目进行过程中,客户提出了一些新的需求,如添加移动端支持和自定义报表功能。我们通过变更管理流程将这些需求纳入后续迭代,同时维护了需求追踪矩阵,确保每个需求在开发中得到实现和验证。


4. 实施中的挑战与应对策略

在需求开发过程中,我们遇到了以下挑战:

  1. 用户需求模糊不清:一些用户初期对系统的功能需求缺乏明确认识。我们通过多轮访谈和原型设计帮助用户明确需求。
  2. 需求变更频繁:由于项目周期较长,用户的需求不断变化。我们采用敏捷开发模式,将需求拆分为多个迭代,灵活应对变化。
  3. 需求冲突:不同用户对系统的需求存在冲突。我们通过协调会议,确保所有利益相关方达成一致。

5. 结论

需求开发是软件项目成功的关键,它不仅为开发提供明确的方向,还能有效减少后续开发过程中的返工与风险。在实际项目中,通过科学的需求获取、分析和管理,我们能够更好地满足客户需求,并提升系统的可维护性和用户体验。未来,我们将继续优化需求开发流程,探索更高效的工具与方法,以应对复杂项目中的挑战。

 历年所有的论文题目可以通过  软考真题 APP 的 ”智能练题“模块,勾选论文搜索查看。


http://www.kler.cn/news/362968.html

相关文章:

  • GEE数据集:1984-2022 年间加拿大 6.5 亿公顷森林生态系统的年度优势树种(也称主要树种)地图
  • 无人机悬停精度算法!
  • LabVIEW提高开发效率技巧----插入式架构
  • SQL注入原理、类型、危害与防御
  • python 中 map,split,join
  • 如何开启华为交换机 http
  • 双目视觉三角测量C语言代码实现不使用OpenCV
  • R语言笔记(一)
  • 基于neo4j的糖尿病知识图谱数据
  • 深入浅出 Vue3 nextTick
  • 推荐一个开源非线性视频编辑器:Kdenlive
  • 在一台不能接入互联网的服务器(cenos7)安装DOCKER
  • 基于YOLOv8深度学习的无人机视角高精度太阳能电池板检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
  • 成长的代价
  • Telephony Contact
  • 信息系统的分类
  • JavaScript进阶:手写代码挑战(一)
  • chat_gpt回答:python 复制xml文件
  • AI绘画教程分享:Stable Diffusion最新使用指南
  • 大括号块作用域的起源是什么?为什么整型数值用补码保存?char类型变量是存储为int类型大小吗?枚举为什么被当做整型?编程语言标识符为什么不能以数字开头?
  • Java最全面试题->Java基础面试题->JavaWeb面试题->Maven面试题
  • Cookie与Session详解与应用
  • LangGraph 源码分析 | 结构化输出
  • Umi UI报错:连接失败,请尝试重启dev服务
  • 从一个简单的计算问题,看国内几个大语言模型推理逻辑能力
  • 市面上什么台灯性价比高?五款超强实力护眼台灯测评推荐!