软件需求-第8课-软件需求分析概述_第1页
软件需求-第8课-软件需求分析概述_第2页
软件需求-第8课-软件需求分析概述_第3页
软件需求-第8课-软件需求分析概述_第4页
软件需求-第8课-软件需求分析概述_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件需求CheckingSettingsEntry/OpenShutter(0.5);MeasureLight();DetermineExposureTime(CheckingCheckingCheckingCheckingCheCkinCheckinggCheckingSettingsEntry/OpenShutter(0.5);MeasureLight();DetermineExposureTime(CheckingCheckingCheckingCheckingCheCkinCheckinggCheckingCheckingCheckingSettingsEntry/OpenShutter(0.5);MeasureLight();哈尔滨工程大学计算机科学与技术学院海量数据挖掘及网络数据集成研究组王念滨教授博导1第8

章软件需求分析概述2本课主要讨论问题2需求分析技术3需求分析方法第8章软件需求分析概述4前期需求分析阶段的建模与分析1需求分析的根本任务5需求分析活动3第8章软件需求分析概述本课主要讨论问题2需求分析技术3需求分析方法4前期需求分析阶段的建模与分析1需求分析的根本任务5需求分析活动4第8章软件需求分析概述1需求分析的根本任务需求分析是软件需求中最核心的工作,需求建模是需求分析的主要手段。需求分析是软件定义时期的最后一个阶段,它的根本任务是准确地答复“系统必须做什么?〞这个问题。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。5软件的生存周期问题定义可行性研究需求分析软件设计编码测试维护方案时期开发时期运行时期产品:需求分析报告2软件工程及软件需求概述第1章需求工程导论6第8章软件需求分析概述1需求分析的根本任务需求分析根本任务:建立分析模型,创立解决方案。7第8章软件需求分析概述建立分析模型将复杂的系统分解成为简单的局部以及它们之间的联系,确定本质特征和用户达成对信息内容的共同理解分析的活动主要包括识别、定义和结构化,它的目的是获取某个可以转换为知识的事物的信息1需求分析的根本任务创立解决方案将一个问题分解成独立的、更简单和易于管理的子问题来帮助寻找解决方案创立解决方案的过程是创造性的帮助开发者建立问题的定义,并确定被定义的事物之间的逻辑关系这些逻辑关系可以形成信息的推理,进而可以被用来验证解决方案的正确性。8第8章软件需求分析概述1需求分析的根本任务从实践角度考虑,需求分析不是分析如何实现用户的需求。实际上,需求分析是以业务分析为导向,将用户零散的需求串联起来,形成一个体系完成、组织合理、内容清晰的框架,为今后的设计开发工作打下良好的根底。Whattodo?YesHowtodo?No9第8章软件需求分析概述1需求分析的根本任务需求分析的任务:分解、提炼的过程,在此过程中消除需求矛盾〔1〕分解分解是人类控制复杂性,认识复杂事物的根本策略方法。无论是采用结构化方法,还是采用面向对象方法,分解都是必须采用的手段。传统方法一般采用系统导向的分解方法,而现代需求工程建议采用业务导向的方法。实践中,分解的策略很多,主要要根据团队的应用实践和用户的要求选择适当的分解方法,主要包括以下几种:1〕业务流程为主线的分解策略;2〕程序结构为主线的分解策略;3〕基于场景的分解策略;4〕基于数据的分解策略等。10第8章软件需求分析概述1需求分析的根本任务1〕业务流程为主线的分解策略系统级别业务职责岗位间岗位级别动作级别目标系统主题域1主题域n。。。业务事件1业务事件n业务活动1业务活动m业务步骤1业务步骤w目标决定范围理清业务脉络填充细节细化和确认工作11第8章软件需求分析概述1〕业务流程为主线的分解策略1需求分析的根本任务业务流程为主线的分解策略是目前比较流行的方法,主要按照“业务〞的角度考虑分解方法。此方法特别适合联机事务处理系统、管理信息系统〔MIS〕。目标系统-?主题域的分解依据是“目标决定范围〞;主题域-?业务事件所做的是理清业务脉络;业务事件-?业务活动所做的是填充细节;业务活动-?业务步骤所做的是细化和确认工作。12第8章软件需求分析概述2〕程序结构为主线的分解策略1需求分析的根本任务目标系统子系统1子系统n。。。功能模块1功能模块n子模块1子模块m功能点1功能点w13第8章软件需求分析概述2〕程序结构为主线的分解策略1需求分析的根本任务该方法是需求分析最常用的分解方法。当由于其过早进入程序结构,割裂了与问题域之间的联系,从而容易导致对问题域研究的缺乏,降低了需求的质量。目前认为此种方法仅适合于问题域比较清晰,问题不算复杂的情况,例如工具软件、嵌入式系统等。14第8章软件需求分析概述3〕基于场景的分解策略1需求分析的根本任务目标系统关注点1关注点n…场景集合1场景集合n使用场景1使用场景m任务1任务w15第8章软件需求分析概述3〕基于场景的分解策略1需求分析的根本任务对于决策支持系统、面向用户的嵌入式系统等来说,决策场景、使用场景是主要的线索。向上可以总结成一类相似的集合,再总结成一系列的关注点或者功能域,向下可以分解成具体的步骤或者操作任务。16第8章软件需求分析概述4〕基于数据的分解策略1需求分析的根本任务目标系统主题域1主题域n。。。主题类1主题类n逻辑数据1逻辑数据m物理数据1物理数据w17第8章软件需求分析概述4〕基于数据的分解策略1需求分析的根本任务上述分解策略都是从“业务〞角度来组织。但对于类似数据仓库之类的数据类工程,业务线索并不是十清楚显,或者并不重要这是就需要以数据为主的分解策略。其中主题域仍然与“业务流程为主的分解策略〞类似。而主题类是企业中的高层实体,主要由一组企业的逻辑数据类来表示,而企业的逻辑数据类在实现时又会对应于多个物理数据类。18第8章软件需求分析概述分解策略小结1需求分析的根本任务业务流程为主线的分解策略;程序结构为主线的分解策略;基于场景的分解策略;基于数据的分解策略等。上述几种分解策略的选择要根据实际应用展开。选择一个适宜的分解策略后,就可以将需求分析规格说明书的大纲确定下来,知道应该获取什么信息,由此当信息获取完成后,需求分析的任务就是将获取的信息填充到相应的级别上,并不断地验证是否已经填充完成,验证获取需求的可用性和完整性,解决存在的矛盾。19第8章软件需求分析概述1需求分析的根本任务需求分析的任务:分解、提炼的过程,在此过程中消除需求矛盾(2)提炼分解是一种自顶向下的方法,当按照任何一种线索进行分解时。就会破坏其它线索的完整性。例如,如果以“业务〞为线索,就会发现数据需求分解后会出现相互交叠的情况,也就是在多个业务事件中都涉及相同的类。此种情况出现时,可能会影响需求分析人员建立全面的理解,因此需要采用自底向上的方法进行提炼。例如将每个业务事件中的类进行提炼,抽取出共性的局部,建立针对整个系统的全局领域模型。20第8章软件需求分析概述1需求分析的根本任务需求分析的任务:分解、提炼的过程,在此过程中消除需求矛盾(3)消除矛盾在分析过程中,显然可能会发现有些需求是相互矛盾的、冲突的,由于是将收集的信息放在一个预先定义的结构中发现这些矛盾的,因此对矛盾的影响范围会有直观的了解,也能够知道它影响那些层面。寻找相应的人员,通过进一步需求获取来消除矛盾。21第8章软件需求分析概述1需求分析的根本任务建立分析模型建立分析模型将复杂的系统分解成为简单的局部以及它们之间的联系,确定本质特征和用户达成对信息内容的共同理解分析的活动主要包括识别、定义和结构化,它的目的是获取某个可以转换为知识的事物的信息22第8章软件需求分析概述1需求分析的根本任务建立分析模型建模的目标与要点建模是寻求分析的主要手段,它通过简化〔化简〕、强调来帮助需求分析人员理清思路,达成共识。因此需求建模的过程非常重要。建模的目的〔为什么要建模?〕在平常工作和生活中,许多理工科的领域,几乎看不到那个领域是没有模型的。建筑工地需要施工图纸,电子工厂需要电路图,如果没有这些,我们会感到不可思议。因为这些模型可以有效地帮助人们更好地认识、应用、设计复杂的事物。23第8章软件需求分析概述1需求分析的根本任务建模的目的〔为什么要建模?〕软件行业的复杂程度与例子中的行业比较,其复杂程度可以说是有过之而无不及。为什么要建模?通过建模可以更好地理解正在开发的系统。原先,由于计算机应用还不算普及,因此软件系统的规模和复杂度都相对较小。使用“数据结构+算法=程序〞的模式就可以解决大局部问题。现在,随着计算机应用的不断普及,业务模式、数据量都在发生迅速的变化。软件涉及的问题越来越广,早已超出了人们可以处理的复杂程度。例子:以建筑行业作类比,早期的软件系统就像是构建一个小平房。即使没有建筑图纸,建筑工人也能够凭借经验和已有的平房,平安,快捷地构建出可供使用的房屋。而现在的软件系统更像是高楼大厦,如果还采用传统的方式,就无法进行有效的规划和设计,最终必然导致失败。建立分析模型24第8章软件需求分析概述1需求分析的根本任务建立分析模型建模的目的通过软件建模,帮助我们按照实际情况或按照我们的需要的模式对系统进行可视化,提供一种详细说明系统的结构或者行为的方法,给出一个指导系统构造的模板。对所有做出的决定实施文档化。25第8章软件需求分析概述1需求分析的根本任务模型“模型是对事物的抽象,帮助人们在创立一个事物之前可以有更好的理解〞集中关注问题的计算特性〔数据、功能、规那么等等〕“它是对系统进行思考和推理的一种方式。建模的目标是建立系统的一个表示,这个表示以精确一致的方式描述系统,使得系统的使用更加容易〞建模方法抽象分解投影建立分析模型26第8章软件需求分析概述1需求分析的根本任务抽象〔Abstraction〕一方面要求人们只关注重要的信息,忽略次要的内容通过强调本质的特征,就减少了问题的复杂性〔例如学生模型〕另一方面也要求人们将认知保存在适当的层次,屏蔽更深层次的细节在问题的各元素之间推断出更广泛和更普遍的关系,帮助人们寻找解决方案分解〔Decomposition/Partitioning〕“分而治之〞将单个复杂和难以理解的问题分解成多个相对更容易的子问题,并掌握各子问题之间的联系分解的方案往往还能提供问题的解决思路投影〔Projection〕多视点方法建立分析模型27第8章软件需求分析概述1需求分析的根本任务建立分析模型-三种模型28第8章软件需求分析概述1需求分析的根本任务问题世界与业务模型使用问题域中的重要概念作为模型的组元使用概念之间的业务联系作为组元之间的关系使用了业务描述的方式,具有非形式化特征业务模型元素〔即业务概念和业务联系〕的选取和定义上具有不准确、不确定和模糊化可以抽取出需求信息中最重要和最本质的内容可以达成用户和开发者的共同理解非形式化特征使得它不适合于进行需求建模缺乏以用于描述一个有效的软件解决方案不准确、不确定和模糊化建立分析模型29第8章软件需求分析概述1需求分析的根本任务建立分析模型软件分析模型介于计算模型和业务模型二者之间的模型形式使用了计算模型的组元形式在组元的表现上采用了业务模型的表现方式半形式化的不像计算模型那么严谨比业务模型更严格30第8章软件需求分析概述1需求分析的根本任务计算世界与计算模型使用软件的构成单位作为模型的组元软件构建单位之间的关系作为模型组元之间的关系基于计算科学建立的,具有形式化的特征信息的描述具有明确化、准确化和确定化的特征需求分析阶段不适宜建立形式化的计算模型重点问题是缺乏和软件实现相关的技术细节用户无法理解建立分析模型31第8章软件需求分析概述1需求分析的根本任务建模的要点和原那么在建模时,要注意考虑到方案之外的变化:设计要文档化,只有这样,才能使不熟悉的新手也可以有效地利用设计的方案。用可视化的模型表达现实世界,有助于理解变化所代表的含义。在实际的建模过程中要遵循以下建模原那么:模型是用来沟通的;选择创立什么模型对如何解决问题和如何形成解决方案具有深远的影响。每种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的模型;单个模型往往不够充分,对每个重要的系统最好用一组几乎独立的模型去处理。建立分析模型32第8章软件需求分析概述1需求分析的根本任务模型的描述三个要素之间互为依赖,每个要素都为下一个要素提供了一个必需的环境语法:使用规那么——怎样使用模型的元素,并且以什么方式组织、连接或关联这些元素;语义:特定模型元素所具有的含义;语用:模型元素的上下文,以及影响该模型元素意义的约束和假定分析模型语用复杂语义丰富语法严格同时又不太复杂建立分析模型33第8章软件需求分析概述1需求分析的根本任务建立分析模型模型的描述多视点方法34第8章软件需求分析概述1需求分析的根本任务视点〔Viewpoints〕:将系统中既交织共存又相对独立的不同内容拆解成不同的局部每一个视点都是独立的模型存在,用独立的模型语言和表示法进行描述多视点:所有视点的模型描述集成起来,就是对原有复杂系统的模型描述依据系统内不同局部之间的关系,建立不同模型内元素之间的联系,从而将多个独立的模型描述在语义上连接起来建立分析模型35第8章软件需求分析概述1需求分析的根本任务建立分析模型-模型、模型语言与表示方法36第8章软件需求分析概述1需求分析的根本任务需求建模通常的做法是:先依据获取的问题域信息建立初步的模型。然后分析用户需求,对模型进行调整,得到一个中间形式的模型形式。最后,对调整后的模型进行逻辑推理和验证,如果符合预期的期望,那么它就是最终的解决方案模型。建立分析模型需求建模流程37第8章软件需求分析概述1需求分析的根本任务创立解决方案38第8章软件需求分析概述1需求分析的根本任务创立解决方案需求分析的目标问题域描述整个领域现状是这样运作的现实世界规格说明将要构建的系统是这样运作的计算世界需求用户希望有些事情能这样子运作问题域解系统39第8章软件需求分析概述1需求分析的根本任务创立解决方案-创立解决方案的过程40第8章软件需求分析概述本课主要讨论问题2需求分析技术3需求分析方法4前期需求分析阶段的建模与分析1需求分析的根本任务5需求分析活动41第8章软件需求分析概述2需求分析技术常用的需求分析技术结构化技术数据建模实体关系图EntityRelationshipDiagram过程建模数据流图DataFlowDiagram上下文图ContextDiagram微规格说明Mini-Specification数据字典DataDictionary行为建模状态(转换)图/矩阵State(Transition)Diagram/Matrix过程/数据关系建模功能实体矩阵Function/EntityMatrix信息工程方法功能分解图FunctionDecompositionDiagram过程依赖图ProcessDependencyDiagram面向对象技术UML用例图Use-CaseDiagram类图ClassDiagram交互图〔顺序图/通信图〕Interaction〔Sequence/Communication〕Diagram活动图ActivityDiagram对象约束语言ObjectConstraintLanguage状态图StateChartDiagram42第8章软件需求分析概述2需求分析技术需求分析技术的开展过程43第8章软件需求分析概述2需求分析技术Wieringa框架系统对外交互系统内部交互功能式描述通信式描述行为式描述对交互的有用性的描述对交互中发生的信息交流情况的描述更小的交互相互之间形成的先后衔接与协作关系交互所涉及的系统或者系统局部的分解关系分解可以使得系统的对外交互转换为系统的内部交互形式44第8章软件需求分析概述2需求分析技术Wieringa框架45第8章软件需求分析概述2需求分析技术Zachman框架46第8章软件需求分析概述2需求分析技术Zachman矩阵的行目标/范围〔规划者视图〕关心软件系统的本钱和效益,对最终系统的规模、形式、位置空间以及根本目标的粗略描述规划者视图规定了工程的前景和范围。企业模型〔所有者视图〕:关心软件系统会如何参与和帮助实际工作对业务实体、业务过程以及它们与系统之间交互的描述利用业务概念限定了系统的解决方案——分析模型。系统模型〔设计师视图〕:关注软件系统应该的需要以及设计方法的选择限制对软件系统的根本功能和设计空间的描述——体系结构。Zachman框架47Zachman矩阵的行技术模型〔构建者视图〕:关注程序对软件系统当中控制逻辑、算法、I/O控制以及其他各种具体技术细节的描述——描述详细设计的设计模型组件模型〔集成者视图〕:关注组装对软件系统的组件、接口以及编码程序等内容的描述实际运行的系统:描述系统投入使用后的实际状况和在运行中的实际表现。第8章软件需求分析概述2需求分析技术Zachman框架48第8章软件需求分析概述2需求分析技术Zachman矩阵的列:数据:对企业有重要意义的事物以及企业对这些事物的理解功能:企业在业务中执行的任务以及企业对任务的理解。位置:组织活动和软件系统的地理分布,以及它们与组织的其他方面的关联。人:在软件系统被引入后会涉及的人员和组织时间:系统内的事件-事件关联之间的时间因素,表现为业务的规划调度、系统的事件响应和控制结构。动机:该列针对的是企业建立目标系统的动机,揭示了企业的目标、目的、业务规划、知识架构、思想路线和决策根底。Zachman框架49第8章软件需求分析概述2需求分析技术Zachman框架50第8章软件需求分析概述2需求分析技术Zachman框架51第8章软件需求分析概述本课主要讨论问题2需求分析技术3需求分析方法4前期需求分析阶段的建模与分析1需求分析的根本任务5需求分析活动52第8章软件需求分析概述3需求分析方法传统分析没有方法(1950’s)依赖个体才智,依据个人习惯缺乏结构、不可重复、不可测量,冗长、混乱、偏颇、无结构等等结构化分析传统结构化分析(late1960’s),现代结构化分析(late1970’s)以数据流动为中心,以DFD为核心技术,辅助ERD…信息工程(late1980’s)以数据知识结构为根底,ERD为核心技术,辅助DFD,PD…面向对象分析〔1990‘s〕以对象为中心,以UML〔类图〕为核心技术以全面思想革新为理想,以承继结构化技术为现实UnifiedModelingLanguage53第8章软件需求分析概述3需求分析方法正确认识建模方法论建模方法的产生和演变和时代背景有着紧密地联系,如下表所示54第8章软件需求分析概述3需求分析方法结构化分析方法55第8章软件需求分析概述3需求分析方法面向对象分析方法56第8章软件需求分析概述3需求分析方法正确认识UML(1)UML开展历程面向对象编程〔OOP〕的出现,逐渐催生了面向对象设计〔OOD〕和面向对象分析〔OOA〕技术的出现。为了更好地开展OOA和OOD,在20世纪70年代,出现了面向对象建模语言,而在80年代末开始进入快速开展阶段,截至1994年,开展到50多种方法。由于每种语言、方法的创造者都竭力推崇自己的成果,爆发了“面向对象技术的方法大战〞57第8章软件需求分析概述3需求分析方法(1)UML开展历程正确认识UML首次尝试统一OMT、BOOCH、CRC1994Booch、Rumbaugh加入Rational1995UML开始工作Jacohson加入Rational1997UML建议被OMG采纳UML成为工业标准2003UML2.02002IBM21亿美元收购RationalClass-Responsibility-Collaborator卡建模ObjectManagementGroup58第8章软件需求分析概述3需求分析方法(1)UML开展历程-UML三剑客正确认识UMLJamesRumbaugh、IvarJacobson、GradyBooch1991年由Rumbaugh等人提出了OMT〔ObjectModelingTechnique〕1992年由Jacobson等人提出OOSE〔Object-OrientedSoftwareEngineering〕1993年由Booch等人提出了Booth’sMethod59第8章软件需求分析概述3需求分析方法(1)UML开展历程-UML三剑客正确认识UML1994年Rumbaugh和Booch共同合作将他们的OMT和Booch方法统一起来。到1995年成为“统一方法〞〔UnifiedMethod〕版本0.8随后,Jacobson参加,并采用了他的用例〔Usecase〕思想最终由一个成立于1996年的被称为UMLPartners国际联盟统一了他们的记号系统,产生了UML0.9版UML1.0于1997年初由UMLPartners提交给OMG(ObjectManagementGroup),1997年末,修改后的UML1.1版被OMG采纳,成为面向对象建模标准语言1996年底,UML已稳定占领00技术市场的85%份额60第8章软件需求分析概述3需求分析方法(1)UML开展历程-UML开展现状正确认识UML成为全面应用阶段的事实标准:由于UML和面向对象的天生血缘关系,随着面向对象技术的深入普及,UML成为非常普及的建模技术。目前市场上80%的建模工具都是基于UML的。据统计,各种与建模有关的书籍90%都是与UML有关的。多数软件开发公司根本以UML作为建模工具。应用领域逐渐扩展:OMG新批准的UML2.0版本除了增强根底设施增加了新的建模能力,使模型交换更加简单有效外,还增加了许多可扩展能力目前不仅软件建模广泛应用,还逐渐推广到嵌入式系统建模、业务建模、流程建模等多种领域中。61第8章软件需求分析概述3需求分析方法(2)UML的准确理解正确认识UMLUML是一种语言〔Language〕实际上UML就是一种表示方法,它不是方法论。UML是一种建模语言〔ModelingLanguage〕它不是编程语言,而是建模语言。它不仅包含软件建模,而且可用于业务建模、流程建模等多种领域。UML是统一建模语言〔UnifiedModelingLanguage〕它是一种标准化的、统一的建模语言,OMG认可的工业标准,也是如IBM、SUN等大型公司认可的事实标准。62第8章软件需求分析概述3需求分析方法(3)为什么要使用UML正确认识UMLUML是一种统一的、标准化的建模语言,它为参与软件设计和开发的各类人员提供统一的语言,使开发人员能够基于共的模型来理解业务、需求,理解软件及其架构如何构造的。63第8章软件需求分析概述3需求分析方法(4)如何使用UML正确认识UMLUML2.0标准中,共定义了13种不同的图,这些图的功能以及与UML1.0之间的关系如下表64第8章软件需求分析概述3需求分析方法(4)如何使用UML正确认识UML65第8章软件需求分析概述3需求分析方法(4)如何使用UML-需求阶段一般常采用的图正确认识UML涉及到的几种图稍微讲一下66第8章软件需求分析概述2需求分析技术3需求分析方法4前期需求分析阶段的建模与分析1需求分析的根本任务5需求分析活动本课主要讨论问题67第8章软件需求分析概述4前期需求分析阶段的建模与分析68第8章软件需求分析概述4前期需求分析阶段的建模与分析面向目标的分析〔GoalOrientedAnalysis〕面向问题域的分析〔ProblemDomainOrientedAnalysis〕领域分析〔DomainAnalysis〕企业建模〔EnterpriseModeling〕适合前期需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论