《一章软件工程概述.ppt》由会员分享,可在线阅读,更多相关《一章软件工程概述.ppt(981页珍藏版)》请在三一办公上搜索。
1、第一章 软件工程概述,1.1 软件工程的背景和历史 1968年由NATO(北大西洋公约组织)在德国Garmish召开的学术会议上,Feitz Bauer首先提出了“软件工程”概念。,Evolution of software,早期 第二阶段 第三阶段 第四阶段面向批处理 多用户 分布式系统 强大的桌面系统有限的分布 实时 嵌入“智能”面向对象技术自定义软件 数据库 低成本硬件 专家系统 软件产品 消费者的影响 人工神经网络 并行计算 网络计算机,1950,1960,1970,1980,1990,2000,软件技术面临的问题,复杂性 生产率,例:Windows95有1000万行代码 Window
2、s2000有5000万行代码Exchange2000和 Windows2000开发人员结构,软件危机的主要特征,软件开发周期大大超过规定 日期;软件开发成本严重超标;软件质量难于保证。,改正一个问题需付出的代价,需求分析,结构设计,详细设计,编码,集成测试,系统测试,现场,改正一个问题的估计费用,改正一个问题估计的工作量,20,200,2000,1000,5.0,2.5,0.05,0.5,(美元),(人天),yet,Success Hasnt Come Easily,31%,53%,16%,Successfully,Challenged,Canceled,成功的标准:,用户在用用户可很容易做完
3、要做的事 失败的根本原因:开发人员写出的东西达不到用户要求(人的问题.技术问题),处在十字路口的中国软件产业,主权大国必须建立基于自主技术的、完整的软件产业体系。软件本国提供率:中国1/3左右,美国97%“印度模式”还是“中国模式”软件人才结构不合理,缺乏中高级软 件人才 软件人员缺乏软件工程化的概念。,软件工程的定义,Fritz Bauer在NATO会议上给出的定义:“软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。”,软件工程的定义,IEEE【IEE83】给出的软件工程定义:“软件工程是开发、运行、维护和修复软件的系统方法。”,软件工程的定
4、义,IEEE【IEE93】给出了一个更加综合的定义:“将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”,软件工程的定义,软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。,软件工程是一门交叉学科,软件工程的主要研究内容软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 软件工程管理:软件管理学 软件经济学 软件心理学 软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。,软件工程 一种层次化技术,工具,方法,过程,质量
5、焦点,Software engineering layers,软件工程三个要素:方法、工具、过程,软件工程框架,可,用,性,性,性,确,正,合,算,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视软件工程的管理,基本过程,原则,目标,过,程,支持过程,组织过程,软件工程与一般工程的差异,软件是逻辑产品而不是实物产品软件的功能依赖于硬件和软件的运行环境以及人们对它的操作软件设计的复杂性软件特征:功能的多样性 实现的多样性 能见度低 软件结构合理性差智力密集及知识产权保护,软件工程知识结构,2001年5月ISO/IEC JTC 1(ISO和IEC的第一联合技术委员会)发布了 SW
6、EBOK指南V0.95(试用版)(Guide to the Software Engineering Body of Knowledge,简称SWEBOK)SWEBOK把软件工程学科的主体知识分为10个知识领域。,软件工程知识结构,软件需求 软件设计 软件构造 软件测试 软件维护 软件配置管理 软件工程管理 软件工程过程 软件工程工具和方法 软件质量,“软件工程”课程 与其它软件专业课的区别,(1)立足于系统的整体。(2)讲授系统分析、系统设计、测试及维护的理论和方法。(3)构筑一个软件系统,实践 软件开发全过程。,“软件工程”课程教学与实践的目标,转变对软件的认识:上升 程序 系统 转变思维
7、定式:上升 程序员 系统工程师(系统分析员)工程化训练,系统分析员的地位,用户,分析员,程序员,“一个好的工业,应有一套良好的标准来配套”,软件的工业化生产过程应具备的特点:明确的工作步骤详细具体的规范化文档明确的质量评价标准,软件产品的标准化,软件开发过程的标准化,软件工程技术的两个明显特点:,强调规范化 强调文档化,1.2 软件生存周期,1.2.1 软件生存周期(Software Life Cycle)软件产品或软件系统从设计、投入使用到被淘汰的全过程。,1.2.1 软件生存期的阶段划分,(1)可行性研究与计划(2)需求分析(3)总体设计 上游(4)详细设计(5)实现(6)集成测试(7)确
8、认测试 下游(8)使用和维护(根据国标计算机软件开发规范),只考虑编写程序,涉及整个软件生存周期,扩展到,软件工作的范围,1.2.2 软件开发模型,软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件开发模型也常称为:软件过程模型 软件生存期模型 软件工程范型,1.瀑布模型(线形顺序模型),可行性研究与计划,需求分析,设计,编码,运行维护,测试,定义阶段,开发阶段,维护阶段,按照传统瀑布模型开发软件的特点,1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早
9、改正错误。,2.原型模型(快速成型模型),建造/修改 原型,用户测试运行原型,听取用 户意见,原型范型,采用原型模型的软件生存周期,分析定义系统需求,生成原型,系统设计,程序设计,编码,测试,运 行和维护,原型化,含原型化的软件生存期,3.演化模型,3.1 增量模型(递增模型),先完成一个系统子集的开发,再按同样的开发步骤增加功能(系统子集),如此递增下去直至满足全部系统需求。系统的总体设计在初始子集设计阶段就应作出设想。,分析,增量模型,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,增量1,增量2,增量3,增量n,增量1交付客户,增量2交付客户,增
10、量3交付客户,增量n交付客户,日历时间,.,3.2 螺旋模型,风险分析,工程实施,用户通信,用户评估,产品维护项目,产品增强项目,新产品开发项目,概念开发项目,计划,建造及发布,“基于版本发布”的特点,V1.0,功能,时间,V2.0,V1.1,Trade-off Decision(折中决定),可 靠 性,发布日期,功 能,最优,约束范围,可接受,正确的Trade-off 决定,4.面向对象模型,4.1 喷泉模型,进一步开发,实现和集成阶段,运行状态,实现阶段,面向对象设计阶段,计划阶段,面向对象分析阶段,需求阶段,维护期,喷泉模型特点,主要用于支持面向对象开发过程体现了软件创建所固有的迭代和无
11、间隙的特征,4.2 可重用部件组装模型,使用重用技术的软件工程模型构件(components):可重用的软件成份可复用性(Reusability)(可重用性)集成化软件开发环境(ISEE),可重用部件组装模型,系统A的软件构成,系统C的软件构成,系统B的软件构成,可重用部 件,可重用 部 件,软件生产线,应用构件提取车间,应用构件库,构件生产车间,构件库,组装车间,领域 1,领域 2,应用系统,.,1,2,3,4,1基础构件,2功能构件 3接口构件,4用户界面构件,第三章 软件需求分析,3.1 需求分析的任务 准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地
12、表达用户的需求。,思考、涉及的几个问题,如何定义系统需求?如何识别、获取需求?你能够采取何种手段与用户进行交流沟通?何为需求建模?你如何理解模型与建模?,软件需求分析的几个阶段,问题分析问题评估和方案综合建模规约复审 系统分析员的主要焦点是“做什么(what)”,不是“怎样做(how)”,3.2 需求获取,3.2.1 需求获取的目的 清楚地理解所要解决的问题 完整地获取用户需求,需求获取面临的挑战:,(1)问题空间理解(2)人与人之间的通信(3)需求的不断变化,某出版社系统调查表,某出版社系统调查表,3.2.2 需求获取的内容,1.用户需求分类(1)功能性需求:定义了系统做什么(描述系统必须支
13、持 的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标),2.两类需求包括的内容,(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证,(1)功能需求,系统做什么?系统何时做什么?系统何时及如何修改 或升级?,(2)性能需求,软件开发的技术性指标例如:存储容量限制 执行速度、相应时间 吞吐量,(3)环境需求,硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等软件:操作系统 网络 数据库,(4)界面需求,有来自其它系统的输入吗?到自其它系统的输出
14、吗?对数据格式有规定吗?对数据存储介质有规定吗?,(5)用户或人的因素,用户类型?各种用户熟练程度?需受何种训练?用户理解、使用系统的难度?用户错误操作系统的可能性?,(6)文档需求,需哪些文档?文档针对哪些读者?,(7)数据需求,输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?,(8)资源需求,软件运行时所需的数据、软件。内存空间等资源。软件开发、维护所需的人力、支撑软件、开发设备等。,(9)安全保密要求,需对访问系统或系统信息加以控 制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作 系统隔离?系统备份要求?,(10)软件成本消耗 与开发
15、进度需求,开发有规定的时间表吗?软硬件投资有无限制?,(11)质量保证,系统的可靠性要求?系统必须监测和隔离错误吗?规定系统平均出错时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?,3.3 需求建模,计算机学科的发展,计算机科学(CS),计算机科学(CS),计算机工程(CE),软件工程(SE),信息系统(IS),计算学科(computing discipline),计算学科是研究通过在计算机上建立模型并模拟物理过程来进行科学调查和研究的学科.,计算机科学与技术学科的方法论,学科的3个形态理论抽象(模型化)设计重复出现的概念绑定(bindin
16、g)概念与形式模型一致性和完备性抽象层次重用典型的学科方法:数学方法系统科学方法,计算中抽象的本质和使用。在处理复杂事务、构造系统、隐藏细节和获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象,能够表达一个实体和系统,抽象(模型化),源于实验科学,主要要素为数据采集方法和假设的形式说明,模型的构造与预测实验分析结果分析.在为可能的算法数据结构和系统结构等构造模型时使用此过程.抽象的结果是概念符号模型,模型(model),模型:现实世界某些重要方面的表示。有时我们使用术语“抽象”来表示模型,因为我们从现实世界中抽象出对我们特别有用的东西。,需求分析的步骤,当前系统,目标系统,物理模型,
17、逻辑模型,逻辑模型,物理模型,模型化,抽象化,具体化,实例化,怎么做,做什么,当前系统,目标系统,需求定义,逻辑模型和物理模型 模型是对对象系统的形式化的特征 抽象,概括性或近似地表示;构造模型的过程是一个抽象、分 析的过程。,对象系统,模型系统,抽象(映射),模型应用,模型构造的过程,逻辑模型 物理模型(本质模型、概念模型)(实施模型、技术模型),现行系统,目标系统,描述重要的业务功能,无论系统是如何实施的。,描述现实系统是如何在物理上实现的。,描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。,描述新系统是如何实施的(包括技术)。,3.3 需求建模,模型的作用,建模的原因:在建模
18、过程中了解系统通过抽象降低复杂性有助于回忆所有的细节有助于开发小组间的交流有助于与用户的交流为系统的维护提供文档,模型化或模型方法是通过抽象、概括和一般化,把研究的对象或问题转化为本质(关系或结构)相同的另一对象或问题,从而加以解决的方法。模型化方法要求所建立的模型能真实反映所研究对象的整体结构、关系或某一过程、某一局部、某一侧面的本质特征和变化规律。,模型的类型,数学模型描述模型图形模型,需求分析的步骤,当前系统,目标系统,物理模型,逻辑模型,逻辑模型,物理模型,模型化,抽象化,具体化,实例化,怎么做,做什么,当前系统,目标系统,需求定义,逻辑模型和物理模型 模型是对对象系统的形式化的特征
19、抽象,概括性或近似地表示;构造模型的过程是一个抽象、分 析的过程。,对象系统,模型系统,抽象(映射),模型应用,模型构造的过程,逻辑模型 物理模型(本质模型、概念模型)(实施模型、技术模型),现行系统,目标系统,描述重要的业务功能,无论系统是如何实施的。,描述现实系统是如何在物理上实现的。,描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。,描述新系统是如何实施的(包括技术)。,需求分析过程示意,学生,(1)通过对现实环境的调查,获得当前系统的物理模型,学生,购书申请,购书单,发票,领书单,书,107张,教务科,206王,会计室,206李,出纳员,303赵,教材科,学生购买教材的物理
20、模型,需求分析过程示意,(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型,学生购买教材的逻辑模型,学生,学生,购书申请,购书单,发票,领书单,书,审查有效性,开发票,开领书单,发书,需求分析过程示意,(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型,计算机售书系统的逻辑模型,学生,学生,购书单,发票,领书单,审查并开发票,开领,书单,无效书单,分析阶段中常用的模型(逻辑模型),数据流图(DFD)实体联系图(ERD)类图实例图时序图状态图协作图事件列表数据流定义数据元素定义,SafeHomede的第1层DFD,控制面板,与用户交互,控制面板显示,密码,电话号码拨音,传感器状态
21、,显示信息,配置请求,用户命令和数据,配置系统,警铃,电话线,传感器,配置信息,显示信息和状态,监控传感器,激活不激活系统,传感器信息,密码处理,警告类型,检验id信息,开始停止,状态信息,客户,保险销售人员,签订一份保险单,销售统计,客户统计,使用用例图举例,状态图 例:,状态1,Do:活动1,状态2,.,事件1条件1/动作1,结束事件,初始事件,空闲,可视菜单,左边按钮按下/显示弹出菜单,左边按钮弹起/擦除弹出菜单,光标移动/高亮菜单项,弹出菜单动作,接电话的顺序图:,受话者,交换机,远程交换机,受话者,拿起话筒,听通话声,拨号码,.,铃响信号,铃响,铃响停止信号,拿起话筒,铃响停止,10
22、,d,e,a,b,c,b-a1,e-d5,c-b10,路径,合作图举例,打印机忙保存打印文件,队列,计算机,打印机空闲,打印文件,打印机,打印服务器,打印文件,电梯状态图举例,在一楼,上升,停滞,下降,回到一楼,回一楼,想要到达楼层,想要到达楼层,电梯行程,开始,向上,向上,向下,F1:航班信息文件航空公司名称航班号起点终点日期 起飞时间降落时间航空公司名称2字母4 航班号3十进制数字3 字母“A”“Z”十进制数字“0”“9”起点终点1汉字10 起飞时间降落时间时分 时“00”“23”分“00”“59”日期年月日 年2000200120022004 月“01”“12”日“01”“31”,3.4
23、 分析建摸方法,结构化分析(传统建模方法)面向对象分析,3.4.1 结构化分析方法,(Structured Analisys,SA)基于数据流技术的分析方法 需求获取应遵循的三条基本原则:分解 抽象 投影,分析模型的主要目标,描述用户需要建立创建软件设计的基础定义软件完成后可被确认的一组需求,分析模型的结构,数据字典,数据流图,E-R图,状态变迁图,加,工,规,约,控制规约,数,据,对象,描 述,分析模型的元素,数据字典(DD):模型核心(中心库)E-R图(ERD):数据流图(DFD)指明数据在系统中移动时如何被变换;描述对数据流进行变换的功能;DFD中每个功能的描述包含在加工规约(小说明)。
24、状态变迁图(STD)指明作为外部事件的结果,系统将如何 动作。,3.4.3 数据建模,E-R图是数据建模的基础,将分析模型转换为软件设计,数据字典,数据流图,E-R图,状态变迁图,加,工,规,约,控制规约,数,据,对,描 述,象,数 据 设 计,体系结构设计,接口设计,过程设计,分析模型,设计模型,将设计模型金字塔倒立的后果是什么?,数 据 设 计,体系结构设计,接口设计,过程设计,讨论要点,SA方法建立功能模型的描述方法 DFD DD 其他描述方法,3.4.4 功能建模和信息流,基于计算机的系统,输入信息,信息流模型,输出信息,外部实体,外部实体,外部实体,输入信息,外部实体,外部实体,输出
25、信息,输出信息,一.数据流图,(DFD,Data Flow Diagram)描述逻辑模型的图形工具,表示数据在系统内的变化。,实例 考务处理系统功能,(1)对考生送来的报名单进行检查;(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,考务处理系统的分层DFD,顶层数据流图,考生,考务处理系统,考试中心,阅卷站,不合格报名单,报名单,准考证,考生通知单,成绩清单,合格标
26、准,错误成绩清单,考生名单,统计分析表,登记报名单,报名单,准考证,1,统计成绩,2,不合格报名单,考生通知单,成,统计分析表,0层数据流图,考生名册,绩,清,单,合格标准,考生名单,成,绩,清,单,错,误,一层数据流图(a),检查报名单,报名单,准考证,1.1,编准考证号,1.2,不合格报名单,考生名册,考生名单,合格报名单,登记考生,1.3,一层数据流图(b),检查成绩清单,2.1,审定合格者,2.2,考生名册,正确成绩清单,制作通知单,2.3,分析统计成绩,2.4,分析试题难度,2.5,试题得分清单,考生通知单,难度分析表,合格标准,分类统计表,成绩清单,错误成绩清单,经审定的成绩清单,
27、DFD可以用来表示一个系统或软件在任何层次上的抽象。较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。,S,2,1,3,2.2,2.1,2.3,3.1,3.2,顶层(不编号),0层,1层,数据流和控制流举例(使用Ward和mellor符号),监控固件和操作接口,每个固件状态,动作警告,机器人初始化控制,操作命令,部件状态缓冲器,位置命令,开始/停止,处理机器人命令,机器人命令文件,操作设置,处理活动,记录机器人动作,位串,数据和控制模型的关系,DFD,加工规约,加工模型,DFD,控制规约,控制模型,数据输出,数据条件,数据输入,控制输入,控制输出,加工激活者,
28、SafeHomede控制面板,与用户交互,SAFEHOME,ARMED POWER,01,1,2,3,4,5,6,7,8,9,*,0,#,OFF ARAY STAY,MAX TEST BYPASS,INSTANT CODE CHIME,READY,panic,alarmcheckfire,awaystayinstantbypassnot ready,SafeHomede的第0层,SafeHomede软件系统,用户命令和数据,显示信息,控制面板,传感器,传感器状态,警铃,电话线,警告类型,电话号码拨音,控制面板显示,SafeHomede的第1层,控制面板,与用户交互,控制面板显示,密码,电话号码
29、拨音,传感器状态,显示信息,配置请求,用户命令和数据,配置系统,警铃,电话线,传感器,配置信息,显示信息和状态,监控传感器,激活不激活系统,传感器信息,密码处理,警告类型,检验id信息,开始停止,状态信息,监控传感器的第2层,电话号码拨音,传感器状态,配置数据,显示格式,配置信息,产生警告信息,拨号,评估设置,传感器信息,读传感器,警告类型,传感器id类型,传感器id类型定位,SafeHomede的第一层,控制面板,与用户交互,控制面板显示,显示活动状态(完成、在处理中),配置系统,警铃,电话线,传感器,配置信息,显示信息和状态,监控传感器,激活不激活系统,警告信号,密码处理,传感器事件,警告
30、状态,超时,闪烁标志,开关切换,SafeHomede的状态变迁图,读用户输入,超时,监视系统状态,传感器事件行为,显示用户反馈,与“用户交互”有关,开关/切换,与“监视&控制系统”有关,显示活动状态,与“用户交互”有关,传感器事件,与“显示信息&状态”有关,与“监视&控制系统”有关,传感器事件,传感器事件,与“监视&控制系统”有关,传感器事件,与“显示信息&状态”有关,闪烁,与“显示信息&状态”有关,二.数据字典(DD,DataDictionary),DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解,
31、数据字典的作用,DFD中的数据流、数据存储表示某个有组织的数据集合,它们要由SA的其他描述工具-需求字典(数据字典)来描述,包括:词条描述数据结构描述加工逻辑说明,DD中数据结构的描述方式 定义式 Warnier图 巴科斯范式(BNF),F1:航班信息文件航空公司名称航班号起点终点日期 起飞时间降落时间航空公司名称2字母4 航班号3十进制数字3 字母“A”“Z”十进制数字“0”“9”起点终点1汉字10 起飞时间降落时间时分 时“00”“23”分“00”“59”日期年月日 年2000200120022004 月“01”“12”日“01”“31”,重复项:起点终点1汉字10 航空公司名称2字母4
32、航班号3十进制数字3 组合项:日期年月日 起飞时间降落时间时分选择项:年2000200120022004原数据项:字母“A”“Z”十进制数字“0”“9”时“00”“23”分“00”“59”月“01”“12”日“01”“31”,定义式中使用的符,操作符 含义描述 定义为 与(顺序结构).重复(循环结构).或(选择结构).,.(.)任选 m.n 界域.,注释符,限制重复次数举例:,3,5 或,5,3,表示允许重复3-5次,3,3 或,3,3,表示恰好重复 3 次,1,表示至少出现 1 次,表示允许重复0至任意次,数据流条目,给出DFD中某个数据流的定义,通常包括:数据流标识 数据流来源 数据流去向
33、 数据流的数据组成 流动属性描述:频率、数据量,购书单,发票,领书单,审查并开发票,开领书单,无效书单,学生,1,2,各班学生用 书 表,举例:,学生,教材存量表,数据流条目说明举例,数据流名:发票别名:无简述:学生购书时填写的项目来源:学生去向:加工1“审查并开发票”组成:(学号)姓名书号数量数据流量:1000次/周 高峰值:开学期间1000次/天,数据存储条目(数据文件词条),对某个文件的定义,包括:文件名 描述 数据结构 数据存储方式 关键码 存取频率和数据量 安全性要求,数据存储条目说明举例,文件名:库存记录别名:无简述:存放库存所有可供货物的信息组成:货物名称编号生产厂家 单价库存量
34、组织方式:索引文件,以货物编号为 关键字查询要求:要求能够立即查询,数据项条目(数据元素词条),不可再分解的数据单位,包括:名称 描述 数据类型 长度(精度)取值范围及缺省值 计量单位 相关数据元素及数据结构,数据项条目说明举例,数据项名:货物编号别名:G-No,G-num简述:本公司的所有货物的编号类型:字符串长度:10取值范围及含义:第1位:JG(进口/国产)第24位:LB01.LB29(类别)第57位:“A00”.“A99”(规格)第810位:“001”.“999”(品名编号),F1:航班信息文件航空公司名称航班号起点终点日期 起飞时间降落时间航空公司名称2字母4 航班号3十进制数字3
35、字母“A”“Z”十进制数字“0”“9”起点终点1汉字10 起飞时间降落时间时分 时“00”“23”分“00”“59”日期年月日 年“00”“99”月“01”“12”日“01”“31”,存折户名所号帐号开户日期性质(印密)1存取行50户名2字母24所号“001”.“999”(注:储蓄所编码,规定三位数字)帐号“00000001”.“99999999”(注:帐号规定由八位数字组成)开户日期年月日性质“1”.“6”(注:“1”表示普通户,“5”表示工资户等)印密“0”(注:印密在存折上不显示)存取行日期(摘要)指出存入余额 操作复核,年2001200220032004月“01”.“12”日“01”.
36、“31”摘要1字母4(注:表明该存取是存?是取?还是换?)支出金额(注:金额规定不超过9999999.99元)存入金额余额金额金额“0000000.01”.“9999999.99”操作“00001”.“99999”复核“00001”.“99999”字母“a”.“z”“A”.“Z”,购书单,缺书单,销售,采购,1,2,第二层DFD(层)教材购销系统,教材存量表,学生,F1,缺书登记表,F2,书库保管员,进书通知,教材入库信息,领书单,DF01-10,DF20-02,销售,采购,1.0,2.0,第二层DFD(层)教材购销系统,教材存量表,学生,F1,缺书登记表,F2,书库保管员,DF02-20,D
37、F20-10,DF10-01,1,2,XSMD,CGMD,DD数据流条目说明举例,图号DF01-10/*有效购书单*/DF01-10=学号姓名 书号数量,加工条目(加工逻辑说明),加工类条目即数据处理描述,也称为小说明。描述实现加工的策略而不是实现加工的细节。小说明可认为是DD的组成部分。也可在DD中定义只说明每个加工的组 成(每个处理分解成多少小处理),而在 小说明中详细描述它的处理逻辑.,加工条目(加工逻辑说明),加工逻辑名:登记报名单 编号:1.0 激活条件:收到报名单 加工逻辑:1.1 检查报名单+1.2 编准考证号+1.3 登记考生 执行频率:2000次/日,定义方法,找出所有数据元
38、素(数据流,数据存储,数据项,加工)对数据项分类作结构定义排序DD的分类DD中的命名(遵守系统开发规范规定),DD的实现,(1)人工方法(2)自动方法(利用字典管理程序)DD应具特点(1)通过名字可方便查阅数据定义(2)无冗余(3)易更新修改,3.小说明(加工逻辑说明的另一种形式),描述的内容:(1)处理逻辑 描述基本加工如何把输入数据流变化为输出数据流的加工原则,不涉及具体处理方法。(2)执行条件(3)输入(4)输出(3)优先级(4)执行频率(5)出错处理对策,小说明举例,加工名:分类采购(CG111MD)编号:1.1.1加工激活条件:受到图书采购员分类 采购操作命令加工逻辑:(1)1.1.
39、1.1 预定图书(2)1.1.1.2 外采图书(3)1.1.1.3 赠送图书 执行频率:随时,小说明举例,处理名:月票额统计(MHCW713MD)编号:7.1.3激活条件:收到每日售票额信息处理逻辑:1 统计月保险金总合 月保险金信息=每日日保险 金信息之和 2 统计月合计 月合计信息=每日日合计信息之和执行频率:1次/月,描述加工逻辑的工具:,结构化语言 判定表 判定树,结构化语言,介于自然语言和形式语言之间的语言结构化语言的特点:无确定语法可分层、嵌套,处理名:核实订票处理(MHGP3200MD)编号:3.2激活条件:收到取订票信息处理逻辑:1读订票旅客信息文件 2搜索此文件中是否有与输入
40、信息 中姓名及身份证号相符的项 IF 有 THEN 判断余项是否与文件中信 息相符 IF 是 THEN 输出已订票信息 ELSE 输出未订票信息 ELSE 输出未订票信息执行频率:实时,判定表(决策表),描述多条件、多目标动作的形式化工具,判定表举例(计算机票折扣率),旅游时间,订 票 量,折 扣 量,79,12月,20,20,20,20,15%,5%,20%,30%,条件类别,四种条件组合,操作,条件组合下操作的执行,16,10,11月,处理名:计算折扣率(MHGP534MD)编号:5.3.4激活条件:收到预订票信息处理逻辑:计算折扣率执行频率:实时,旅游时间,订 票 量,折 扣 量,79,
41、12月,16,10,11月,20,20,20,20,15%,5%,20%,30%,判定树(Decision 决策树),条件1 条件2 结果计 79,订票量20:15%算 12月 订票量20:5%折扣 16,订票量20:30%量 10,11月 订票量20:5%,二.结构化分析实施步骤,1.确定系统边界,画出系统环境图2.自顶向下,画出各层数据流图3.定义数据字典4.定义小说明,三.需求规格说明书(SRS),(Software Requirement Specification)需求分析阶段要完成的文档。SRS的作用:开发者与用户间事实上的技术合同书开发者下一步设计和编码的基础测试验收目标系统的依
42、据,SRS大纲(模板),引言 任务概述(项目概述)数据描述(DFD、DD)功能描述 接口 性能需求 属性 其它需求,三.需求验证,(1)正确性(2)无二义性(3)完整性(4)可验证性(5)一致性(6)可理解性(7)可修改性(8)可被跟踪性(9)可跟踪性(10)设计无关性(11)注释,需求文档的陈述与改进举例(1),产品必须在固定的时间间隔内提供状态消息,并且每次时间间隔不得小于60秒。,后台任务管理器(BTM)应该在用户界面的指定区域显示状态消息。a.在后台任务进程启动之后,消息必须每隔60(10)秒更新一次,并且保持连续的可见性。b.如果正在正常处理后台任务进程,那么后台任务管理器(BTM)
43、必须显示后台任务进程已完成的百分比。c.当完成后台任务时,后台任务管理器(BTM)必须显示一个“已完成”的消息。d.如果后台任务中止执行,那么后台任务管理器(BTM)必须显示一个出错信息。,需求不完整,导致需求不可验证,改进,需求文档的陈述与改进举例(2),产品必须在显示和隐藏非打印字符之间进行瞬间切换。,用户在编辑文档时,通过激活特定的机制,可以在显示和隐藏所有HTML标记之间进行切换。,需求不可行、不完整、不确定性,导致需求不可验证,改进,3.4 分析建摸方法,结构化分析(传统建模方法)面向对象分析,计算机世界,现实世界,影射,计算机世界,现实世界,结构化开发方法,结构化分析,结构化设计,
44、结构化编程,OOA,OOD,OOP,面向对象开发方法,3.4.2 面向对象分析方法,思考题软件开发中为什么要使用面向对象 方法?面向对象分析方法与结构化分析方 法有哪些相似之处?有何区别?面向对象方法是对过去的一个完全 突破,还是“换汤不换药”?,对象(object),现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。对象具有的含义:在现实世界中:是客观世界中的一个实体 在面向对象程序中:表达成计算机可理解、可操纵、具有一 定属性和行为的对象 在计算机世界中:是一个可标识的存储区域,面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。,
45、面向对象=对象+类+继承+消息通信,面向对象的主要特征:封闭性(Encapsulation)继承性(Inheritance)多态性(Polymorphism),类(class),具有共同属性和行为的对象的抽象类与对象的关系类是对象的抽象对象是类的实例,类,对象,对象、实体与类,对象,实体,类,抽象数据类,计算机世界,现实世界,计算机逻辑的实现,影射,抽象,实例化,抽象,概念世界,封装,封装是软件开发方法的重要原则,有两个涵义:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节(信息隐蔽),传统方法数据与过程是分离的,过程1,输入,输出,过程2,过
46、程3,数据实体,属于该对象的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法封状成一个单元,传统方法和面向对象方法的比较,传统方法系统是过程的集合过程与数据实体交互过程接受输入并产生输出,面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息,继承(继承性inheritance),继承性是父类和子类之间共享数据和方法的机制继承性具有传递性继承性包括单继承和多重继承,子类,继承部分,增加部分,父类,共性部分,继承性作用,使软件系统具有开放性 更好地进行抽象与分类 增强代码的重用率,多态(多态性polymorphism),不同的对象收到同一消息可产生完全 不同的
47、结果,这一现象叫做多态多态的效果 用户发送一个通用的消息,而实现的细节则由接收对象自行决定,多态性的作用,增强了操作的透明性,可理解性和可扩展性 增强了软件的灵活性和重用性,消息(message),消息 对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明消息内容 通常包含接收方及请求接收方完成的功能信息发送方 发出消息,请求接收方响应接收方 收到消息后,经过解释,激活方法,予以响应,为什么对面向对象方法感兴趣?,面向对象方法的主要优点:自然性 追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件复用 可复用性(可重用性)reus
48、ebility可扩展性可管理性,可复用性(可重用性)面向对象技术允许复用的不仅仅是代码,通过面向对象技术,我们可以复用需求、分析、设计、测试计划、用户界面以及体系结构等等,事实上,软件工程生存期中的每个部分都可以复用。,传统系统分析:面向功能,把系统看成 一组功能OOA:把问题当作一组相互作用 的实体,并确定实体间关系,面向对象技术是一个有全新概念的开发模式,其特点是:(1)方法是对软件开发过程所有阶段进 行综合考虑而得到的;(2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性;(3)将OOA、OOD、OOP集成到生存 期的相应阶段.,开发方法的组合,OO方法的开发过程,
49、OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。,类的生存期模型,类的规格说明,从废弃型开发,既存类的复用,渐增式的实现,渐增式的测试,求精和 维护,测试用例和测试 的开发,实现,从既存类演变,类的设计与实现,类的规格说明指导对存放现存类的软件库进行查找现存类提供当前应用所需功能三种可能利用现存类的方向:现存类的复用 从现存类进行演变 从废弃类进行开发,对象之间的联系与对象模型,面向对象方法开发软件通常建立的三种形式的模型 描述系统数据结构的对象模型 描述系统控制结构的动态模
50、型 描述系统功能的功能模型 三种模型从三个不同但由密切相关的角度模拟目标系统。对象模型是最重要、最基本、最核心的。,对象模型 对象模型表示静态的、结构的系统数据的性质。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。OO方法强调围绕对象而不是功能来构造系统。,类及对象间常见的联系 分类关系(归纳关系、一般与特殊的关系)组成关系(组合关系、整体/部分的关系)对象属性之间的静态的联系 对象行为的动态联系,分类关系(一般与特殊的关系)示例,学生,本科生,研究生,组成关系(整体与部分的关系)示例,学科部,办公室,学院,实验室,对象模型中表现上述联系的结构和连接,(1)分类结