软件工程讲稿幻灯片.ppt
《软件工程讲稿幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程讲稿幻灯片.ppt(115页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程讲稿第1页,共115页,编辑于2022年,星期三1 1 需求分析的任务需求分析的任务 请思考涉及到的几个主要问题:请思考涉及到的几个主要问题:如何定义系统需求?如何定义系统需求?v如何识别、获取需求如何识别、获取需求?你能够采取何种手段与用户进行交流或沟通你能够采取何种手段与用户进行交流或沟通?v何为需求建模何为需求建模?你如何理解模型与建模你如何理解模型与建模?第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 准确地准确地定义定义待开发系统的目标,确定为了满足用户的需求,系统必待开发系统的目标,确定为了满足用户的需求,系统必须做什么?用须做什么?用需求规格说
2、明书需求规格说明书规范的形式准确地表达用户的规范的形式准确地表达用户的需求需求。用户用户分析员分析员程序员程序员 需求分析是软件定义时期的最后一个阶段,其基本任务是准确地回答“系统必须做什么?”,而不是确定系统怎样去完成这些工作,也就是要对目标系统提出完整、准确、清晰、具体的要求。在需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必不可少的作用。只有用户才真正知道自己需要什么,但是他们并不知道怎样用软件实现自己的需求,用户必须把他们对软件的需求尽量准确、具体地描述出来;分析员知道
3、怎样用软件实现人们的需求,但是在需求分析开始时他们对用户的需求并不十分清楚,必须通过与用户沟通获取用户对软件的需求。第2页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 需求分析和规格说明是一项十分艰巨复杂的工作。用户与分析员之间需要沟通需求分析和规格说明是一项十分艰巨复杂的工作。用户与分析员之间需要沟通的内容非常多,在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二的内容非常多,在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。因此,不仅在整个需求分析过程中应该采用行之有效的沟通技术、集中精义性。因此,不仅在
4、整个需求分析过程中应该采用行之有效的沟通技术、集中精力仔细工作,而且必须严格审查验证需求分析的结果。力仔细工作,而且必须严格审查验证需求分析的结果。尽管目前有许多不同的用于需求分析的方法,但是,所有这些分析方法尽管目前有许多不同的用于需求分析的方法,但是,所有这些分析方法都遵守下述准则:都遵守下述准则:(1)必须理解并描述问题的信息域。根据这条准则,应该建立必须理解并描述问题的信息域。根据这条准则,应该建立 数据模型。数据模型。(2)必须定义软件应完成的功能。根据这条准则,应该建立必须定义软件应完成的功能。根据这条准则,应该建立 功能模型功能模型。(3)必须描述作为外部事件结果的软件行为。为此
5、,应该建立必须描述作为外部事件结果的软件行为。为此,应该建立 行为模型行为模型。(4)必须对描述信息、功能和行为的模型进行分解。所以应该用必须对描述信息、功能和行为的模型进行分解。所以应该用 层次方式层次方式展示细节。展示细节。第3页,共115页,编辑于2022年,星期三软件需求分析的主要阶段:软件需求分析的主要阶段:1.问题分析问题分析2.问题评估和方案综合问题评估和方案综合3.建模建模4.规约规约5.复审复审 第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 在这个阶段,系统分析员的在这个阶段,系统分析员的焦点焦点:是是“做什么?(做什么?(what)”而不是而不
6、是“怎样做?(怎样做?(how)”第4页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析通过问题分析与方案综合,完成以下任务:通过问题分析与方案综合,完成以下任务:确定对系统的综合要求确定对系统的综合要求 系统的综合要求主要指系统的功能性需求和非功能性需求。系统的综合要求主要指系统的功能性需求和非功能性需求。分析系统的数据要求分析系统的数据要求 任何一个软件系统本质上都是信息处理系统,所必须处理的信息和应该产生的任何一个软件系统本质上都是信息处理系统,所必须处理的信息和应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影
7、响,因此,分析系统信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,分析系统的数据要求是必须的。的数据要求是必须的。导出系统的逻辑模型导出系统的逻辑模型 综合系统的综合要求和数据要求,可以导出系统的逻辑模型。通常用数综合系统的综合要求和数据要求,可以导出系统的逻辑模型。通常用数据流图、实体据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。逻辑模型。修正系统开发计划修正系统开发计划 根据在分析过程中获得的对系统的更深入更具体的了解,可以比较根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计
8、系统的成本和进度,修正以前所制定的开发计划。准确地估计系统的成本和进度,修正以前所制定的开发计划。第5页,共115页,编辑于2022年,星期三2 2 需求获取需求获取2.1 需求获取的目的需求获取的目的 清楚地理解所要解决的问题,完整地获取用户需求。清楚地理解所要解决的问题,完整地获取用户需求。需求获取面临的挑战:需求获取面临的挑战:(1)问题空间的理解问题空间的理解(2)人与人之间的通信人与人之间的通信(3)需求的不断变化需求的不断变化第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析2.2 需求获取方法需求获取方法 访谈(与用户交流或沟通)访谈(与用户交流或沟通)访
9、谈是最早开始使用的获取用户需求的一种技术,也是迄今为止仍然访谈是最早开始使用的获取用户需求的一种技术,也是迄今为止仍然广泛使用的需求分析技术。广泛使用的需求分析技术。第6页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 访谈分为正式访谈分为正式访谈访谈和非正式访谈两种。和非正式访谈两种。正式访谈:系统分析员提出一些事先准备好的具体问题询问用户。正式访谈:系统分析员提出一些事先准备好的具体问题询问用户。非正式访谈:分析员提出一些用户可以自由回答的开放性问题,以非正式访谈:分析员提出一些用户可以自由回答的开放性问题,以鼓励被访问人员
10、说出自己的想法。鼓励被访问人员说出自己的想法。当需要调查大量人员的意见时,分发调查表是一个十分有效的方法。后面将给当需要调查大量人员的意见时,分发调查表是一个十分有效的方法。后面将给出一个调查表的例子。出一个调查表的例子。情景分析技术也是常用的一种方法。所谓情景分析就是对用户将来使用目标系情景分析技术也是常用的一种方法。所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。统解决某个具体问题的方法和结果进行分析。情景分析技术的用处主要体现在下述两个方面:情景分析技术的用处主要体现在下述两个方面:(1)在某种程度上演示目标系统的行为,从而便于用户理解,而且还在某种程度上演示
11、目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。可能进一步揭示出一些分析员目前还不知道的需求。(2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。需求分析的目标是获知用户的真实需求,而程中始终扮演一个积极主动的角色。需求分析的目标是获知用户的真实需求,而这一信息的唯一来源是用户,因此,让用户积极主动地开展工作是需求分析工作这一信息的唯一来源是用户,因此,让用户积极主动地开展工作是需求分析工作获得成功的关键。获得成功的关键。第7页,共115页,编
12、辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 面向数据流自顶向下求精面向数据流自顶向下求精 软件系统本质上是信息处理系统,而任何软件系统本质上是信息处理系统,而任何信息处理系统的基本功能都是信息处理系统的基本功能都是把输入数据转变成需要的输出信息把输入数据转变成需要的输出信息。数据决定了需要的处理和算法,是需。数据决定了需要的处理和算法,是需求分析的出发点。在可行性研究阶段许多实际的数据元素被忽略了,在需求求分析的出发点。在可行性研究阶段许多实际的数据元素被忽略了,在需求分析阶段必须详细定义这些数据元素。分析阶段必须详细定义这些数据元素。结构
13、化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级。为了达到这个目标,通常从数据流就是把数据流和数据存储定义到元素级。为了达到这个目标,通常从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素。决定了系统必须具有的最基本的组成元素。系统
14、系统输入数据输入数据输出数据输出数据第8页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 输出数据是由哪些元素组成的呢?通过调查访问不难搞清这个问题。那么,输出数据是由哪些元素组成的呢?通过调查访问不难搞清这个问题。那么,每个输出数据元素又是从哪里来的呢?既然它们是系统的输出,显然它们或每个输出数据元素又是从哪里来的呢?既然它们是系统的输出,显然它们或者是从外面输入到系统中来的,或者是通过计算由系统中产生出来的。沿数者是从外面输入到系统中来的,或者是通过计算由系统中产生出来的。沿数据流图从输出端往输入端回溯,应该能够确定每个数据
15、元素的来源,与此同据流图从输出端往输入端回溯,应该能够确定每个数据元素的来源,与此同时也就初步定义了有关的算法。但是,可行性研究阶段产生的是高层时也就初步定义了有关的算法。但是,可行性研究阶段产生的是高层DFD,许多具体的细节没有包括在里面,因此沿许多具体的细节没有包括在里面,因此沿DFD回溯时常常遇到下述问题:回溯时常常遇到下述问题:(1)为了得到某个数据元素,可能需要用到为了得到某个数据元素,可能需要用到DFD中目前还没有的数据元素中目前还没有的数据元素;(2)获得这些数据元素需要用的算法尚不完全清楚。获得这些数据元素需要用的算法尚不完全清楚。为了解决这些问题,往往需要向用户和其他技术人员
16、请教,以便使分析为了解决这些问题,往往需要向用户和其他技术人员请教,以便使分析员对目标系统有更深的认识,系统中有更多的数据元素被划分,有更多的员对目标系统有更深的认识,系统中有更多的数据元素被划分,有更多的算法被清楚地描述。通常用算法被清楚地描述。通常用DD描述分析过程中得到的相关数据元素,用描述分析过程中得到的相关数据元素,用IPO图等描述相关算法。通过分析而补充的数据流、数据存储和处理,均图等描述相关算法。通过分析而补充的数据流、数据存储和处理,均内被添加到内被添加到DFD的适当位置上。的适当位置上。第9页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求
17、分析软件需求分析软件需求分析 上述分析过程中得出的结果必须请用户仔细进行复查,上述分析过程中得出的结果必须请用户仔细进行复查,DFD是帮助复查是帮助复查的极好工具。从输入端开始,分析员借助的极好工具。从输入端开始,分析员借助DFD、DD和和IPO图向用户解释输图向用户解释输入数据是如何转变为输出数据的。这些解释集中反映了通过需求分析系统分析员入数据是如何转变为输出数据的。这些解释集中反映了通过需求分析系统分析员所获得的对目标系统的认识。这些认识正确吗?有没有遗漏?用户通过倾听分析所获得的对目标系统的认识。这些认识正确吗?有没有遗漏?用户通过倾听分析员的报告,并及时纠正和补充相关意见。员的报告,
18、并及时纠正和补充相关意见。复查过程验证了已知的元素,补充了未知的元素,填补了文档中的空白。复查过程验证了已知的元素,补充了未知的元素,填补了文档中的空白。反复进行上述分析过程,分析员就越来越深入地定义了系统中的数据和系统应反复进行上述分析过程,分析员就越来越深入地定义了系统中的数据和系统应该完成的功能。为了追踪更详细的数据流,分析员应该把该完成的功能。为了追踪更详细的数据流,分析员应该把DFD扩展到更低层次。扩展到更低层次。通过功能分解可以完成通过功能分解可以完成DFD的细化。的细化。对对DFD细化后可得到一组新的细化后可得到一组新的DFD,不同系统元素之间的关系也变得更,不同系统元素之间的关
19、系也变得更清楚了。对这组新清楚了。对这组新DFD的分析追踪可能会产生新的问题,这些问题的答的分析追踪可能会产生新的问题,这些问题的答案也可能会在案也可能会在DD中增加一些新条目,并且可能导致新的或精化的算法中增加一些新条目,并且可能导致新的或精化的算法描述。描述。第10页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 经过上述问题与解答的反复循环,分析员能够越来越深入地定义目标系统,并经过上述问题与解答的反复循环,分析员能够越来越深入地定义目标系统,并最终得到对系统数据和功能要求的满意了解。下图粗略地概括了上述分析过程。最终得到
20、对系统数据和功能要求的满意了解。下图粗略地概括了上述分析过程。面向数据流自顶向下求精过程面向数据流自顶向下求精过程第11页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 简易的应用规格说明技术简易的应用规格说明技术 使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位而且往往有意无意地与开发者区分动地位而且往往有意无意地与开发者区分“彼此彼此”。由于不能像同一个团队。由于不能像同一个团队的人那样齐心协力地识别和精化需求,这两种方法的效果有时并不理想
21、。的人那样齐心协力地识别和精化需求,这两种方法的效果有时并不理想。为了解决上述问题,人们研究出一种面向团队的需求收集法,称为简易为了解决上述问题,人们研究出一种面向团队的需求收集法,称为简易的应用规格说明技术。该方法提倡用户与开发者密切合作,共同标识问题,的应用规格说明技术。该方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并确定基本需求。提出解决方案要素,商讨不同方案并确定基本需求。目前,该技术已经成为信息系统领域使用的主流技术。目前,该技术已经成为信息系统领域使用的主流技术。使用简易的应用规格说明技术分析需求的典型过程如下:使用简易的应用规格说明技术分析需求的典型
22、过程如下:首先进行初步访谈,通过用户对基本问题的回答初步确定待求解问题的范围与首先进行初步访谈,通过用户对基本问题的回答初步确定待求解问题的范围与解决方案。然后开发者和用户分别写出解决方案。然后开发者和用户分别写出“产品需求产品需求”,选定会议的时间和地点,选定会议的时间和地点,并选举一个负责主持会议的协调人。邀请开发者和用户双方组织的代表出席会议,并选举一个负责主持会议的协调人。邀请开发者和用户双方组织的代表出席会议,并在开会前预先把写好的产品需求分发给每位与会者。并在开会前预先把写好的产品需求分发给每位与会者。第12页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求
23、分析软件需求分析软件需求分析软件需求分析 要求每位与会者在开会的前几天认真审查产品需求,并且列出作为要求每位与会者在开会的前几天认真审查产品需求,并且列出作为系统环境组成部分的对象、系统将产生的对象以及为了完成系统功能系统环境组成部分的对象、系统将产生的对象以及为了完成系统功能而使用的对象。此外,还要求每位与会者列出操作这些对象或与这些而使用的对象。此外,还要求每位与会者列出操作这些对象或与这些对象交互的服务对象交互的服务(即处理或功能即处理或功能)。最后还应该列出约束条件。最后还应该列出约束条件(如成本、规如成本、规模、完成日期等模、完成日期等)和性能标准和性能标准(如速度、容量等如速度、容
24、量等)。并不期望每位与会者列出。并不期望每位与会者列出的内容都是毫无遗漏的,但是,希望能准确地表达出每个人对目标系统的的内容都是毫无遗漏的,但是,希望能准确地表达出每个人对目标系统的认识。认识。会议开始后,讨论的第一个问题是:是否需要这个新产品?一旦大家都认会议开始后,讨论的第一个问题是:是否需要这个新产品?一旦大家都认为需要这个新产品,每位与会者就应该把他们在会前准备好的列表展示出来为需要这个新产品,每位与会者就应该把他们在会前准备好的列表展示出来供大家讨论。理想的情况是表中每一项都能单独移动,这样就能方便地删除供大家讨论。理想的情况是表中每一项都能单独移动,这样就能方便地删除或增添表项,或
25、组合不同的列表。或增添表项,或组合不同的列表。在这个阶段,严格禁止批评与争论。在这个阶段,严格禁止批评与争论。在展示了每个人针对某个议题的列表之后,大家共同创建一张组合列表。在组在展示了每个人针对某个议题的列表之后,大家共同创建一张组合列表。在组合列表中消去了冗余项,加入了在展示过程中产生的新想法,但是并不删除任何合列表中消去了冗余项,加入了在展示过程中产生的新想法,但是并不删除任何实质性内容。实质性内容。第13页,共115页,编辑于2022年,星期三第三章第三章第三章第三章 软件需求分析软件需求分析软件需求分析软件需求分析 针对每个议题的组合列表都建立起来后,由协调人主持讨论这些列表。组针对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 讲稿 幻灯片
限制150内