版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,软件工程,北京工业大学软件学院 石振莲 67396121 ,Unit 3 软件开发技术,Unit Objectives,了解并掌握工程软件开发的几种技术方法 结构化软件开发技术 面向对象软件开发技术 专家系统软件开发技术,各种方法特点比较,从概念方面看 结构化软件是功能的集合,通过模块以及模块和模块之间的分层调用关系实现; 面向对象软件是事物的集合,通过对象以及对象和对象之间的通讯联系实现; 专家系统软件是知识的集合,通过知识以及知识和知识之间的逻辑推理关系实现。,各种方法特点比较(Cont.),从构成方面看 结构化软件过程数据,以过程为中心; 面向对象软件(数据相应操作)的封装,以数据为中
2、心; 专家系统软件知识推理,以知识为中心。,各种方法特点比较(Cont.),从运行控制方面看 结构化软件采用顺序处理方式,由过程驱动控制; 面向对象软件采用交互式、并行处理方式,由消息驱动控制; 专家系统软件采用交互式、并行处理方式,由数据驱动控制。,各种方法特点比较(Cont.),从开发方面看 结构化方法的工作重点是设计; 面向对象方法的工作重点是分析; 专家系统方法的工作重点是知识的获取与表达。,各种方法特点比较(Cont.),从应用方面看 结构化方法更加适合数据类型比较简单的数值计算和数据统计管理软件的开发; 面向对象方法更加适合大型复杂的人机交互式软件和数据统计管理软件的开发; 专家系
3、统方法更加适合逻辑推理型软件的开发。,各种方法特点比较(Cont.),从发展方面看,面向对象方法是软件开发方法的发展方向。,结构化软件开发技术,结构化分析技术 结构化设计技术 结构化实现技术,分析:问题是什么 设计:怎样解决 实现:解决分析 确定数据流图(DFD) 建立结构图(SC) 过程设计 分析确定实体联系图(ERD) 建立关系数据模式(RM) 编码调试 运行维护,Where are we ?,结构化分析技术 结构化设计技术 结构化实现技术,结构化分析技术内容和任务,采用结构化分析(Structured Analysis ,SA)技术对问题进行分析建模,将问题表述为: + 数据流图问题空间
4、中数据变换处理之间的逻辑关系 实体联系图问题空间中数据存贮之间的逻辑关系,数据流图,实体联系图,结构化分析技术内容和任务,结构化分析工作内容及步骤,例:大学教务管理问题,问题描述: 接受学生提交的学生证和申请单 根据学生档案情况检验学生证的有效性和申请单是否填写的正确 如果有误则谢绝,如果无误则根据学生的注册记录情况审查接收学生的申请要求 如果是申请注册,则进行注册登记 如果是申请选课,则先查询课程档案是否有满足申请要求的课程,如果有则进行选课登 记,如果没有则通知学生无此课,结构化分析技术数据流图(DFD),大学教务管理问题数据流图,数据流图(DFD)基本数据流图,画数据流图时,需注意:,是
5、画数据流图而不是画程序框图 对于很多人来说,通过学习计算机语言已经比较熟悉程序框图了,在画数据流图时很容易将它们搞混。 程序框图是从对数据进行加工的角度描述系统的,其箭头是控制流,表示的是对数据进行加工的次序,它用于描述怎样解决问题; 数据流图则是从数据的角度来描述系统的,其箭头是数据流,表示的是数据的流动方向,它用于描述是什么问题。,画数据流图时,需注意:(Cont.),数据流及加工的命名 通常是先为数据流命名,然后再为加工命名。 在给数据流命名时,应避免使用象“数据”、“输入”之类的缺乏具体含义的名字; 在给加工命名时,理想的做法是取由一个具体的及物动词加一个具体的宾语构成的名字,如果必须
6、用两个动词,则可以考虑将这个加工再分解成两个加工。 在命名时,所取的名字应适合整个数据流或加工,而不是仅仅反映它的某些成分。 如果发现某个数据流或加工难以命名,那么很可能是数据流图分解不当造成的,此时应该考虑重新分解数据流图。,数据流图(DFD)分层数据流图,对于比较复杂的实际问题,在数据流图上常常出现十几个乃至几十个、上百个加工,这样的数据流图看起来很不清楚。采用层次结构的数据流图则能很好地解决这个问题。,系统加工 S,数据输入,数据输出,I1,In,O1,Om,分层数据流图,在画分层数据流图应考虑的问题:,编号 为便于管理和阅读,要对每个层次上的图及其加工进行编号。层次编号自上而下分别为顶
7、层图(系统图)、0层图、1层图、等等。各层图的关系为父子关系,下层图为子图,上层图为父图。子图的编号就是其父图中相应加工的编号;子图中加工的编号由子图号、小数点和局部号组成。在这种编号中,图号中的小数点的个数就是该图所在的层次号,最后一个小数点前的号码就是其父图的编号。 例如,编号为3.2.1的图,是2层图中的一个子图,其父图 编号为3.2。,在画分层数据流图应考虑的问题:,父图和子图的数据平衡 子图是父图的细化,因此,子图的输入、输出数据流应和父图中相应加工的输入、输出数据流一致。,在画分层数据流图应考虑的问题:,分解的程度 对一个加工进行细化分解,一次分解成两个或三个加工,可能需要的层次过
8、多;但分解得过多又难于让人理解。,分解的程度(Cont.),在进行重新分解时,可按下述步骤进行: 把需要重新分解的数据流图的所有子图拼接成一张图; 把新拼接成的图分成几个部分,使各部分之间的联系最少; 重新建立父图,把图中的每一部分画成一个圆圈,各部分之间的联系就是加工间的界面了; 重新建立各张子图,这只需要把所得的各个部分分开即可; 为所有的加工重新命名和编号。,在画分层数据流图应考虑的问题:,图表格式 对于一个较大的系统来说,其数据流图可能多达十几张、几十张,一般都将它们装订成册。为了方便收集、整理和阅读,可以设计一个类似图表进行格式化。 假设大学教务管理系统是大学教学管理系统0层数据流图
9、中的第2个子加工,是1层数据流图中的一 个子图。,图表格式,数据流图图表格式,数据流图数据流图的改进(1),检查数据流图的正确性 数据是否守恒 数据存贮的使用是否恰当 父图和子图的是否平衡 提高数据流图的易理解性 简化加工间的联系 保持分解的均匀性 适当命名,数据流图数据流图的说明,数据词典(Data Dictionary,简称DD) 数据流 数据存贮 加工,数据流图说明数据词典,大学教务管理问题: (D01) 学生证 = 学号+密码 (D02) 申请单 = 学号+(课程号+选课学期) (D03) 谢绝 = “非法证件”|”不合格单“|”证单不符“ (D04) 注册 = 学号 (D05) 选课
10、 = 学号 + 课程号+选课学期 (D06)无此课 = 学号+课程号 + “无此课” (D07) 注册记录无效=学号+”注册无效“ (d01.1) 学号 = “00000001”.”99999999” (d01.2) 密码 = “000001” .”999999” (d02.2) 课程号 =1英文字母4+”0001”.”9999” (d02.3) 选课学期 = “0001”.”9999”+“春季”|”秋季”,数据流图说明数据词典,数据存贮表示 文件形式 文件组成数据项 (F1)借书记录 = 证号+姓名+书号+书名+借书日期 (F2)库存书目 = 书号+书名+”库存总数“+”现库存数 (F1.5
11、)借书日期 = 日期 文件组织方式 借书记录=按借书日期先后排列 库存书目=按书名先后排列 数据库形式,数据流图说明数据词典,加工表示 结构化语言 判定表 判定树,结构化语言 加工编号:2.1 加工名: 检验 加工逻辑:读入“学生证”及“申请单”,检验“学生证”的有效性和“申请单”的合格性,如果检验均通过则让“申请单”通过,否则输出“谢绝”,判定表 描述一些结构化语言不易表达清楚的加工逻辑 旅游时间 79月,12月 16月,10月,11月 订票量 50 50 折扣量 5% 15% 20% 30%,判定树,订票量50: 15% 79,12月 订票量50: 30% 16,10,11月 订票量=50
12、: 20%,结构化分析技术实体联系图(Entity-Relationship DiagramER),数据流图描述了系统的逻辑结构,数据流图中的有关加工及数据流和文件的含义可用数据词典具体定义说明,但是对于比较复杂的数据及其之间的关系,用它们是难以描述的,在这种情况下一般采用实体联系图进行描述。 实体联系图 (Entity-Relationship Diagram,简称ER图),可用于描述数据流图中数据存贮及其之间的关系,它是数据库概念设计的最常用的工具。,实体联系图基本实体联系图,大学教务处教务管理问题实体联系图,实体联系图的基本成分,实体 独立实体 从属实体,联系 实体之间的各种关系。 例如
13、,“学生”与“课程”之间有“选课”的关系。这种实体和实体之间的关系被抽象为联系。 在实体联系图中,联系用菱形框表示,联系可以是一对一(1:1),一对多(1:N)或多对多(M:N)的,这一点在实体联系图中 也应说明。 例如在大学教务管理问题中,“学生”与“课程”是多对多的“选课”联系联系。,属性 实体一般具有若干特征,这些特征就称为实体的属性。 主键 外键 属性域 属性值,实体属性图,实体联系图扩充实体联系图,以实体、联系和属性等基本概念为基础的实体联系图是基本实体联系图。为了满足新的应用需求和表达更多的语义,实体联系图历经了不少扩充。,扩充的实体联系图(Extended ERD),分类,扩充了
14、分类概念的扩充实体联系图 有U符号的线表示特殊化 ;圆圈中的d表示不相交特殊化,o表示重迭特殊化;在必要的时候,可双线表示全特殊化,单线表示部分特殊化。其中,在职进修生既是教职工,又是学生,因此它有教职工和学生两个超实体,继承了它们的属性。,扩充的实体联系图(Extended ERD),聚集 在基本实体联系图中,只有实体参与联系,联系不能参与联系。在扩充实体联系图中,可以把联系与参与联系的实体组合成一个新的实体,这个新的实体称为参与联系的实体的聚集,它的属性就是参与联系的实体的属性和联系的属性的合并。有了聚集这个抽象概念,联系也就可以参与联系了。,扩充的实体联系图(Extended ERD),
15、聚集的应用,实体联系图视图及其集成,大学教务处教务管理问题实体联系图,实体联系图视图及其集成,研究生院教务管理视图,实体联系图视图及其集成,大学教务管理系统中的学生档案实体,实体联系图视图及其集成,大学教务管理系统中的课程档案实体,实体联系图视图及其集成,修改后的大学教务管理系统实体联系图,实体联系图实体联系图属性说明,实体联系图中的属性可以利用前面介绍的数据词典方法加以说明。在进行说明时,如果属性与数据流中的相关数据相同,则应引用数据流中的相应定义,而不应重新定义,这样可以避免因同一数据定义二次而出现多义性的现象。,实体联系图实体联系图属性说明,例如,对于大学教务管理问题中的实体联系图,其属
16、性定义 说明如下 E1: 学生档案 (E1.01) 学号d01.1 (E1.02) 姓名1汉字20 (E1.03) 性别男|女 (E1.04) 出生日期日期 (E1.05) 入学日期日期 (E1.06) 系别1汉字24 (E1.04.1) 日期0000.9999/01.12/01.31,E1.1: 研究生 (e1.1.01) 导师姓名 (e1.1.02) 硕博士生硕士生|博士生 E1.2: 本科生 (e1.2.01) 班级1汉字400000.99999,E2:注册记录 (E2.01) 学号E1.01 (E2.02) 注册日期日期,E3: 课程档案 (E3.01) 课程号d02.2 (E3.02
17、) 课程名1汉字24 (E3.03) 学分1.19 (E3.04) 开课学期秋季|春季 (E3.05) 任课教师 姓名,E3.1: 研究生课 (e3.1.01) 是否学位课是|否 E3.2: 本科生课 (e3.2.01) 是否必修课是|否,E4:选课单 (E4.1) 学号E1.01 (E4.2) 课程号E3.01 (E4.3) 选课学期d02.3,结构化设计技术,分析:问题是什么 设计:怎样解决 实现:解决分析 确定数据流图(DFD) 建立结构图(SC) 过程设计 分析确定实体联系图(ERD) 建立关系数据模式(RM) 编码调试 运行维护,Where are we ?,结构化分析技术 结构化设
18、计技术 结构化实现技术,结构化设计技术,内容与任务 程序结构 数据库结构,结构化设计技术内容与任务,结构化软件开发方法采用结构化设计技术进行问题解决方 案的设计工作,将问题的解决方案表述为 结构图关系数据模式 结构图描述软件系统的程序结构 关系数据模式描述软件系统的数据库结构 结构化设计工作主要包括程序结构设计和数据库结构设计,结构化设计技术内容与任务,结构化设计工作内容和步骤,结构化设计技术程序结构,程序结构或程序物理结构是对要解决的问题或要设计的系统的一种分层的表示方法,它指出了组成程序(系统)的各个元素(即各个模块)以及它们之间的关系。程序结构是从需求分析阶段定义的分析模型导出的。 程序
19、结构隐含着控制层次的关系,但不表示程序的具体算法或过程关系,即不表示诸如处理的顺序,选择的出现和次序、操作的重复循环等。程序结构通常用结构图的形式表示。,结构图,结构图中的主要成分有: (1),模块:以矩形框表示,框中标有模块的名字。对于已定义(或者已开发)的模块,则可以用双纵边矩形框表示,咨询成绩,打印出错信息,结构图中的主要成分有: (2),模块间的调用关系:两个模块,一上一下,以箭头相联,上面的模块是调用模块,箭头指向的模块是被调用模块,结构图中的主要成分有:(3),模块间的通讯:以表示调用关系的长箭头旁边的短箭头表示,短箭头的方向和名字分别表示调用模块和被调用模块之间信息的传递方向和内
20、容。,结构图中的主要成分有:(4),辅助控制符号:当模块A有条件的调用模块B时,在箭头的起点标以菱形。模块A反复地调用模块D时,另加一环状箭头,变换型问题,变换型问题,基本变换型问题数据流图及其结构图,变换型问题结构图,事务型问题,事务型问题结构图,混合型问题,混合型问题数据流图及其结构图,分析评价和改进,分析评价程序结构的聚合性和耦合性,提高程序模块的独立性 分析评价结构图的深度、宽度、扇出和扇入,改善程序结构的形态特性 分析模块的作用域和控制域,使作用域在控制域之内 拟定模块的接口,降低接口的复杂性和冗于度,改善一致性 分析模块的功能,保证模块的可验证性 恰当地掌握划分模块的大小,模块说明
21、,功能说明 描述模块的主要任务、条件决策和输入输出,并且着重说明处理中重要的算法或过程,它应是无歧义的和有限度的。 接口说明 列出通过参数表传递的数据、外界的输入输出、从全程数据区取得的数据项、上级模块名和下级模块名。 局部的和全局的数据结构说明 包括采用数据结构的数据名、数据结构的类型、是局部的还是全局的,等等。 所有设计约束和限制说明 包括数据类型或数据格式的限制、内存容量或时间的限制、数据结构的值、没有考虑的特定情况以及某个模块的专门特性,等等。,最终所得到的程序模块应具有以下基本属性: (1) 名字。 (2) 明确的功能。 (3) 内部使用的数据或局部数据。 (4) 与其它模块相联系的
22、输入或输出数据。 (5) 实现其特定功能的算法。 (6) 可被其上级模块调用,也可在其工作过程中调用下属模块。,大学教务管理系统中的“检索课程”模块的说明如下: 模块名:检索课程 功能:根据上层模块传送过来的课程号和选课学期在数据库中检索满足条件的课程,如果检索到了 则返回课程号,否则给出“无此课”信息并返回“空值(NULL)”。 函数接口:SearchingCourse(CourseID, Semester) 数据接口:课程档案 局部数据:CourseID课程号,输入 Semester: 选课学期,输入/输出 上级模块:选课登记 从属模块:无,结构化设计技术数据库结构,数据存贮可以采用两种方
23、式实现,一种是文件形式,另一种是数据库形式。如果采用数据库形式,那么在设计阶段,还必须进行数据库设计。 在分析阶段确定的实体联系图实际上是对数据库的概念结构进行了设计,设计阶段的主要任务则是进行数据库的逻辑结构设计。数据库的逻辑结构设计是在概念结构设计的基础上,将与数据库管理系统无关的实体联系图转换成以数据库管理系统的逻辑数据模型表示的逻辑模式。目前最常用的逻辑数据模型是关系数据模型,因此本节主要讨论实体联系图向关系数据模型的转换。,结构化设计技术数据库结构,关系数据模型 关系数据模式 外模式,数据库结构关系数据模型,现实世界中的事物或对象可以借用若干个特征来表示,这些特征称为属性;每个属性对
24、应着一个取值的范围和集合,称为该属性的域 。 关系就是定义在事物或对象的所有属性域上的多元关系。关系R的一般形式为 R(A1, A2, ., An) 其中,R为关系的名,A1、A2、. 、An 为关系的属性, 也就是它所描述的事物的属性。n是 R的属性个数,称为关系的目。R的值用r或r(R)表示,称为关系的元组。 关系R的属性Ai可 以表示为R.Ai。,病人名册 床号 姓名 性别 出生日期入院时间住院原因 530406 李大力 男 1945.2.18 1996.4.5 右小腿骨折 640603 张小英 女 1965.8.6 1996.5.21肺炎 .,如果用关系数据模型来表示这张表格,则表名和
25、表头表示为 病人名册(床号,姓名,性别,年龄,入院时间,住院原因 ) 这就是所谓的关系,其中病人名册是关系的名,床号、姓 名、性别、年龄等等是关系的属性。 表中的记录表示为 ,数据库结构关系数据模式,用关系数据模型表示的事物或对象称为该事 物或对象的关系数据模式。 从实体联系图设计建立关系数据模式 实体和联系可以转换成关系 实体和联系的属性可以转换成关系的属性,关系和属性的命名 属性域和非原子属性的处理 联系的转换 分类的转换 聚集的转换,联系的转换,一对一联系,E1是全参与,而E2是全参与或部分参与,则可以将其转换为 R1(k, a, h, s);R2(h, b),E2是全参与,而 E1是全
26、参与或部分参与,则可以转换为 R1(k, a);R2(h, b, k, s),Employee(EmployeeNo, EmployeeName) Department(DepartmentNo, DepartmentName, EmployeeNo, PeriodInChief),联系的转换,一对多联系,E2是全参与,则可以转换成 R1(k, a);R2(h, b, k, s),E2是部分参与,则必须可转换成如下三个关系 R1(k, a);R2(h, b);R3(h, k, s),Couple(CoupleNo, HusbandName, WifeName) Younger(YoungerN
27、o, Name, Sex, CoupleNo),联系的转换,多对多联系,R1(k, a);R2(h, b);R3(h, k, s),联系的转换,多元联系,R1(k, a) R2(h, b) R3(j, c) R4(h, k, j, s),关系和属性的命名 属性域和非原子属性的处理 联系的转换 分类的转换 聚集的转换,分类的转换,R(k, a) R1(k, a1, b1) R2(k, a2, b2),关系和属性的命名 属性域和非原子属性的处理 联系的转换 分类的转换 聚集的转换,聚集的转换,R1(k, a) R2(h, b) R3(j , c) R4(k, h, s1) R5(k, h, j, s2),数据库结构外模式,所谓外模式,就是用户应用程序使用的数据模式,它可以是逻辑模式的子集,也可以是结构和形式上不同于逻辑模式的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医保考核管理制度
- 2026年四川文化产业职业学院单招综合素质考试题库有答案详细解析
- 2026年河南推拿职业学院单招职业适应性测试题库有答案详细解析
- 2026天津机电职业技术学院招聘事业单位人员16人(第一批)考试参考试题及答案解析
- 2026年内蒙古北方职业技术学院单招综合素质考试题库有答案详细解析
- 董事会授权管理层及总经理报告制度
- 小学学生考勤制度
- 肌肤小吊瓶使用技巧总结
- 浙江省杭州北干2025-2026学年下学期初三数学试题调研测试卷含解析
- 脊髓损伤患者的康复护理质量控制
- 教育学原理课件全套课件
- 产权交易平台设计与运行管理方案
- 混凝土路面换板施工技术方案详解
- 幼儿大班认识建筑
- 新工厂安全培训内容简要课件
- 园艺学进展课程课件
- 产品设计文档撰写规范案例示范版
- 蒸汽工程安装方案(3篇)
- 颅内动脉急诊取栓技术
- 2025年四川大学教育培训部业务岗工作人员招聘考前自测高频考点模拟试题附答案详解
- 江苏省2025年接受高级访问学者的高等学校
评论
0/150
提交评论