软件工程版结构化分析与设计课件_第1页
软件工程版结构化分析与设计课件_第2页
软件工程版结构化分析与设计课件_第3页
软件工程版结构化分析与设计课件_第4页
软件工程版结构化分析与设计课件_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.绪论2.软件生存周期与软件过程3.结构化分析与设计4.面向对象与UML5.需求工程与需求分析6.面向对象分析7.面向对象设计8.编码与测试9.软件维护10.软件复用11.软件工程管理主要内容结构化分析与设计提出20世纪70年代中期,Stevens、Myers与Constantine等人在结构化程序设计的基础上,倡导结构化设计(StructuredDesign,SD)技术。70年代后期,Yourdon等人倡导了与SD配套的结构化分析(StructuredAnalysis,SA)技术,合称为结构化分析与设计方法。结构分析与设计方法是瀑布模型的首次实践。结构化分析与设计结构化分析任务建立分析模型。SA模型是描述软件需求的一组模型,主要包括功能模型、数据模型和行为模型。编写需求规格说明书。SRS是分析阶段编写的以文字为主的文档,主要内容包括:引言、信息描述、功能描述、行为描述、质量保证、接口描述以及其他需求等。结构化分析的指导思想。抽象与分解时结构化分析的主要指导思想。结构化分析与设计结构化设计任务软件设计=总体设计+详细设计。总体设计的任务是把分析模型中的数据流图(DFD图)转换为软件结构图(SC图),详细设计阶段的任务是对SC中的各个模块进行算法和数据结构设计。软件设计指导思想:分解和细化是软件设计阶段的指导思想。结构化分析与设计

数据词典

体关

状态转换图

明明

据对

述功能模型行为模型信息模型

结构化分析模型组成结构化分析与设计结构化分析模型数据流图(DataFlowDiagram,DFD):主要作用是指明系统中的数据是如何流动和变换的,以及描述使数据流进行变换的功能。在DFD中出现的每个功能,可在加工规格说明中描述,它们一起构成了软件的功能模型。实体联系图(EntityRelationDiagram,

E-R图):用于描述数据对象间的关系,它代表了软件的信息模型,在实体联系图中出现的每个数据对象的属性,可用数据对象说明描述。状态转换图(State

Transformation

Diagram,STD):用于指明系统在外部事件的作用下将如何行动,表明系统的各种状态以及状态间的变换,从而构成行为模型。实例:教材购销系统从用户调查中了解到,某高校向学生销售教材的手续是:先由院办公室的张秘书开一购书证明;学生凭证明找教材科的王会计开购书发票;向李出纳交付书款;然后到书库找赵保管领书。将上述手工操作流程改为计算机处理流程,开发一个“教材销售系统”。结构化分析与设计结构化分析与设计步骤1:通过对现实环境的调查研究,获取当前系统的具体模型。学生张秘书王会计李出纳赵保管学生购书申请购书证明购书发票领书单书学生购买教材的具体模型步骤2:分析需求,建立系统分析模型,包括当前系统模型和目标系统模型。去掉具体模型中的非本质因素,提炼出当前系统的逻辑模型。学生审查有效性开发票开领书单发书学生购书单有效购书单发票领书单书学生购买教材的逻辑模型结构化分析与设计分析当前系统与目标系统的差别,建立目标系统的逻辑模型。学生审查并开发票开领书单发书学生购书单发票领书单书计算机售书系统的逻辑模型目标系统是一个使用计算机的系统。一般来说,它的功能比当前现行业务系统更强,不必也不应该完全模拟现行系统!结构化分析与设计步骤3:整理综合需求,编写软件需求说明。步骤4:验证需求,完善和补充目标系统的描述。通过目标系统的人-机界面,与用户一起确认目标系统功能,并且确定哪些功能交给计算机去做,哪些功能由人工完成。复审需求说明,补充迄今尚未考虑过的细节,例如系统的响应时间、增加出错处理等。学生审查并开发票开领书单学生购书单发票领书单改进的计算机售书系统的逻辑模型无效购书单结构化分析与设计数据流图(DFD)数据流图:数据流图是用来刻画数据流和加工的信息系统建模技术。加工/过程数据流实体(数据源点或数据终点)数据存储(数据文件或数据库)DFD图的基本符号结构化分析与设计DFD图的扩展符号结构化分析与设计数据流(DataFlow):表示数据元素的运动方向。数据流是一组成分固定的数据组成的。每一个数据流必须有一个合适的名字。为数据流命名时,可以从其组成成分或含义角度来考虑。数据流可以从过程流向过程,从过程流向数据存储或从数据存储流向过程,也可以数据源点流向过程或从过程流向数据终点,两个过程之间可以有几股数据流。检查取款单合理性取款单合理取款单不合理取款单账目生产统计生产日报生产月报生产统计报表+结构化分析与设计过程/加工(Process):表示系统要执行的一个功能。过程是对数据进行的操作,如果把数据流比喻为工厂的传送带,则过程就好像工厂里的加工工序。每个过程都要有一个确定的名称来命名,名称的选取要能够反映过程的主要功能。每个过程一般有一个编号,编号说明该处理在层次分解中的位置。结构化分析与设计过程通常以下列方式处理数据:只改变数据流的状态,但不改变数据流的结构。将一种数据流转换为另一种数据流,即数据流的结构发生了变化。检查取款单合理性取款单合理取款单不合理取款单账目生产统计生产日报生产月报生产统计报表+结构化分析与设计实体(Entity):也称为外部项,它既可以作为数据流的源,也可以作为数据流终点。学生审查并开发票开领书单学生购书单发票领书单无效购书单数据流源点数据流终点结构化分析与设计数据存储(DataStore):表示数据的存储位置。数据存储和过程之间存在三种数据流:如果过程要读数据,则数据是从数据存储流出;如果过程要写或修改数据,则数据流是流向数据存储;如果过程既要读数据,又要写数据,则数据流是双向的。结构化分析与设计数据流之间的关系:与关系(用“*”表示)、或关系(用”+”表示)、互斥关系(用“”表示)。生产统计生产日报生产月报生产统计报表+或关系检查取款单合理性取款单合理取款单不合理取款单账目*互斥关系与关系结构化分析与设计结构化分析与设计分层次DFD对于一个大型的系统,如果用一张数据流图画出所有的数据流和过程,则图纸将极其庞大复杂,因而难于理解。为了达到简单性要求,通常采用层次或自顶向下分解的方法,将系统DFD中的每一个过程视为一个子系统,然后继续向下分解,直到每一个过程容易理解为止,这就是结构化分析方法“自顶向下、逐步分解”的基本原则。分层DFD由:顶层、底层和中间层组成。(1)顶层DFD说明系统边界,即系统的输入和输出数据流,顶层DFD只有一张。(2)底层DFD由一些不可再分解的过程组成,这些过程称为基本加工。(3)在顶层和底层之间的是中间层,中间层的DFD描述了某个过程的分解,而它的组成部分又要进一步分解。结构化分析与设计教材购销系统学生书库保管员购书单领书单缺书单进书通知顶层DFD1销售学生书库保管员购书单领书单缺书单进书通知2采购F1教材存量表F2缺书登记进书通知第2层DFD(0)教材购销系统的层次DFD结构化分析与设计1.1审查购书单有效性学生购书单无效购书单领书单发票F1教材存量表F2缺书登记进书通知第3层DFD-销售子系统(1)1.2开发票1.3打印发票1.4登记售书和打印领书单1.5登记缺书1.6产生补售书单采购有效购书单F3学生用书表F4售书登记表发票学生暂缺书单补售书单结构化分析与设计销售F1教材存量表F2缺书登记进书通知2.3修改教材库存和待购量2.2按出版社统计缺书2.1按书号汇总缺书F5待购教材表F6教材一览表书库保管员缺书单进书通知第3层DFD-采购子系统(2)结构化分析与设计绘制分层DFD时应该注意以下几个方面问题:编号父图与子图的平衡局部数据存储和局部外部数据存储分解程度结构化分析与设计编号:为了便于管理,需要按照以下规则为数据流图和其中的加工编号:顶层DFD无图号,顶层加工不编号;第二层DFD的图号为0,第二层DFD中的加工编号为1,2,…,n;第三层每个DFD的编号就是父图中加工的编号,第三层每个DFD中加工的编号由DFD图号、小数点和局部号构成,以下各层以此类推。120ABABV图编号1.11.21.3AVMN1处理编号结构化分析与设计父图与子图的平衡:父图中某个加工的输入输出数据流应该与相应子图的输入输出数据流相同,层次DFD的这种特点称为“平衡”。平衡是指子图的所有输入数据流必须是父图中相应过程的输入数据流,子图的所有输出数据流必须是父图中相应过程的输出数据流。结构化分析与设计局部数据存储和局部外部数据存储随着DFD图的分解,在下层DFD中允许出现父图中没有的数据存储和外部实体。除了底层DFD需要画出全部数据存储外,各中间层的DFD仅显示处于过程之间的接口数据存储,其余数据存储不必画出来,以保持图面的简洁。结构化分析与设计F5和F6是采购子系统局部数据存储,与父图中的其它加工无关,所以在父图中不必画出。F1和F2是采购子系统与销售子系统之间的接口,所以在父图中必须画出。结构化分析与设计分解程度分解应该自然,概念上合理、清晰;只要不影响DFD的易理解性,可以适当地多分解,这样可以减少DFD的层数;一般来说,在上层分解的快一些,而在下层则分解得慢些,这是因为约接近下层功能越具体,分解速度快会增加用户理解的困难;每一加工分解的子加工一般不超过7个。结构化分析与设计加工规格说明(ProcessSPECification,PSPEC)加工规格说明:是对DFD中每个加工所作出的说明。加工规格说明是由输入数据、过程逻辑和输出数据等部分组成,过程逻辑阐明把输入数据转换为输出数据的策略,是加工规格说明的主体。加工规格说明的主要描述方法:结构化语言:自然语言加上结构化的形式,就形成了结构化语言。判定表:判定表采用表格化的形式,适合于表达含有复杂判断的加工逻辑。判定树:判定树是判定表的图形表示,其适用场合与判定表相同。结构化分析与设计结构化分析与设计实体关系图(E-R图)历史1976,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型。1977年,Smith扩展了特殊化、概括和聚集的概念。观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。E-R模型中的基本概念实体:客观存在并可相互区分的事务叫做实体。例如,学生张三、学生李四、软件工程课程、操作系统课程等。属性:实体所具有的某一特性。一个实体可以由若干个属性来刻画。例如,学生可以由学号、姓名、年龄、性别、系别等属性来刻画。域:属性的取值范围。例如,性别的域为{男,女}。实体型:实体名与其属性名集合共同构成实体型。实体是实体型的一个特例。例如,学生(学号,姓名,年龄,性别,系别,年级)是一个实体型,而学生(980701,张三,22,男,计算机科学与技术学院,3)是一个实体。结构化分析与设计结构化分析与设计实体集:同型实体的集合称为实体集。码:能唯一标识实体的属性或属性组称为超码。超码任意超集也是超码。其任意真子集都不能成为超码的最小超码称为候选码。从所有候选码中选择一个用来区别同一实体集中的不同实体,称为主码。联系:实体之间的相互关联。例如,学生与课程之间的选课联系。联系可以具有属性。例如,每个选课联系都有一个成绩作为其属性。同类联系的集合称为联系集。元或度:参与联系的实体集的个数称为联系的元。例如,学生选课是二元联系,供应商向工程供应零件则是三元联系。结构化分析与设计参与:实体之间的关联称为参与,即实体参与联系。例如,张三选修软件工程,表示实体“张三”与“软件工程”参与联系“选修”。全参与:如果实体集E中的每个实体都参与到联系集R中的至少一个联系,则称E全部参与R。部分参与:如果实体集E中只有部分实体参与到联系集R的联系中,则称E部分参与R。例如,“职工”与“部门”之间的“管理”联系,“职工”实体集部分参与,而“部门”实体集完全参与。结构化分析与设计学号姓名年龄学生课程选课mn性别系别年级课程号学分课程名结构化分析与设计角色:实体在联系中的作用称为实体的角色。当同一实体集不止一次参与一个联系集时,为区分各实体的参与联系方式,需要显式指明其角色。例如,学生与学生之间的班长关系,职工与职工之间的经理关系等。职工经理工作部门职工号管理姓名职务部门号部门名1m管理1m双线表示完全参与表示实体的角色结构化分析与设计简单属性:不可再分的属性。例如,学号、年龄等。复合属性:可以划分为更小的属性。例如,电话号码=区号+本地号码。单值属性:每个特定实体在该属性上的取值唯一。例如,学生的学号、年龄、性别、系别等。多值属性:某个特定实体在该属性上有多于一个取值。例如,学生的所选课程。NULL属性:表示“无意义”或者“未知值”。派生属性:派生属性可以从其他相关属性或实体派生出属性值。结构化分析与设计联系的种类:实体之间的联系的数量,即一个实体通过一个联系能与另一个实体集相关联的实体的数目。联系可以分为三类:一对一(1:1)、一对多(1:n)和多对多(m:n)。二元联系集:设有两个实体集E1和E2。一对一:E1中的一实体与E2中的一个实体相联系,并且E2中的一个实体与E1中至多一个实体相联系。一对多:E1中的一实体与E2中n(n0)个实体相联系,并且E2中的一个实体与E1中至多一个实体相联系。多对多:

E1中的一实体与E2中n(n0)个实体相联系,并且E2中的一个实体与E1中m(m0)个实体相联系。结构化分析与设计教师班级班主任11教师学生班主任1n学生课程选课mn结构化分析与设计多元联系集:设有n个实体集E1,E2,…,En,若对E1,…,Ei-1,

Ei+1,…,En,分别给定实体e1,…,ei-1,ei+1,…,en时,至多有一个实体ei与之联系,则称有一个从Ei到E1,…,Ei-1,Ei+1,…,En的一对多联系。学生课程选课mn成绩1结构化分析与设计存在依赖:如果实体X的存在依赖于实体Y的存在,则称X存在依赖于Y,其中,Y称为支配实体,X称为从属实体,如果Y被删除,X也要配删除。例如,考虑订单和订单项实体,对于一个订单实体,有若干个订单项实体与之关联,订单项实体依赖于订单实体。弱实体集:如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集。弱实体集与其拥有者之间的联系称为标识性联系。弱实体集与存在依赖:弱实体集必然存在依赖于强实体集。存在依赖并不会总导致一个弱实体集,从属实体集可以有自己的主码。例如,实体集信用卡(信用卡号,客户账号,金额),它存在依赖于客户账号实体集,但信用卡有自己的主码信用卡号。结构化分析与设计部分码:弱实体集中用于区别依赖于某个特定强实体集的属性集合称为部分码。例如,订单项中的订单项号。弱实体集的主码由该弱实体集所存在依赖的强实体集的主码和该弱实体集的部分码组成。例如,订单项的主码=订单号+订单项号。包含订单项订单订单号金额订单项号价格产品数量产品编号产品名称价格产品编号隶属金额结构化分析与设计E-R模型中的扩展概念特殊化:实体集中的某些子集具有区别于该实体集内其它实体的特性,可以根据这些差异特性对实体集进行分组,这一分组的过程称作特殊化。细化:父类子类特例更小的实体集更多的属性。例如,银行帐号可以有存款账号、贷款账号,学生可以有本科生、研究生等。特殊化联系(ISA联系):表示高层实体和底层实体之间的“父类-子类”联系。结构化分析与设计概括:各个实体集根据共有性质,合成一个较高层的实体的过程称为概括。概括是一个高层实体集与若干个底层实体集之间的包含关系。泛化:子类父类。概括与特殊化:概括与特殊化是个互逆的过程,在ER图中的表示方法相同;特殊化强调同一实体集内不同实体之间的差异,概括强调不同实体集之间的相似性;属性继承:高层实体集的属性被底层实体集自动继承。底层实体集特有的性质仅适用于某个特定的底层实体集。结构化分析与设计学生学号姓名ISA本科生研究生ISA军训硕士博士发表论文ISA职工工号姓名结构化分析与设计成员资格:确定哪些高层实体如何成为给定底层实体集的成员。条件定义:一个高层实体成员资格的确定该实体是否满足一个显式的条件或谓词。例如,“学生”实体集具有属性“学生类型”,则所有的学生实体根据“学生类型”进行成员资格认定,如一个学生的学生类型=“本科生”,则他就可以归入底层“本科生”实体集中。由用户定义:由用户来指定一个实体归入哪个底层实体集。例如,一个学生被老师分配到某个项目组。结构化分析与设计成员身份:确定一个高层实体是否可以属于多个底层不同实体集。不相交的:一个实体至多属于一个底层实体集。例如,一个学生只能参加一个项目组。相重叠的:同一个实体可以同时属于同一概括的多个底层实体集。例如,一个老师可以参加多个项目组。全部性约束:确定高层实体集中的一个实体是否必须属于某个概括的至少一个底层实体集。全部的:每个高层实体必须属于一个底层实体集。例如,学生必须属于“本科生”或“研究生”的一种。部分的:允许一些高层实体不属于任何底层实体集。例如,学生可以不属于任何项目组。结构化分析与设计聚集:聚集是一种抽象,通过它联系被作为高层实体集。例如,职工参加项目,并在此过程中可能使用机器,那么如何表达联系之间的联系。职工职工号参加并使用姓名职务项目类型名称机器机器名型号工时结构化分析与设计职工职工号参加并使用姓名职务项目类型名称机器机器名型号工时使用结构化分析与设计实体集弱实体集联系集多值属性标识联系集主码属性导出属性弱实体集导出属性实体集联系集实体集联系集角色名完全参与ER图的符号表示(1)结构化分析与设计联系集多对多联系多对一联系联系集联系集一对一联系实体集联系集1:h基数限制ISA全部概括ISA特殊化/概括ER图的符号表示(2)软件需求分析IDEF1X图IDEF是在实体联系图的原则基础上,增加一些规则,使语义更丰富的一种方法。IDEF1X中的概念实体:独立标识实体、依赖标识实体关系:标识联接关系、非标识联接关系、分类关系、非确定关系属性/关键字:主关键字、次关键字、外来关键字软件需求分析实体:表示具有相同属性或特征的一个现实或抽象事物的集合。实体的实例是实体抽象概念的一个具体的值。实体分为独立标识实体:不依赖于其它实体存在的实体。依赖标识实体:必须依赖于其它实体才能存在的实体,也称为从属实体。实体名/实体号实体名/实体号独立实体表示符号依赖实体表示符号学生/1学生成绩/2软件需求分析属性:属性表示实体的特征或性质。

候选关键字:候选关键字是由一个实体中的一个或多个属性组成,它唯一确定实体的每一个实例。主/次关键字:每个实体至少有一个候选关键字。如果一个实体中有多个候选关键字,则制定其中的一个为主关键字,其它关键字为次关键字。实体名/实体号属性名[属性名]…[属性名](AK1)[属性名](AK2)[属性名](AK2)…主关键字属性次关键字雇员/1雇员号身份证号码(AK1)雇员名(AK2)生日(AK2)…软件需求分析发票/2发票编号学号姓名书费合计发票行/3发票编号发票行号书号单价数量总价独立标识实体依赖标识实体(不能脱离发票而独立存在)软件需求分析确定联接关系:是实体间的一种关系,在这种关系中被称为父实体的每一个实例与子实体的0、1或多个实例联接,子实体中的每个实例同父实体中的0或1个实例联接。标识联接关系:在标识连接关系中,父实体的主关键字属于子实体的主关键字。非标识连接关系:在非标识连接关系中,父实体的主关键字不属于子实体的主关键字。实体A/1关键字A实体B/2关键字A(FK)关键字B父实体关系名子实体标识联接关系软件需求分析零个、1个或多个P1个或多个Z0个或1个n只有n个nm有n到m个(n)参考注释中的说明实体A/1关键字A实体B/2关键字B父实体关系名子实体关键字A(FK)非标识联接关系软件需求分析发票/2发票编号学号姓名书费合计发票行/3发票编号发票行号书号单价数量总价包含软件需求分析分类关系:一般实体分类实体分类实体集鉴别器分类属性软件需求分析分类关系分为:完全分类关系:完全分类关系是联接两个或多个实体之间的关系,在这些实体中,存在一个一般实体,它的每个实例恰好与一个且仅与一个分类实体的一个实例相联系。一般实体的每个实例和与之相关联的一个分类实体实例描述的是现实世界的同一事物。非完全分类关系:它允许一般实体的一个实例不与任何分类实体的实例相联系,即对一般实体的分类是不完全的。软件需求分析一般实体一般实体鉴别器分类实体分类实体鉴别器完全分类关系非完全分类关系软件需求分析结构化分析方法结构化分析:就是使用DFD、E-R图、结构化语言、判定表和判定树等工具建立结构化规格说明的目标文档。结构化分析方法步骤画出层次的数据流图确定数据定义与加工策略需求分析的复审结构化分析与设计案例:教材购销系统画出分层次数据流图结构化分析与设计结构化分析与设计确定数据定义与加工策略数据流:领书单、发票、缺书单、购书单、补售书单、进书通知。数据存储:教材存量表、缺书登记、学生用书表、售书登记数据流:缺书单、进书通知。数据存储:教材存量表、缺书登记、待购教材表、教材一览表结构化分析与设计编号名称属性集教材一览表书号,书名,出版社,版次,作者,单价学生用书表专业,学期,书号,书名购书单购书单号,学号,姓名,购书单项(书号,书名,数量)发票发票号,学号,姓名,日期,书费合计,发票项(书号,书名,单价,数量,总价)售书登记学号,姓名,书号,数量缺书登记学号,姓名,书号,数量教材存量表书号,单价,数量数据字典结构化分析与设计发票发票号学号教材购销系统实体关系图(1)姓名书费合计包含发票项单价数量总价书号每个发票可以生成多个售书登记,每个售书登记可以由多个发票生成。发票购书单号售书登记姓名书号数量学号售书登记生成结构化分析与设计发票发票号学号姓名书费合计包含发票项单价数量总价书号发票购书单号购书单购书单号姓名学号数量包含购书单项书号生成0..1购书单1.每个购书单生成一个发票,发票中的学号和姓名字来自于购书单。2.每个购书单项生成一个发票项,发票项中的书号和数量来自于购书单项。教材购销系统实体关系图(2)结构化分析与设计发票发票号学号姓名书费合计包含发票项单价数量总价书号发票购书单号教材存量表书号单价数量教材存量表销售定价1.发票项中每个书号的价格需要根据教材存量表中相应书号的价格来确定。2.发票项中数量如果大于教材存量表中数量,则需要生成缺书登记;3.每次生成发票项,教材存量表中的数量都减少发票项中的数量。教材购销系统实体关系图(3)结构化分析与设计发票发票号学号姓名书费合计包含发票项单价数量总价书号发票购书单号缺书登记姓名书号数量学号生成每个发票可以生成多个缺书书登记,每个缺书登记可以由多个发票生成。缺书登记教材购销系统实体关系图(4)结构化分析与设计缺书登记姓名书号数量学号补售书单补售书单号姓名学号数量包含补售书单项书号生成每个缺书登记可以生成多个补售书单。每个补售书单可以由多个缺书登记生成。补售书单缺书登记教材购销系统实体关系图(5)结构化分析与设计待购教材表书号数量待购教材表教材一览表书号书名教材一览表教材购销系统实体关系图(6)结构化分析与设计实体编号实体名称实体描述1学院/系2专业3教材表4学生用书表5教材存量表6学生7售书登记8购书单9购书项10发票11发票行12缺书登记13补售书单14补售书项15待购教材表实体集合结构化分析与设计学生/6学号姓名专业编号[FK]年级教材存量表/5书号书名单价数量教材表/3书号书名出版社版次作者单价学院/1学院编号学院名称专业/2专业编号专业名称学院编号[FK]专业编号[FK1]年级书号[FK2]书名学生用书表/4售书登记表/7学号书号数量结构化分析与设计发票/10发票号学号姓名书费合计发票行/11发票号书号书名单价数量总价购书单号学号姓名购书单/8购书项/9购书单号书号书名数量缺书登记表/12学号书号书名数量补售书单/13补售书单号学号姓名补售书项/14补售单号书号书名数量待购教材表/15书号书名数量结构化分析与设计教材信息维护教材表学生用书信息维护学生用书表专业专业信息维护学院学生信息维护学生表基础数据管理结构化分析与设计1.1审查购书单有效性学生购书单领书单发票教材存量表缺书登记进书通知1.2开发票1.3打印发票1.4登记售书1.5登记缺书1.6产生补售书单采购有效购书单学生用书表售书登记表发票学生暂缺书单补售书单1.7开领书单销售管理无效购书单结构化分析与设计销售教材存量表缺书登记进书通知2.2按出版社统计缺书2.1按书号汇总缺书待购教材表教材表书库保管员缺书单进书登记表2.3进书登记2.4修改教材库存2.5修改待购量进书通知进书通知统计缺书登记进书采购管理例.

“开发票”的加工规格说明(采用结构化语言)结构化分析与设计软件需求分析软件需求说明软件需求说明(SRS):是软件开发人员在需求分析阶段需要完成的文档。例如,IEEE830-1998、GB856D-88。软件需求说明主要内容引言:叙述在问题定义阶段确定的关于软件的目标与范围,简要地介绍系统背景、概貌、软件项目约束和参考资料等;主体部分:信息描述、功能描述、行为描述信息描述:给出软件所包含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。软件需求分析功能描述:对软件功能要求说明,包括系统功能划分、每个个功能的处理说明、限制和控制描述等。行为描述:对系统状态变化以及事件和动作的叙述,据此可以检查外部事件和软件内部控制特征。质量保证接口描述其它描述结构化分析与设计从结构化模型导出结构化设计模型

数据词典

体关

状态转换图

明明

据对

述过程设计

接口设计

体系结构设计

数据设计

结构化设计体系结构设计:定义软件主要组成部件之间的关系;接口设计:描述软件内部、软件和接口、系统之间以及软件与人之间是如何通信的;过程设计:将软件体系结构的组成部分转变成对软件组件的过程性描述。数据设计:将分析阶段创建的信息模型转变成软件实现所需的数据结构;结构化分析与设计结构图(StructureChart,SC)结构图:软件结构概要设计阶段的工具,反映系统的功能实现以及模块与模块之间的联系与通信,即反映了系统的总体结构。结构图的表示方法:用矩形表示模块,用带箭头的连线表示模块间的调用关系。在调用关系的两旁,标出传入和传出模块的数据流。模块模块间调用关系SC图的符号传入/传出数据流结构化分析与设计结构图的6种模块:传入、传出、变换、源、漏和控制。(a)传入XY(b)传出YXXY(c)变换X(d)源X(e)漏(f)控制…结构化分析与设计SC图中的模块调用简单调用:调用线的箭头指向被调用模块。例如,在图(a)中,允许模块A调用模块B和C,反之则不可以。调用B时,A向它传送数据流X和Y,B向A返回数据流Z。调用C时,A向C传送数据流Z。BACX,YZZBAC12入出X,YZZ-12(a)简单调用两种表示方法结构化分析与设计ABCDX,YZZY(b)选择调用表示方法选择调用:用菱形符号表示选择。例如,图(b)的左侧的菱形表示:模块A根据它内部的判断,来决定要不要调用模块B;右侧的菱形表示:模块A按照另一判断结果,选择调用模块C或模块D。ABC12(c)循环调用表示方法循环调用:用叠加在调用线始端的环形箭头表示循环。例如,下图含义是:模块A将根据其内在的循环重复调用B,C等模块,直到在A模块内部出现满足循环终止的条件为止。结构化分析与设计数据流图的类型变换型结构:这类结构由3部分组成:传入路径(AfferentPath)、变换中心(TransformCenter)和传出路径(EfferentPath)。流经这3部分的数据流分别称为传入流、变换流和传出流。变换中心传入路径传出路径基本模型传入流传出流

变换流时间数据流信息结构化分析与设计事务型结构:这类结构由至少一条接受路径(ReceptionPath)、一个事务中心(TransactionCenter)与若干条动作路径(ActionPath)组成。变换中心接受路径动作路径事务型结构的系统基本模型...……T变换传入传出事务中心同时存在两种结构的系统结构化分析与设计体系结构设计方法的步骤复审DFD图,必要时可再次进行修改或细化;鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型;按照SD方法规定一组规则,把DFD图转换为初始的SC图;按照优化设计的指导原则改进初始的SC图,获得最终SC图。结构化分析与设计变换型DFD图初始SC图事务型DFD图初始SC图DFD向初始SC映射方法变换映射(TransformMapping)事务映射(TransactionMapping)结构化分析与设计变换映射步骤1:区分传入、传出和变换中心3个部分,划分DFD图边界。例如,对下面DFD图进行划分,区分传入、传出和变换中心3部分。结构化分析与设计ABCPRWUVDEQabcderpwuv变换中心传入部分传出部分步骤2:完成“第一级分解”,建立初始SC图的框架。初始SC图的框架通常包括最上面的两层模块:顶层和第一层。任何系统的顶层只含有一个用于控制的主模块。它的下一层一般包括传入、传出和中心变换3个模块,分别代表系统的3个相应分支。主模块传入模块变换中心模块传出模块结构化分析与设计MCMAMTMEc,ec,ew,uw,u第一级分解后的SC图结构化分析与设计ABCPRWUVDEQabcderpwuv变换中心传入部分传出部分步骤3:完成“第二级分解”,细化SC图的各个分支。对上步的结果继续进行由顶向下的分解,直至画出每个分支所需要的全部模块,称为“第二级分解”或“分支分解”。这一步得到的结果便是系统的初始SC图。ABCDEMAabcdec,e传入分支的分解结构化分析与设计WVUMEwvuw,u传出分支的分解MTQw,uPRepc,prr中心加工分支的分解结构化分析与设计MCc,ec,ew,uw,uABCDEMAabcdeMTQw,uPRepc,prrWVUMEwvu顶层第一层第二层初始SC图事务映射步骤1:在DFD图上确定事务中心、接受部分(包括接受路径)和发送部分(包括全部动作路径)。例如,对下面DFD图进行划分,区分接受部分、事务中心和传出部分。ATBCDEFHIJ事务中心接受部分发送部分⊕⊕结构化分析与设计abehcdfij步骤2:画出SC图初始框架,把DFD图的3个部分分别映射为事务中心控制模块、接受模块和动作模块。SC图的初始框架是分为两个层次,如图(a)所示。如果第一层模块比较简单,也可以并入顶层,形成如图(b)所示的单层结构。事务控制模块接受模块发送模块顶层第一层事务控制事务分析发送(b)单层结构结构化分析与设计(a)典型的两层结构结构化分析与设计APTATBCDEFHIJ事务中心接受部分发送部分⊕⊕abehcdfijab,e,hbeh初始SC框架结构化分析与设计步骤3:分解和细化接受分支和发送分支,按成初始SC图。典型的动作分支结构分为四层:处理层P、事务层T、操作层A和细节层D。PT1T2TiA1A2A3AjD1D2Dk处理层事务层操作层细节层处理层相当于发送模块每一个动作路径映射为一个事务模块操作层和细节层的模块被上层模块所共享,可以被多个上层模块调用结构化分析与设计APTT1T2T3ab,e,hbehBCDEFHIJbccddeffhi,jij顶层处理层事务层操作层初始SC图AbBC2DC3C1EGFJKLb1c1b2b3c2defgc3hjklam⊕⊕思考题:将下列DFD图转换为初始SC图。结构化分析与设计判断DFD图的结构类型。AbBC2DC3C1EGFJKLb1c1b2b3c2defgc3hjklam⊕⊕传入部分变换中心传出部分接收部分事务中心发送部分结构化分析与设计MCMAMTMEddkkAbBC2DC3C1EGFJKLb1c1b2b3c2defgc3hjklam⊕⊕传入部分变换中心传出部分第一级分解后的SC图结构化分析与设计优化初始SC图的指导原则对模块划分的原则以提高模块的独立性为首要标准提高内聚,降低耦合,简化模块接口少用全局性数据和控制信息模块大小适中(10到100行)结构化分析与设计高扇入/低扇出的原则扇入:调用一个给定模块的次数。扇入高则上级模块多,能够增加模块的利用率。扇出:一个模块直接调用其它模块数目。扇出低则表示下级模块少,可以减少模块调用和控制的复杂度。通常扇出数以3-4个为宜,最好不超过5-7个。M…M…M的扇入M的扇出结构化分析与设计通过增加中间层减少扇出MM煎饼形结构塔形结构结构化分析与设计M瓮形结构设计良好的软件通常具有瓮形结构,两头小,中间大。结构化分析与设计1.1审查购书单有效性学生购书单领书单发票F1教材存量表F2缺书登记进书通知1.2开发票1.3打印发票1.4登记售书1.5登记缺书1.6产生补售书单采购有效购书单F3学生用书表F4售书登记表发票学生暂缺书单补售书单1.7开领书单教材购销系统的结构设计示例修改后销售子系统DFD图无效购书单结构化分析与设计初售补售销售F1教材存量表F2缺书登记进书通知2.2按出版社统计缺书2.1按书号汇总缺书F5待购教材表F6教材一览表书库保管员缺书单F7进书登记表修改后采购子系统DFD图结构化分析与设计2.3进书登记2.4修改教材库存2.5修改待购量进书通知进书通知统计缺书登记进书初始SC图教材购销系统读出用户选择销售采购用户命令销售命令采购命令教材购销系统上层框架初售补售初售命令补售命令统计缺书登记进书统计命令登记命令结构化分析与设计采购统计缺书登记进书按书号汇总缺书按出版社统计缺书打印缺书单修改教材待购量修改教材库存量统计命令缺书登记表待购教材表待购教材表缺书单缺书单进书通知进书通知登记命令采购子系统初始SC图结构化分析与设计销售初售补售获取购书单有效性开发票开领书单打印发票获取补售书单登记缺书审查购书单有效性读购书单读进书通知初售命令补售命令有效购书单有效购书单购书单有效购书单发票暂缺书单发票补售书单领书单领书单补售书单进书通知销售子系统初始SC图登记售书发票结构化分析与设计结构化分析与设计教材购销系统销售管理采购管理基础数据管理模块设计(过程/接口/数据设计)目的:为软件结构图SC中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出更清晰的描述。任务:为每一模块编写过程设计说明书,并设计出一组测试用例,以便在编码阶段对模块代码进行预定的单元测试。为每个模块确定采用的算法。选择某种适当的工具表达算法的过程,写出模块的详细过程描述;确定每一模块使用的数据结构;确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节。结构化分析与设计模块设计的原则与方法清晰第一的设计风格结构化的控制结构逐步细化的实现方法1选择顺序1TFFT循环(do-While)FT循环(do-unti)结构化分析与设计Case1Case2Casen…多分支结构(Case)…GOTOn...n……GOTOn……n……允许的转移不允许的转移Goto语句允许和不允许用法结构化分析与设计常用的表达工具流程图和N-S图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论