精华内容
下载资源
问答
  • 面向对象的需求分析方法
    千次阅读
    2022-01-16 15:48:52

    特点:
    (1)结构化方法的思想是一种分层的思想,模块化思想,它语句结构化,不再使用GOTO语句。
    结构化方法还遵循分解原则,自顶向下进行分层解决。
    (2)面向对象方法显然是面向对象思想,将系统中要处理的问题看作对象,复杂对象由简单对象组成。具有相同属性和操作的对象属于一个类,类之间有类似于结构化的层次,可以有子类,且可以继承父类的全部属性并具有自己的属性和操作。类具有封装性,将内部属性和操作隐藏。面向对象的思想强调抽象、继承和封装。

    优点:
    (1)结构化方法的优点是考虑问题的方式较为合理,先确定主要系统功能,然后逐层深入,由简到难,逐渐将一个大致的总体结构具体化,最终全部实现其功能。结构化的模块化使得问题难度降低,编写的程序也更加简明,可读性更高。
    (2)面向对象方法的优点在于其开发软件的思维与人类思维方法一致,用户更容易理解。而由于面向对象的封装性,局部的改变不会影响整体系统的功能,使得管理人员调试维护起来也很方便,可靠性也更高。而面向对象方法也使用了模块化的思想,将复杂问题分解成独立的小问题,降低了难度和成本。

    缺点:
    (1)结构化由于要对一个整体问题不断分解,要处理的条件和信息也会越来越多,有时候会给开发人员编程时造成麻烦,这也使得结构化方法能处理的复杂问题难度有一定的限制。
    不利于维护。
    (2)面向对象虽然对于用户使用起来很方便,但对于开发人员抽象对象的能力有很高的要求。对于对象的建立不但要准确,还要全面,并且符合模块的要求,若整体模块划分不合理,对功能会有很大的影响

    更多相关内容
  • 面向对象需求分析方法一、UML统一建模语言1、主要特点2、基本结构3、UML的视图4、9个基本图5、视图和基本图的关系6、UML类图的组成二、面向对象的需求分析建模1、模型组成2、领域模型的构建步骤3、用例模型的创建...

    一、UML统一建模语言

    1、主要特点

    标准的图形化建模语言,是面向对象分析与设计的一种标准表示。

    • 不是可视化的程序设计语言
    • 不是工具或知识库的规格说明
    • 不是过程
    • 不是方法
    • 是一种建模语言,一种标准表示

    2、基本结构

    (1)基本构造块
    事物+关系+图
    (2)语义规则
    name、scope、visibility、integrity、execution
    (3)通用机制
    specification、adornment、common division、extensibility mechanism
    (4)事物及关系
    Structural thing、Behavior thing、Group thing、Annotation thing

    3、UML的视图

    用模型来描述系统结构(静态特征)和行为(动态特征),从不同的视角为系统架构进行建模,从而形成不同的视图,主要有:

    • 逻辑视图/结构模型视图、静态视图:展现系统的静态或结构组成及特征,
    • 构建视图/实现模型视图/开发视图:关注软件代码的静态组织与管理
    • 进程视图/行为模型视图/过程视图/协作视图/动态视图:描述设计的并发和同步等特性,关注系统非功能性需求,
    • 部署视图/环境模型视图/物理视图::描述硬件的拓扑结构以及软件和硬件的映射问题,关注系统非功能性需求(性能、可靠性等)
    • 用例视图/用户模型视图/场景试图:强调从用户的角度看到的或需要的系统功能.
      在这里插入图片描述

    4、9个基本图

    用例图/类图/对象图/顺序图/协作图/状态图/活动图/构件图/部署图

    我愿称之为“九大巨人”(>==<):
    用例图——进击的巨人,因为是本章主角,而且用例真的很高深,就像进巨的设定。
    类图——战锤巨人,从无到有,创造的可以是类,也可以是杀神武器。
    对象图——女巨人(谁让她和阿尔敏搞对象
    顺序图——铠之巨人,贯穿始终,好懂但是很纠结
    协作图——车夫巨人,它体现了协作的重要性
    状态图——始祖巨人,受到“不战之约”的影响,改变状态
    活动图——超大巨人,因为它“活动”最不方便
    构件图——颚之巨人,作为一个“胡桃夹”,这很构件。
    部署图——野兽巨人,吉克也是个步步为营的部署高手。
    在这里插入图片描述

    5、视图和基本图的关系

    用例视图:用例图和活动图【调查兵团】
    逻辑视图:类图、对象图、顺序图/协作图【马莱军】
    进程视图:状态图、活动图【艾伦和阿尔敏两个好“兄弟”】
    构件视图:构件图【三代颚之巨人】
    部署视图:部署图【吉克之义勇军】

    6、UML类图的组成

    UML类图用于描述类以及类之间的关系。

    类的组成部分
    ①类名
    ②属性(可见性 属性名:类型名= 初始值 {性质串})
    ③操作(可见性 操作名(参数表):返回值类型 {性质串} )

    类的关系分类一
    ①关联【普通关联、导航关联、递归关联】
    ②组合和聚合
    ③依赖和继承

    类的另一种分类
    ①依赖关系
    ②关联关系
    ③聚合关系
    ④组合关系
    ⑤继承关系
    在这里插入图片描述

    二、面向对象的需求分析建模

    1、模型组成

    包含两类模型:
    (1)领域模型:
    表示了需求分析阶段“当前系统”逻辑模型的静态结构及业务流程,:针对某一特定领域内概念类或者对象的抽象可视化表示。概括性的描述业务背景和业务流程。
    以下元素不适用于领域模型:软件制品,例如窗口、界面、数据库、软件模型中具有职责或方法的对象。
    (2)用例模型:
    定义了“目标系统”做什么的需求。由以下四个部分组成
    1)用例图(基础):角色、用例、联系
    2)用例说明(基础):成功场景和分支场景
    3)系统顺序图(附加说明)
    4)操作契约(附加说明)

    两者之间的关系如图:
    在这里插入图片描述

    2、领域模型的构建步骤

    (1)识别概念类
    找出当前需求中的候选概念类:
    通过对用例描述中的名词或名词短语寻找和识别概念类;

    • 概念类和属性的辨析
      属性一般是可以赋值的,比如数字或者文本。如果该名词不能被赋值,那么就“有可能”是一个概念类。如果对一个名词是概念类还是属性举棋不定的时候,最好将其作为概念类处理。

    (2)描述概念类
    在领域模型中描述这些概念类。用问题域中的词汇对概念类进行命名,将与当前需求无关的概念类排除在外。
    (3)添加关联
    在概念类之间添加必要的关联来记录那些需要保存记忆的关系,概念之间的关系用关联、继承、组合/聚合来表示。

    • 关联类型:
      须要知道型关联:将概念之间的关系信息保持一段时间的关联,需着重考虑。
      只需理解型关联:有助于增强对领域中关键概念的理解的关联。
    • 找寻关联遵循的原则:
      集中查找须要知道型关联;
      识别概念类比识别关联更重要,领域模型创建应该更注重概念类的识别;
      太多的关联容易使领域模型变得混乱;
      避免显示冗余或导出关联;

    3、用例模型的创建步骤

    以用例为核心从使用者的角度描述和解释待构建系统的功能需求。
    确定问题域的分析范围
    问题域指的是在一次用例建模过程中,需要思考的问题边界,和场景相关
    场景包括环节,环节中体现问题。
    确定该范围内可能出现的角色
    可以是使用系统的使用者、和用户使用场景关联的人、
    根据业务背景或者领域模型,确定每个角色需要的用例,并形成用例图
    ①每个角色用例不同
    基于确定的用例,整理成规范的用例描述文本
    也就是需要生成用例说明
    用例图整合
    在可能的情况下,将多个角色的用例图整合成一个相对完整的用例图;
    绘制系统顺序图
    针对每个用例,结合相应的用例描述,确定系统顺序图中角色与系统之间的交互,绘制基于用例的系统顺序图,系统顺序图描述角色和系统的交互过程
    确定操作契约
    基于每个系统顺序图,确定每个事件交互经过系统处理后应该返回给角色的声明性结果,即操作契约;

    4、用例

    • 用例一定是系统功能,系统功能不一定是用例

    • 寻找用例的过程:找动词,确定动作的目的性,概括成一个用例

    • 用例分类

    • 基本用例:和角色直接相关的用例,表示系统的功能需求。是用户和系统直接交互形成的事件

    • 子用例:通过场景描述分析归纳出的用例,也表示了系统的功能,但这些用例与角色无直接关系,间接交互,而与基本用例存在关联关系;

    • 包含子用例和基本子用例

    • 包含子用例:
      多个基本用例中的某个与角色交互的场景具有相同的操作(条件1),且这些场景都是基本用例中必须执行的步骤(条件2),它是基本用例的步骤集合中的一个子集,不会和角色产生直接关联。
      包含子用例的确定,必须从用户角度出发,“用例一定是系统功能,但是系统功能不一定是用例”
      在这里插入图片描述

    • 扩展子用例:(多个)基本用例中的某些场景存在相同的条件判断的情况,可以将其抽取出来作为基本用例的子用例;

    • 例如:取款和查询余额:是否需要打印凭证:同样的条件判断下实现的分支场景集合。那么打印凭证可以作为取款的扩展子用例
      在这里插入图片描述

    5、用例图

    1、组成
    Actor/User_case/Association
    2、用例图的确定
    找动词,确定用例和关联
    3、角色
    (1)使用系统的对象,代表角色可以是人、系统、设备、组织、时钟等,表示一类用户,
    (2)如何确定角色:
    通过“自问自答”(主要用户?谁会使用这个系统?谁会维护这个系统?有无与其他系统交互的情况?是否存在时钟信号?)
    4、用例
    (1)场景集合,场景包括成功场景和失败场景,描述用户如何成功使用系统功能实现需求目标。
    (2)如何判断用例:
    分析系统承载的日常任务、为了承载业务所需要提供的功能,系统对数据的处理?哪些事件会影响系统状态?

    6、用例说明

    模板如下:
    在这里插入图片描述在这里插入图片描述

    7、系统顺序图

    1、对象和消息
    (1)对象:角色对象、系统对象
    (2)消息:创建/删除/同步/异步
    2、背景
    用例描述的基础上需要进一步确定角色与系统之间的交互信息,并以可编程的方式将其命名
    3、组成元素
    (1)角色
    (2)代表软件系统的对象
    (3)角色与system之间的交互信息,简称消息或操作
    4、注意事项
    并不是所有场景都需要,只有比较复杂或者主要的场景才需要绘制系统顺序图

    8、操作契约

    1、定义
    处理系统事件的操作,也称为系统事件;
    2、背景
    系统顺序图上代表待构建软件系统的对象,在接收到角色所发起的系统事件请求之后,系统对象根据需求的内容所返回的一个明确的结果以及相关对象的状态,以便软件设计时进行参考
    它是为系统操作而定义的,参考领域模型中业务对象接收到相同的系统事件后,执行必须的业务处理时,各业务对象的状态以及系统操作执行的结果。
    3、模板
    在这里插入图片描述
    4、创建原则
    (1)根据系统顺序图识别进入到系统内的所有系统事件,即操作;
    ·针对每一个系统操作结合对应的用例领域模型,找到与此操作相关的概念类对象;
    ·对那些相对复杂以及用例描述中不清楚的那些系统操作按照后置条件内容确定对象的状态变化,
    5、组成元素
    对象、关系、属性
    6、操作契约和领域模型产生关联的原因
    原因在于创建操作契约的过程中,涉及领域模型的概念类知识。
    7、注意事项
    后置条件的陈述应该是声明性的,以强调系统状态所发生的变化,而非强调这种变化是如何设计实现的。 【只说结果,不重视过程】

    展开全文
  • 在软件开发的过程中,用户需求的准确获取对于软件的成败是非常重要的,然而在以往的开发过程中,常常忽略或简化需求分析的过程,导致软件项目的失败。给出一种利用UML进行面向对象需求分析方法
  • 面向对象需求分析方法实践

    万次阅读 多人点赞 2016-11-17 17:03:05
    软件行业需求工作主要由需求分析师负责,需要完成对用户需求的调研、分析、整理,从而将用户需求转换为可供开发的功能需求。但随着互联网思维的普及,软件行业也越来越强调产品经理的作用,或许并不是互联网思维的...
           软件行业需求工作主要由需求分析师负责,需要完成对用户需求的调研、分析、整理,从而将用户需求转换为可供开发的功能需求。但随着互联网思维的普及,软件行业也越来越强调产品经理的作用,或许并不是互联网思维的关系,而是随着公司的发展,必须寻求由项目盈利模式向产品盈利模式转变,从而催生出产品经理的角色,以及对其的重视。
           对于软件行业的产品经理来说,最核心的职责还是跟需求分析师一样,是从需求到产出原型的过程。在这个过程中主要使用的需求分析方法是面向对象需求分析方法。

    1  面向对象需求分析方法
           面向对象需求分析方法是通过统一建模语言 UML对用户需求进行调研和分析,并整理出功能需求的分析方法。

    2  需求分析过程
           前面已经讲到需求分析过程就是要将用户需求转换为可供开发的功能需求,为了达到这目的需要开展一系列需求活动。
    2.1  收集并分析问题
           在开展一项需求工作之前,都会从任务提出人哪里得到客户的想法(任务提出人不一定是客户,可能是销售同事、项目经理或维护经理)。但任务描述可能会比较粗糙,也较为含糊,还不足以指导后续的需求工作。
           因此当你收到一项任务时,如果不了解情况,那么必须向任务提出人咨询清楚,客户为什么提出这项任务,需要达到什么目的,也就是尽量了解任务提出的背景。如果你不了解客户所提要求涉及的业务背景,或不了解前因后果,将对后续的梳理疑问和用户访谈造成很大的影响。
           接下来就要有针对性的补充相关的知识背景,例如户政客户需要建设一项重户人员注销的功能,那就需要了解一下是不是最近有新的政策出来,或是不是最近公安部有检查,查出本省的重户人员较多而被通报了。这对后续功能实现可能起作用,也可能不起作用,但一定会对后续用户访谈的交流带来极大的好处。
           在搞懂用户要求的过程中,你会产生很多疑问,这时需要将疑问分类整理好,为下一步用户访谈提供基础。梳理疑问需要以用户场景为指导,可沿着“谁要什么功能,达到什么目的”这一思路进行整理。
           虽然在需求调研阶段不应该过多地思考功能实现,不过绝大部分情况都是在原有功能的基础上提出新的需求,全新的系统建设反而较少。这种情况下很难不基于现有功能思考新需求的实现。我认为无需太严格区分需求的每个阶段,在现有的功能基础上先构思解决方案是没有问题的,只要能基于用户场景,最终能满足用户需要即可。因此这时可以基于大概地功能实现的解决方案为出发来梳理细节问题,例如考虑到实现某个功能或操作时会有什么问题,就把问题记下来。但需要跟客户核实的问题应该还是以业务问题为主,如果只是些交互或操作层面上的问题,大可等到原型设计时,再进一步细化,或内部讨论解决。

    2.2  用户访谈
           用户访谈不是简单的将问题清单拿出来一个个问,问题清单只是辅助,主要是你自己要明白自己想要搞懂的是什么。可以将问题进行分类,整理每类问题的核心,然后基于核心向外发散。
           最先要明确的是从大的范围来看,整个需求需要实现的功能是给谁用的,达到什么目的。再对细分的小需求进行确认,还是给谁用,达到什么目的。最终理出每个用户场景的角色和目的,方便后续需求分析及功能验证。
           用户访谈时,很重要的一项技能是挖掘客户原话背后的真实需求,以及通过一定的提问技巧来帮助你完成访谈。下面是关于用户访谈时的一些提问技巧,以某项目客户提出报表需要导出为PDF为例。
           1、用各种角色的身份进行提问
           例:谁需要这个PDF文档?高层领导、档案管理员、部门经理?
           2、进行反向提问(逆向提问)
           例:不做这个功能会有什么影响?(体现该功能的重要性)
           3、进行外延(发散、深入)提问
           例:PDF文档有什么格式要求?
           例:为什么需要做这个功能?
           4、对原话的每一部分进行提问
           例:什么报表需要导出为PDF?
           根据用户访谈的结果,形成一个个的用户场景,最后将用户场景组装成一个完整的故事,这个故事就是整个业务过程。

    2.3  结构建模
           每个系统或功能都会涉及到不同角色、业务概念和物品等,这些事物之间会有很多关系,发生很多事情。特别是当我们刚接触新的业务时,最急迫需要解决的问题就是理清楚这些业务概念以及他们之间的关系。
           类图能帮助我们识别出这些角色、业务概念、物品等,并理清他们的关系,这个过程就是机构建模。类图除了分析业务需求作用外,还起来指导原型设计的作用。一方面是在设计时能理清每个实体有哪些项目;另一方面是功能与功能之间的关系,一对一和一对多的设计方式是完全不一样的。
           下面给出一个类图的例子,具体类图的知识和绘制不在此介绍,请查阅相关资料。

    2.4  行为建模
           行为建模是通过活动图描述业务活动流程的过程。在梳理用户场景时会得到具体的业务事件,也对业务事件的办理过程有了大概的了解。接下来需要通过活动图对业务事件的过程进行明确,尽量使用泳道图明确各个活动的使用角色,即使是单角色的流程也应该明确标出角色名称。
           业务流程分为生产性流程、管理性流程和支持性流程。生产性流程是流程中最重要的部分,是企业/组织价值体现的核心;管理性流程是对生产性流程的管控,通常是有管理层发现的,对一些质量、效率进行监督的控制性流程;支持性流程是对生产性流程的一种补充,通常是由协作部门、本部门员工执行的工作。如果拿软件开发过程来比喻的话,需求分析、软件设计、软件编码、软件测试是生产性流程;项目管理、质量保证是管理性流程;而文档配置等属于支持性流程。通常生产性流程是最容易标识的,而管理性流程和支持性流程比较容易忽略,因此在需求分析时要特别注意。
          活动图示例如下图所示:

    2.5  功能建模
          用例图的作用主要是将活动图中不在系统范围内的部分过滤掉,只保留可以通过系统实现的活动。对于每一个人机交互的活动,需要细化分析其事件流,也就是当前活动里人机交互的详细过程,这个过程也可以通过活动图绘制。
          用例中的事件流是原型设计的重要输入来源,另一个输入来源是类图中的对象属性及对象间的关系。
           用例图示例如下图所示:
           在完成用例图后,需要进一步细化用例说明:
           经过一系列建模分析后,基本的功能都已经明确,这时需要对功能进行有效地组合,聚合成有机的整体。一般会以业务和角色两个维度进行分析。
    业务/角色业务1业务2
    角色1功能11功能21
    角色2功能12功能22
           如果业务间相对独立,且业务内部连贯性较强,建议以业务维度划分功能模块。如果业务间关联性强,需要经常协同,建议以角色维度划分功能模块,这样对于使用者来说,在一个地方就可以处理所有需要办理的业务。一般来情况下,也建议以角色维度划分功能模块。
           在对内明确功能模块后,还需要对外明确本系统/功能跟其他系统/功能的关系。这里考虑的是我输出什么给别人,以及我有什么需要别人提供的,也就是接口需求,建议使用构件图简单绘制。

    2.6  需求验证
           需求验证主要是对需求分析的成果与客户进行确认,确保业务分析无误和无遗漏。业务需求建议以PPT的形式进行整理,这样更便于交流讨论。
           需求验证和需求分析可能会反复进行,不断调整,最终确认无误后,即可进行功能建模和原型设计。
           具体来说,需求解决方案PPT分为用户需求、需求分析和功能实现3部分。用户需求是在梳理用户场景时整理出来的用户场景,也就是用户希望解决的问题;需求分析是需求分析行为建模和结构建模的相关产出;功能实现主要是列出功能模块以及各功能要实现的作用。当然对于系统级的需求来说可能还需要加入架构图和部署图等设计部分内容。
           另外需要注意,在需求调研过程中,需求分析和需求验证尽量采用敏捷方式执行,尽快给客户进行确认。对于核心业务或影响较大的功能,最好先在内部把一道关,内部评审后再与客户确认。

    2.7  原型设计及验证
           软件行业较互联网行业产品设计而已,没有太多花俏的功能,更关注的是系统功能能否满足业务需要,交互上尽量简单好用即可。因为信息管理软件绝大部分都是CRUD,没有太多新颖的东西,因此在原型设计上首先要保障的是功能的可用,在此基础上尽量简化操作。
           目前原型设计工具以Axure为主流,但原型工具归根结底还是工具,关键还是使用的人,因此根据个人习惯选取即可,不用太纠结。但是在开展原型设计之前更建议使用纸和笔先构思功能原型及交互,再通过工具实现,因为纸和笔是更能理清思路的永恒不变的最好工具。另外不建议对原型过分追求,毕竟原型的作用是更好的交流,只要达到这一目的即可,除非客户对原型美观有要求,否则还是以效率为优先。
           原型验证是基于业务需求检验原型设计能否满足需要的过程,这一过程务必先在公司内部与开发经理及相关领导进行沟通确认,确保原型可实现,避免出现技术难点,影响进度和效果。
           如果在功能确认之前已经开展了需求确认工作,那么功能确认将顺利成章,在讲解之前只要简单回顾需求即可。但如果之前没有进行需求确认,那么在这一阶段,需求确认还是不能少,为了让领导和客户明白功能要解决的问题,还是需要先对需求进行讲解,再对功能进行说明。但这样改动的风险将会很高,因此务必在原型设计之前需要对业务需求进行确认。

    2.8  需求跟踪
           需求跟踪包括从原型验证后到上线的一系列需求落地工作,主要包括编写需规、需求评审、开发答疑、需求符合性测试等。
           1、需规编写及评审
           需规将需求调研和分析的成果描述出来,是开发人员系统开发的依据,也是公司过程文档的一种记录,只需按公司要求编写即可。需要注意的是前面整个需求过程都是围绕着功能性需求开展的,对于非功能性需求并没有描述,需要另外讨论,这里不做细化。
           需要注意的是在编写需规前建议先给开发人员和测试人员进行需求讲解,在一些功能细节上可能会做适当的调整,但大改不应该出现,因为之前关键人物都参与了需求确认的过程。在对细节达成一致后再开展需规编写工作,避免返工,并且后续需求评审将更高效。
           2、开发答疑
           在需求评审结束后,并不表示需求的工作就完成,可以等着开发后的检验。在这个过程中需要确保开发对需求理解到位,并持续关注开发疑问及时解答,一个好的办法是主动创建讨论组,关注讨论组上的情况。另外还需要参加开发的设计评审,通过设计评审确保需求得到落实。
           3、需求符合性测试
           当功能完成开发后,需要经过多轮的测试,在开发完成集成测试后,需求人员需要进行需求符合性测试,确保功能与需求一致。后续再提交系统测试和客户确认测试。

    3  结束语
           以上需求分析过程只是根据本人工作经验梳理的一套工作方法,但并不是说不能调整。多年工作经验让我明白,理论知识很重要,但怎么运用知识更重要。整个需求分析过程都是与人打交道的过程,每个人都是那么的独特,因此并没有一种方法放之四海而皆准,需要在实际工作中灵活运用所学知识和经验,也正是这样才更体现需求分析师的价值。

    展开全文
  • 第6章 面向对象需求分析方法 6.1 什么是面向对象 6.1.1 面向对象概念 6.1.2 对象 面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用涉及从面向对象分析OOA)面向对象设计OOD)面向对象编程OOP)面向对象...
  • 面向对象分析方法 本单元知识大纲 l 对象 定义 l 面向对象的软件开发模型 l 用例图建模基础 1. 什么是对象 在现实世界中有意义的与所要解决的问 题有关系的任何事物都可以作为对象 包括 具体的物理实体的抽象人为...
  • 面向对象需求分析方法 面向对象需求分析方法的核心是利用面向对象的概念和方法为软件需 求建造模型它包含面向对象风格的图 语言机制和用于指导需求分析的面向对 象方法学 面向对象的思想最初起源于 20 世纪 60 ...
  • 超市管理系统软件需求分析和设计说明书面向对象方法
  • PPT已在CSDN均可免费下载 《UML面向对象需求分析与建模教程》 邹盛荣 主编 电子版 2016.01 .doc 当当网上可购买纸质书: http://product.dangdang.com/23766413.html
  • 面向对象需求分析方法 面向对象需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型 它包 含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学 面向对象的思想最初起源于 20 世纪 60 ...
  • 学生成绩管理系统之面向对象分析与设计文档,包括需求分析文档、OOA文档、OOD文档
  • 第6章面向对象需求分析方法 6.1什么是面向对象 6.1.1面向对象概念 6.1.2对象 面向对象的分析oOA)就是运用面向对象的方法进行需求 分析,其主要任务是分析和理解问题域,找出描述问题域和 系统责任所需的类及对象,...
  • 第6章 面向对象需求分析方法 6.1 什么是面向对象 6.1.1 面向对象概念 6.1.2 对象 面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用涉及从面向对象分析OOA)面向对象设计OOD)面向对象编程OOP)面向对象...
  • 本文主要为计算机类专业课“软件工程”结课大作业参考资料,主要围绕餐厅的自助点餐系统进行一系列的研究,采用面向对象模型进行开发,完整资源包括需求分析面向对象设计书、可行性分析、测试文档和使用java初步...
  • 全书共13章,内容包括绪论、面向对象方法、UML建模语言、RUP 统一过程、工具、UML更多细节、系统的需求获取、分析、设计、实现和测试、UML高级课题、案例介绍等。每章均有相关工程实践中的案例说明及实践应用的创意...
  • 需求分析方法及应用--系统分析师

    千次阅读 2022-03-30 11:33:25
    需求分析师提炼、分析和仔细审查已经获取到的需求的过程,需求分析的目的师确保所有的项目干系人(利益相关者)都理解需求的含义并找出其中的错误、遗漏或其它不足的地方。需求分析的关键在于对问题域的研究与理解。...

    目录

    前言

    试题

    范例:

    摘要部分:

    正文部分:


    前言

    由于最近在备考系统分析师,需要准备一些论文,所以后面会写一个系列的文章,对于工作多年的项目一个总结,也锻炼一下写作水平,准备备考2022年上半年系统分析师的同学,可以参考一下,欢迎交流

    试题

    需求分析师提炼、分析和仔细审查已经获取到的需求的过程,需求分析的目的师确保所有的项目干系人(利益相关者)都理解需求的含义并找出其中的错误、遗漏或其它不足的地方。需求分析的关键在于对问题域的研究与理解。为了便于理解问题域,现代软件工程所推荐的需求分析方法是对问题域进行抽象,将其分解为若干基本元素,然后对元素之间的关系进行建模。常见的需求分析方法包括面向对象的分析方法、面向问题域的分析方法、结构化分析方法等。而无论采用何种方法,需求分析的主要工作内容都基本相同。

    请围绕“需求分析方法及应用”论题,依次从以下三个方面进行论述

    1. 简要叙述你参与管理和开发的软件系统开发项目以及你在其中所承担的主要工作
    2. 概要论述需求分析工作过程所包含的主要工作内容。
    3. 结合你具体参与管理和开发的实际项目,说明采用了何种需求分析方法,并举例详细 描述具体的需求分析过程。

    范例:

    摘要部分:

    2018年6月,我参与全球旅游玩乐系统项目的研发,该系统主要是使用中台的方式进行供应商、经销商的整合,自动化上架、下架、更新价格、库存的系统。我在项目中担任系统分析师的角色,全程参与了系统整体的分析规划以及设计工作。本文以该系统为例,主要论述了结构化分析方法在该系统的具体应用。通过采用数据流描述系统的功能组成;采用状态转换图对用户状态进行判断;采用数据字典对数据进行详细和准确的描述。通过以上技术的使用,使得需求分析的质量得到保证,对后续项目顺利实施提供了有力的支撑,最终项目于2019年5月正式上线,获得集团公司各级领导的好评; (注意:实际写作中相关项目情况应该介绍清楚,摘要字数(包括标点符号)一般写300到320个字;

    正文部分:

    2018年左右随着国内旅游的蓬勃发展,传统的旅游系统很难支撑大规模的产品上、下架以及产品的价格、库存的变动的业务处理,由于产品量可以达到几十万种左右,并且在变化中,所以使用人力来进行系统的维护会耗费很多的人力、物力,并且人力的操作容易产生误差以及不及时的情况。旅游集团最终决定将自动化的系统进行上线研发的项目规划,以解决传统旅游行业的系统老旧、不及时、很难支持的问题;

    2018年6月,我所在的旅游集团决定进行全球旅游系统的研发,我在项目中担任系统分析师岗位,主要负责该项目需求分析调研,详细设计、主要研发的工作。该系统是一个大型的系统一共有30多个人的研发团队,耗时9个月的研发最终在2019年5月份上线;该系统支持供应商的系统上线产品的自动化同步以及我们系统的主动拉取更新产品的价格、库存、上架、下架的操作;也支持经销商的产品推送上架、下架以及新产品的库存、价格的更新,经销商的下单流程自动化的操作;供应商的产品接入主要使用的适配器的方式进行转换为行业标准化的产品;经销商下单使用的是反射进行策略模式进行不同经销商的下单实体的转换处理;一直到出票,支付、财务的结算处理;中间很少的业务人员参与;

    要做好这个项目,需求分析非常关键。需求分析就是将杂乱无章的用户要求和期望转化为用户需求,那要怎么才能完成需求分析工作呢?可以通过绘制上下文范围关系图,定义系统与系统外部实体间的界限和接口,来确定需求范围;创建用户界面,帮助用户理解系统;分析需求的可行性,技术、经济、法律等;确定需求优先级,制定出系统研发的迭代计划;建立需求模型,帮助系统分析师理解系统,为软件设计提供系统的表示视图;创建数据字典以确保开发人员使用统一的数据定义;并使用QFD将 产品的特性、属性和对用户的重要性联系起来;

    全球旅游玩乐系统项目前期,专家组会同线程运维人员对系统做了一次性能评审,并由专家组提供性能评估报告。报告指出系统在去年做过一次系统升级,现有的系统版本包括两个数据中心,一个中心的处理峰值,每天5亿的数据量请求的处理;每天有50万笔订单;均使用的分布式的系统;通过这个报告项目团队对现场的情况有了更为详细的了解,经过项目团队主要负责人会议充分讨论后,决定在需求文档里尽量使用图形来替代冗长枯燥的文字描述复杂的系统功能,最终通过评审,我们选择在需求分析时主要使用结构化分析方法,围绕数据字典建设、运用数据流图、状态转换图来进行需求分析工作。

    数据流图的运用,为了向客户清楚地描述系统的那些功能部分组成,我们能利益DFD将产品的采集、接收、入库、分发、处理、转换、加工、校验、消息提醒几个模块的输入输出用一系列的处理连接起来,用图形符号准确地描述系统内各功能部件以及数据在它们之间的传递情况,简明易懂。在利用DFD分别对采集、解码、查重、业务分析、价格处理、详细入库推送到经销商以及集团官网上面售卖。通过DFD图进行数据处理进行分解,使得整个系统的复杂处理过程得以采用图形化的方式来描述,减少了大量篇幅的文字描述,使需求分析文档看起来非常简洁。同样我们用数据数据流图将在产品管理、订单管理、财务单据管理、信息流管理等系统进行了分解描述。使得整个需求文档看上去更加清晰,尽量避免让客户以及业务人员去看那些枯燥冗长的文章,让即使是不懂技术的客户、业务、研发、产品看完这些图,也能理解系统的数据处理过程。

    状态转换图的运用。DFD仅仅描述了系统的功能组成部分以及功能之间的联系,而系统运行过程中需要对用户的状态做大量的批判,如产品的库存、价格情况、订单的支付金额、状态情况、上架的状态情况等等,这些状态判断依靠事件驱动,为将这些状态描述清楚,我们在需求分析过程中还使用了状态转换图,STD描述了系统如何在各种状态之间移动,如用户订购了A产品的订单,产生了A产品的费用,系统在分析时需要根据订单的属性将用户使用到的A订单产品解析出来,比如有机票、地接服务、门票等;然后进行各个单资源进行价格的计算。而当用户订购了A产品已经售卖为空,系统分析就会进行A产品的分析时显示订单产品异常,会有业务人员进行参与进来解决;通过使用STD,能清楚地描述了用户状态的转换过程,选择合理的输出。整个订单的下单过程非常复杂,需要分析判断的用户状态也非常多。

    数据字典的运用。数据字典是结构化分析方法的核心,数据字典完成了DFD对数据详细内容无法具体、准确的描述,是对DFD的强力的补充。项目的数据结构非常的复杂,数据字典的设计要求非常高。包括系统域、产品域、资费域,控制域共涉及数据表300张。为了保证数据字典完整性和一致性,我安排了专门的数据库管理员对数据字典进行管理,项目团队任何人要调整数据字典都必须交由该专人进行调整,并且对所有的变更都必须有项目经理签字,变更记录必须邮件及时发送给其他团队负责人以及本组成员。为保障后续的数据割接工作不出问题,数据字典的涉及必须有系统的实际情况,为此,特地安排了2名现场维护人员参与数据字典涉及并负责后期的数据交割工作,一方面方便交流,另一方面可以充分考虑现场的实际情况并为后期的数据割接做足准备。

    通过使用结构化方法,使得需求分析工作完成得非常顺利,需求分析的质量得到保证,对后续项目的顺利实施提供了有力的支撑。项目域2019年5月完成割接上线,在生产环境运行了3个月,各项指标性能达到了集团要求,并经受住了国庆假、五一节日黄金周的考验,订单的自动化问题、消息消费不及时的问题得到解决,最终通过了验收,项目获得了集团各层领导的好评。

    在项目结束后的讨论会议上,大家也指出了项目中存在一些不足,如订单模块在性能上面没有达到预期的目标,导致的客户详单查收效率低下,上线后又经过了几轮优化处理,才在性能上面满足需求。另外,外围欸抽取订单详情数据时,没有一个可视化的数据流图,为此,我们不得不花费精力在下单的流程中添加日志的流程图日志处理,每个重要的节点会进行日志的记录,比如说,支付节点、出团书节点、库存、价格校验节点等,每个节点都会又详细的请求、响应日志以及时间响应的时长。为了后续的运维同事可以通过图形化的界面进行查看订单的实际情况。总的来说,这些问题主要还是需求分析时对订单功能模块考虑不够透彻,测试没有做彻底,埋下的隐患。所以,在以后的项目里面,需求分析质量得到保障的情况,还要把控好测试质量,把握好实施的每个细节。

    展开全文
  • 结构化分析面向对象分析的区别

    千次阅读 2021-05-15 15:31:08
    结构化分析方法(Structured Method,结构化方法)是面向过程的程序设计的方法,是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。...
  • 面向对象需求分析

    2013-06-14 09:24:34
    面向对象需求分析
  • 面向对象分析方法例解一文结合一个被称为贪婪游戏的实例,介绍了运用面向对象方法学进行面和对象分析建模的全过程,即进行实例的面向对象的分析需求分析模型的建立。
  • 现有需求工程方法大致分为五大类,即面向过程、面向数据、面向控制、面向目标及面向对象分析方法[2,3]。每一种方法都有自己的测重点和局限性,根据具体的软件项目及其环境,从这些方法学的各种软件工具包中提炼
  • 面向对象分析法和结构化分析

    千次阅读 2016-11-09 10:16:12
    面向对象分析:领域模型、用例图、类图、活动图、顺序图、状态图。 面向过程或称结构化的:流程图、数据字典、er图。
  • 面向对象分析设计参考案例-网上书店系统WebLab
  • 面向对象 分析.pdf

    2020-06-28 16:50:15
    第2章 什么是面向对象分析 2.1 什么是面向对象分析问题域和系统责任 面向对象分析 OOA就是运用面向对象方法进行系统分析 OOA是分析强调运用面向对象方法进行分析面向对象的概念和表示 法表达分析结果 基本...
  • 软件工程面向对象需求分析示例(订餐系统的详细分析)
  • 基于 UML 的图书管理系统的需求分析与设计 摘要本文...等语言机制的图书馆图书管理系统模型 关键词 UML建模语言面向对象需求分析图书管理系统 1 关于面向对象 面向对象是一种的程序设计方法或者说它是一种程序设计类型
  • 需求分析模型概述 其基本思想是用系统工程的思想和工程化的方法 根据用户至上的原则自始自终按照结构化模块 化自顶向下地对系统进行分析与设计 l 面向过程分析模型 l 面向对象分析模型 由5个层次 主题层对象类层...
  • 面向对象方法的本质是从客观世界固有的事物出发来构造系统,通过识别对象,分析对象间的关系,反映问题域中固有的事物及相互联系。 工具: UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。 ...
  • 对象是面向对象开发模式的基本成份。 每个对象可用它本身的一组属性和它可以执行的组操作来定义。 属性一般只能通过执行对象的操作来改变 操作又称为方法或服务,它描述了对象执行的功能,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 211,630
精华内容 84,652
关键字:

面向对象的需求分析方法

友情链接: 00546457.zip