软件工程第3章

上传人:j****9 文档编号:54518824 上传时间:2018-09-14 格式:PPT 页数:89 大小:712KB
返回 下载 相关 举报
软件工程第3章_第1页
第1页 / 共89页
软件工程第3章_第2页
第2页 / 共89页
软件工程第3章_第3页
第3页 / 共89页
软件工程第3章_第4页
第4页 / 共89页
软件工程第3章_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《软件工程第3章》由会员分享,可在线阅读,更多相关《软件工程第3章(89页珍藏版)》请在金锄头文库上搜索。

1、第三章 需求分析与项目管理2009年8月31日,西安电子科技大学课程,第三章 需求分析与项目管理,3.1 软件需求分析需求分析是软件工程的一个重要任务,它是系统层软件配置与软件设计间的桥梁 ,分析员要努力去做:l 研究系统规格说明和项目计划。l 确保对问题的识别,必须为分析建立通信关系。l 评价和解释的综合是另一项重要工作。 核心:“做什么”,而不是“怎样做”。分析员必须在较好地弄清数据流,控制流功能处理过程、行为操作和信息内容的情况下,建立系统模型。,第三章 需求分析与项目管理,3.2 需求分析的任务3.2.1 确定对系统的综合要求1、功能需求2、性能需求3、可靠性和可用性需求4、出错处理需

2、求5、接口需求6、约束7、逆向需求8、将来可能提出的需求,第三章 需求分析与项目管理,3.2.2 分析系统的数据要求分析系统的数据要求通常采用建立数据模型的方法。复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。利用数据字典可以全面定义数据,但是数据字典的缺点是不够形象直观。为了提高可理解性,常常利用图形工具辅助描绘数据结构,常用的工具有:层次方框图、Warnier图等。,第三章 需求分析与项目管理,3.2.3 导出系统的逻辑模型根据分析结果可以导出系统的详细逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和处理算法描述这个逻辑模型。 3.2.4 修改系统的开

3、发计划根据分析过程中获得的对系统更深入的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。,第三章 需求分析与项目管理,3.3 与用户沟通获取需求的方法3.3.1 访谈访谈是获取用户需求的一项基本技术,它有两种基本形式,分别是非正式的和正式的访谈。正式访谈时,系统分析员要准备好具体的问题;非正式访谈分析员可以是开放式的交谈,鼓励被访人员说出自己的想法,原有系统存在的不足和期望。在访谈中必须记好笔记或录音,便于系统设计时不会丢失用户的需求或期望。同时,在交谈时要积极引导用户接受我方的技术优势,便于在竟标中获胜。,第三章 需求分析与项目管理,分析员能力的分析分析员有多种称谓:系统分

4、析员,系统工程师,主系统设计师,程序员,分析员.其具备的条件如下:1能掌握抽象概念(abstract concepts)并能把其整理为逻辑划分(logical divisions)以及根据每一个逻辑划分综合为解的能力。2能从冲突(conflict)或混乱(confusions)中吸取恰当事实的能力。3弄清用户环境的能力。4能把硬件和软件系统用于用户环境的能力。5能用较好的书面和口头形式进行通信的能力。6“从树木见森林”的能力。(即经常有New Idea),第三章 需求分析与项目管理,3.3.2 面向数据流自顶向下求精软件系统开发中的结构化分析方法就是面向数据流自顶向下逐步求精的需求分析方法。通

5、过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级。要达到此目的,一般从数据流图的输出端入手,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素。输出数据来自何方?由哪些元素组成?,第三章 需求分析与项目管理,沿数据流图从输出端向输入端回溯,可以确定每个数据元素的来源。与此同时,也初步定义了有关算法。 可行性研究阶段产生的是高层数据流图,许多具体的细节没有包括在里面,因此沿数据流图回溯时,常常遇到下述问题:为了得到某个数据元素需要用到数据流图中目前还没有的数据元素,或者得出这个数据元素需要的算法尚不完全清楚。为解决

6、此问题,往往需要向用户和其他有关人员请教,它们的回答使分析员对目标系统的认识更清楚,更具体了,系统的更多的数据元素被划分出来了,更多的算法被搞清楚了。数据流图是帮助对分析结果进行复查的极好的工具。从输出端开始,分析员借助数据流图、数据字典、IPO图向用户解释数据是怎样转变成输出数据的,并填补遗漏或空白元素。,第三章 需求分析与项目管理,分析过程 结构化分析方法(SA法)它是面向数据流自上而下逐步求精进行需求分析的方法。由可行性研究得出目标系统的高层数据流图。需求分析的目的之一是把数据流和存贮定义到元素级。下面给出需求分析的基本过程,第三章 需求分析与项目管理,3.3.3 简易的应用规格说明技术

7、这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指定基本需求。使用简易的应用规格说明技术分析需求的典型过程是:初步访谈开发者和用户分别写出“产品需求”会议讨论统一意见,第三章 需求分析与项目管理,3.3.4 快速建立软件原型快速建立软件原型是最准确、最有效、最强大的需求分析技术。快速原型应该具备第一个特性“快速”,第二个特性“容易修改”。为了快速地构建和修改原型,通常使用下述3种方法和工具:(1)第四代技术(2)可重用的软件构件(3)形式化规格说明和原型环境,第三章 需求分析与项目管理,3.4 分析建模与规格说明 3.4.1 模型建立模型将作为软件设计的基础和编

8、写软件规格说明的依据。一般的说明,在需求分析阶段要写出详细的规格说明是不可能的。因为,用户对什么是正确的需求没有把握,开发人员对怎样正确的完成所要取得功能和性能也没把握,所以需求分析选择模型开发方法。需求分析过程应该建立3种模型: 数据模型:实体联系图,描绘数据及数据对象之间的关系。 功能模型:数据流图,描绘当数据在软件系统中移动时被变换的逻辑过程。 行为模型:状态转换图,描绘系统各种行为模式和在不同状态间的转换。,第三章 需求分析与项目管理,建模的目的:. 更好的了解系统信息、功能和行为,使分析更系统化。. 模型是评审的焦点,是确定系统完整性(completeness),一致性(consis

9、tency)和规格说明准确性(accuracy)的关键。模型是设计的基础,能给设计人员一种软件基本表达式。它可映射成为实现的正文。模型有助于更好的理解要建立的实体。它主要说明系统必须作什麽,而不是怎麽作。通常用图形符号表示的方法来描述信息处理系统行为而其他特性则使用性质不同和公认的图符表示。模型的另一些部分还可以是纯数字形式。,第三章 需求分析与项目管理,3.4.2 规格说明规格说明是需求分析阶段得出的最主要的文档,是一种过程的表示方式,共有如下几条原则:1从实现中说出功能。2要求一个面向过程的系统规格说明语言。3一个规格说明必须围绕整个系统,而软件只是它的一个组成部分。4一个规格说明必须围绕

10、整个系统的操作环境。5一个规格说明必须是可操作的。6一个规格说明必须是容许它是不完整的和可扩展的。7一个规格说明必须是局部化的和松散耦合的。l 局部化是当信息改变时,只有一些简单的碎片(理想的)需要修改;l 松散耦合结构是碎片可以方便的加入或取出,结构自动调整。,第三章 需求分析与项目管理,典型的符合国家标准GB856D-88规定的规格说明格式1引言11 编写说明12 背景13 定义14 参考资料2 任务概述21 目标22 用户的特点23 假定与约束3 需求规定31 对功能的规定32 对性能的规定,第三章 需求分析与项目管理,321 精度322 时间特性要求323 灵活性33 输入输出要求34

11、 数据管理能力要求35 故障处理要求36 其他专门要求4 运行环境规定41 设备42 支持软件43 接口4。4 控制,第三章 需求分析与项目管理,3.5 概念模型和规范化软件系统的整个开发过程都必须考虑两方面的问题:“数据”及对数据的“处理”。为了把用户的数据要求清晰明确的表达出来,系统分析员要建立概念性的数据模型(也称信息模型),它也是一种面向问题的数据模型,是按用户的观点来对数据和信息建模。采用的方法是:实体联系方法(EntityRelationship Approach)即ER模型。,第三章 需求分析与项目管理,3.5.1 ER模型实体(矩形框)ER 联系(菱形框)属性 (椭圆形或圆角矩

12、形) 实体是可相互区分的事物:例如 职工、学生、课程、教师 联系是事物间的联系:教师与课之间“教”的联系, 学生与课之间“学”的联系此联系有3类:一对一(1:1) 例如部门与经理;一对N(1:N) 某教师上多门课;多对多(M:N) 一个学生学多门课,而每门课有多名学生上。 属性是实体或联系所具有的性质,通常一个实体由若干个属性来刻画。如:学生实体有姓名、性别、系、年级。教师-职称、职务联系也可能有属性。例如:学生“学”某门课程取得的成绩。请参见教材P54页某学校教学管理ER图,第三章 需求分析与项目管理,3.5.2 数据规范化 消除数据冗余,即消除表格中数据的重复; 消除多义性,使关系中的属性

13、含义清楚、单一; 使关系的“概念”单一化,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组; 方便操作。使数据的插入、删除与修改操作可行而且方便; 使关系模式更灵活,易于实现接近自然语言的查询方式。,第三章 需求分析与项目管理,用“范式”定义消除数据冗余的程度。第一范式(1NF)数据冗余程度最大。第五范式(5NF)数据冗余程度最小。1. 范式级别越高,存贮同样数据就需要分解成更多张表,因此,“存储自身”的过程也就越复杂。2. 随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降。因此,在需求变化时数据的稳定性越差。3. 范式级别提高则需要访问的表增多,性能(速

14、度)将下降。从实用角度看,在大多数场合选用第三范式都比较恰当。,第三章 需求分析与项目管理,用教学管理为例说明如何规范化:有三个实体,即课程、学生和教师,用三个关系保存它们的信息:学生(学号,姓名,性别,年龄,专业,籍贯)教师(职工号,姓名,年龄,职称,工资级别,工资)课程(课程号,课程名,学分,学时,课程类型)为表示实体型之间的关联,又建立两个关系:选课 (学号,课程号,听课出勤率,作业完成率,分数)教课 (职工号,课程号)这五个关系,组成了数据库的模型。在每个关系中,属性名下加下划线指明关键字。并规定关键字能唯一地标识一个元组。,第三章 需求分析与项目管理,判断规范化程度的条件是:(1)关

15、系中所有属性都是“单纯域”,即不出现“表中有表”(2)非主属性完全函数依赖于关键字(3)非主属性相互独立,即任何非主属性间不存在函数依赖。如果一个关系连条件(1)都不满足,则这个关系是非规范化的。如果一个关系仅满足条件(1),则这个关系满足第一范式(1NF)。如果一个关系满足条件(1)、(2),但不满足(3),则这个关系满足第二范式(2NF)。如果一个关系同时满足条件(1)、(2)和(3),则这个关系表满足第三范式(3NF)。当数据模型达到3NF,一般情况下就能满足数据库应用的需要。,第三章 需求分析与项目管理,第三章 需求分析与项目管理,第三章 需求分析与项目管理,3.6 状态转化图状态转化

16、图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此,状态图提供了行为建模机制。3.6.1 状态状态是任何可以被观察到的系统行为模式,一个状态代表系统的一个行为模式。状态规定了系统对事件的响应方式。系统对事件响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。,第三章 需求分析与项目管理,状态图既可以表示系统循环运动过程,也可以表示系统单程生命期。当描绘循环运动过程时,通常并不关心循环是怎样启动的。当描绘单程生命期时,需要标明初始状态(系统启动时进入初始状态)和最终状态(系统运行结束时到达最终状态)。3.6.2 事件事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。简而言之,事件就是引起系统做动作或转换状态的控制信息。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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