《软件过程与项目管理课件》由会员分享,可在线阅读,更多相关《软件过程与项目管理课件(60页珍藏版)》请在金锄头文库上搜索。
1、第三章 软件需求分析和架构设计 2024年7月24日1软件过程与项目管理课件主要内容主要内容 3.1 软件需求分析概述软件需求分析概述 3.2 软件需求分析方法软件需求分析方法 3.3 软件架构设计的概念软件架构设计的概念 3.4 软件架构设计任务软件架构设计任务2024年7月24日2软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述 软件需求作为软件生命周期的第一个阶段,软件需求作为软件生命周期的第一个阶段,其重要性越来越突出,到其重要性越来越突出,到20世纪世纪80年代中期,逐年代中期,逐步形成了步形成了软件工程的子领域软件工程的子领域需求工程需求工程。 90年代后,需求工程成
2、为软件界研究的重点年代后,需求工程成为软件界研究的重点之一。从之一。从1993年起,每两年举办一次需求工程国年起,每两年举办一次需求工程国际研讨会(际研讨会(ISRE),),1994年起,每两年举办一次年起,每两年举办一次需求工程国际会议(需求工程国际会议(ICRE)。一些关于需求工程)。一些关于需求工程的工作小组相继成立,使需求工程的研究得到了的工作小组相继成立,使需求工程的研究得到了迅速进展。迅速进展。2024年7月24日3软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程重要性重要性 软件需求无疑是当前软件工程中的关键问题,软件需求无疑是当前软件
3、工程中的关键问题,没有需求就没有软件没有需求就没有软件。 美国于美国于1995年开始对全国范围内的年开始对全国范围内的8000个软件项目个软件项目进行跟踪调查。进行跟踪调查。 分析失败的原因发现,分析失败的原因发现,与需求过程相关的原因占了与需求过程相关的原因占了45%,而其中,而其中缺乏最终用户的缺乏最终用户的缺乏最终用户的缺乏最终用户的参与以及不完整的需求又是两参与以及不完整的需求又是两参与以及不完整的需求又是两参与以及不完整的需求又是两大首要原因大首要原因大首要原因大首要原因,各占各占13%和和12%。 2024年7月24日4软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述
4、1. 软件需求工程软件需求工程困难困难软件需求是软件工程中最复杂的过程之一:软件需求是软件工程中最复杂的过程之一:应用领域的广泛性应用领域的广泛性,它的实施无疑与各个应用行,它的实施无疑与各个应用行业的特征密切相关。业的特征密切相关。非功能性需求建模技术的缺乏非功能性需求建模技术的缺乏,及其与功能性需及其与功能性需求有着错综复杂的联系,大大增加了需求工程的求有着错综复杂的联系,大大增加了需求工程的复杂性。复杂性。沟通上的困难沟通上的困难,由于系统分析员、需求分析员等由于系统分析员、需求分析员等各方面人员有不同的着眼点和不同的知识背景,各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施增
5、加了人为的难度。给需求工程的实施增加了人为的难度。2024年7月24日5软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程软件需求内容软件需求内容软软 件需件需 求求用用 户需户需 求求系系 统需统需 求求功能功能需求需求非功能非功能需求需求领域领域需求需求由客户管理员、由客户管理员、用户等提出用户等提出2024年7月24日6软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程功能和领域需求功能和领域需求功能需求功能需求 它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统在特定条件下的行
6、为的描述。它与软件系统的类在特定条件下的行为的描述。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述系统的功能、输入系统的功能、输入/输出、异常等,有时还需要输出、异常等,有时还需要申明系统不应该做什么。申明系统不应该做什么。 领域需求领域需求 是由软件系统的应用领域所决定的特有的功是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。能需求,或是对功能的约束。2024年7月24日7软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程非功能需求非功能需求非功能需求非功能需求产品需求产品需求机构
7、需求机构需求外部需求外部需求互操作互操作需求需求道德道德需求需求立法立法需求需求性能性能需求需求空间空间需求需求交付交付需求需求实现实现需求需求标准标准需求需求隐私隐私需求需求安全安全性需求性需求可用性可用性需求需求效率效率需求需求可靠性可靠性需求需求可移植可移植性需求性需求2024年7月24日8软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程传统需求分析传统需求分析 在传统软件工程生命周期中,涉及需求的阶段在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:称作需求分析。一般来说,需求分析的作用是:定义软件的范围及必须
8、满足的约束;定义软件的范围及必须满足的约束; 确定软件的功能和性能及与其他系统成分的接确定软件的功能和性能及与其他系统成分的接 口口; 建立数据模型、功能模型和行为模型;建立数据模型、功能模型和行为模型; 最终提供需求规格说明,并用于作为评估软件最终提供需求规格说明,并用于作为评估软件 质量的依据。质量的依据。 2024年7月24日9软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求工程的活动需求工程的活动 需求工程是系统工程和软件工程的一个交叉分支,涉需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的
9、及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。求和软件能力之间的桥梁。需求工程需求工程系统目标系统目标系统服务系统服务软件约束软件约束运行环境运行环境2024年7月24日10软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求工程的活动需求工程的活动 获取需求;获取需求;深入实际,在充分理解用户需求的基深入实际,在充分理解用户
10、需求的基础上,获取系统需求。础上,获取系统需求。需求需求分析与建模;分析与建模;进行需求建模、对模型或原型进行需求建模、对模型或原型进行分析。进行分析。 确认需求;确认需求;确保需求说明准确、完整地表达系统确保需求说明准确、完整地表达系统的主要特性。的主要特性。 进化需求进化需求。客户的需要总是不断(连续)增长客户的需要总是不断(连续)增长的的 ,进化需求是必要的。,进化需求是必要的。 2024年7月24日11软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求工程的活动需求工程的活动1 1 1 1)需求获取)需求获取)需求获取)需求获取(requi
11、remente licitation)(requiremente licitation)(requiremente licitation)(requiremente licitation)是需求工程的主体。是需求工程的主体。是需求工程的主体。是需求工程的主体。 缺乏领域知识缺乏领域知识, ,应用领域的问题常常是模糊的、不精确的;应用领域的问题常常是模糊的、不精确的; 存在默认的知识存在默认的知识, ,如难以描述的常识问题;如难以描述的常识问题; 存在多个知识源存在多个知识源, ,且多知识源之间可能有冲突;且多知识源之间可能有冲突; 客户可能的偏见客户可能的偏见,如不能提供,如不能提供或不想告知
12、或不想告知你所需要了解的事你所需要了解的事情。情。2024年7月24日12软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求获取方法需求获取方法 需求抽取的方法一般有:需求抽取的方法一般有:l面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。l问卷调查法问卷调查法 是对面谈法的补充。是对面谈法的补充。 l需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养培养高效团队。高效团队。l观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达需求的情适用于用户无法准确表达需求的情况
13、。况。l原型化方法原型化方法l基于用例的方法基于用例的方法 还有知识工程方法等如:场记分析法、卡片分类法、分还有知识工程方法等如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。类表格技术和基于模型的知识获取等。2024年7月24日13软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求分析与建模需求分析与建模 需求分析和建模又包含三个层次的工作。需求分析和建模又包含三个层次的工作。1) 1) 需求分析需求分析 2)2)需求建模(分为企业需求建模(分为企业建模建模、功能需求、功能需求建模建模和非功能需求和非功能需求建模建模等)等)3) 3
14、) 需求规格说明需求规格说明不同的描述方式。不同的描述方式。 主要对收集到的需求进行提炼、分析和认真审查,确主要对收集到的需求进行提炼、分析和认真审查,确保所有参加人员取得一致共识。找出错误、遗漏和不足,保所有参加人员取得一致共识。找出错误、遗漏和不足,建立完整的分析模型。建立完整的分析模型。 2024年7月24日14软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求分析常用技术需求分析常用技术 为了降低软件的复杂度,便于对问题的分析和理解,常为了降低软件的复杂度,便于对问题的分析和理解,常为了降低软件的复杂度,便于对问题的分析和理解,常为了降低软
15、件的复杂度,便于对问题的分析和理解,常采用以下技术:采用以下技术:采用以下技术:采用以下技术:1) 1) 分解分解分解分解 将大问题分解为小问题,通常是自顶而下,不将大问题分解为小问题,通常是自顶而下,不将大问题分解为小问题,通常是自顶而下,不将大问题分解为小问题,通常是自顶而下,不断细化的过程。断细化的过程。断细化的过程。断细化的过程。2) 2) 抽象抽象抽象抽象 抓住问题的本质特性,从不同抽象层次进行分抓住问题的本质特性,从不同抽象层次进行分抓住问题的本质特性,从不同抽象层次进行分抓住问题的本质特性,从不同抽象层次进行分析,提出解决问题的方案。析,提出解决问题的方案。析,提出解决问题的方案
16、。析,提出解决问题的方案。3) 3) 多视点多视点多视点多视点 注意从各类开发人员和不同用户的角度考虑注意从各类开发人员和不同用户的角度考虑注意从各类开发人员和不同用户的角度考虑注意从各类开发人员和不同用户的角度考虑问题,才能获得问题,才能获得问题,才能获得问题,才能获得 对系统的全面完整的需求。对系统的全面完整的需求。对系统的全面完整的需求。对系统的全面完整的需求。2024年7月24日15软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求的有效性验证需求的有效性验证 ( (一一一一) ) 需求验证的重要性需求验证的重要性需求验证的重要性需求验证的
17、重要性)由于需求是软件开发的第一阶段,直接影响后由于需求是软件开发的第一阶段,直接影响后面各阶段的开发。面各阶段的开发。 ) 需求的可变性必须进行验证。需求的可变性必须进行验证。软件软件软件软件需求需求需求需求软件软件软件软件设计设计设计设计软件软件软件软件编码编码编码编码软件软件软件软件测试测试测试测试运行运行运行运行维护维护维护维护做什么做什么做什么做什么怎么做怎么做怎么做怎么做2024年7月24日16软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求的有效性验证需求的有效性验证 ( (二二二二) ) 需求验证的内容需求验证的内容需求验证的内容
18、需求验证的内容1 1) ) ) )有有有有效效效效性性性性检检检检查查查查指指功功能能需需求求是是否否符符合合用用户户所所提提出出的需求。的需求。2)2)2)2)一致性检查一致性检查一致性检查一致性检查系统功能描述及约束是否一致。系统功能描述及约束是否一致。3)3)3)3)完完完完备备备备性性性性检检检检查查查查是是否否包包含含所所有有系系统统用用户户的的需需求求和和约束。约束。4)4)4)4)可可可可检检检检验验验验性性性性检检检检查查查查是是否否能能设设计计出出一一组组验验证证方方法法,确定了检验的标准。确定了检验的标准。2024年7月24日17软件过程与项目管理课件1.1 软件需求分析概
19、述软件需求分析概述1. 软件需求工程软件需求工程需求管理需求管理 需求管理贯穿需求分析全过程,包括需求管理贯穿需求分析全过程,包括:需求管理需求管理变更控制建议变更建议变更分析影响分析影响交流交流合并合并测量需求的稳测量需求的稳定性定性版本控制定义需求文档定义需求文档版本版本确定单个需求确定单个需求文档版本文档版本需求跟踪需求跟踪定义与其他需定义与其他需求的链接求的链接定义与其他系定义与其他系统元素的链接统元素的链接需求状态跟踪需求状态跟踪定义需求状态定义需求状态跟踪所有需求跟踪所有需求状态状态2024年7月24日18软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求
20、工程软件需求工程需求变更管理需求变更管理 需求管理的所有活动中,最重要的是需求管理的所有活动中,最重要的是 “需求变更管理需求变更管理”,包括包括:问题分析和变更问题分析和变更描述描述变更分析和成本变更分析和成本计算计算变更实现变更实现修正后的修正后的需求需求识别出的识别出的问题问题 需需求求管管理理过过程程需需要要CASE (Computer Aided Software Engineering) 工具支持。工具支持。2024年7月24日19软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求变更管理方法需求变更管理方法1 1) 传统的变化管理传统
21、的变化管理传统的变化管理传统的变化管理 基本内容包括软件配置、软件基线和变化审查。基本内容包括软件配置、软件基线和变化审查。基本内容包括软件配置、软件基线和变化审查。基本内容包括软件配置、软件基线和变化审查。2 2) 新的管理方法新的管理方法新的管理方法新的管理方法 a a a a) 软件家族法软件家族法软件家族法软件家族法。即软件产品线方法,该方法是源于工业界。即软件产品线方法,该方法是源于工业界。即软件产品线方法,该方法是源于工业界。即软件产品线方法,该方法是源于工业界产品线的概念,关注于一个软件企业如何组织一组具有共性特产品线的概念,关注于一个软件企业如何组织一组具有共性特产品线的概念,
22、关注于一个软件企业如何组织一组具有共性特产品线的概念,关注于一个软件企业如何组织一组具有共性特征的,相似产品的生产,并应用软件复用的相关原理与技术。征的,相似产品的生产,并应用软件复用的相关原理与技术。征的,相似产品的生产,并应用软件复用的相关原理与技术。征的,相似产品的生产,并应用软件复用的相关原理与技术。 b b)多视点方法多视点方法多视点方法多视点方法。它可以用于管理不一致性并进行关于变化。它可以用于管理不一致性并进行关于变化。它可以用于管理不一致性并进行关于变化。它可以用于管理不一致性并进行关于变化的推理。是从多个视点出发在软件工具的协助下对需求描述,的推理。是从多个视点出发在软件工具
23、的协助下对需求描述,的推理。是从多个视点出发在软件工具的协助下对需求描述,的推理。是从多个视点出发在软件工具的协助下对需求描述,进行自动需求建模,从而提高需求模型的完整性。进行自动需求建模,从而提高需求模型的完整性。进行自动需求建模,从而提高需求模型的完整性。进行自动需求建模,从而提高需求模型的完整性。2024年7月24日20软件过程与项目管理课件1.1 软件需求分析概述软件需求分析概述1. 软件需求工程软件需求工程需求工程过程需求工程过程可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求
24、系统需求需求文挡需求文挡2024年7月24日21软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法 功能分解方法功能分解方法功能分解方法功能分解方法 将系统看作若干功能模块的集合,每个功能又可将系统看作若干功能模块的集合,每个功能又可以分解为子功能以分解为子功能, ,子功能还可继续分解子功能还可继续分解, ,分解的结果即分解的结果即是系统的雏形。是系统的雏形。存在问题存在问题1. 1. 需要人工完成需要人工完成2. 2. 无法对描述的准确度进行验证。无法对描述的准确度进行验证。3. 3. 难以适应需求的变化。难以适应需求的变化。问题空间问题空间功能功能子功能子功能映射映射2024年
25、7月24日22软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法 结构化分析方法结构化分析方法结构化分析方法结构化分析方法 是一种以数据、数据的封闭性为基础,从问题空是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法间到某种表示的映射方法, ,由数据流图由数据流图(DFD(DFD图图) )表示。表示。顾客出版社验证验证订单订单汇总汇总订单订单订单出版社 订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确订单一批订单出版社档案文件出版社档案文件订货存根文件订货存根文件2024年7月24日23软件过程与项目管理课件3.2 软件需求分析方法软件需求
26、分析方法面向对象的分析方法面向对象的分析方法 面面向向对对象象分分析析方方法法( (OOA) )的的关关键键是是识识别别问问题题域域内内的的对象对象, ,分析它们之间的关系分析它们之间的关系, ,并建立起三类模型。并建立起三类模型。信息建模法信息建模法 是是从从数数据据的的角角度度对对现现实实世世界界建建立立系系统统的的信信息息模模型型, ,基基本本工工具具是是ERER图图。是是由由实实体体、属属性性和和关关系系组组成成的的网网络络图。图。 E- E-实体,是一个或一组对象;实体,是一个或一组对象; R- R-关系,关系,实体之间联系或交互作用。实体之间联系或交互作用。注意:信息建模与面向对象
27、分析的区别!注意:信息建模与面向对象分析的区别!2024年7月24日24软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法分分解解:对对于于一一个个复复杂杂的的系系统统,为为了了将将复复杂杂性性降降低低到到可可以以掌掌握握的的程程度度,可可以以把把大大问问题题分分解解成成若若干干小小问题,然后分别解决(如右图)。问题,然后分别解决(如右图)。SASA法的基本思想法的基本思想“分解分解”和和“抽象抽象”。抽抽象象:分分解解可可以以分分层层进进行行,即即先先考考虑虑问问题题最最本本质质的的属属性性,暂暂把把细细节节略略去去, ,以以后后再再逐逐层层添添
28、加加细细节节,直直至至涉涉及及到到最最详详细细的的内内容容,这种用最本质的属性表示一个系统的方法就是这种用最本质的属性表示一个系统的方法就是“抽象抽象”。1.11.21.3x2132.12.22.31.11.32024年7月24日25软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法 SA SA SA SA法的描述方法法的描述方法法的描述方法法的描述方法1 1、分层的数据流图、分层的数据流图(DFD(DFD图图) )2 2、数据词典、数据词典3 3、描述加工逻辑的结构化语言、判定表及判定树、描述加工逻辑的结构化语言、判定表及判定树 SA SA SA
29、 SA法的步骤法的步骤法的步骤法的步骤当前系统当前系统具体模型具体模型建立建立当前系统当前系统逻辑模型逻辑模型抽象抽象目标系统目标系统逻辑模型逻辑模型建立建立完善的系统完善的系统逻辑模型逻辑模型改进改进深入调查深入调查研究研究分析用户需求分析用户需求,用用DFD图描述图描述分析系统需求分析系统需求,用用DFD图描述图描述修改完善修改完善DFD图图,增添功能增添功能2024年7月24日26软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法图书预订系统图书预订系统顾顾客客出出版版社社验证验证订单订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录
30、文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件画图步骤画图步骤 : 1 1、确定外部实体及输入、输出数据流。、确定外部实体及输入、输出数据流。 2 2、确定分解顶层的加工。、确定分解顶层的加工。 3 3、确定使用的文件。、确定使用的文件。 4 4、用数据流将各部分连接起来,形成数据封闭。、用数据流将各部分连接起来,形成数据封闭。2024年7月24日27软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法数据流图数据流图数数据据流流图图(Data Flow
31、 Diagram,DFD)是是描描述述系系统统中中数数据据流流程程的的图图形形工工具具,它它描描述述了了将将系系统统的的逻逻辑辑输输入入转转换换为为逻逻辑辑输输出所需的加工处理过程。出所需的加工处理过程。数据存储数据存储数据源点数据源点或终点或终点加加 工工加工名加工名数据流数据流数据流名数据流名文件名文件名实体名实体名箭箭 头头圆或椭圆圆或椭圆单或双杠单或双杠矩形框矩形框一、数据流图的图符一、数据流图的图符基本图形符号:基本图形符号:2024年7月24日28软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法数据流图数据流图还有一些辅助的图例还有一
32、些辅助的图例: :TAB*CTAB*CTAB+CTAB+CTABC+TABC+* 与与 + 或或互斥+2024年7月24日29软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法画画DFD的基本原则的基本原则加工分解的原则加工分解的原则自然性:自然性:概念上合理、清晰;概念上合理、清晰; 均均匀匀性性:理理想想的的分分解解是是将将一一个个问问题题分分解解成成大大小小均均匀匀的的几几个个部分;部分;分分解解度度:一一般般每每一一个个加加工工每每次次分分解解最最多多不不要要超超过过个个子子加加工工, ,分解应分解到基本加工为止。分解应分解到基本加工为止。
33、数据守恒与数据封闭原则数据守恒与数据封闭原则 数据守恒是指加工的输入数据守恒是指加工的输入/ /出数据流是否匹配,出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。即每一个加工既有输入数据流又有输出数据流。 数据封闭是对整个系统而言。数据封闭是对整个系统而言。2024年7月24日30软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法画画DFD的基本原则的基本原则合理使用文件合理使用文件 当当文文件件作作为为某某些些加加工工之之间间的的交交界界面面时时,文文件件必必须须画画出出来来,一一旦旦文文件件作作为为数数据据流流图图中中的的一一个个独
34、独立立成成份份画画出出来来了了,那那么么他他同同其其他他成成份份之之间间的的联联系系也也应应同同时表达出来。时表达出来。DFDDFDDFDDFD图不是流程图图不是流程图图不是流程图图不是流程图, , , ,不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。子图与父图的子图与父图的“平衡平衡”父父图图中中某某个个加加工工的的输输入入输输出出数数据据流流应应该该同同相相应应的的子子图图的的输输入入输输出出相相同同( (相相对对应应),分分层层数数据据流流图图的这种特点称为子图与父图的这种特点称为子图与父图“平衡平衡”。2024年7月24日31软件过程与项目管理
35、课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法分层分层DFD的改进的改进DFD图须经过图须经过反复修改反复修改,才能获得最终的目标系统,才能获得最终的目标系统的的DFD图。从以下方面改进图。从以下方面改进DFD图:图: 1) 1) 检查数据流的正确性检查数据流的正确性 数据数据守恒守恒 子图、父图的平衡子图、父图的平衡 文件使用是否合理。特别注意输入文件使用是否合理。特别注意输入/ /出文件的数出文件的数据流。据流。2) 改进改进DFD图的易理解性图的易理解性 简化加工之间的联系(联系越少,独立性越强,简化加工之间的联系(联系越少,独立性越强,易理解性越好)。易
36、理解性越好)。 改进分解的均匀性。改进分解的均匀性。 适当命名(各成分名称无二义性,准确、具体)适当命名(各成分名称无二义性,准确、具体)2024年7月24日32软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法数据字典数据字典 分分层层数数据据流流图图只只是是表表达达了了系系统统的的“分分解解”,为为了了完完整整地地描描述述这这个个系系统统,还还需需借借助助“数数据据词词典典”和和“小说明小说明”对图中的每个数据和加工给出解释。对图中的每个数据和加工给出解释。 对对数数据据流流图图中中包包含含的的所所有有元元素素的的定定义义的的集集合合构构成了数
37、据词典。词典中可有以下四种类型的条目成了数据词典。词典中可有以下四种类型的条目: 数据流数据流 文件文件 数据项数据项 加工加工2024年7月24日33软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法数据字典数据字典 A、 数据流条目数据流条目给出某个数据流的定义,通常是列出该给出某个数据流的定义,通常是列出该 数据流的各组成数据项。数据流的各组成数据项。 例如:报名单姓名单位名年龄性别课程名例如:报名单姓名单位名年龄性别课程名 常用符号:、()、常用符号:、()、C、数据项条目数据项条目 数数据据项项条条目目给给出出某某个个数数据据单单项项的的
38、定定义义,通通常常是是数数据据项项的的值值类类型型,允许的取值范围。允许的取值范围。 B、文件条目文件条目给出某个文件的定义,文件的定义通常是列出文件记录给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流。例如:的组成数据流。例如: 订单文件订单编号顾客名称产品名称订货数量交货日期订单文件订单编号顾客名称产品名称订货数量交货日期D、加工条目加工条目 加工类条目就是加工类条目就是“加工小说明加工小说明”。一般应该单独列出。一般应该单独列出。2024年7月24日34软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法DFD加工说明加工说明结构化
39、语言结构化语言判定表判定表判定树判定树 对对DFD图中每一个基本加工都必须有一个图中每一个基本加工都必须有一个小说明小说明给出给出该加工的精确描述。小说明中应精确地描述加工的激发条该加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,指用户对这个加工的逻辑要求。辑是其中最基本的部分,指用户对这个加工的逻辑要求。 对基本加工说明有三种描述方式:对基本加工说明有三种描述方式:2024年7月24日35软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结
40、构化分析方法DFD结构化语言结构化语言 结构化语言是介于自然语言和形式语言之间的一种半形结构化语言是介于自然语言和形式语言之间的一种半形式语言式语言, ,是自然语言的一个受限制的子集。是自然语言的一个受限制的子集。 一般分为两层结构:外层语法较具体,为控制结构(顺一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环)序、选择、循环), ,内层较灵活,表达内层较灵活,表达“做什么做什么”。例如:外层可为以下结构:例如:外层可为以下结构:1、顺序结构、顺序结构2、选择结构、选择结构 IFTHEN-ELSE; CASE-OF-ENDCASE;3、循环结构、循环结构 WHILE-DO; RE
41、PEAT-UNTIL2024年7月24日36软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法DFD判定表判定表 判定表是一种二维的表格,常用于较复杂的组合条件(与判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。结构化语言比较)。 条件框条件框 条件条目条件条目 操作框操作框 操作条目操作条目特点:可处理较复杂的组合条件,但不易理解特点:可处理较复杂的组合条件,但不易理解. .不易输入计算机。不易输入计算机。通常由四部分组成。通常由四部分组成。条件框条件框 条件定义。条件定义。操作框操作框 操作的定义。操作的定义。条件条目条件条
42、目 各条件的取值及组合。各条件的取值及组合。操作条目操作条目 在各条件取值组合下所执行的操作。在各条件取值组合下所执行的操作。营业额营业额X ()1000X50005000 X 10001000元元 Y Y Y Y N Y Y N 信誉好信誉好 Y N N - Y N N - 20 20 年年 - Y N - - Y N - 优优 惠惠 X X X X 正正 常常 X X X X 化化简简后后 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8 10001000元元 Y Y Y Y Y N N N N Y Y Y N N N N 信誉好信誉好 Y Y N N Y Y N N Y Y
43、N N Y Y N N 20 20 年年 Y N Y N Y N Y NY N Y N Y N Y N优优 惠惠 X X X X X X正正 常常 X X X X X X X X X XY-Y-满足条件满足条件 N- N-不满足条件不满足条件 X- X-选中判定的结论选中判定的结论2024年7月24日38软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法1. 结构化分析方法结构化分析方法DFD判定树判定树特点特点: :描述一般组合条件较清晰,易理解。不易输入计算机。描述一般组合条件较清晰,易理解。不易输入计算机。营业额营业额 10001000元元 1000 1000元元 正常处理正
44、常处理好的支付信誉好的支付信誉 优惠处理优惠处理坏的支付信誉坏的支付信誉 20 20年年 优惠处理优惠处理 20 20年年 正常处理正常处理如上例如上例2024年7月24日39软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法 1992 1992年由年由年由年由JacobsonJacobson提出了提出了提出了提出了Use case Use case 的概念及可的概念及可的概念及可的概念及可视化的表示方法视化的表示方法视化的表示方法视化的表示方法Use caseUse case图,并加入由他提出的图,并加入由他提出的图,并加入由他提出的图,
45、并加入由他提出的面向对象的软件工程面向对象的软件工程(OOSE)。 Use case Use case 的概念受到了的概念受到了的概念受到了的概念受到了ITIT界的欢迎,被广泛应界的欢迎,被广泛应界的欢迎,被广泛应界的欢迎,被广泛应用到了面向对象的系统分析中。基于用例的需求方用到了面向对象的系统分析中。基于用例的需求方用到了面向对象的系统分析中。基于用例的需求方用到了面向对象的系统分析中。基于用例的需求方法,已成为面向对象的分析方法的主流。法,已成为面向对象的分析方法的主流。法,已成为面向对象的分析方法的主流。法,已成为面向对象的分析方法的主流。 用用用用例例例例模模模模型型型型被被被被推推推
46、推荐荐荐荐为为为为获获获获取取取取和和和和识识识识别别别别需需需需求求求求的的的的首首首首选选选选工工工工具具具具! !基于用例的方法基于用例的方法基于用例的方法基于用例的方法2024年7月24日40软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法User Case图图 采用采用“ “基于用例的方法基于用例的方法基于用例的方法基于用例的方法” ”来来识别和识别和识别和识别和获取获取需求,是需求,是需求,是需求,是从外部的角度来看系统功能,建立系统的从外部的角度来看系统功能,建立系统的Use case模模型型。描述外部执行者描述外部执行者(
47、Actor)所理解的系统功能。即所理解的系统功能。即待开发系统的功能需求。待开发系统的功能需求。 用例用例 表示一个子系统,或者系统一个独立的表示一个子系统,或者系统一个独立的功能。功能。 角色角色 表示外部的表示外部的“执行者执行者”。描述方法:描述方法: 用例用例 : 角色:角色: 连接:连接:用例用例2024年7月24日41软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法用例模型用例模型ATMATM机验证储户身份的机验证储户身份的机验证储户身份的机验证储户身份的Use caseUse case图图图图创建用例模型的工作包括:创建用例
48、模型的工作包括:创建用例模型的工作包括:创建用例模型的工作包括: 定义系统、确定执行者和用例、描述用例、定定义系统、确定执行者和用例、描述用例、定义用例间的关系、确认模型。义用例间的关系、确认模型。2024年7月24日42软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析案例案例3 网网 上上 拍拍 卖卖 系系 统统 随随着着 Internet 技技术术的的发发展展和和互互联联网网的的日日益益普普及及,互互联联网网用用户户中中约约 1/4 的的用用户户使使用用 Internet 进进行行互互联联网网通通信信或或经经贸贸活活动
49、动。电子商务总额每年可达到电子商务总额每年可达到 6 万亿美元。万亿美元。 网上拍卖系统就是一个在互联网上模拟拍卖环境的典型网上拍卖系统就是一个在互联网上模拟拍卖环境的典型的范例。可实现从展示产品、相互竞价到最后产品成交等一的范例。可实现从展示产品、相互竞价到最后产品成交等一系列功能系列功能;用户可以轻松实现在线商品的拍卖和竞标用户可以轻松实现在线商品的拍卖和竞标 。 建立系统的建立系统的USE CASE模型。模型。 2024年7月24日43软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析一、竞拍平台一、竞拍平台一、竞拍平
50、台一、竞拍平台1. 1.竞拍者资格审查竞拍者资格审查竞拍者资格审查竞拍者资格审查2. 2.竞拍规则设定竞拍规则设定竞拍规则设定竞拍规则设定3. 3. 竞拍过程控制竞拍过程控制竞拍过程控制竞拍过程控制二、拍卖商品信息发布二、拍卖商品信息发布二、拍卖商品信息发布二、拍卖商品信息发布1. 1.确定发布的商品信息确定发布的商品信息确定发布的商品信息确定发布的商品信息2. 2.对商品信息操作对商品信息操作对商品信息操作对商品信息操作三、拍卖步骤及在线帮助三、拍卖步骤及在线帮助三、拍卖步骤及在线帮助三、拍卖步骤及在线帮助四、网上支付系统四、网上支付系统四、网上支付系统四、网上支付系统五、用户管理五、用户管
51、理五、用户管理五、用户管理用户需求用户需求2024年7月24日44软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析系统需求系统需求a) 执行者执行者用户用户 系系统统是是通通过过网网络络提提供供给给商商品品的的销销售售者者和和购购买买者者一一个个交交易易平平台台,因因此此所所有有上上网网用用户户都都是是本本系系统统的的用用户户,具具体体又又分分为为商商品购买者品购买者和和商品销售者、系统管理员商品销售者、系统管理员。 考考虑虑到到一一般般用用户户既既可可能能是是商商品品购购买买者者也也可可能能是是商商品品销销售售者者,所以
52、将用户分为所以将用户分为:非会员用户和会员用户非会员用户和会员用户. 非非会会员员_未未注注册册的的用用户户,只只能能在在网网站站上上浏浏览览商商品品,不不能能参参与与竞标,也不能提供物品出售。竞标,也不能提供物品出售。 会员会员_已注册的用户已注册的用户,可以直接参与拍卖或竞标可以直接参与拍卖或竞标. 2024年7月24日45软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析系统需求系统需求b)用例)用例 分析系统功能分析系统功能提供高效的内容丰富的提供高效的内容丰富的 Web 拍卖商业服务拍卖商业服务;展示产品、相展示产
53、品、相互竞价互竞价 、产品成交、产品成交 。实现拍卖商品种类的更新和消息的发布。实现拍卖商品种类的更新和消息的发布。实现个人物品流通和网上信息发布、留言。实现个人物品流通和网上信息发布、留言。初步确定以下功能:初步确定以下功能: 1)会员注册会员注册 2)会员天地会员天地 3)商品分类浏览商品分类浏览 4)查找商品查找商品 5)拍卖商品拍卖商品 6) 购买商品购买商品 7) 网上支付网上支付2024年7月24日46软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析进一步确定以下功能:进一步确定以下功能: 1) 会员注册会员注
54、册 (填写用户帐号(填写用户帐号,用户名用户名,密码密码,Email等等) 2) 会员天地会员天地(查看并修改个人信息(查看并修改个人信息,交易记录交易记录,收邮件收邮件,信信用评价等用评价等) 3) 商品分类浏览商品分类浏览(浏览、更新、最新商品推荐等(浏览、更新、最新商品推荐等 ) 4) 查找商品查找商品(按关键字查找、输出打印商品信息)(按关键字查找、输出打印商品信息) 5) 拍卖商品拍卖商品(包括商品上架:包括商品上架:包括商品上架:包括商品上架:提供商品信息提供商品信息:商品名称、商品名称、类别、图片、类别、图片、,起拍价格、新旧程度、使用时间起拍价格、新旧程度、使用时间 等,及等,
55、及编辑商品,商品下架编辑商品,商品下架编辑商品,商品下架编辑商品,商品下架) 6) 购买商品购买商品 (即出价参与竞标,拍卖结束时按照竟价规则即出价参与竞标,拍卖结束时按照竟价规则即出价参与竞标,拍卖结束时按照竟价规则即出价参与竞标,拍卖结束时按照竟价规则获得商品获得商品获得商品获得商品) 2024年7月24日47软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析 7) 7) 网上支付网上支付网上支付网上支付 (通过银行网络系统进行交易,(通过银行网络系统进行交易,设置多设置多设置多设置多 种支付方式种支付方式种支付方式种支
56、付方式) 增加执行者增加执行者增加执行者增加执行者“ “银行银行银行银行” ” 8) 8) 收藏商品收藏商品收藏商品收藏商品(可添加收藏,取消收藏,修改收藏)(可添加收藏,取消收藏,修改收藏)(可添加收藏,取消收藏,修改收藏)(可添加收藏,取消收藏,修改收藏) 9) 9) 会员管理会员管理会员管理会员管理(查看会员信息,封锁会员账号,激活(查看会员信息,封锁会员账号,激活(查看会员信息,封锁会员账号,激活(查看会员信息,封锁会员账号,激活 会员账号)会员账号)会员账号)会员账号)10) 10) 商品类别管理商品类别管理商品类别管理商品类别管理(添加商品类别,编辑商品类别,(添加商品类别,编辑商
57、品类别,(添加商品类别,编辑商品类别,(添加商品类别,编辑商品类别, 删除商品类别)删除商品类别)删除商品类别)删除商品类别)11) 11) 交易管理交易管理交易管理交易管理(查看交易,查看交易报表,关闭交易(查看交易,查看交易报表,关闭交易(查看交易,查看交易报表,关闭交易(查看交易,查看交易报表,关闭交易, , 退款管理,申诉管理)退款管理,申诉管理)退款管理,申诉管理)退款管理,申诉管理)12) 12) 公告栏管理公告栏管理公告栏管理公告栏管理(添加公告,修改公告,删除公告)(添加公告,修改公告,删除公告)(添加公告,修改公告,删除公告)(添加公告,修改公告,删除公告)2024年7月24
58、日48软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析买商品卖商品2024年7月24日49软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析1) 1) 精度要求精度要求精度要求精度要求 本系统所涉及的所有交易数据,均按实数保存,在本系统所涉及的所有交易数据,均按实数保存,在本系统所涉及的所有交易数据,均按实数保存,在本系统所涉及的所有交易数据,均按实数保存,在处理时保留小数点后处理时保留小数点后处理时保留小数点后处理时保留小数点后2 2位。位。位。位。2
59、) 2) 时间特性要求时间特性要求时间特性要求时间特性要求 操作响应时间:满足普通人员的操作要求;操作响应时间:满足普通人员的操作要求;操作响应时间:满足普通人员的操作要求;操作响应时间:满足普通人员的操作要求; 查询运行时间:满足普通人员的查询要求;查询运行时间:满足普通人员的查询要求;查询运行时间:满足普通人员的查询要求;查询运行时间:满足普通人员的查询要求; 更新处理时间:数据库在网络无故障的情况下,更新处理时间:数据库在网络无故障的情况下,更新处理时间:数据库在网络无故障的情况下,更新处理时间:数据库在网络无故障的情况下,插入一条数据和更新一条数据的数据库操作响应时间插入一条数据和更新
60、一条数据的数据库操作响应时间插入一条数据和更新一条数据的数据库操作响应时间插入一条数据和更新一条数据的数据库操作响应时间控制在控制在控制在控制在2 2秒秒秒秒/ /条之内;条之内;条之内;条之内; 数据传输时间:数据交换过程控制在数据传输时间:数据交换过程控制在数据传输时间:数据交换过程控制在数据传输时间:数据交换过程控制在1010秒钟内;秒钟内;秒钟内;秒钟内; 非功能需求非功能需求2024年7月24日50软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析 3) 故障处理能力要求故障处理能力要求 当出现错误时,要求以界面形
61、式向用户说明,并当出现错误时,要求以界面形式向用户说明,并用一览表方式列出,各类可能的错误或故障出现时,用一览表方式列出,各类可能的错误或故障出现时,系统的处理方法和补救措施。系统的处理方法和补救措施。 4) 灵活性灵活性 需求需求 要求当用户需求,如操作方式,运行环境,结果要求当用户需求,如操作方式,运行环境,结果精度,数据结构及其他软件接口等发生变化时,增加精度,数据结构及其他软件接口等发生变化时,增加新模块时,不会修改原有的模块。新模块时,不会修改原有的模块。 5) 安全性安全性 采用用户名及密码,对用户授权使用。支付过程采用用户名及密码,对用户授权使用。支付过程中的安全性由银行网上支付
62、系统进行保证。中的安全性由银行网上支付系统进行保证。2024年7月24日51软件过程与项目管理课件3.2 软件需求分析方法软件需求分析方法2. 面向对象的分析方法面向对象的分析方法案例分析案例分析 改进的改进的Use CaseUse Case模型模型2024年7月24日52软件过程与项目管理课件3.3 软件架构设计的概念软件架构设计的概念1. 基本概念基本概念模块化模块化模块化的基本要素包括:接口,指模块的输入输出;功能,是模块存在的必要条件;状态,指可执行模块运行所需要的一个数据结构;逻辑,模块的运行环境。模块化的优点:通过对软件系统的有效分解,可以简化问题,降低工作量,从而降低成本,提高开
63、发效率;使软件结构清晰,易于阅读和理解;易于软件的修改,维护和调试;可获得较高的软件可靠性;便于工程化协作。2024年7月24日53软件过程与项目管理课件3.3 软件架构设计的概念软件架构设计的概念1. 基本概念基本概念模块化模块化信息隐蔽 定义:定义:是指在设计和确定模块时,是的一个模块内包含的自身实现细节和数据隐藏起来,对于其他不需要这些信息的模块来说是不能访问的;而且每个模块只完成一个相对独立的特点功能;模块之间仅仅交换那些为完成系统功能必须交换的信息。模块独立性判定准则 模块的耦合 模块的内聚2024年7月24日54软件过程与项目管理课件3.3 软件架构设计的概念软件架构设计的概念1.
64、 基本概念基本概念抽象和逐步求精抽象和逐步求精系统定义阶段,软件系统被描述为计算机大系统的一个组成部分;需求分析阶段,软件使用用例建模表达问题域;软件设计阶段,细化用例模型,将抽象组件细化为实际组建,抽象级别进一步降低;编码完成后达到抽象的最低级。2024年7月24日55软件过程与项目管理课件3.3 软件架构设计的概念软件架构设计的概念2. 软件架构的要素软件架构的要素它是一个软件系统从整体到部分的最高层次的划分,一个系统通常由组件组成,而这些组建如何形成,相互之间如何发生作用,则是关于这个系统本身结构的重要信息;建造一个系统所作出的最高层次、以后难以更改的、业务的和技术的决定。2024年7月
65、24日56软件过程与项目管理课件3.3 软件架构设计的概念软件架构设计的概念2. 软件架构的目标软件架构的目标可靠性安全性可伸缩性可定制化可扩展性可维护性客户体验市场时机3. 软件架构的种类软件架构的种类功能架构用户界面数据库外部系统接口商业逻辑组件非功能架构可扩展性可靠性强壮性灵活性互用性安全性2024年7月24日57软件过程与项目管理课件3.4 软件架构设计的任务软件架构设计的任务软件架构设计是适用于整个系统范围的设计,通常软件架构设计是适用于整个系统范围的设计,通常会用一份独立的文档来描述,成为会用一份独立的文档来描述,成为“架构规格说明架构规格说明书书”。软件架构设计的具体任务包括:。
66、软件架构设计的具体任务包括: 定义程序组织结构 设计主要类 数据设计 确定业务规则 用户界面设计 输入/输出设计 性能设计 安全性设计 可伸缩性设计 容错性设计2024年7月24日58软件过程与项目管理课件本章小结本章小结1. 本章的概念本章的概念 需求分析的作用需求分析的作用 需求抽取的方法需求抽取的方法 结构化软件需求分析方法结构化软件需求分析方法 面向对象的软件需求分析方法面向对象的软件需求分析方法 软件模块化的基本要素和优点软件模块化的基本要素和优点2. 本章的重点本章的重点软件功能需求,需求工程,数据流图,模块化软件功能需求,需求工程,数据流图,模块化2024年7月24日59软件过程与项目管理课件软件过程与项目管理课件