




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,第2章结构化程序设计与面向对象程序设计,2.1概述2.2结构化方法的基本原理2.2.1结构化分析设计过程2.2.2结构化分析设计举例2.3面向对象方法学的基本概念和原则2.3.1基本概念2.3.2主要原则2.4面向对象方法与结构化方法比较2.4.1实例2.4.2面向对象方法与结构化方法比较2.4.3两种方法的综合运用,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,第2章结构化程序设计与面向对象程序设计,教学要求掌握:软件结构化分析方法及工具。理解:结构化设计及面向对象设计的思路及特点。了解:结构化分析过程;面向对象方法学的基本概念。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.1概述,20世纪60年代提出的结构化程序设计思想曾为解决“软件危机”立下过汗马功劳,它在一定程度上解决了软件的可靠性、可理解性、可维护性等问题;面向对象的程序设计思想后来居上,在软件的模块化、可重用、可扩展性等方面体现出了强大的优势。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,结构化分析是以系统中数据的加工处理过程分析为主要内容的分析方法。结构化设计是以模块功能及其处理过程设计为主要内容进行详细设计的一种设计方法。其概念最早由E.W.Dijikstra在1965年提出,它是软件发展的一个重要的里程碑。结构化开发方法也称为面向过程的方法或传统软件工程开发方法,它的观点是采用自顶向下、逐步求精的程序设计方法。使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造;详细描述处理过程常用三种工具:图形、表格和语言;使用的手段主要有数据流图、数据字典、层次方框图、流程图、结构化语言等。结构化程序设计的一般步骤是:分析业务流程、分析数据信息的加工处理过程;画出数据流图;建立数据字典;提出系统的总体逻辑方案;细化数据流图;确定模块的接口;为每个模块确定采用的算法和数据结构;根据E-R图设计数据库、根据模块算法编程等。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,2.2.1结构化开发-结构化分析与设计过程结构化开发的主要过程:问题定义、可行性论证及软件计划、需求分析、总体设计、详细设计等。每个阶段使用的工具如图所示。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,2.2.2结构化开发方法结构化分析与设计举例-书店借书系统用到的分析与设计工具数据流图数据字典系统功能结构层次图与HIPO图、处理流程图E-R图,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,1.数据流图(DataFlowDiagram,DFD图)它是描述数据加工处理过程的工具,有四种基本符号如下图所示。,基本符号的含义:矩形方框表示数据的源点或终点,是系统的外部实体.圆形表示变换数据的处理。两条平行横线代表数据存储。箭头表示数据流,即特定数据的流动方向。数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,画数据流图的基本原则:自顶向下、逐层细化、完善求精。具体步骤:(1)绘顶层数据流图。找出对整个系统而言的输入、输出数据,确定外部实体,它们决定了系统与外界的接口。(2)为数据流命名,为加工命名。(3)检查核对。(4)核对无误后,进行分解,画处理的内部。在(2)至(4)步之间反复迭代,直到处理无法进一步分解为止。顶层数据流图只要求表示对整个系统而言的输入输出数据,如图2-2所示。,图2-2顶层数据流图的画法,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,图2-3书店借书系统的顶层数据流图,结构化分析画出数据流图例如,书店借书系统的顶层数据流图如图2-3所示。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,顶层数据流图只反映了整个系统与外界的接口,但未表明数据的加工细节,需要进一步细化,得到第1层数据流图(如图2-4所示).,图2-4书店借书系统的第一次分解后的数据流图,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,图2-5“借书”处理分解后的数据流图,从图2-4中可以看出,在书店借书系统的不同业务中,借书、还书、查询这几个处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深层次的分析,进一步细化。以借书处理为例,如图2-5所示是图2-4中“2.0借书”处理分解后的数据流图,该图中的每个处理已不用再细分了。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,2数据字典数据字典是对所有与系统相关的数据元素的一个有组织的列表,精确、严格地定义各个数据元素,使得用户及开发人员对于输入、输出、存储和处理形成共同的理解。数据字典由对下列6类元素的定义组成:数据流、数据流分量、数据结构、数据存储、处理逻辑、外部实体。数据字典是对数据流图的详细描述。数据字典各部分的描述:略。例如:借阅制度表=读者类别+允许借阅册数+罚款规定+丢失图书罚款规定读者类别=金卡|银卡|铜卡又如:酒店客房预订请求=客人数据+住宿期限+客房类别客人数据=客人姓名+地址+身份证号码+护照号码+支付方式身份证号码=15十进制数字18护照号码=字母+8十进制数字8字母=AZ十进制数字=09,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,数据字典应用举例以学生选课数据字典为例简要说明如何定义数据字典。学生选课的数据流图如右所示:,数据项:以“学号”为例数据项名:学号数据项含义:唯一标识每一个学生别名:学生编号数据类型:字符型长度:8取值范围:0000099999取值含义:前2位为入学年号,后3位为顺序编号与其他数据项的逻辑关系:(无)数据结构:以“学生”为例数据结构名:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系数据流:以“选课信息”为例数据流名:选课信息说明:学生所选课程信息数据流来源:“学生选课”处理数据流去向:“学生选课”存储组成:学号,课程号平均流量:每天10个高峰期流量:每天100个,数据存储:以“学生选课”为例数据存储名:学生选课说明:记录学生所选课程的成绩编号:(无)流入的数据流:选课信息,成绩信息流出的数据流:选课信息,成绩信息组成:学号,课程号,成绩数据量:50000个记录存取方式:随机存取处理过程:以“学生选课”为例处理过程名:学生选课说明:学生从可选修的课程中选出课程输入数据流:学生,课程输出数据流:学生选课处理:每学期学生都可以从公布的选修课程中选修自己愿意选修的课程,选课时有些选修课有先修课程的要求,还要保证选修课的上课时间不能与该生必修课时间相冲突,每个学生四年内的选修课门数不能超过8门。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,3E-R图(实体关系图)例如:图书馆“读者借还书”的E-R图。,1,n,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,4层次图与HIPO图(Hierarchy层次结构)层次图用来描绘软件的层次结构,图中的一个矩形框代表一个模块,方框间的连线表示调用关系。它适于在自顶向下设计软件的过程中使用,描述模块的划分。在第1层数据流图(图2-4)中对“书店借书系统”划分模块得到对应的系统功能结构的层次图,如图2-9所示。HIPO图是“层次图加输入/处理/输出图”的英文缩写,为了能使HIPO图更清晰,首先要对层次图中的各个模块编号,图2-10所示是加了编号后的层次图,称为H图.图中体现了编号的规则.图2-10A是”2.1.1借书处理”功能的IPO图和功能处理流程图,据此可以编程。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,结构化设计-概要设计的系统功能结构层次图图2-9书店借书系统功能结构的层次图,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,图2-10书店借书系统功能结构的层次图(加了编号),借书处理2.1.1,还书处理2.1.2,结构化设计-概要设计的系统功能结构层次图(H图)根据数据流图得出系统功能结构图。图中的7个功能模块对应(图4)第1层数据流图中的7个加工处理。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,5IPO图IPO是输入、处理、输出的简称,IPO图能方便地描绘输入数据、数据的处理和输出数据的关系。结构化设计-功能模块详细设计的IPO图例如:书店借书系统中的”借书处理”功能模块的详细设计-IPO图。图中的处理1-5对应图5(第2层数据流图)中的5个处理。,图2-10APIO图,图2-5“借书”处理分解后的数据流图,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,”2.1.1借书处理”功能的HIPO表、功能处理流程图。据此可以编程。,结构化设计-功能模块详细设计的IPO表及功能处理流程图,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.2结构化方法的基本原理,结构化开发方法-结构化分析与设计过程小结,结构化分析是以系统中数据的加工处理过程分析为主要内容的分析方法。主要工具是数据流图、数据字典。结构化设计是以模块功能及其处理过程设计为主要内容进行详细设计的一种设计方法。主要工具是系统功能结构层次图、IPO图/表、处理流程图。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,习题2,简述下列概念:软件开发方法及其种类和特点。结构化程序设计的步骤。数据流图使用哪四种符号其含意是什么?用结构化的开发方法描述“书店借书系统”的分析与设计的主要内容。用面向对象开发方法描述“书店借书系统”的分析与设计的主要内容。传统结构化开发方法和面向对象开发方法的比较。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.3面向对象方法学的基本概念和原则,2.3.1基本概念1对象(object)2类(class)3实例(instance)4消息(message)消息的传递通常通过方法调用来实现。消息是发给对象的方法调用的通知。例如:已知园类Circle的对象MyCircle,当要求它以绿颜色在屏幕上显示自己时,程序中应该向它发送下列消息:MyCircle.Show(GREEN);MyCircle是接收消息的对象的名字,Show是消息名称(也是方法名称),当MyCircle接收到这个消息后,将执行在Circle类中定义的Show操作。5方法(method)6属性(attribute)7封装(encapsulation)8继承(inheritance)9多态性(polymorphism)10重载(overloading),广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.3面向对象方法学的基本概念和原则,2.3.2主要原则(1)抽象(2)分类(3)聚合:在面向对象的分析中运用聚合关系表示事物整体对象和它的组成部分对象之间的组成关系,形成一个整体/部分结构。(4)关联(5)消息通信:对象之间只能通过消息进行通信,在面向对象的分析中要求用消息连接表示出对象之间的静态联系。(6)粒度控制(7)行为分析:确定行为的归属和作用范围;认识事物之间行为的依赖关系;认识行为的起因,区分主动行为和被动行为;认识系统的并发行为;认识对象状态对行为的影响。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,一.面向对象开发方法的软件建模过程简介以“书店借书系统”为例1.需求建模用例图(等用功能结构图),2.4面向对象方法与结构化方法比较,2.4.1实例,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,一.面向对象开发方法的软件建模过程简介以“书店借书系统”为例2.“借还书”用例分析类图(确定需要哪些类及其关系,画出类图),2.4面向对象方法与结构化方法比较,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,一.面向对象开发方法的软件建模过程简介以“书店借书系统”为例3.“借还书”用例分析顺序图(根据用例描述得到)每个类对象要完成接收消息对应的操作,各个类对象的操作互相配合完成用例功能。,2.4面向对象方法与结构化方法比较,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,一.面向对象开发方法的软件建模过程简介以“书店借书系统”为例4.“借还书”用例设计顺序图(把消息细化为对象的方法调用)控制类主要起控制业务逻辑流程的作用,控制消息发送的顺序。,2.4面向对象方法与结构化方法比较,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,一.面向对象开发方法的软件建模过程简介以“书店借书系统”为例5.“借还书”用例设计类图(根据顺序图设计类图:把对象接收的消息对应到类的方法)6.数据库设计7.写出类代码8.代码测试,2.4面向对象方法与结构化方法比较,设计,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.4面向对象方法与结构化方法比较,7.setBorrowamount(),根据顺序图设计类图:把对象接收的消息对应到类的方法,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.4面向对象方法与结构化方法比较,(1)面向对象分析与设计方法小结反复迭代完善需求。对已有的需求进行整理,列出需求列表。与用户交流得到有效的需求列表。画出初始用例模型,表达系统的主要功能及主要业务流程。完善需求列表,完善用例模型。反复迭代进行系统分析。识别系统中的对象及其关系,画初始类模型。确定类的职责、属性和方法。表示出主要业务过程的动态模型。由动态模型反复映射,完善类模型。反复迭代进行系统设计。确定整个系统的拓扑结构(部署图)。修订类模型。相应修订动态模型。完成反映程序模块的包图。完成反映程序软件构成的组件图。设计界面,设计数据库。,2.4.2面向对象方法与结构化方法比较,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.4面向对象方法与结构化方法比较,(2)结构化分析与设计方法小结。获取完整的需求。自顶向下、逐层分解,画出数据流图。书写数据字典。映射出系统的层次结构,进行系统结构(模块及其接口)设计。逐层细分,细化出每个处理。设计界面,设计数据库。,2.4.2面向对象方法与结构化方法比较,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,2.4面向对象方法与结构化方法比较,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,本章小结,结构化方法和面向对象的方法是当前两种主流的软件开发方法。面向对象的开发方法根据现实问题直接抽象出对象,分析对象的行为和与行为相关的数据,对象间通过传递消息进行通信,从问题出发,模拟现实问题,建立系统模型,易于理解和实现。结构化开发方法有一套成熟的理论基础,“自顶向下、逐步求精”,在获取完整的需求之后才能开始系统的分析和设计。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,习题2,简述下列概念:软件开发方法及其种类和特点。结构化程序设计的步骤。数据流图使用哪四种符号其含意是什么?用结构化的开发方法描述“书店借书系统”的分析与设计的主要内容。用面向对象开发方法描述“书店借书系统”的分析与设计的主要内容。传统结构化开发方法和面向对象开发方法的比较。,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,结构化方法举例回顾,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,图2-3书店借书系统的顶层数据流图,结构化分析画出数据流图例如,书店借书系统的顶层数据流图如图2-3所示。,结构化方法举例回顾,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,顶层数据流图只反映了整个系统与外界的接口,但未表明数据的加工细节,需要进一步细化,得到第1层数据流图(如图2-4所示).,图2-4书店借书系统的第一次分解后的数据流图,结构化方法举例回顾,广州航海高等专科学校信息与通信工程学院(软件学院)软件建模技术,图2-5“借书”处理分解后的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省菏泽市重点高中2024-2025学年高三化学试题5月最后一卷试题含解析
- 江苏省泰兴市达标名校2024-2025学年初三年级第十一次网考生物试题含解析
- 江苏省南京市鼓楼区重点达标名校2024-2025学年中考预测金卷数学试题理(湖南卷)含解析
- 西昌学院《秘书礼仪》2023-2024学年第二学期期末试卷
- 辽宁省丹东第十中学2025届初三第二学期期初模拟训练一英语试题含答案
- 宿舍文化节活动流程
- 技能培训经典案例分享
- 上海市金山区2025届高三二模语文试题(含答案)
- 下肢血管溃疡的治疗和护理
- 2025年建筑工程流动资金借款合同示例
- ABB变频器ACS510说明书
- 城轨道交通接触网检修工职业标准
- 汽车4S店维修结算清单
- QC成果减少隧道工程Ⅳ类Ⅴ类围岩超挖量
- LY/T 1763-2008沿海防护林体系工程建设技术规程
- 校园网站设计论文
- GB/T 17213.4-2015工业过程控制阀第4部分:检验和例行试验
- GB/T 13140.2-2008家用和类似用途低压电路用的连接器件第2部分:作为独立单元的带螺纹型夹紧件的连接器件的特殊要求
- 浙江省医疗机构麻醉药品、精神药品管理实施细则
- 行政事业单位日常公用支出管理办法
- 2023年山西晋勤科技文化有限责任公司招聘笔试题库及答案解析
评论
0/150
提交评论