第1页:本章学习目标
- 本章学习目标:
- 理解需求分析的任务和步骤
- 理解需求分析常见的获取方法
- 掌握结构化需求分析方法
- 掌握需求分析中使用的图形设计工具第3章需求分析
第2页:第3章需求分析 本节目录
- 第3章需求分析
- 3.1需求分析的任务和步骤
- 3.2需求获取的常用方法
- 3.3需求分析的方法
- 3.4结构化分析技术
- 3.5需求分析图形工具
- 3.6习题
第3页:第3章需求分析 本节目录
- 第3章需求分析
- 3.1需求分析的任务和步骤
- 3.2需求获取的常用方法
- 3.3需求分析的方法
- 3.4结构化分析技术
- 3.5需求分析图形工具
- 3.6习题
第4页:需求分析的任务和(步骤)
“系统必须做什么?
”任务:完整、准确、清晰、具体地确定系统所要完成的工作。
出发点:《可行性研究报告》结果:SRS—《软件需求规格说明书》3.1需求分析的任务和步骤
第5页:需求分析的任务
- (1)确定对系统的综合要求功能性需求:应划分出系统必须完成的所有功能。非功能性需求:
- 可用性:如果用户可以学会对系统的操作,能解释一个系统或构建的输入状况,则称系统是可用的。
- 可靠性:可靠性指系统或构件在给定时间内、指定条件下,可以完成软件要求功能的能力。例如,可靠性需求包括系统出现故障前的使用时间等。3.1需求分析的任务
第6页:确定对系统的综合要求
- (1)确定对系统的综合要求
- 性能:性能需要考虑系统的定量属性。例如,响应时间、吞吐量、有效性和准确性。
- 可支持性:关注系统部署后系统的变化情况。包括可移植性、可维护性等。
- 外部接口需求:常用的接口需求有用户接口需求,硬件接口需求,软件接口需求和通信接口需求。
- 约束信息:是指一些合理限制设计者和程序员选择的条件。例如,某种数据必须达到的数据精度;要求软件产品可以在某种系统上运行。3.1需求分析的任务
第7页:分析系统的数据要求——软件需求分析的
- (2)分析系统的数据要求——软件需求分析的一个重要任务复杂数据由许多基本数据元素组成,数据结构表示数据元素之间的逻辑关系。
- 数据字典——定义数据;
- 层次方框图——定义数据结构3.1需求分析的任务
第8页:建立软件的逻辑模型对系统的综合要求对
- (3)建立软件的逻辑模型对系统的综合要求对数据的要求描述方法:数据流图、数据字典、实体-联系图、和主要的处理算法。
- (4)编写软件需求规格说明书
- (5)需求分析评审:验证一致性、完整性、现实性、有效性系统逻辑模型3.1需求分析的任务
第9页:第3章需求分析 本节目录
- 第3章需求分析
- 3.1需求分析的任务和步骤
- 3.2需求获取的常用方法
- 3.3需求分析的方法
- 3.4结构化分析技术
- 3.5需求分析图形工具
- 3.6习题
第10页:需求分析获取的常用(方法)
1、访谈:最原始的获取用户需求的技术2、问卷调查:通常与用户访谈组合使用3、观察用户工作流程:需要对复杂流程加深了解或对关键人物理解不清楚时使用4、建立联合分析小组:由软件开发方和客户方共同组成5、快速原型法:需要多次修改3.2需求分析获取的常用方法
第11页:需求分析获取的常用方法1、访谈
访谈类型表:目标话题中心与被访谈者:下表列出相关数据。
访谈类型表:目标话题中心与被访谈者| 中心 | 话题 | 被访谈者 |
|---|
| 探讨系统的目标与范围 | 问题、机会 | 高层管理人员 |
|---|
| 理清需求的脉络 | 信息、业务事件 | 中层管理人员 |
|---|
| 填充需求的细节 | 业务活动 | 操作层 |
|---|
| 论证解决方案的可行性 | 解决方案 | 技术团队 |
|---|
第12页:访谈中的沟通技巧(a)制作访谈问卷并
- 3.2需求分析获取的常用方法1、访谈:
- (3)访谈中的沟通技巧(a)制作访谈问卷并事先发给被访谈者。(b)把握语言节奏。(c)有效结合不同的问题类型。包括有封闭式问题(判断题)、半封闭式问题(选择题)、开放式问题(简答题)。(d)注意安排问题的顺序。(e)访谈时要注意沟通的细节。注意消除“隔行如隔山”的术语影响;善于观察在访谈过程中对方的异常现象;在沟通中注意使用模型帮助理解;不要遗漏问题。
第13页:需求获取的常用(方法)
- 3.2需求分析获取的常用方法2、问卷调查
- (1)问卷的特点:当片面性矛盾比较突出时就应该组织进行问卷调查。例如:企业中的从业人员数量是很大的,或存在跨地域用户。
- (2)使用方法:用户访谈与问卷调查应该采用组合方式使用。先调查,后访谈;先访谈,后调查。问卷调查在设计问题时还要注意一些设计要点,如问题的篇幅与布局;问题类型的选择等。问卷调查之后还要进行问卷分析。
第14页:观察用户工作流程但是这个过程耗时较长
3.2需求分析获取的常用方法
- 3.观察用户工作流程但是这个过程耗时较长。而且由于“被观察”者微妙的心理变化,会使观察失真。所以此方法在需要对复杂流程加深了解时,对关键人物理解不清楚时使用。
- 4.建立联合分析小组联合小组要制定小组工作计划和进度安排,确定专门的记录员和负责人。同时还要选定一种简洁、准确、易于理解的符号,作为共同交流的语言。
第15页:快速原型法过程
3.2需求分析获取的常用方法
- 5.快速原型法过程:快速建立起一个系统原型,用来演示系统功能。用户对原型进行评估,根据用户的需求来修改原型,把修改后的系统原型再次交给用户评估,如此循环多次,直到获得用户最终准确的需求。快速原型法在使用时应注意以下几点:
- (1)系统原型应该是实现用户看得见的功能。
- (2)尽量在较短的时间内构建原型。
- (3)原型必须容易修改。
第16页:第3章需求分析 本节目录
- 第3章需求分析
- 3.1需求分析的任务和步骤
- 3.2需求获取的常用方法
- 3.3需求分析的方法
- 3.4结构化分析技术
- 3.5需求分析图形工具
- 3.6习题
第17页:需求分析的(方法)
3.3需求分析的方法功能分解法结构化开发方法信息建模方法面向对象的分析
第18页:功能分解方法这种方法是将一个系统看成
3.3需求分析的方法
1.功能分解方法这种方法是将一个系统看成是由若干功能构成的一个集合,每个功能又可划分为若干个子功能,每个子功能又进一步分解。
这种方法是把软件需求当做一棵倒置的功能树。
体现了“自顶向下,逐步求精”的思想,用过程抽象的观点来看需求,符合传统程序设计人员的思维特征。
最后分解的结果一般已经是系统程序结构的一个雏形,实际它已经很难与软件设计明确分离。
由此可见,这种方法往往难以适应用户的需求变化。
第19页:结构化开发方法结构化开发方法提出了一
3.3需求分析的方法
2.结构化开发方法结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立化等。
它包含有结构化分析、结构化设计和结构化程序设计等方法。
结构化分析技术,是由E.Yourdon等人在20世纪70年代提出的一种适用于大型数据处理系统的、面向数据流的需求分析技术。
第20页:信息建模方法信息建模方法是从数据的角
3.3需求分析的方法
3.信息建模方法信息建模方法是从数据的角度来对现实世界建立模型的。
信息建模方法的基本工具是实体-联系图。
在信息模型中,实体和关系形成一个网络,描述系统的信息状况。
第21页:面向对象的分析面向对象的分析是把实体
3.3需求分析的方法
4.面向对象的分析面向对象的分析是把实体-联系图中的概念与面向对象程序设计语言中的概念结合在一起。
面向对象分析的关键是识别、定义问题域内的类与对象,并分析它们之间的关系,根据问题域中的操作规则建立模型。
第22页:第3章需求分析 本节目录
- 第3章需求分析
- 3.1需求分析的任务和步骤
- 3.2需求获取的常用方法
- 3.3需求分析的方法
- 3.4结构化分析技术
- 3.5需求分析图形工具
- 3.6习题
第23页:结构化分析技术
3.4结构化分析技术结构化分析技术是面向数据流自顶向下逐步求精进行需求获取的方法,适合于数据处理类型系统的需求分析。
思路:基于数据流图自顶向下逐层分解分析工具:数据流图、数据字典等
第24页:3.4 结构化分析技术
- 分析过程:
- 沿数据流图回朔注意细节的分析、补充
- 用户复查补充、纠正、新问题的提出
- 细化数据流图
- 修正开发计划3.4结构化分析技术
第25页:需求分析图形工具分为
3.5需求分析图形工具分为:非形式化,半形式化和形式化三类。
半形式化的描述工具:实体-联系图、数据流图、数据字典、描述加工逻辑的结构化语言、判定表和判定树等。
第26页:实体-联系图
- 实体-联系图也
- 称为ER图,是一种面向问题的数据模型,是按照用户观点对数据建立的模型。数据模型中包含3种互相关联的信息:实体、属性和联系。3.5.1实体-联系图
第27页:实体对软件必须理解的复合信息的抽象
- 实体对软件必须理解的复合信息的抽象
- 复合信息是具有一系列不同性质或属性的事物,仅有单个值的事物不是数据对象。
- 数据对象可以是外部实体、事物、行为、时间、角色、单位、地点或结构等。3.5.1实体-联系图
第28页:属性数据对象的性质
- 属性数据对象的性质
- 把属性定义为“标识符”。在查找数据对象实例时,用标识符属性作为“关键字”。
- 实体的属性有很多,应尽量找与开发系统相关的一些性质。
- 实体和联系都有属性,两者可以转换为相应的数据库表,而属性则是表里的字段。3.5.1实体-联系图
第29页:联系数据对象彼此之间相互连接的方式一
联系数据对象彼此之间相互连接的方式一对一联系(1:1)一对多联系(1:N)多对多联系(M:N)3.5.1实体-联系图
第30页:如何区分实体和属性
- 如何区分实体和属性
- 实体与属性是相对而言的。同一事物,在一种应用环境中作为“属性”,在另一种应用环境中也可以作为“实体”。例:学校中的系,在某种应用环境中,它只是作为“学生”实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,这时它就需要作为实体了。3.5.1实体-联系图
第31页:如何区分实体和属性一般原则
- 如何区分实体和属性一般原则:
- 属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。
- 属性不能与其他实体具有联系。联系只发生在实体之间。符合上述两条特性的事物一般作为属性对待。为了简化E-R图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。3.5.1实体-联系图
第32页:实体-联系图
- 例1
- “学生”由学号、姓名等属性进一步描述,根据准则1,“学生”只能作为实体,不能作为属性。例2:职称通常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则2,这时把职称作为实体来处理会更合适些。3.5.1实体-联系图
第33页:符号E-R图(Entity-Rela
- 符号E-R图(Entity-Relationship Diagram)
- 实体:矩形框
- 关系:菱形框
- 属性:椭圆形或圆角矩形3.5.1实体-联系图
第34页:符号实体-联系图的元素实体联系属性3
符号实体-联系图的元素实体联系属性3.5.1实体-联系图
第35页:某品牌的计算机是由多种部件组成的
例如:某品牌的计算机是由多种部件组成的,而部件通过各地供货商供应,假定每种部件的供货商是唯一的,但一个供货商可以供应多种零件。
3.5.1实体-联系图
第36页:课堂练习-1
课堂练习-1:请为某仓库的管理设计一个ER模型。
该仓库主要管理零件的订购和供应商等事项。
仓库向工程项目供应零件,并且根据需要向供应商订购零件。
3.5.1实体-联系图
第37页:工程项目供应商零件供应订购MMNN零件名
工程项目供应商零件供应订购MMNN零件名称零件编号颜色重量供应量订购量项目编号开工日期项目名称供应商编号地址供应商名称
第38页:课堂练习-2
课堂练习-2:银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址、身份证号码等存款信息,并打印出存款存单给储户;如果是取款且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。
要求:用ER图描绘系统中的数据对象。
3.5.1实体-联系图
第39页:储户储蓄所存取款MN类型数额利率密码姓名
储户储蓄所存取款MN类型数额利率密码姓名身份证号码住址名称地址电话号码电话号码到期日期计算机储蓄系统的实体-联系图
第40页:学生每学期按照事先安排的课程计划开始
学生每学期按照事先安排的课程计划开始学习。
每门课程由多名教师讲授,一个教师可以讲授多门课程;每名学生可以选修多门课程;学期结束后通过考试,教师登记每门课程、每名学生的成绩,并得到确认后存档;要求可以按照教师、学生、课程查询和统计成绩,了解课程授课的质量;能给出统计分析报表,供院主管部门参考。
举例:3.5.1实体-联系图
第41页:教师课程编号姓名性别职称系别自然情况
教师课程编号姓名性别职称系别自然情况编号名称学时学期性质讲授nm3.5.1实体-联系图
第42页:学生课程编号姓名性别班级学生证号自然
学生课程编号姓名性别班级学生证号自然情况编号名称学时学期性质选修nm成绩3.5.1实体-联系图
第43页:教师课程编号姓名性别职称系别自然情况
教师课程编号姓名性别职称系别自然情况编号名称学时学期性质讲授nm学生编号姓名性别班级学生证号自然情况选修nm成绩3.5.1实体-联系图
第44页:3.5.2 数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
任何字典最主要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
3.5.2数据字典
第45页:数据流图和数据字典共同构成系统的逻辑
数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。
只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
3.5.2数据字典
第46页:3.5.2 数据字典
- 基本功能:定义数据。数据字典由对以下四类元素的定义组成:
- 数据流;
- 数据流分量(即数据元素);
- 数据存储;
- 处理。注:通常用IPO图或PDL图描述3.5.2数据字典
第47页:数据流图中每一个被命名的图形元素包含
- 数据流图中每一个被命名的图形元素包含
- 名字:数据流图中表示数据流、数据源或外部实体的名字与别名。(保持命名唯一性)别名:数据描述:关于该数据条目的简要功能描述。数据定义:该数据条目的解释性说明,可以使用自顶向下的方法进行定义。数据位置:使用该数据条目作为输入流或输出流的转换的列表。(修改时保持数据元素的一致性)3.5.2数据字典
第48页:数据定义的方法
- 数据定义的方法
- 对于复杂的数据,一般可以采用自顶向下的方法进行分解。复杂数据中的数据元素的组成方式:顺序:表示个分量连续地按次序排列。通常用加号表示连续关系。选择:表示从列表中的多个元素中选取一个。重复:表示某个元素重复零次或多次。可选:表示一个分量是可有可无的(即重复零次或一次)。3.5.2数据字典
第49页:可以使用的符号
- 可以使用的符号:
- (1)=表示“被定义为”或“等价于”或“由……组成”。
- (2)+表示“与”(和),用来连接两个数据元素。例如,职工号=科室号+序列号。
- (3)[…
- …]表示“或”,对[ ]中列举的数据元素可任选其中某一项。例如:性别=[男
- 女]表示性别由男或女组成。3.5.2数据字典
第50页:{…}表示“重复”
- (4){…}表示“重复”,对{…}中内容可以重复使用。通常使用m{…
- …}n或者表示{…}mn中内容至少出现m次,最多出现n次。其中m和n为重复次数的上、下限。例如,字符串=2{字母或数字字符}6表示“字符串”由2—6位字母或数字字符符号组成。
- (5)(…)表示“可选”,对(…)中的内容可选、可不选;例如,学生基本信息=学号+性别+(家庭住址)。
- (6)“...”表示基本数据元素。例如,x = “a”。
- (7)..表示连结符。例如,x = 1..9。3.5.2数据字典
第51页:数据字典实现
- 数据字典的实现
- 小型软件系统中一般采用卡片的形式描述。一张卡片上记录某数据元素中包含名字、别名、描述、定义和位置。3.5.2数据字典
第52页:假设一家工厂的采购部每天需要一张定货
假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件,对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。
零件的入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。
当某种零件的库存数量少于库存量临界值时就应该再次定货。
请用数据流图描绘该功能的需求并建立相应的数据字典。
3.5.2数据字典
第53页:名字:定货报表别名:定货信息描述
- 名字
- 定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:定货信息名字:零件编号别名:描述:唯一地标识库存清单中一个特定零件的关键域定义:零件编号=8{字符}8位置:定货报表定货信息库存清单事务名字:定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1{数字}5位置:定货报表定货信息3.5.2数据字典定货报表在DD中的定义:
第54页:3.5.2 数据字典
- 名字
- 定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:定货信息定货报表在数据字典中的表示:3.5.2数据字典
第55页:3.5.2 数据字典
- 名字
- 零件编号别名:描述:唯一地标识库存清单中一个特定零件的关键域定义:零件编号=8{字符}8位置:定货报表定货信息库存清单事务3.5.2数据字典
第56页:3.5.2 数据字典
- 名字
- 定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1{数字}5位置:定货报表定货信息3.5.2数据字典
第57页:3.5.2 数据字典
- 练习-1:某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。则对标识符的定义可表示为:标识符=字母字符+字母数字串字母数字串=0{字母或数字}7字母或数字=[字母字符
- 数字字符]3.5.2数据字典
第58页:习题11电话号码=[分机号码
- 习题11电话号码=[分机号码
- 外线号码]分机号码=8201..8299外线号码=数字零+[市话号码
- 长话号码]数字零=0市话号码=局号+分局号局号=[455
- 325
- 999]分局号=4位数字串4位数字串=4{数字}4数字=0..9长话号码=区号+市话号码区号=000..300
第59页:3.5.2 数据字典
练习-2:北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。
3.5.2数据字典
第60页:电话号码=[校内电话号码
- 电话号码=[校内电话号码
- 校外电话号码]校内电话号码=非零数字+3位数字校外电话号码=[本地号码
- 外地号码]本地号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9]数字零=03位数字=3{数字}38位数字=非零数字+7位数字7位数字=7{数字}7数字=[0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9]电话号码在数据字典中的定义:
第61页:层次方框图
层次方框图:用树型结构的一系列多层次的矩形框描绘数据的层次结构。
顶层是一个单独的矩形框,代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。
3.5.3层次方框图
第62页:层次方框图
例如,描绘一所大学各个机关部门和学院的组成可以用如图3.3中的层次方框图表示。
这所大学由党委办公室、校长办公室及各个学院组成,计算机学院又分为软件工程系、计算机科学系等。
3.5.3层次方框图
第63页:层次方框图
例如,描绘一家计算机公司全部产品由硬件、软件和服务三类产品组成。
硬件包括处理机、存储器和外部设备等。
软件产品又分为系统软件和应用软件,系统软件又进一步分为操作系统、编译程序和软件工具等。
而服务类产品包括软件服务、硬件维修和培训等。
试用层次方框图表示该公司全部产品的数据结构。
3.5.3层次方框图
第64页:IPO图:简称是IPO(Input Pr
IPO图:简称是IPO(Input Process Output)图。
它能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。
左边的框中列出有关的输入数据,中间的框内列出主要的处理,右边的框内列出产生的输出数据。
处理框中列出处理的次序暗示了执行的顺序。
3.5.4 IPO图
第65页:图3.5改进的IPO图3.5.4 IPO
图3.5改进的IPO图3.5.4 IPO图
第66页:本章结束页
The End