2022年软件工程第三讲教案.docx
《2022年软件工程第三讲教案.docx》由会员分享,可在线阅读,更多相关《2022年软件工程第三讲教案.docx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 33 页精选学习资料 - - - - - - - - - 学习好资料 欢迎下载第三章 软件需求分析3.1 需求分析的任务与步骤软件需求分析是软件生存周期中重要的一步,也是最关键的一步;只有通过软件需求分析, 才能把软件功能和性能争论清晰,规格说明,进而建立软件开发的基础;并将其描述为具体的软件需求软件需求分析是一个不断熟悉和逐步细化的过程;在该过程中能将软件方案阶段所确定的软件范畴逐步细化到可具体说明的程度;制定软件的需求规格说明不仅是软件开发者的任务, 而且用户也起着极其重要的作用;第一
2、用户必需对软件功能和性能提出初步的基本要求,并澄清一些模糊概念; 然后软件分析人员了解用户的要求, 认真细致地进行调查争论与分析,把用户要做什么的要求最终转 换成一个完全的、 细致的软件需求规格说明, 精确地表达用户的要求, 进而为概 要设计做好预备工作;3.1.1 需求分析的任务需求分析是软件方案时期的最终一个阶段,它的基本任务是精确地回答“ 系 统必需做什么” 这个问题;需求分析所要做的工作是深化描述软件的功能和性能,确定软件设计的限制和软件与其它系统元素的接口细节,需求;描述软件的其它有效性分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发供应一种可转化为数据
3、设计、结构设计和过程设计的数据与功 能表示,在软件完成后,制定的软件需求规格说明仍要为评判软件质量供应 依据;需求分析阶段争论的对象是软件项目的用户需求;虽然在可行性争论 阶段已经粗略明白了用户的需求,甚至仍提出了一些可行的方案,但是,忽 略了很多细节;所以可行性争论并不能代替需求分析;需要留意的是,必需 全面懂得用户的各项要求,但又不能全盘接受用户全部的要求;由于并非所 有用户要求都是合理的;对其中模糊的要求仍需要澄清,然后才能打算是否 可以接受;对于那些无法实现的要求应向用户做出充分的说明说明;明确地 表达所接受的用户要求,是需求分析的另一个重要方面;只有经过准确描述 的软件需求才能成为软
4、件设计的基础;软件开发项目是要求实现目标系统的物理模型,即确定待开发软件系统的 系统元素,并将功能和数据结构安排到这些系统元素中;这是软件实现的基 础;但是目标系统的具体物理模型是将其规律模型实例化,即具体到某个业 务领域;与物理模型不同,规律模型忽视具体实现机制与细节,只描述系统 要完成的功能和要处理的数据;需求分析的任务就是借助于当前系统的规律 模型导出目标系统的规律模型,解决目标系统的做什么的问题;其实现步骤 的描述如图 3-1 所示;需求分析的任务不是确定系统如何完成它的工作,而是确定系统必需完 成哪些工作,也就是对目标系统提出完整、精确、清晰、具体的要求;可行名师归纳总结 - - -
5、 - - - -第 2 页,共 33 页精选学习资料 - - - - - - - - - 学习好资料 欢迎下载性争论阶段产生的文档,特殊是数据流图,是需求分析的动身点;在数据流 图中已经给出系统必需完成的很多基本功能,在需求分析阶段将认真争论这 些功能并进一步将它们具体化;在这个阶段终止时交出的文档中应当包括详 细的数据流图,数据字典和简明的算法描述;需求分析的结果是系统开发的 基础,是工程的胜利和优秀软件产品的保证;因此,除了对目标系统提出完 整、精确、清晰、具体的要求描述外,必需加强对软件需求进行严格的审查 验证;一般说来,需求分析阶段的任务包括下述几方面;1确定对系统的综合需求对系统的综
6、合需求主要有:系统功能需求、系统性能需求、运行需求、将来可能 提出的需求;系统分析人员与用户协商,澄清模糊需求,删除无法做到的需求,改正错误需求; 对于系统功能需求, 应当划分出系统必需完成的全部功能;而系 统性能需求包括:响应时间、精确度指标需求、安全性等;运行需求集中表现为对系统运行时所处环境的需求;如软硬件运行环境需求等; 最终,对于将来可能提出的需求, 应当明确地列出那些虽然不属于当前系统开发范畴,但是依据分析将来很可能会提出来的需求; 这样做增强了被设计系统的可扩展性,在设计过程中对系统将来可能的扩充和修改做预备,充和修改,更有利于系统保护;2分析系统的数据需求以便于需要时能比较简洁
7、地进行这种扩任何一个软件系统实际上都是信息处理系统,系统必需处理的信息和系统应当产生的信息在很大程度上打算了系统的结构;分析系统的数据需求是由系统的信息流归纳抽象出数据元素组成,数据的规律关系,数据字典格式,数据模型;并以 输入 /处理 /输出的结构方式表示;因此,必需分析系统的数据需求,这是软件需求分析的一个重要任务;名师归纳总结 - - - - - - -第 3 页,共 33 页精选学习资料 - - - - - - - - - 学习好资料 欢迎下载3提出系统的规律模型在懂得当前已存在系统结构的基础上,抽取其做什么的本质;需要对当前已存在系统的物理模型进行分析, 区分本质和非本质因素, 去掉
8、那些非本质因素就可获得反映系统本质的规律模型; 在综合上述分析的结果和明确目标系统要做什么的基础上, 可以提出要设计的软件系统的规律模型;具体做法是: 第一确定目标系统与当前系统的规律差别;然后将变化部分看作是新的处理步骤 ,对功能图(一般为数据流图)及对象图进行调整;最终由外及里对变化的部分进行分析,推断其结构, 获得目标系统的规律模型; 通常用数据流图、 数据字典和主要的处 理算法描述规律模型;4修正系统开发方案在经过需求分析阶段的前述工作之后,分析员对目标系统有了更深化更具体的认识,因此可以对系统的成本和进度做出更精确的估量,在此基础上应当对开发计划进行修正;5开发原型系统在第一章中已介
9、绍了几种主要的软件开发模型,很多方法都涉及到了原型系统问题,这里就是指开发原型系统; 在很多工程产品的设计过程中常常使用样机;建造样机的主要目的是: 检验关键设计方案的正确性及系统是否真正满意用户的需要;对于软件系统的开发, 使用原型系统的主要目的是,使用户通过实践获得未来的系统将怎样工作,从而可以更精确地确定他们的要求;建立原型系统能够解决下述问题:由于熟悉才能的局限而不能预先指定全部要 求;在用户和系统分析员之间存在的通信鸿沟;用户需要一个现实的系统模型,以便获得实践体会;而且在开发过程中重复和反复是必要的和不行防止的;接受原型系统策略也带来了的成本增加副作用;但是,由于正确地提出用户需求
10、是软件开发工程胜利的基础, 所以原型系统接受逐步增多; 特殊是目前较好的软 件开发工具的显现,为快速建立软件的原型系统建立了可实施的基础;3.1.2 需求分析的步骤在前面已介绍了需求分析的主要任务,能完成上述任务,需求分析的步骤如下;1调查争论只有在需求分析中实行正确的步骤才分析人员与程序员共同争论系统数据的流程、调查用户需求或查阅可行性报 告、项目开发方案报告, 拜访现场,获得当前系统的具体模型, 以 IPO 图或 DFD 图表示;把从外面输入到系统中来的或者是通过运算由系统中产生出来的数据输 出;要确定输出数据的元素组成及其来源, 并沿数据流图从输出端往输入端回溯,以确定每个数据元素的来源
11、, 定义有关的算法; 但是,由于高层数据流图不包括名师归纳总结 - - - - - - -第 4 页,共 33 页精选学习资料 - - - - - - - - - 学习好资料 欢迎下载具体的细节, 因此沿数据流图回溯常常遇到下述问题:为了得到某个数据元素需要用到数据流图中目前仍没有的数据元素,或者得出这个数据元素需要用的算法不清晰;为明白决这些问题, 通过用户向其他相关人员争论,使分析员对目标系统的熟悉更深化更具体, 系统中更多的数据元素被划分出来,算法更清晰; 把分析过程中得到的有关数据元素的信息记录在数据字典中,把对算法的简明描述记录在 IPO 图中,把通过分析而补充的数据流、数据储备和处
12、理,应添加到数据 流图中;仍有很多问题存在,如数据字典精确性和完整性、算法的正确性和有没有遗 漏必要的处理或数据元素等;一个系统的具体信息只能来源于直接在这个系统上工作的系统的用户;因此,用户对前一个分析步骤中得出的结果认真地进行复查;用户应当留意倾听分析员的报告, 确定对目标系统的熟悉是否正确、有无遗漏, 并准时订正和补充分析员的熟悉; 复查过程验证了已知的元素,空白;补充了未知的元素, 填补了文档中的追踪数据流图和复查系统的规律模型这两个步构成一个循环;对数据流图的分析产生问题, 这些问题也可能又引出新的问题,规律系统的更多细节;2分析与综合每经过一次循环都会明白到将来的问题分析和方案的综
13、合是需求分析的其次步工作;分析员需从数据流和数据结构动身,逐步细化全部的软件功能, 找出系统各元素之间的联系、接口特性和设计上的限制;通过分析确定满意功能要求的程度,依据功能需求,性能需求,运行环境需求等, 删除其不合理的部分, 增加其需要部分, 最终给出目标系统的具体规律模型;在这个步中, 分析和综合工作反复地进行; 在对现行问题期望的输入和输出信息进行分析的基础上, 分析员开头综合出一个或多个解决方案,然后检查它的工作是否符合软件方案中规定的范畴等等,再进行修改; 对分析和综合的过程将始终到分析员与用户都可正确地制定该软件的规格说明为止;经过上述分析过程, 分析员越来越深化地定义了系统中的
14、数据和系统应完成的功能;为了追踪更具体的数据流, 分析员把数据流图扩展到更低的层次;通过功能分解可以完成数据流图的细化; 在数据流图中选出一个功能比较复杂的处理,并把它的功能分解成如干个子功能,较低层的子功能在一张新数据流图上的处理,在这张新数据流图上仍包括数据储备和数据流;应留意下述两条原就: 在分层细化时必需保持信息连续性, 也就是说细化前后对应功能的输入输出数据必需相同;当进一步细化将实现一个具体地功能时,也就是当把一个功能进一步分解成子功能后,为了完成这些子功能需要写出的程序代码时,就不应当再分解了;3书写文档名师归纳总结 - - - - - - -第 5 页,共 33 页精选学习资料
15、 - - - - - - - - - 学习好资料 欢迎下载经过分析确定了系统必需具有的功能和性能,定义了系统中的数据并且简略地描述了处理数据的主要算法; 下一步应当把分析的结果用正式的文档记录下来,作为最终软件配置的一个组成成分;该完成下述四份文档资料:依据需求分析阶段的基本任务, 在这个阶段应(1)系统规格说明;主要描述目标系统的概述、功能要求、性能要求、运 行要求和将来可能提出的要求; 在分析过程中得出的数据流图是这个文档的一个 重要组成部分,用 IPO 图或其他工具简要描述的系统算法是文档的另一个重要 组成部分; 此外,这个文档中仍应包括用户需求和系统功能之间的参照关系以及 设计约束等;
16、(2)数据要求;主要包括在需求分析建立的数据字典以及描画数据结构的层次 方框图或 Warnier 图,仍应当包括对储备信息 (数据库或一般文件) 分析的结果;(3)用户系统描述;这个文档从用户使用系统的角度描述系统,相当于一 份初步的用户手册; 内容包括对系统功能和性能的扼要描述,使用系统的主要步 骤和方法以及系统用户的责任等; 这个初步的用户手册使得将来的用户能从使用的角度检查该目标系统,因而比较易于判定这个系统特别符合他们的需要;(4)修正的开发方案;经过需求分析阶段的工作,分析员对目标系统有了 更深化更具体的熟悉, 因此可以对系统的成本和进度作出更精确的估量,在此基 础上应当对开发方案进
17、行修正; 包括修正后的成本方案、 资源使用方案和进度计 划等;4需求分析评审作为需求分析阶段工作的复查手段,以及其他需求赐予评判;3.1.3 需求分析的原就应当对功能的正确性、 完整性和清晰性目前已显现很多分析方法;虽然各种分析方法都有特殊的描述方法,但全部 分析方法有共同的基本原就;1能够表达和懂得问题的数据域和功能域软件定义与开发的目的是实现数据处理,将一种形式的数据转换成另一种形式的数据;其转换过程必经输入、 加工数据和产生结果数据等步骤,其数据域应包括数据流、数据内容和数据结构;数据流是数据通过一个系统时的变化方式;输入数据第一转换成中间数据, 然后转换成输出结果数据; 在此期间可以从
18、已有的数据储备 (如磁盘文件或内存缓冲 区)中引入附加数据; 对数据进行转换是程序中应有的功能或子功能;两个转换 功能之间的数据传递就确定了功能间的接口;数据内容即数据项;名师归纳总结 - - - - - - -第 6 页,共 33 页精选学习资料 - - - - - - - - - 学习好资料 欢迎下载2按自顶向下、逐层分解问题系统太大太复杂很难懂得; 可以把问题以某种方式分解为多个较易懂得的部分,并确定各部分间的接口,从而实现整体功能;在需求分析阶段,软件的功能域和信息域都能进一步的分解;这种分解可以是同一层次上的,称为横向分解;也可以是多层次的纵向分解;把一个功能分解成几个子功能, 并确
19、定这些子功能与父功能的接口,就属于横向分解;但假如连续分解, 把某些子功能又分解为小的子功能,某个小的子功能又分解为更小的子功能,这就属于纵向分解了;3给出系统的规律视图和物理视图给出系统的规律表示又称系统的规律视图,物理表示又称系统的物理视图; 这两种视图满意处理需求所提出的规律限制条件和提出的物理限制条件必不行少;进而确定做怎样的实现形式限制,功能限制及算法与数据限制;如数据字典, 就对数据流的条目、文件条目、数据项条目及加工条目进行了具体的规定和限制;软件需求的规律视图给出软件要达到的功能和要处理数据之间的关系,而不是实现的细节; 例如,一个商店的销售处理系统要从顾客那里猎取订单,系统读
20、取订单的功能并不关怀订单数据的物理形式和用什么设备读入,也就是说无需关怀输入的机制, 只是猎取顾客的订单而已; 类似的, 系统中检查库存的功能只关怀库 存文件的数据结构, 而不关怀在运算机中的具体储备方式;软件需求的规律描述 是软件设计的基础;软件需求的物理视图给出处理功能和数据结构的实际表示形式,这是由设备 打算的;如一些软件靠终端键盘输入数据, 另一些软件靠参数转换设备供应数据;分析员必需弄清系统元素对软件的限制,并考虑功能和信息结构的物理表示;3.2 需求分析的方法在这里,争论一下需求分析方法;需求分析方法包括对软件的数据域和功能 域的系统分析过程及其表示方法,并定义了系统规律视图和物理
21、视图的表示方式;由于需求分析方法是由数据驱动的,所以供应了一种表示数据域的机制;分析员依据这种表示,确定软件功能及其他特性,建立目标系统的规律模型;数据域具有三种属性:数据流、数据内容和数据结构;通常,一种需求分析 方法总要利用其中的一种或几种属性; 归纳起来,需求分析方法具有以下的性质;(1)支持数据域分析的机制虽然每种分析方法进行数据域分析的方式不同,但它们有共同特点,即都直接或间接地与数据流、 数据内容或数据结构等属性有关;在一般情形下, 数据流特征是将输入转换成输出的变换功能过程来描述,数据内容可以用数据字典表示,或者通过描述数据或数据对象的层次结构隐含地表示;名师归纳总结 - - -
22、 - - - -第 7 页,共 33 页精选学习资料 - - - - - - - - - 学习好资料 欢迎下载(2)功能表示的方法功能用数据变换或加工来表示;每项功能可用规定的记号标识;说明功能可以用自然语言文本, 也可以用形式化的规格说明语言,仍可以用上述两种方式的混合方式(结构化语言) ;(3)接口的定义接口的说明是数据表示和功能表示的结果;某个功能的流进和流出数据流应是其他相关功能的流出或流入数据流;因此,通过数据流分析可以确定功能间的接口;(4)问题分解的机制问题分解和抽象主要依靠分析员在不同抽象层次上表示数据域和功能域,以逐层细化的手段建立分层结构来实现;即不仅都能表示这些功能, 而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 软件工程 第三 教案
限制150内