软件过程与项目管理-第三章.ppt
《软件过程与项目管理-第三章.ppt》由会员分享,可在线阅读,更多相关《软件过程与项目管理-第三章.ppt(59页珍藏版)》请在三一办公上搜索。
1、2023年10月30日,软件过程与项目管理讲义,1,第三章 软件需求分析和架构设计,2023年10月30日,第三章 软件需求分析和架构设计,2,主要内容,3.1 软件需求分析概述 3.2 软件需求分析方法 3.3 软件架构设计的概念 3.4 软件架构设计任务,2023年10月30日,第三章 软件需求分析和架构设计,3,1.1 软件需求分析概述,软件需求作为软件生命周期的第一个阶段,其重要性越来越突出,到20世纪80年代中期,逐步形成了软件工程的子领域需求工程。90年代后,需求工程成为软件界研究的重点之一。从1993年起,每两年举办一次需求工程国际研讨会(ISRE),1994年起,每两年举办一次
2、需求工程国际会议(ICRE)。一些关于需求工程的工作小组相继成立,使需求工程的研究得到了迅速进展。,2023年10月30日,第三章 软件需求分析和架构设计,4,1.1 软件需求分析概述,1.软件需求工程重要性,软件需求无疑是当前软件工程中的关键问题,没有需求就没有软件。,美国于1995年开始对全国范围内的8000个软件项目进行跟踪调查。,分析失败的原因发现,与需求过程相关的原因占了45%,而其中缺乏最终用户的参与以及不完整的需求又是两大首要原因,各占13%和12%。,2023年10月30日,第三章 软件需求分析和架构设计,5,1.1 软件需求分析概述,1.软件需求工程困难,软件需求是软件工程中
3、最复杂的过程之一:应用领域的广泛性,它的实施无疑与各个应用行业的特征密切相关。非功能性需求建模技术的缺乏,及其与功能性需求有着错综复杂的联系,大大增加了需求工程的复杂性。沟通上的困难,由于系统分析员、需求分析员等各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。,2023年10月30日,第三章 软件需求分析和架构设计,6,1.1 软件需求分析概述,1.软件需求工程软件需求内容,软 件需 求,2023年10月30日,第三章 软件需求分析和架构设计,7,1.1 软件需求分析概述,1.软件需求工程功能和领域需求,功能需求 它是对系统应该提供的服务、功能以及系统在特定条件下的
4、行为的描述。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述系统的功能、输入/输出、异常等,有时还需要申明系统不应该做什么。,领域需求 是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。,2023年10月30日,第三章 软件需求分析和架构设计,8,1.1 软件需求分析概述,1.软件需求工程非功能需求,2023年10月30日,第三章 软件需求分析和架构设计,9,1.1 软件需求分析概述,1.软件需求工程传统需求分析,在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:定义软件的范围及必须满足的约束;确定软件的功能和性能及与其他系统成分的接 口
5、;建立数据模型、功能模型和行为模型;最终提供需求规格说明,并用于作为评估软件 质量的依据。,2023年10月30日,第三章 软件需求分析和架构设计,10,1.1 软件需求分析概述,1.软件需求工程需求工程的活动,需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。,需求工程,2023年10月30日,第三章 软件需求分析和架构设计,11,1.1 软件需求分析概述,1.软件需求工程需求工程的活动,获取需求;深入实际,在充分理解用户需
6、求的基础上,获取系统需求。需求分析与建模;进行需求建模、对模型或原型进行分析。确认需求;确保需求说明准确、完整地表达系统的主要特性。进化需求。客户的需要总是不断(连续)增长的,进化需求是必要的。,2023年10月30日,第三章 软件需求分析和架构设计,12,1.1 软件需求分析概述,1.软件需求工程需求工程的活动,1)需求获取(requiremente licitation)是需求工程的主体。,缺乏领域知识,应用领域的问题常常是模糊的、不精确的;存在默认的知识,如难以描述的常识问题;存在多个知识源,且多知识源之间可能有冲突;客户可能的偏见,如不能提供或不想告知你所需要了解的事情。,2023年1
7、0月30日,第三章 软件需求分析和架构设计,13,1.1 软件需求分析概述,1.软件需求工程需求获取方法,需求抽取的方法一般有:面谈法 重要而直接,简单的需求获取技术。问卷调查法 是对面谈法的补充。需求专题讨论会 最有力的需求获取技术。有利 于 培养高效团队。观察用户的工作流程 适用于用户无法准确表达需求的情况。原型化方法基于用例的方法,还有知识工程方法等如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。,2023年10月30日,第三章 软件需求分析和架构设计,14,1.1 软件需求分析概述,1.软件需求工程需求分析与建模,需求分析和建模又包含三个层次的工作。1)需求分析 2)需
8、求建模(分为企业建模、功能需求建模和非功能需求建模等)3)需求规格说明不同的描述方式。,主要对收集到的需求进行提炼、分析和认真审查,确保所有参加人员取得一致共识。找出错误、遗漏和不足,建立完整的分析模型。,2023年10月30日,第三章 软件需求分析和架构设计,15,1.1 软件需求分析概述,1.软件需求工程需求分析常用技术,为了降低软件的复杂度,便于对问题的分析和理解,常采用以下技术:1)分解 将大问题分解为小问题,通常是自顶而下,不断细化的过程。2)抽象 抓住问题的本质特性,从不同抽象层次进行分析,提出解决问题的方案。3)多视点 注意从各类开发人员和不同用户的角度考虑问题,才能获得 对系统
9、的全面完整的需求。,2023年10月30日,第三章 软件需求分析和架构设计,16,1.1 软件需求分析概述,1.软件需求工程需求的有效性验证,(一)需求验证的重要性)由于需求是软件开发的第一阶段,直接影响后面各阶段的开发。)需求的可变性必须进行验证。,做什么,怎么做,2023年10月30日,第三章 软件需求分析和架构设计,17,1.1 软件需求分析概述,1.软件需求工程需求的有效性验证,(二)需求验证的内容1)有效性检查指功能需求是否符合用户所提出的需求。2)一致性检查系统功能描述及约束是否一致。3)完备性检查是否包含所有系统用户的需求和约束。4)可检验性检查是否能设计出一组验证方法,确定了检
10、验的标准。,2023年10月30日,第三章 软件需求分析和架构设计,18,1.1 软件需求分析概述,1.软件需求工程需求管理,需求管理贯穿需求分析全过程,包括:,2023年10月30日,第三章 软件需求分析和架构设计,19,1.1 软件需求分析概述,1.软件需求工程需求变更管理,需求管理的所有活动中,最重要的是“需求变更管理”,包括:,问题分析和变更描述,变更分析和成本计算,变更实现,需求管理过程需要CASE(Computer Aided Software Engineering)工具支持。,2023年10月30日,第三章 软件需求分析和架构设计,20,1.1 软件需求分析概述,1.软件需求工
11、程需求变更管理方法,1)传统的变化管理 基本内容包括软件配置、软件基线和变化审查。2)新的管理方法 a)软件家族法。即软件产品线方法,该方法是源于工业界产品线的概念,关注于一个软件企业如何组织一组具有共性特征的,相似产品的生产,并应用软件复用的相关原理与技术。b)多视点方法。它可以用于管理不一致性并进行关于变化的推理。是从多个视点出发在软件工具的协助下对需求描述,进行自动需求建模,从而提高需求模型的完整性。,2023年10月30日,第三章 软件需求分析和架构设计,21,1.1 软件需求分析概述,1.软件需求工程需求工程过程,2023年10月30日,第三章 软件需求分析和架构设计,22,3.2
12、软件需求分析方法,功能分解方法 将系统看作若干功能模块的集合,每个功能又可以分解为子功能,子功能还可继续分解,分解的结果即是系统的雏形。,存在问题1.需要人工完成2.无法对描述的准确度进行验证。3.难以适应需求的变化。,2023年10月30日,第三章 软件需求分析和架构设计,23,3.2 软件需求分析方法,结构化分析方法 是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示。,2023年10月30日,第三章 软件需求分析和架构设计,24,3.2 软件需求分析方法,面向对象的分析方法 面向对象分析方法(OOA)的关键是识别问题域内的对象,分析它们之间的关系
13、,并建立起三类模型。,信息建模法 是从数据的角度对现实世界建立系统的信息模型,基本工具是ER图。是由实体、属性和关系组成的网络图。E-实体,是一个或一组对象;R-关系,实体之间联系或交互作用。,注意:信息建模与面向对象分析的区别!,2023年10月30日,第三章 软件需求分析和架构设计,25,3.2 软件需求分析方法,1.结构化分析方法,分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决(如右图)。,SA法的基本思想“分解”和“抽象”。,抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容
14、,这种用最本质的属性表示一个系统的方法就是“抽象”。,2023年10月30日,第三章 软件需求分析和架构设计,26,3.2 软件需求分析方法,1.结构化分析方法,SA法的描述方法1、分层的数据流图(DFD图)2、数据词典3、描述加工逻辑的结构化语言、判定表及判定树,SA法的步骤,深入调查研究,分析用户需求,用DFD图描述,分析系统需求,用DFD图描述,修改完善DFD图,增添功能,2023年10月30日,第三章 软件需求分析和架构设计,27,3.2 软件需求分析方法,1.结构化分析方法图书预订系统,顾客,出版社,验证订单,汇总订单,订单,出版社 订单,图书目录文件,正确订单,一批订单,出版社档案
15、文件,画图步骤:1、确定外部实体及输入、输出数据流。2、确定分解顶层的加工。3、确定使用的文件。4、用数据流将各部分连接起来,形成数据封闭。,2023年10月30日,第三章 软件需求分析和架构设计,28,3.2 软件需求分析方法,1.结构化分析方法数据流图,数据流图(Data Flow Diagram,DFD)是描述系统中数据流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出所需的加工处理过程。,一、数据流图的图符基本图形符号:,2023年10月30日,第三章 软件需求分析和架构设计,29,3.2 软件需求分析方法,1.结构化分析方法数据流图,还有一些辅助的图例:,2023年10月30日,
16、第三章 软件需求分析和架构设计,30,3.2 软件需求分析方法,1.结构化分析方法画DFD的基本原则,加工分解的原则自然性:概念上合理、清晰;均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;分解度:一般每一个加工每次分解最多不要超过个子加工,分解应分解到基本加工为止。,数据守恒与数据封闭原则 数据守恒是指加工的输入/出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。数据封闭是对整个系统而言。,2023年10月30日,第三章 软件需求分析和架构设计,31,3.2 软件需求分析方法,1.结构化分析方法画DFD的基本原则,合理使用文件 当文件作为某些加工之间的交界面时,文件必须画出
17、来,一旦文件作为数据流图中的一个独立成份画出来了,那么他同其他成份之间的联系也应同时表达出来。,注意,DFD图不是流程图,不表示软件的控制流程。,子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。,2023年10月30日,第三章 软件需求分析和架构设计,32,3.2 软件需求分析方法,1.结构化分析方法分层DFD的改进,DFD图须经过反复修改,才能获得最终的目标系统的DFD图。从以下方面改进DFD图:1)检查数据流的正确性 数据守恒 子图、父图的平衡 文件使用是否合理。特别注意输入/出文件的数据流。,2)改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 过程 项目 管理 第三
链接地址:https://www.31ppt.com/p-6434360.html