第二部分-结构化分析与设计课件.ppt

上传人(卖家):晟晟文业 文档编号:4957992 上传时间:2023-01-28 格式:PPT 页数:203 大小:1.02MB
下载 相关 举报
第二部分-结构化分析与设计课件.ppt_第1页
第1页 / 共203页
第二部分-结构化分析与设计课件.ppt_第2页
第2页 / 共203页
第二部分-结构化分析与设计课件.ppt_第3页
第3页 / 共203页
第二部分-结构化分析与设计课件.ppt_第4页
第4页 / 共203页
第二部分-结构化分析与设计课件.ppt_第5页
第5页 / 共203页
点击查看更多>>
资源描述

1、第二部分 结构化分析与设计窦万峰计算机科学与技术学院南京师范大学2013年9月回答问题什么是软件分析与设计?软件需求分析有哪些过程?如何启动分析过程?什么是面向数据的建模?什么是面向数据流的建模?什么是非形式化建模、半形式化建模和形式化建模?结构化分析与设计模型有哪些?如何编写分析与设计文档?第第4 4章章 软件需求分析(内容提要)软件需求分析(内容提要)什么是软件需求?软件需求分析有哪些过程?如何启动分析过程?需求规格文档有哪些内容?需求分析有哪些技术?软件需求软件需求业务需求与用户需求:源于系统的特定领域的需求和用户使用交互需求。功能需求:描述系统预期提供的功能或服务对系统应提供的服务如何

2、对输入做出反应系统在特定条件下的行为非功能需求:指那些不直接与系统具体功能相关的一类需求产品需求机构需求外部需求功能需求功能需求软件系统的功能需求描述可以有许多方式:文字描述图表表示功能需求可以以不同的详细程度反复编写和细化功能需求描述应该完整而且一致和准确完整性完整性意味着用户所需的所有的服务应该全部给出描述一致性一致性意味着需求描述不能前后矛盾准确性准确性是指需求不能出现模糊和二义性的地方功能需求描述:出卷系统教师能够根据自己的要求手动要求手动或自动自动出一份试卷;教师可以修改试卷中不合适的题目,并能自动生成各种样式样式的试卷;教师可以对试题中的题目进行更新更新。非功能需求非功能需求非功能

3、需求主要与系统的总体特征相关,是一些限制性要求,是对实际使用环境所做的要求性能要求可靠性要求安全性要求可用性要求移植性要求非功能需求关心的是系统整体特征整体特征而不是个别的系统的特征,比功能需求对系统更关键。非功能需求却很难检验非功能需求与功能需求有时会发生冲突,它们之间存在着相互作用关系非功能需求举例非功能需求举例一个POS系统所需的存储存储因为成本原因有所限制,而商品的描述和价目表的信息量很大。如果采用远程服务器,提供商品描述和价目表信息,那必然需要网络通信,而这需要网络技术。当POS机数量多时必然引起服务器处理瓶颈问题。业务需求业务需求领域需求反映应用领域的基本问题,直接影响到系统的可用

4、性。例如:图书馆系统的功能需求基于标准用户界面将一些文档输出到本地打印机或网络打印机上,但因为版权限制版权限制,这些文档打印之后应立即删除。需求分析过程需求分析过程需求分析主要是理解客户需要什么、分析要求、评价可行性、协商合理的方案、无歧义地详细说明方案、确认规格说明、管理需求以至将这些需求转化为可行系统.过程包括:沟通导出需求精化需求可行性研究与客户协商编写需求规格说明验证需求管理需求沟通业务领域的共利益者共利益者(如业务管理人员,市场营销人员,产品管理人员)定义业务用例业务用例确定市场的范围范围初略地可行性分析确定项目范围项目范围的工作说明导出需求导出需求导出需求应理解问题范围问题:系统的

5、边界,是客户和开发者共同关心的部分理解问题:确定业务需求、需求冲突、说明有歧义和不可测试的需求易变问题:分清需求稳定部分和易变部分收集活动:识别真正的客户/用户正确理解客户的需求耐心听取客户意见和思考尽量使用符合客户语言习惯的表达精化需求精化需求开发一个精确的技术模型技术模型,用以说明软件的功能、特征和约束。精化是一个分析建模动作,由一系列建模和求精任务构成定义了问题的信息域信息域,功能域功能域和行为域行为域可行性研究可行性研究可行性研究的目的是确定用最小的代价,在尽可能短的时间内确定问题是否能够解决可行性研究的输入是系统的一个框架描述和高层逻辑模型逻辑模型输出是一份需求开发评价报告评价报告,

6、对需求工程和系统开发是否值得做的具体建议和意见三个问题:系统是否符合机构的总体要求?系统是否可以在现有的技术条件、预算和时间限制内完成?系统能否把已存在的其他系统集成?与客户协商与客户协商调节冲突和问题需求排序识别和分析与每项需求相关的风险、开发工作量、成本和交付时间编写软件需求规格说明一个规格说明可以是一份写好的文档、一套图形化的模型、一个形式化的数学模型、一组使用场景、一个原型或以上各项的任意组合。软件需求规格(SRS,Software Requirement Specification)是需求分析任务的最终“产品”,它是客户、管理者、分析工程师、测试工程师、维护工程师交流的标准和依据。软

7、件需求规格描述了系统的数据、功能、行为、性能需求、设计约束、验收标准、以及其他与需求相关的信息。SRS模板,包括用户需求和系统需求(表4-1)需求规格文档标准(表4-1)1 引言 1.1 编写目的 1.2 项目背景(单位和与其他系统的关系)1.3 定义(专门术语和缩写词)2 任务概述 2.1 目标 2.2 运行环境 2.3 条件限制3 数据描述 3.1 静态数据 3.2 动态数据 3.3 数据库描述 3.4 数据字典 3.5 数据采集4 功能需求 4.1 功能划分 4.2 功能描述5 性能需求 5.1 数据精确度 5.2 时间特性 5.3 适应性6 运行需求 5.1 用户界面 5.2 硬件接口

8、 5.3 软件接口 5.4 故障处理7 其他需求(检测或验收标准、可用性、可维护性可移植性、安全保密性)验证需求验证需求验需求证对需求文档和制品进行质量评估,确保需求说明准确、完整.包括以下内容:正确性一致性完整性可行性必要性可检验性需求的可跟踪性最后签字确认管理需求管理需求管理需求是组织、控制和文档化需求的系统方法.建立基线以便在客户和开发人员之间构建一个约定.需求管理从标识开始,建立跟踪表.需求跟踪表可以跟踪需求的特征、来源、依赖、子系统和接口等关系.会谈技术技术非正式会谈:提出一些可自由回答的问题.正式会谈:提出一些事先准备好的议题.情景分析:需求分析从对场景的评论中得到信息,然后再将其

9、以形式化方式表示出来。使用用例使用用例建立原型界面序列执行过程视点分析接受系统服务的当前银行客户银行客户;银行间自动柜员机有互惠协议的其他银行的代表代表;从该系统中获得管理信息的银行支行管理者支行管理者;负责系统日常运转和处理客户意见的支行柜台职员柜台职员;负责系统和客户数据库集成的数据库管理者数据库管理者;负责保证系统信息安全的银行信息安全管理者信息安全管理者;将该系统视为银行市场开拓手段的银行市场开发部市场开发部;负责硬件和软件维护及升级的硬件和软件维护工程师硬件和软件维护工程师多视点的需求分析过程视点识别:包括发现接收系统服务的视点和发现提供给每个视点的特别服务。视点组织:包括组织相关的

10、视点到层次结构中,通用的服务放在较高的层次,并被较低层次的视点继承。视点文档编写:包括对被识别的视点和服务描述的精炼。视点系统映射:包括在面向对象设计中通过封装在视点中的服务信息识别对象。调查表技术制定调查表可靠可信分析场景分析场景分析分析员与项目相关人员共同识别出情景,并捕获这些情景的细节。把细节加入到一个纲要的需求描述中时,情景特别有用.情景是对交互实例片断的描述,每个情景可能包含一个或多个交互,它们能在不同的细节层次上提供不同类型的情景信息.情景开始于一个框架,在导出过程中,细节被逐渐增加,直到产生交互的一个完整的描述.情景内容 在情景开始部分有一个系统状态描述;关于标准事件流的描述;关

11、于哪儿会出错,以及如何处理错误的描述;有关其他可能在同一时间进行的活动的信息;在情景完成后系统状态的描述场景名场景名:取款参与者参与者:银行客户场景描述场景描述:1插入有效的银行卡;2ATM机验证该银行卡;3系统要求输入银行卡密码,用户输入密码;4系统通过网络向银行内部系统请求验证密码;5若验证通过,系统请求选择业务,选择取款;6系统要求输入取款金额,比如1000元;7系统验证是有足够的现金,并请求验证银行内部服务器处理取款;8若处理成功,系统计算钞票数目,并送出现金;9用户取走现金;10系统打印凭条,用户取走凭条;11系统退出银行卡,用户取走银行卡。实例分析:出卷系统实例分析:出卷系统用户:

12、教师:关注如何出一份合理的试卷,并能根据样式打印与输出。学生:关注如何通过生成一些模拟试题,并在线学习和检查学习结果。题库维护人员:关注试题的添加、更新和删除等工作。视点:教师关注自动出卷、手工出卷、试卷编辑和试卷输出。学生关注随时抽卷、联系试卷和评价分析。题库维护人员关注试题管理。出卷系统的功能需求自动出卷:系统根据教师的要求自动生成一份合理的试卷。手动出卷:教师手动从候选的试题中挑选题目。随机抽卷:系统随机抽取试题生产一份试卷。在线练习:学生可以在线做练习和查看答案。在线评价:系统在线评价学生练习的情况。试题管理:管理人员维护题库中的试题。试卷编辑:更新试题。试卷输出:根据某个样式输出试卷

13、。实例分析:实例分析:POSPOS机系统机系统收银员:能够准确、快速地输入,而且没有支付错误,因为如果少收货款,将从其薪水众扣除。售货员:自动更新销售提成。顾客:希望以最小代价完成购买活动并得到快速服务。便捷、清晰地看到所输入的商品项目和价格。得到购买凭证,以便退货。公司:希望准确地记录交易,满足顾客要求。确保记录了支付授权服务的支付票据。有一定的容错性。能够自动、快速地更新记帐和库存信息。经理:能够快速执行超控操作,并易于更正收银员的不当操作。支持授权服务:依据正确的通信格式进行授权服务。库存系统:正确的方式更新库存信息。记账系统:能够准确地记录每次销售支付信息。POS机系统主要功能需求处理

14、销售:收银员完成一次销售记录,并出具票据和更新库存系统和帐务系统。处理支付:完成一次销售对应的支付,包括现金支付,信用卡支付和支票支付。处理退货:根据顾客请求完成商品退货处理。办理会员卡:注册、注销和更新会员记录。实例分析:图书馆系统实例分析:图书馆系统图书馆系统的共利益者与视点有:图书流通管理:负责图书借还工作。用户:希望快速得到借书,还书服务,能够续借、预约图书,以及查询个人和图书信息。编目管理员:负责图书的管理、用户管理和处理罚金等。图书馆系统的主要功能需求图书借出:管理员完成一次借书过程。图书归还:管理员完成一次还书过程。图书预约:用户查询要借的图书,若不能借,可预约该图书。图书续借:

15、用户可以将图书的归还日期延长一段时间。图书管理:添加新书。更新图书馆信息,销毁图书。用户管理:注册新用户,更新用户信息,注销用户。处理罚金:用户缴纳罚金吼,系统将罚金数额清零。实例分析:实例分析:ATMATM系统系统银行客户:接受系统服务;银行的代表:银行间自动柜员机有互惠协议;支行管理者:从该系统中获得管理信息;支行柜台职员:负责系统日常运转和处理客户意见;数据库管理者:负责系统和客户数据库集成;银行信息安全管理者:负责保证系统信息安全;银行市场开发部:将该系统视为银行市场开拓手段;硬件和软件工程师:负责硬件和软件维护及升级。ATMATM系统系统主要功能需求存款:从ATM机上存钱到指定账户上

16、。取款:从指定账户上取一定数量的货币。转账:从一个账户取出一定数量的货币,然后转存到另一个账号上。查询余额:察看指定账户的余额。修改密码:修改账户密码。小结小结需求分析也称为需求工程,是一个非常重要而有很复杂的,需要交替进行,反复迭代的过程。软件需求分为功能需求和非功能需求。功能需求描述系统所预期提供的服务,而非功能需求描述与系统不直接相关的一些需求。领域需求是一种特有的功能需求,反应应用领域的基本问题。软件需求规格说明文档描述了系统的数据、功能、行为、性能需求、设计约束、验收标准以及其他于需求相关的信息,它有可能成为客户与开发商之间的合同。需求分析过程通过执行初步沟通、需求导出、分析与精化、

17、可行性研究、协商和沟通、规格说明、验证和变更管理八个不同的活动来完成。非形式技术主要包括会谈、调查表和场景技术,用于获取用户需求和系统需求。第5章 结构化分析与建模结构化分析与建模分析模型元素结构化需求分析面向数据的建模方法案例分析结构化分析结构化分析(SA,Structured Analysis)方法是20世纪70年代,由E.Yourdon等人倡导的一种适用于大型数据处理系统的、面向数据流的需求分析方法。结构化分析方法是一种传统的系统建模技术,其过程是创建描述信息内容和数据流的模型,依据功能和行为对系统进行划分,并描述必须建立的系统要素。结构化需求分析指导性原则理解问题开发模型描述需求建立系

18、统模型确定需求优先级验证需求结构化分析建模需求分析的任务就是准确地指出“软件目标产品必须做什么?”需求分析的一个重要过程就是需求建模的过程结构化分析方法是一种传统的系统建模技术主要目标:描述客户的需要;建立软件设计的基础;定义在软件完成后可以确认的一组需求。分析模型分析模型分析模型的目的是为基于计算机系统提供必须的信息、功能和行为域的说明模型是对系统某个方面的抽象,抛弃了具体细节,对系统中最突出的特征作简化分析模型元素:基于场景的元素基于过程的活动序列的元素基于类的元素行为元素面向信息流的元素基于数据的元素分析模型的目标与原则分析模型的目标与原则分析模型的所有元素都可以直接映射到设计模型.创建

19、分析模型时应遵循的原则:模型应关注在问题或业务域内可见的需求,抽象的级别相对高;分析模型的每个元素都应能增加对软件需求的整体理解,并提供对信息域、功能和系统行为的深入理解;基于基础机构和其他非功能的模型应推延到设计阶段再考虑;最小化整个系统内的关联;确认分析模型为所有共利益者都带来价值;尽可能保持模型简洁.结构化需求分析结构化需求分析用户需求用户需求一般用自然语言描述系统需求系统需求必须用较专业的方式来描述模型是软件设计的基础,也是创建规约的基础需求分析原则:表示和理解问题的信息域;定义软件将完成的功能;表示软件的行为(作为外部事件的结果);划分描述信息、功能和行为的模型,从而使得可以以层次的

20、方式揭示细节;分析过程应该从要素信息移向细节实现。结构化分析模型结构化分析模型系统模型从以下不同的角度表述系统:从外部来看,它是对系统分析上下文或系统环境建模;从行为上看,它是对系统行为建模;从结构上看,它是对系统的体系结构和系统处理的数据结构建模。结构化的需求分析模型有:系统行为模型:数据流模型,用来描述系统中的数据处理过程状态转换模型,用来描述系统如何对事件做出响应实体关系模型:关心的是寻找系统中的数据及其之间的关系,却不关心系统中包含的功能。结构化分析模型结构实体-关系图数据流图加工规约数据对象描述状态转换图控制规约结构化分析模型组成分析模型结构的核心是数据字典(DD,Data Dict

21、ionary),包含了软件使用或生产的所有数据对象描述的中心库。分析模型结构的中间层有三种视图:数据流图(DFD,Data Flow Diagram)服务于两个目的:一是指明数据在系统中移动时如何被变换,二是描述对数据流进行变换的功能和子功能。实体关系图(E-RD,Entity-Relationship Diagram)描述数据对象间的关系,用来进行数据建模活动的记号。状态转换图(STD,State Transition Diagram)指明作为外部事件的结果,系统将如何动作。分析模型结构的外层是规约描述:在实体关系图中每个数据对象的属性可以使用数据对象来描述。在数据流图中出现的每个加工/处理

22、的功能描述包含在加工规约中。软件控制方面的附加信息包含在控制规约中面向数据流的建模方法面向数据流的建模方法面向数据流的建模是结构化需求分析方法之一采用自顶向下逐层分解,描绘满足用户要求的软件模型表示:数据流图:描述系统处理过程数据字典:模型中的数据信息集合数据流图符号数据源点或终点变换数据的处理数据存储数据流或或或数据流图举例设一个工厂采购部每天需要一张定货报表。定货的零件数据有:零件编号、名称、数量、价格、供应者等。零件的入库、出库事务通过计算机终端输入给定货系统。当某零件的库存数少于给定的库存量临界值时,就应该再次定货。数据流分析:数据源点:仓管员(负责入库或出库事务给定货系统);数据终点

23、:采购员(接收每天的定货报表);数据流:事务,定货;数据存储:定货信息,库存清单;处理:处理事务,产生报表。数据流图举例画基本系统模型采购员事务定货报表仓管员定货系统数据流图举例第一步求精数据流图举例第二步求精数据字典数据字典数据字典是分析模型中出现的所有名字的一个集合,并包括有关命名实体的描述数据字典有以下两个作用:它是所有名字信息管理的有效机制作为连接软件分析、设计、实现和进化阶段的开发机构的信息存储数据字典应该由四类元素的定义组成:数据流数据流分量数据存储处理对于处理,可用输入处理输出(IPO,Input-Process-Output)视图描述更方便数据字典数据字典应对组成的数据元素定义

24、进行自顶向下的分解。分解的原则是:当包含的元素不需要进一步定义,且每个和工程有关的人都清楚时为止数据字典中应该包括关于数据的信息:一般信息(名字、别名、描述等)定义(数据类型、长度、结构等)使用特点(值的范围、使用频率、使用条件、使用方式、条件值等)控制信息(用户、使用特点、改变数、使用权等)分组信息(文档结构、从属结构、物理位置等)三种类型的任意组合定义数据字典中的任何条目。顺序:顺序连接两个或多个分量元素。一般用加号表示顺序连接关系。选择:从两个或多个可选的分量元素中选取一个。选择运算符用方括号表示,对于多个可供选择的元素,用“|”符号分隔。例如,A-1|A-2|A-3 表示三个可选数据元

25、素。重复:描述的分量元素重复零次或多次。例如,都表示数据元素A的下限为1,上限为5。数据字典数据字典卡片方式示例名字:定货报表别名:定货信息描述:每天一次需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+价格+1供应者3 位置:输出到打印机名字:零件编号别名:描述:惟一标识一个特定零件的关键组成定义:零件编号=8位字符位置:定货报表、定货信息 库存清单名字:定货数量别名:描述:某个零件一次定货的数目定义:定货数量=1|2|3|4|5 位置:定货报表 定货信息名字:价格别名:价格范围描述:某个零件目前参考价格或者上下限定义:价格=1零件单价2位置:定货报表 定货信息 库存清单面对面结

26、对编程系统举例问题描述问题描述:面对面结对编程系统采用双鼠标、双键盘和双显示器共享一台主机的硬件环境,软件具有主动角色转换、强制角色装换、相容性分析、Driver时间统计等功能,可以免去结对编程者之间频繁的相互交换座位等细节,使结对者更加方便地交流,最大化地提高工作效率,打造出最佳的合作团队。系统组成结构功能划分1)系统设置:系统设置功能完成系统工作的基本变量设置,包括系统交互提醒时间间隔、强制转换角色时间间隔等。2)个性评测:个性评测功能完成结对者个人的性格、能力等方面的评测,以便分析结对相容性情况。3)相容性分析:相容性分析功能完成结对者双方结对效果和给出建议。4)主动角色互换:主动角色互

27、换功能完成结对者双方工作一段时间后进行角色的交换,以便充分发挥两个人的能力。5)系统强制角色互换:当结对一定时间后,如果没有进行主动角色互换,则系统会提醒结对者交换角色,并强制进行角色交换,以充分体现结对的特色。数据流分析面向数据的建模方法面向数据的建模方法系统建模的一个重要方面就是要定义系统处理的逻辑结构。最广泛采用的数据建模技术是实体-关系模型,它描述数据实体、关联及实体属性。实体关系模型可用ERD(Entity-Relationships Diagram实体关系图)来表示:实体关联实体属性基数实例分析:实例分析:出卷系统N包含题目出卷要求依据抽取试题试卷11111实例分析:实例分析:出卷

28、系统试卷由一组题目组成,而题目来自试卷库中被挑选的题目。试卷根据出卷要求选择项目。这些实体的属性给出如下:试题:编号、科目、题干、题干图、答案、答案图、题型、知识点、难度、抽取时间试卷:编号、科目、出卷人、年级、性质、总分、难度、题目*出卷要求、总分、总难度、总题型、总知识点题目:编号、题干、题干图、答案、答案图、题型、知识点、难度实例分析:实例分析:图书馆系统1借书记录预约记录借/还/续借1M1NM包含预约借书者图书书目实例分析:实例分析:图书馆系统实体:图书、借书者、管理员、借书目录、预约记录、书目属性给出如下:借书者:借书者编号、姓名、性别、借书数、最大借书数、罚金金额、有限期图书:图书

29、号、书目号书目:书目号、书名、作者、出版社、丛书名、收藏数、在馆数、预约数借书记录:图书号、借书者编号、借出日期、应还日期、续借次数预约记录:书目号、借书者编号、预约日期状态机建模方法状态机建模方法状态模型是一种描述系统对内部或者外部事件响应的行为模型。它描述系统状态和事件,以及事件引发系统在状态间的转换。这种模型适用于描述实时系统。状态机建模方法步骤:系统状态、行为与事件分析构建状态图状态转换图状态转换图状态模型一般采用状态转换图(简称状态图)的标记方法状态图描述了系统中某些复杂对象的状态变化状态状态是可观察的行为模式,用圆角矩形表示;变迁变迁表示状态的转换,用箭头表示;事件事件是引发变迁的

30、消息,用箭头上的标记表示。状态图还可以用事件后的方括号表示先决条件先决条件,只有当这个条件为真时,才会发生状态变化;用状态自身的弧线箭头表示先决条件不为真时,状态不会改变。电梯控制系统分析问题描述问题描述在一幢有m层的大厦中安装一套n部电梯的产品,按照下列条件求解电梯在各楼层之间移动的逻辑关系:每部电梯有m个按钮,每一个按钮代表一个楼层。当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,当到达相应楼层时指示灯熄灭。除了最底层和最高层之外,每一层楼都有两个按钮分别指示电梯上行和下行。按下按钮后指示灯就开始亮,当电梯到达此楼层时指示灯熄灭,并向所需要的方向移动。当电梯无升降运动时,关门并停在

31、当前楼层。状态事件及行为分析电梯在运行过程一般具有下列状态:空闲:无请求时,电梯处于休息状态;暂停:上下乘客时,电梯处于暂停,开门和关门;上行:电梯处于向上运行状态;下行:电梯处于向下运行状态;处于第一层:初始启动,电梯会在第一层等待状态;向第一层移动:长时间 处于空闲时,电梯移动到第一层。电梯控制系统的事件有:向上:驱动电梯向上运行;向下:驱动电梯向下运行;停止:停止电梯运行;无请求:没有乘客请求乘坐电梯;长时间无请求:长时间没有乘客请求乘坐电梯。绘制电梯对象的状态图结构化分析步骤问题描述画分层的数据流图确定计算机实现部分数据描述定义处理逻辑定义物理资源确定外部输入和输出确定数据格式、硬件要

32、求编写规格说明书1、问题描述图书销售店从各出版社购买图书,并将其销售给大学、公司和个人客户。书店库存流行的图书,并根据需要订购其他图书。书店提供大学订购服务,并根据客户和订购量提供优惠。现在书店希望实现计算机化管理,将如何做?仔细分析上述问题,确定需要有哪些商务功能(入账、出账和库存),系统是批处理方式还是联机方式,硬件设备情况,实现计算机化管理的目的是什么等目标。可以看出,其目的是为了销售图书和图书管理以及账目管理。2、画分层的数据流图3、计算机化系统的自动化方案选择,取决于客户的投资和目标。一般必须利用成本效益分析对数据流图各个部分的操作分析决定以批处理方式还是以联机方式执行。本例的第一个

33、方案是以批处理方式处理出账、订购图书,用联机方式处理订单的有效性检查、聚集订单和开发货清单;第二个方案是除发货票据使用联机方式或批处理方式外,其余都用联机方式。4、数据细节描述本例的数据流和数据存储有“订单”、“图书细节”、“顾客细节”、“图书数据”、“顾客数据”、“账目”、“发货清单”等等。“订单”可细化为“订单标识”、“顾客细节”、“图书细节”,其中“顾客细节”和“图书细节”还可进一步细化。5、定义处理逻辑确定了产品的数据元素,就可以分析每个处理具体做什么了。例如,分析“生成账目”中“给教育部门打折扣”细节。处理逻辑的描述处理逻辑的描述加工逻辑也称为过程说明,用于描述数据流图中加工逻辑的处

34、理算法或过程出卷系统:出卷系统:总体数据流图手动出卷教师出卷要求试题出卷要求试卷出卷要求试题试题试卷获取出卷要求自动出卷出卷要求保存试卷题目出卷要求出卷要求题目教师设置出卷要求出卷系统:自动出卷出卷系统:自动出卷数据流图教师出卷要求试题试题试卷试题试题试卷获取出卷要求抽取试题评价出卷要求试卷出卷要求出卷要求分析出卷计算分值题型试题写入试卷显示试卷试题出卷系统:手动出卷出卷系统:手动出卷数据流图分析出卷挑选试题题型试题写入试卷显示试卷试题教师出卷要求试题试题试卷试题试题试卷获取出卷要求筛选试题计算分值出卷要求试卷出卷要求出卷要求出卷系统的实体-关系图 试卷题目试题出卷要求依据抽取11包含N111

35、图6-16 出卷系统的实体-关系图数据字典举例名称:试卷别名:无描述:试卷信息定义:试卷=试卷编号+课程名+出卷人+时间+总分+难度+试题 试卷编号=1字符串10课程名=1字符30 出卷人=1字符8 时间=日期 总分=整数数据字典举例名称:出卷要求别名:要求描述:出卷的卷面要求定义:出卷要求=总分+总难度+总题型+总知识点 总分=整数 总难度=难分数比例+中分数比例+易分数比例 总题型=1题型分数比例*总知识点=1知识点分数比例*位置:自动出卷,手动出卷,设置出卷要求数据字典举例名称:试题别名:题目描述:题库中的题目定义:试题=试题编号+题干+题干图+答案+答案图+题型+难度+知识点+抽取时间

36、 试题编号=1字符10 题干=1字符200 题干图文件名=30字符40 答案=1字符200 答案图文件名=30字符40 题型=【|选择|填空|简答|改错|应用|】难度=【|难|中|易|】知识点=【|】抽取时间=日期位置:自动出卷,手动出卷,题库系统规格说明书案例分析面对面结对编程系统小结小结分析模型帮助用户逐层深入理解问题,为软件设计提供基础。分析建模的元素有基于场景的用例建模、基于过程的活动序列建模、基于类的建模、行为建模、基于信息流的建模和基于数据的建模。结构化分析方法是一种自顶向下,逐步分解的面向数据和数据流的建模方法。面向数据的建模以实体、关系和属性三个基本元素描述系统,涉及数据及其它

37、们之间的关系,用ERD表示。基于数据流的方法用于描述数据如何在系统中流动或被变换,用数据流图、数据字典、加工规程等形式表示。第6章 结构化设计基础软件设计过程模块化设计软件结构软件体系结构模型体系结构模式软件设计过程软件设计阶段的基本目标是构造系统“怎么做”的模型描述。“设计先于编码”,这是软件工程“推迟实现”基本原则软件系统设计是把软件需求“变换”为用于构造软件的蓝图。“输入”是需求分析各种模型元素“输出”是软件设计模型和表示软件设计的目标是对将要实现的软件系统的体系结构、系统的数据、系统模块间的接口,以及所采用的算法给出详尽的描述。软件设计活动软件设计活动总体设计,也称为概要设计,软件结构

38、设计,或高层设计。分析需求规格说明模块划分,形成具有预定功能的模块组成结构表示出模块间的控制关系给出模块之间的接口软件详细设计,也称为(模块)过程设计,或低层设计。设计模块细节确定模块所需的算法和数据结构等软件设计过程软件设计过程设计供选择的方案选取合理的方案推荐最佳方案功能分解和设计软件结构数据库设计制定软件设计测试计划编制设计文档审查和复审软件设计质量原则软件设计质量原则设计过程不应该受“隧道视野”的限制设计对于分析模型应该是可跟踪的设计不应该从头做起设计应该缩短软件和现实问题的“智力距离”设计应该表现出一致性和集成性设计应该能够适应修改设计不是编码在创建设计时,就应该考虑能够评估其质量应

39、该复审每一步设计,以减少语义性错误概要设计说明书概要设计说明书1 范围1.1系统目标1.2 主要软件需求1.3 软件设计约束、限制2 数据设计2.1 数据对象和形成的数据结构2.2文件和数据库结构外部文件结构 逻辑结构 逻辑记录描述 访问方法全局数据文件和数据交叉索引3 体系结构设计3.1 数据和控制流复审3.2 得出的程序结构4 接口设计4.1 人机界面规约4.2 人机界面设计规约4.3 外部接口设计外部数据接口外部系统或设备接口4.4 内部接口设计规约5 (每个模块)过程设计5.1 处理说明5.2 接口描述5.3 设计语言描述5.4 使用的模块5.5 内部设计结构5.6 注释/约束/限制6

40、 需求交叉索引7 测试部分7.1测试方针7.2 集成策略7.3 特殊考虑8 附录(包括特殊注解)详细设计说明书详细设计说明书1 引言1.1 编写目的:阐明编写详细设计说明书的目的,指明读者对象。1.2 项目背景:应包括项目的来源和主管部门等。1.3 定义:列出本文档中所用到的专门术语的定义和缩写词。列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源 文档所引用的资料、软件开发的标准或规范。1.4 参考资料:项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;概要设计说明书;测试计划(初稿);用户操作手册。2 总体设计2.1 需求概述2.2 软件结构:如给出软件

41、系统的结构图。3 程序描述3.1 逐个模块给出以下说明:性能 输出项目 功能 输入项目3.2 算法:模块所选用的算法。3.3 程序逻辑:详细描述模块实现的算法,可采用:标准流程图;PDL语言;N-S图;判定表等描述算法的图表。3.4 接口 限制条件 存储分配3.5测试要点:给出测试模块的主要测试要求。软件模块化设计原理软件模块化设计原理模块是一个独立命名的,拥有明确定义的输入、输出和特性的程序实体。把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体,这就是软件的模块化设计(Modular Design)。软件

42、模块化设计可以简化软件的设计和实现,提高软件的可理解性和可测试性,并使软件更容易得到维护。分解、抽象、逐步求精、信息隐蔽和模块独立性,是软件模块化设计的指导思想。分解采用有效的分解,即“分而治之”,是能够使问题得以很好解决的必不可少的措施。一个软件系统的各个模块之间是相互关联的,模块划分的数量越多,模块间的联系也越多。模块本身的复杂性和工作量虽然随着模块变小而减少,模块的接口工作量却随着模块数增加而增大。软件模块化开发存在一个最小成本区,把模块数控制在一定的范围内,可以得到最小的总开发工作量。模块数与开发工作量开发工作量模块数最小成本区模块成本接口成本总成本抽象抽象分解必然需要抽象的支持。抽象

43、是抓住主要问题,隐藏细节,这样才能容易分解。抽象具有不同的级别。人类解决复杂问题的基本方法之一。只有抓住事物的本质,才能准确分析和处理问题,找到合理的解决方案。信息隐藏信息隐藏信息隐蔽原则建议模块应该具有的特征是:每个模块对其他所有模块都隐蔽自己的设计决策。信息隐蔽意味着通过一系列独立的模块可以得到有效的模块化。独立的构件或模块之间的“接口”简单而清晰。逐步求精逐步求精逐步求精,或称逐步细化,是一种自顶向下的设计策略。逐步求精是人类采用抽象到具体的过程把一个复杂问题趋于简单化控制和管理的有效策略。抽象和精化是互补的概念。重构重构重构是一种重新组织的技术,可以简化构件或模块的设计或编码而无需改变

44、其功能或行为。重构是一种改进程序内部结构但不改变代码或设计的外部行为。“先使它转起来,再使它快起来”。模块的独立性模块的独立性模块的独立性(Module Independence)是模块化、抽象、信息隐蔽等概念的直接结果,也是判断模块化结构是否合理的标准。模块独立性是指开发具有独立功能而和其他模块没有过多关联的模块。模块独立性两大优点:独立的模块由于分解了功能,简化了接口,使得软件比较容易开发;独立的模块比较容易测试和维护。模块独立性度量模块独立性由两个定性标准度量:模块自身的内聚(Cohesion),也称为块内联系或模块强度,模块之间的耦合(Coupling),也称为块间联系。模块独立性愈高

45、,则块内联系越强,块间联系越弱。模块内聚性内聚性是从功能的角度对模块内部聚合能力的量度。高内聚是模块独立性追求的目标。分类:偶然性内聚:模块内的各个任务在功能上没有实质性联系,纯属“偶然”因素组合了块内各个互不相关的任务。逻辑性内聚:模块通常由若干个逻辑功能相似的任务组成,通过模块外引入的一个开关量选择其一执行。这种内聚增大了模块间的耦合。时间性内聚:模块内的各个任务由相同的执行时间联系在一起。例如,初始化模块。过程性内聚:模块内的各个任务必须按照某一特定次序执行。通信性内聚:模块内部的各个任务靠公用数据联系在一起,即都使用同一个输入数据,或者产生同一个输出数据。顺序性内聚:模块内的各个任务是

46、顺序执行的。通常,上一个任务的输出是下一个任务的输入。功能性内聚:模块各个成分结合在一起,完成一个特定的功能。显然,功能性模块具有内聚性最强、与其他模块联系少的特点。内聚性分类偶然性内聚弱逻辑性内聚时间性内聚过程性内聚通信性内聚顺序性内聚功能性内聚强低内聚中内聚高内聚模块耦合性耦合性是对一个软件结构内不同模块之间互连程度的度量。耦合性的强弱取决于模块间接口的复杂程度,以及通过接口的数据类型和数目。分类:非直接耦合:同级模块相互之间没有信息传递,属于非直接耦合。数据耦合:调用下属模块时,如果交换的都是简单变量,便构成数据耦合。特征耦合:调用下属模块时,如果交换的是数据结构,便构成特征耦合。由于传

47、递的是数据结构,不仅数据量增加,而且会使模块的相关性增加。控制耦合:模块间传递的信息不是一般的数据,而是作为控制信息的开关值或标志量。例如,逻辑性内聚的模块调用就是典型的控制耦合。外部耦合:若允许一组模块访问同一个全局变量,可称它们为外部耦合。公共耦合:若允许一组模块访问同一个全局性的数据结构,则称它们为公共耦合。全局性的数据结构可以是共享的通信区、公共的内存区域、任何存储介质文件、物理设备等。内容耦合:若一个模块可以直接调用另一个模块中的数据,或者直接转移到另一个模块中去,或者一个模块有多个入口,则称为内容耦合。耦合性分类非直接耦合弱数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合强弱耦合中

48、耦合强耦合较强耦合软件总体结构描述软件结构:模块的层次控制结构软件结构图软件结构优化软件结构图软件结构图软件结构(Structure Chart,简称SC)是软件系统的模块层次结构,反映了整个系统的功能实现。软件结构以层次表示程序的系统结构,即一种控制的层次体系,并不表示软件的具体过程。软件结构一般用树状或网状结构的图形来表示。软件结构图的主要元素有:模块:模块用带有名字的方框表示,名称应体现模块的功能。控制关系:控制关系用单向箭头或直线表示模块间的调用关系。信息传递:用带注释的短箭头表示模块调用过程中传递的信息。循环调用和选择调用:在上部模块底部加一个菱形符号表示选择调用,在上部模块的下方家

49、一个弧形箭头,表示循环调用。软件结构图软件结构图的形态特征:深度:指结构图控制的层次,也是模块的层数。图6-4中的结构图的深度为5。能粗略表示一个系统的大小和复杂程度,深度和程序长度之间存在着某种对应关系。宽度:指一层中最大的模块个数。图6-4中的结构图的宽度为8。一般来说,结构的宽度越大,则系统就越复杂。扇出:指一个模块直接下属模块的个数。图6-4中的结构图的模块I的扇出为4。扇出过大,表示模块过分复杂,需要控制和协调的下级模块太多。扇出的上限一般为 59,平均一般为3或4。扇入:指一个模块直接上属模块的个数。图6-4中的结构图的模块T的扇入为4。扇入过大,意味着共享该模块的上级模块数目多,

50、这有一定的益处,但是决不能违背模块的独立性原则而片面追求高扇入。画结构图应注意的事项:模块不能重名。调用关系只能从上到下。软件结构图MNOPQGHICDATJKLEFBRS软件结构优化软件结构优化改进软件结构提高模块独立性在满足模块化要求的前提下尽量减少模块数量,在满足信息需求的前提下尽可能减少复杂的数据结构模块规模应适中软件结构的深度、宽度、扇入数和扇出数都要适当模块的作用域应该在控制域之内.如图6-4中,I模块的控制域为N,O,P,Q,T,I模块只能作用于这些模块,不能影响其它模块的功能力求降低模块接口的复杂程度,设计单入口、单出口的模块小结小结设计的基本原理和概念包括模块化、抽象、体系结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第二部分-结构化分析与设计课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|