一章软件工程概述.ppt
《一章软件工程概述.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,顶层数据流图,考生,考务处理系统,考试中心,阅卷站,不合格报名单,报名单,准考证,考生通知单,成绩清单,合格标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概述
链接地址:https://www.31ppt.com/p-5637604.html