软件工程第2版教学作者王宜贵第3章节需求分析课件

上传人:E**** 文档编号:91190989 上传时间:2019-06-26 格式:PPT 页数:36 大小:137.50KB
返回 下载 相关 举报
软件工程第2版教学作者王宜贵第3章节需求分析课件_第1页
第1页 / 共36页
软件工程第2版教学作者王宜贵第3章节需求分析课件_第2页
第2页 / 共36页
软件工程第2版教学作者王宜贵第3章节需求分析课件_第3页
第3页 / 共36页
软件工程第2版教学作者王宜贵第3章节需求分析课件_第4页
第4页 / 共36页
软件工程第2版教学作者王宜贵第3章节需求分析课件_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《软件工程第2版教学作者王宜贵第3章节需求分析课件》由会员分享,可在线阅读,更多相关《软件工程第2版教学作者王宜贵第3章节需求分析课件(36页珍藏版)》请在金锄头文库上搜索。

1、,3.1 需求分析概述 3.1.1 需求分析的任务,1.确定目标系统的具体要求 (1)系统的运行环境要求 (2)系统的功能要求 (3)系统的性能要求 (4)系统的接口要求,2.建立目标系统的逻辑模型 需求分析的任务就是借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。,3.1 需求分析概述 3.1.1 需求分析的任务,3.1 需求分析概述 3.1.2 需求分析的过程,1.问题识别 2.问题分析与综合 3.编制需求分析文档 4.需求分析评审,3.1 需求分析概述 3.1.3 需求获取的方法,1.访谈 2.问卷调查 3.情景分析 4.实地考察 5.构造原型,3.1 需求分

2、析概述 3.1.4 需求分析的原则,(1)解决逻辑问题 (2)以运行环境为基础 (3)用户参与原则 (4)构造高质量的需求规格说明,3.2 结构化分析 3.2.1 结构化分析方法的基本思想,结构化分析(SA)方法是一种面向数据流的需求分析方法,以数据流分析作为需求分析的出发点。 SA方法的基本思想是“自顶向下逐步分解”,使用“分解”和“抽象”两个基本手段来控制工程的复杂性。 SA方法的核心是数据流图。使用SA方法获得的需求规格说明书有数据流图、数据词典及补充材料组成。,3.2 结构化分析 3.2.2 数据流图,1.数据流图的基本符号 2.画数据流图的步骤 (1)画系统的输入输出 (2)画系统的

3、内部 (3)画加工的内部,3.分层数据流图 SA方法采用“分层”的技术,自外向内,自顶向下,有控制地逐层细化。 一套分层的数据流图由顶层、底层和中间层组成。底层图由不必再分解的基本加工组成。 相邻两层的数据流图的关系称为“父子”关系。 数据流图和加工编号规则: 子图的编号是父图中相应加工的编号。 子图中加工的编号由子图号、小数点、加工在子图中的顺序号连接而成。 顶层图只有一张,不必编号,下一层的图可以编号为,图中加工的编号是0.1、0.2、0.3,通常删去小数点及前面的,即该层加工的编号一般用1、2、3。,3.2 结构化分析 3.2.2 数据流图,4.使用数据流图要注意的问题 (1)适当命名

4、(2)父图和子图的平衡 (3)数据守恒 (4)分解的程度 (5)先考虑稳定状态 (6)忽略琐碎的枝节,3.2 结构化分析 3.2.2 数据流图,3.2 结构化分析 3.2.3 数据词典,数据字典(Data Dictionary,DD)定义了数据流图中每一个图形元素,也就是说数据流图中所有名字的定义构成数据词典。 数据词典中一般有四种类型的条目:数据流条目、数据存储文件条目、数据项条目、加工条目。 数据词典定义式中的符号,1.数据流条目 数据流条目给出某个数据流的定义,通常列出该数据流的各个组成数据项。 2.数据存储文件条目 数据存储文件条目给出某个文件的定义,通常是列出其记录的组成数据项,此外

5、还可指出文件的组织方式等。 3.数据项条目 数据项又叫数据流分量或数据元素,这类条目给出某个数据单项的定义,通常是该数据项的值类型、允许值等。 4.加工条目 数据词典中只需列出基本加工(不再进一步分解的加工)的定义,只要有了基本加工的定义,就可以理解其他加工。加工的定义又称为加工逻辑或小说明,它集中描述一个加工做什么。,3.2 结构化分析 3.2.3 数据词典,3.2 结构化分析 3.2.4 加工逻辑说明,数据流图中的每一个基本加工都必须有一个加工逻辑说明给出这个加工的精确描述,而对其它加工则可以没有加工逻辑说明。 加工逻辑是指用户对这个加工的逻辑要求,即这个加工的输出数据流与输入数据流的逻辑

6、关系,描述基本加工把输入数据流变换为输出数据流的加工规则,也包括其他一些与加工有关的信息,如执行条件、优先级、执行频率、出错处理等。 描述加工逻辑可以用结构化语言、判定表、判定树等描述。,1.结构化语言 结构化语言是介于自然语言和形式语言之间的一种半形式化语言,是自然语言的一个受某些限制的子集。虽不如形式语言精确,但具有自然语言简单易懂的优点,又避免了自然语言的一些缺点。 2.判定表 对数据的有些处理依赖于多个逻辑条件的取值,这些取值构成不同的情况,满足不同的条件执行不同的操作。这类问题适合使用判定数或判定表来描述加工逻辑。 判定表通常由四部分组成:条件桩、条件条目、操作桩、操作条目。 3.判

7、定树 判定树在本质上同判定表示一样的,当用户不易接受判定表时可用判定树的形式。,3.2 结构化分析 3.2.4 加工逻辑说明,3.2 结构化分析 3.2.5其他图形工具,1. ER模型 ER(Entity Relationship,实体联系)模型是一个面向问题的概念性数据模型,它采用ER图描述现实世界中的实体。 在ER模型中包含“实体”、“联系”和“属性”等三个基本成分。 (1)实体:客观世界中存在的可相互区分的事物。 (2)联系:实体间的关系,一对一的联系(1:1)、 一对多的联系(1:n)、多对多的联系(m:n)。 (3)属性 属性是实体或联系所具有的性质。,2.层次方框图 用树形结构的一

8、系列多层次的矩形框描述数据的层次结构。树形结构的顶层是单独的矩形框,它代表完整的数据结构,下面的各层矩形框,代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素。这种模式非常适合在需求分析阶段描述数据结构。 3.Warnier图 表示信息层次结构的另一种图形工具,它是由嵌套的花括号、伪代码、以及少量的说明和符号组成的层次树,表明信息的逻辑组织。 4.IPO图 能方便地描述输入数据、对数据的处理和输出数据之间的关系,因此,在需求分析阶段可使用IPO图简单地描述系统的主要算法(即从数据流图中各个处理获得的基本算法)。 改进的IPO图,或称为IPO表中可以包含某些附加信息。,3.2 结构

9、化分析 3.2.5其他图形工具,3.3 面向对象分析,面向对象分析的关键是识别出问题域中的对象,并分析它们之间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。 面向对象分析模型通常包括对象模型、动态模型和功能模型。这三种模型各自从不同的侧面反映软件系统的内容,相互影响、相互制约,有机地结合在一起,全面地表达对目标系统的需求。 面向对象分析需要完成的任务如下: (1)与用户进行充分沟通,了解用户对软件的需求; (2)识别对象集合及对象间的关系; (3)定义类(包括属性和操作)并建立类间的层次关系; (4)建立模型来表示对象之间的关系及行为特性。,3.3 面向对象分析 3.3.1面向对象技

10、术,3.3.1.1 面向对象的基本概念 1.对象(Object) 对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起所构成的统一体。一个对象有一组属性和对这组属性进行操作的一组方法构成。属性是用来描述对象静态特征的一个数据项。方法是用来描述对象动态特征(行为)的一个操作序列,也称为服务。 对象具有以下特点。 (1)数据的封装性。 (2)以数据为中心。 (3)对象是主动的。 (4)模块独立性好。 (5)并行性。,3.3.1.1 面向对象的基本概念 2.类(Class)和实例(Instance) 在面向对象方法学中,类是某些对象的模板,抽象地描述属于该类的全部对象的属性和操作。

11、属于某个类的对象称为该类的实例。每个对象都是某个类的实例,对象的状态则包含在实例的属性中。类和实例的关系是一种抽象与具体关系,实例是类的具体体现,类是多个实例的综合抽象。 类的作用是定义对象,一个类实质上是一种对象类型,它描述了属于该类型的所有对象的性质。类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。对象是由其所属的类动态生成的,一个类可以生成多个不同的对象。同一个类的所有对象具有相同的性质,即外部特性和内部实现都是相同的。一个对象的内部状态只能由其自身来修改,任何别的对象都不能改变它。,3.3 面向对象分析 3.3.1面向对象技术,3.3.1.1 面向对象的基本概念

12、 3.消息(Message) 在面向对象的方法中把面向对象发出的服务请求称为消息。消息刺激接收对象产生某种行为,通过操作的执行来完成相应的行为。 消息的接收者是提供服务的对象,它对外提供的每项服务都应规定消息的格式,这种规定称为消息协议。消息的发送者是要求提供服务的对象或其他系统成分,在它的每个发送点上需要一个完整的消息,包括接收者(对象标识)、服务标识和符合消息协议要求的参数。,3.3 面向对象分析 3.3.1面向对象技术,3.3.1.1 面向对象的基本概念 4.封装(Encapsulation) 封装具有两个含义:一是把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象

13、);二是尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部联系。 封装是一种信息隐蔽技术,对象的所有信息(数据和行为)都封装在对象中,即对象的内部结构从其环境中隐藏起来。若要对对象的数据进行读写,必须将用消息的形式传递给该对象,它将调用其相应的方法对其数据进行读写。 面向对象的类是封装良好的模块,类定义将其说明(使用者可见的外部接口)与实现(使用者不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。封装可减少程序相互依赖性。对象间的相互联系和相互作用过程主要通过消息机制得以实现。,3.3 面向对象分析 3.3.1面向对象技术,3.3.1.1 面向对象的

14、基本概念 5.继承(Inheritance) 由一些特殊类归纳出来的一般类称为这些特殊类的父类或基类,特殊类称为一般类的子类或派生类,同样父类可演绎出子类,父类是子类更高级别的抽象。子类可以继承父类的全部描述(数据和操作)。 在面向对象方法学中,子类将继承其父类的全部数据和其上的方法。继承是类不同抽象级别之间的关系。 继承分为单重继承、多重继承。当一个类只有一个父类时,类的继承是单重继承;如果一个类有多个父类,类的继承为多重继承。 通过类的继承关系,使公共的特性能够共享,提高了软件的复用性。继承性使得具有相同特性的对象可以共享程序代码和数据结构,从而大大地提高了软件开发效率。,3.3 面向对象

15、分析 3.3.1面向对象技术,3.3.1.1 面向对象的基本概念 6.多态性(Polymorphism) 多态性是指类中定义了功能不同但名称相同的方法或属性。可以用覆盖和重载两种方式体现多态。覆盖是指在子类重新定义父类的属性或方法。重载是指同一个类中允许存在多个同名方法,而这些函数的参数表不同(或者参数个数不同,或者参数类型不同,或者两者都不同)。 多态性可以使对象的对外接口更加一般化(对外接口相同),从而降低消息连接的复杂程度,并提高类的可读性。,3.3 面向对象分析 3.3.1面向对象技术,3.3.1.2 对象模型技术 是一种面向对象方法 ,该方法把分析收集到的信息构造在对象模型、动态模型

16、和功能模型3类模型中,将开发过程分为系统分析、系统设计、对象设计和实现4个阶段。 1.面向对象建模 在面向对象方法学中,通常要建立三种形式的模型:描述系统数据结构的对象模型、描述系统控制结构的动态模型和描述系统功能的功能模型。,3.3 面向对象分析 3.3.1面向对象技术,3.3.1.2 对象模型技术 2.开发过程 (1)分析 包括问题描述、构建对象模型、构建动态模型、构建功能模型。最后得到的分析文档包括问题需求的陈述、对象模型、动态模型和功能模型。 (2)系统设计 结合问题域的知识和目标系统的体系结构,将目标系统分解为子系统,标识由问题所规定的并发性,设计适当的控制机制组织子系统协调工作,然后选择数据管理的基本策略,考虑对边界条件的处理。最后得到的系统设计文档包括基本的系统体系结构和高层次的决策策略。 (3)对象设计 以分析模型为基础,首先定义类,设计类属性及操作,为每个操作选择合适的数据结构并定义算法,调整类结构以强化继承性;然后创建对象,设计消息以补充对象关联;通过关联发现新的对象或交互条件时,修改类组织以优化对数据的访问,改善设计结构。最后得到的对象设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号