软件定义-需求分析.ppt
《软件定义-需求分析.ppt》由会员分享,可在线阅读,更多相关《软件定义-需求分析.ppt(99页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 需要分析 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析的任务是对目标系统提出完整、准确、清晰、具体的要求。可行性研究阶段产生的文档,持别是数据流图,是需求分折的出发点。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。需求分析的需求分析的任务任务 1、确定对系统的综合要求、确定对系统的综合要求 1)系统功能要求)系统功能要求 2)系统性能要求)系统性能要求 3)运行要求)运行要求 4)将来可能提出的要求)将来可能提出的要求 2、分析系统的数据要求、分析系统的数
2、据要求 数据结构表示数据元素之间的逻辑关系数据结构表示数据元素之间的逻辑关系3、导出系统的逻辑模型、导出系统的逻辑模型 导出系统的详细的逻辑模型,通常用数据流导出系统的详细的逻辑模型,通常用数据流 图、图、数据字典和主要的处理算法描述这个逻辑模型。数据字典和主要的处理算法描述这个逻辑模型。4、修正系统开发计划、修正系统开发计划5、开发原型系统、开发原型系统需求分析的特点需求分析的特点 1、问题的复杂性。2、交流障碍 3、不完备性和不一致性 4、需求易变性 需求分析的原则需求分析的原则 1、必须能够表达相理解问题的数据域和功能域。2、可以把一个复杂问题按功能进行分解并可逐层细化3、建模需求分析的
3、方法需求分析的方法1、功能分解方法2、结构化分析方法3、信息建模方法4、面向对象分析方法需求说明书的主要内容需求说明书的主要内容 (1)前言:说明项目的目的、范围,所用的术语的定义;用到的缩略语和缩写词;资料。(2)项目概述:产品的描述;产品的功能;用户的特点,一般的约束等。(3)具体需求:说明每个功能的输入、处理和输出;外部接口需求,包括用户接口、软件接口、硬件接口相通信接口;性能需求;设计约束;共他需求,包括数据库、操作等第二节第二节 SA分析过程分析过程 结构化分析方法(简称SA方法)就是面向数据流自顶向下逐步求精进行需求分析的方法。1、沿数据流图回溯2、用户复查3、细化数据流图4、修正
4、开发计划5、书写文档6、审查和复审需求分析示例教材购销管理系统(1)问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。学生张秘书购书申请王会计李出纳赵保管学生购书证明购书申请购书申请书学生审 查有效性购书单开发票开领书单发书学生有 效购书单发票领书单书学生审查并开发票购书单开领书单发书学生发票领书单书2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型1)通过对现实环境的调查研究,获得当前系统的具体模型3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。需求分析示例教材购销管理系统(2)学生审查并开发票购书单开领书单学生发票领书单无
5、效书单4)对目标系统进行补充和完善,并写出完整的需求说明。学生1 审查并开发票购书单2 开领书单学生发票领书单无效书单各班学生用书表教材存量表5)对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止需求分析示例教材购销管理系统(3)学生学生教材购销教材购销管理系统管理系统书书 库库保管员保管员1.教材购销管理系统的顶层DFD学生学生书书 库库保管员保管员2.第二层DFD图教材购销系统购书单领书单缺书单进书通知购书单领书单1销 售2采购进书通知F2:缺书登记表F1:教材存量表缺书单进书通知需求分析示例教材购销管理系统(4)1.1 审 查有效性1.2 开发票有效 购书单1.3 领书并
6、开领书单发票1.4 登记缺书1.5 补售教材F2:缺书登记表学生学生无效书单领书单领书单F3:各班学生用书表F4:售书登记表 补售书单 暂缺书单采购3.第三层DFD图销售子系统F1:教材存量表需求分析示例教材购销管理系统(5)2.3 修改教材库存和待购量2.1 按 书 号 汇总缺书F2:缺书登记表销售子系统书库保管员F1:教材存量表进书通知3.第三层DFD图采购子系统2.2 按出版社 统计缺书F5:待购教材表F6:教材一览表进书通知需求分析示例教材购销管理系统(6)数据字典(Data Directory-DD)领书单=学院+专业+班级+学号+姓名+书号+书名+数量+日期有效购书单=领书单发票=
7、学号+姓名+书号+书名+单价+数量+总价+书费合计教材存量表=书号+单价+数量暂缺书单=学号+姓名+书号+数量补售书单=学号+姓名+书号+数量第三节第三节 概念模型和规范化概念模型和规范化 用户的数据要求-需要哪些数据,数据之间有哪些联系,数据本身有哪些性质,数据的结构 等)。用户的处理要求-对数据进行哪些处理,每个处理的逻辑功能。概念性模型(信息模型)-一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。表示概念性数据模型的最常用方法是实体-联系方法,采用用 ER图的方式,这种表示又称为ER模型。ER模型 实体:客观世界中存在的且可区分的事物。联系:客观事物之间的联系(三类-1:1,
8、1:N,M:N)属性:实体或联系所具有的性质。教师姓名性别职称职务教师号教1课程N课程号课名学时学分学M学生N学号姓名性别系年级成绩 范式通常用范式定义消除数据的冗余度(略)ER关系图与数据库映射关系描述关系数据库关系数据库数据以2维表的形式进行表示,每个表的列表示字段、行表示数据库表的一个记录 Primary key(主键)主键):字段的唯一标识字段的唯一标识wForeign key(外键)外键):其它表的主键在该表的其它表的主键在该表的参考参考SQL(结构化查询语言):可以进行数据库表记录的操作.ER 与数据库映射与数据库映射E-R模型映射为数据库表:属性的映射w每个实体映射为一个表每个实
9、体映射为一个表w实体的每个属性映射为一个字段实体的每个属性映射为一个字段w每个实体的个体映射为数据库的一个记录每个实体的个体映射为数据库的一个记录wN:M关系映射为一个单独的表关系映射为一个单独的表w1:N关系利用外键进行映射关系利用外键进行映射例子:例子:ER 关系模型与数据库表的映射关系模型与数据库表的映射 ICitycityNameAirportairportCodeairportName*ServescityNameHoustonAlbanyMunichHamburgCity TablecityNameHoustonHoustonAlbanyMunichHamburgServes Ta
10、bleairportCodeIAHHOUALBMUCHAMAirport TableairportCodeIAHHOUALBMUCHAMairportNameIntercontinentalHobbyAlbany CountyMunich AirportHamburg AirportPrimary KeyN:M(多对多关系):将关系映射为单个表Separate Table例子:例子:ER 关系模型与数据库表的映射关系模型与数据库表的映射 II 会议会议transactionID职员职员portfolioID.NportfolioID .Portfolio TabletransactionIDT
11、ransaction TableportfolioIDForeign Key1:N 或N:1关系:隐藏外键的处理1例子:例子:ER 关系模型与数据库表的映射关系模型与数据库表的映射 doordoorIDskyskyID.*doorIDTransaction TabledoorID1-To-1 关系门与钥匙关系 习题教师姓名性别职称职务教师号教1课程N课程号课名学时学分学M学生N学号姓名性别系年级成绩第四节第四节.图形工具图形工具 层次方框图:用树形结构的一系列多层次的矩形框描绘数据的层次结构。产 品 硬 件 软 件 服 务 处理机 存储器外部设备系统软件应用软件软件服务硬件维修培训操作系统编译
12、程序软件工具层次方框图的一个例子 注意:层次方框图即可以表示数据的层次结构,也可以表示程序的层次结构4.图形工具(续)WarnierWarnier 图图:用树形结构描绘数据的层次结构。软件 产品系统软件操作系统(P1)编译程序(P2)软件工具编辑程序(P3)测试驱动程序(P4)设计辅助程序(P5)应用软件4.图形工具(续)IPO 图:输入/处理/输出图的简称-IBM。旧的主文件事务文件1、校验主记录2、校验事务记录3、更新主记录1、校验主记录2、有效的事务记录3、更新后的主文件改进的IPO图的形式(P47)5.验证软件需求 从哪几个方面验证软件需求的正确性(四个方面)一致性:任何一条需求不能和
13、其他需求互相矛盾。完整性:规格说明书应该包括用户需要的每一个功能和性能。现实性:指定的需求是用现有的硬件、软件技术可以实现的。有效性:需求是正确有效的,确实能解决用户面对的问题。验证软件需求的方法一致性:人工审查-形式化描述软件需求,软件工具自动验证。现实性:参考以往的开发经验,分析,仿真或模拟完整性和一致性:原型系统第四章第四章 总体设计总体设计总体设计的基本目的基本目的就是回答“概括地说,系统应该如何系统应该如何实现实现?”这个问题。总体设计总体设计又称为概要设计概要设计或初步设计初步设计,其任务:(1)划分出组成系统的物理元素划分出组成系统的物理元素-程序、文件、数据程序、文件、数据库、
14、人工过程和文档库、人工过程和文档 通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。(2)总体设计阶段的另一项重要任务是设计软件的结构)总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。1 总体设计的过程(两个主要阶段):系统设计:确定系统的具体实现方案。结构设计:确定软件结构。设想供选择的方案选 取 合理的方案推荐最佳方案功能分解设计软件结构数据库设 计制订测试计划书写文档数据流图 系统流程图 组成系统的物理元
15、素清单 成本/效益分析 实现系统的进度计划 系统说明 用户手册 测试计划 详细的实现计划 数据库设计结果 审查和复 审2 软件设计的概念和原理模块是数据说明、可执行语句等程序对象的说明。(1)模块化:把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,满足问题的功能。C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)成本模块数目成本/模块接口成本最小成本区(2)抽象(3)信息隐蔽和局部化 信息隐蔽原理信息隐蔽原理指出:使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。所谓局部化局部化是指把
16、一些关系密切的软件元素物理地放得彼此靠近。模块化和软件成本耦合:一个软件结构内不同模块之间互连程度的度量,耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。数据耦合:模块之间通过参数交换数据信息。控制耦合:模块之间传递的参数含有控制信息。公共环境耦合:两个或多个模块通过一个公共数据环境相互作用。内容耦合:如果出现下列情况之一,两个模块间就发生了内容耦(1)一个模块访问另一个模块的内部数据;2)一个模块不通过正常入口而转到另一个模块的内部;3)两个模块有一部分程序代码重叠4)一个模块有多个入口。设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容
17、耦合。数据耦合 控制耦合 公共环境耦合 内容耦合低高(4)模块独立-每个模块完成一个相对独立的子功能,并且和其他模块之间的关系很简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果,独立的优点:(1)有效的模块化的软件比较容易开发 (2)独立的模块比较容易测试和维护模块的独立程度两个定性标准度量:内聚和耦合耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。2 软件设计的概念和原理-耦合1.非直接耦合2.数据耦合3.特征耦合4.控制耦合5.外部耦合6.公共耦合7.内容耦合弱耦合中耦合较强耦合强耦合模块1模块2模块3模块4数据耦合通过简单变量交
18、换数据特征耦合通过数据结构交换数据非直接耦合模块之间没有信息传递模块A模块B模块C模块D模块L模块N全局性数据结构公共耦合Flag=1?S1S2模块1控制耦合模块之间传递的是控制信息TF全 局 性简单变量外部耦合模块A 模块B内容耦合 访问其它模块的内部数据 直接跳到其他模块内部执行2 软件设计的概念和原理(续1)内聚:一个模块内各个元素彼此结合的紧密程度。偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。逻辑内聚:若干个逻辑功能类似的任务组成一个模块。(如模板函数)时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。低内聚中内聚高内聚过程内聚:模块内的处理元素是相关的,且
19、必须以特定次序执行。通信内聚:模块中所有元素都使用同一个输入数据,和/或产生同一个 输出数据。顺序内聚:模块中所有处理元素和同一个功能密切相关,且这些处理必 须顺序执行。功能内聚:所有处理元素属于一个整体,完成一个单一的功能。模块A模块B模块CS1;S2;模块A模块B模块C模块A模块B模块C模块D2 软件设计的概念和原理(续2)改进软件结构提高模块独立性 模块规模应该适中 深度、宽度、扇入、扇出都应适当扇入扇入:一个模块的扇人表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多。扇出扇出:扇出是一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多
20、的下级模块。模块的作用域应该在控制域之内模块的作用域作用域:为受该模块内一个判定影响的所有模块的集合。模块的控制域控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。力争降低模块接口的复杂程度 设计单入口单出口的模块 模块的功能应该可以预测3 启发式规则4 图形工具 层次图和HIPO图层次图用来描述软件结构,层次图+IPO图=HIPO图正文加工系统输入输出编辑加标题存储检索编目录格式化添加删除插入修改合并列表 结构图方框之间的箭头表示模块的调用关系,带注释的箭头表示模块间来回传递的信息:空心圆数据,实心圆控制信息。结构图还可以表示模块的选择调用或循环调用参见:P645 面向数据流的设计
21、方法1)变换流2)事务流3)设计过程时间输入流输出流变换流外部表示内部表示信息变换流变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些持征时,这种信息流就叫作变换流。这种数据流是“以事务为中心的”也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。事务T事务中心活动通路事务中心 T 完成下述任务:接受输入数据(事务)分析每个事务以确定它的类型根据事务类型选取一条活动通路变换流与事务流三要素
22、变换流三要素变换流三要素 输入、输出、变换中心 事务流三要素事务流三要素 事务、事务中心、活动通路5 面向数据流的设计方法(续)精化数据流图流类型区分事务中心和数据接收通路映射成事务结构区分输入和输出分支映射成变换结构用启发式设计规则精化软件结构导出接口描述和全程数据结构复查详细设计事务分析变换分析5 面向数据流的设计方法(续)变换分析:汽车数字仪表板功能:1)通过A/D 转换实现传感器和微处理器接口,2)在发光二极管面板上显示数据,3)指示每小时英里数(mph),行驶的里程,每加伦油行驶的英里数(mpg)等等。4)指示加速或减速;5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。
23、A/D转数计数器流量传感器微处理机里程表车速表油效表油管系统加速/减速指示超速报警5 面向数据流的设计方法(续)读旋转信号收集和求平均转换成转/分(rpm)计算里程确定加速/减速产生加速/减速显示产生里程显示计算mph和超速值计算燃料消耗发出铃声产生mph显示产生 mpg显示读和校核计算gph旋转信号信号/秒 SPSSPSSPSrpmrpm箭头指示上箭头水平线下箭头英里超速值显示铃声mphmphmpggph燃料流燃料流传感器信号Mpg 显示数字仪表板 控 制接受传感器 信 号数据转换控制驱动仪表 板输入控制变换控制输入控制5 面向数据流的设计方法(续)设计步骤:复查基本系统模型复查并精化数据流
24、图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,划分变换或事务中心完成“第一级分解”CmCaCtCe第一级分解的方法5 面向数据流的设计方法(续)ADBCCmCaCBDA接受传感器 信 号转换成rpm收集SPS读旋转信号计算gph读燃料流数字仪表板 控 制确 定加/减速计算mph计算gpg计算里程驱动仪表板加速/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示5 面向数据流的设计方法(续)数字仪表板 控 制接受传感器 信 号转换成rpm读旋转信号计算gph读燃料流数字仪表板 控 制确 定加/减速计算mph计算gpg计算里程驱动仪表板加速/减速显示显示mpg显示mph显
25、示里程发出铃声发光二极管显示数字仪表板软件系统经过调整后的结构图注意:红色模块的位置有所调整5 面向数据流的设计方法(续)事务分析432总 控接收通路C通路B通路A通路调 度A_CTL1 4 2+1 3 2 1 B_CTLC_CTL 设计优化设计优化设计优化应该力求做到在有效的模块化的前提下使用最少量的模块,以及在能够满足信息要求的前提下使用最简单的数据结构。数据流图软件结构总体设计说明书的主要内容如下:(1)引言:编写目的,背景,定义,参考资料。(2)总体设计:需求规定,运行环境,基本设计概念和处理流程,结构。(3)接口设计:用户接口,外部接口,内部接口。(4)运行设计:运行模块组合运行控制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 定义 需求 分析
限制150内