全书配套课件:面向对象软件工程与UML.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《全书配套课件:面向对象软件工程与UML.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全书 配套 课件 面向 对象 软件工程 UML
- 资源描述:
-
1、2022-7-241面向对象软件工程与面向对象软件工程与UML2022-7-242课程安排 本课程采用平时成绩(包括出勤考核,平时作本课程采用平时成绩(包括出勤考核,平时作业,课堂发言等)、实践(实验和课程设计)和业,课堂发言等)、实践(实验和课程设计)和理论考试相结合的考核方法。总评成绩中平时成理论考试相结合的考核方法。总评成绩中平时成绩占绩占15%,实践成绩占,实践成绩占15%,期末考试占,期末考试占70%。课程设计要求学生按小组完成项目设计,并以软课程设计要求学生按小组完成项目设计,并以软件验收书面报告的形式上交。件验收书面报告的形式上交。2022-7-243第第1章章 软件工程概述软件
2、工程概述2022-7-244第第1章章 软件工程概述软件工程概述1.1 1.1 软件的概念、特点和分类软件的概念、特点和分类一、一、软件的概念软件的概念 软件软件是计算机系统中与硬件相互依存的另一部是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。分,它是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求编其中,程序是按事先设计的功能和性能要求编写的指令序列;数据是使程序能正常操纵信息的数写的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图据结构;文档是与程序开发、维护和使用有关的图文材料。文材料。注
3、:程序并不是软件,程序只是软件的组成部分。注:程序并不是软件,程序只是软件的组成部分。2022-7-245第第1章章 软件工程概述软件工程概述二、软件的特点二、软件的特点(1)软件是一种逻辑实体。)软件是一种逻辑实体。(2)软件的开发,是人的智力的高度发挥,而不是)软件的开发,是人的智力的高度发挥,而不是传统意义上的硬件制造。传统意义上的硬件制造。(3)软件维护与硬件的维修有着本质的差别。)软件维护与硬件的维修有着本质的差别。(4)软件的开发和运行常常受到计算机系统的限制,)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。对计算机系统有着不同程度的依赖性。(5)软件
4、的开发至今尚未完全摆脱手工艺的开发方)软件的开发至今尚未完全摆脱手工艺的开发方式,使软件的开发效率受到很大限制。式,使软件的开发效率受到很大限制。(6)软件的开发是一个复杂的过程。)软件的开发是一个复杂的过程。(7)软件的成本非常高昂。)软件的成本非常高昂。2022-7-246第第1章章 软件工程概述软件工程概述三、软件的分类三、软件的分类 1.基于软件功能的划分基于软件功能的划分 系统软件系统软件 应用软件应用软件 支撑软件支撑软件 2.基于软件工作方式的划分基于软件工作方式的划分 实时处理软件实时处理软件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件 2022-7-247根
5、据规模进行软件分类根据规模进行软件分类软件规模类别参加人员数开发期限产品规模(源代码行数)微型114周0.5k小型116月12k中型2512年550k大型52023年50100k甚大型100100045年1M极大型20005000510年110M2022-7-248例例:Windows95有有1000万行代码万行代码 Windows2000有有5000万行代码万行代码Exchange2000和和 Windows2000开发人员结构开发人员结构Exchange2000Windows20002000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员35
6、0人人约约3200人人2022-7-249第第1章章 软件工程概述软件工程概述1.2 1.2 软件的发展和软件危机软件的发展和软件危机 一、计算机系统的发展历程一、计算机系统的发展历程 第一代(第一代(2020世纪世纪6060年代中期以前):程序设计阶段。年代中期以前):程序设计阶段。第二代(从第二代(从2020世纪世纪6060年代中期到年代中期到7070年代中期):程序年代中期):程序系统阶段系统阶段“软件工程软件工程”学科诞生。学科诞生。第三代(从第三代(从2020世纪世纪7070年代中期到年代中期到8080年代中期):软件年代中期):软件工程阶段。工程阶段。第四代(从第四代(从2020世
7、纪世纪8080年代中期至今):软件产业在世年代中期至今):软件产业在世界经济中已经占有举足轻重的地位。界经济中已经占有举足轻重的地位。2022-7-2410第第1章章 软件工程概述软件工程概述 二、二、软件危机软件危机 2020世纪世纪6060年代末年代末7070年代初,西方工业发达国家年代初,西方工业发达国家经历了一场经历了一场“软件危机软件危机”。这场软件危机表现在:。这场软件危机表现在:一方面软件十分复杂,价格昂贵,供需差日益增一方面软件十分复杂,价格昂贵,供需差日益增大,另一方面软件开发时又常常受挫,质量差,大,另一方面软件开发时又常常受挫,质量差,指定的进度表和完成日期很少能按时实现
8、,研制指定的进度表和完成日期很少能按时实现,研制过程很难管理,即软件的研制往往失去控制。我过程很难管理,即软件的研制往往失去控制。我们称软件开发们称软件开发和维护过程中所和维护过程中所中遇到的这一系列中遇到的这一系列严重问题为软件危机。严重问题为软件危机。软件危机包含下述两方面的问题:如何开发软软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。量不断膨胀的已有软件。2022-7-2411第第1章章 软件工程概述软件工程概述 1.3 1.3 软件工程软件工程一、软件工程的定义一、软件工程的定义 软件工
9、程软件工程是指研究软件生产的一门学科,也就是指研究软件生产的一门学科,也就是将完善的工程原理应用于经济地生产既可靠又是将完善的工程原理应用于经济地生产既可靠又能在实际机器上有效运行的软件。能在实际机器上有效运行的软件。19831983年美国年美国IEEEIEEE软件工程标准术语对软件软件工程标准术语对软件工程下的定义为:软件工程是开发、运行、维护工程下的定义为:软件工程是开发、运行、维护和修复软件的系统方法,其中和修复软件的系统方法,其中“软件软件”的定义为:的定义为:计算机程序、方法、规则、相关的文档资料以及计算机程序、方法、规则、相关的文档资料以及在计事机上运行时所必需的数据。在计事机上运
10、行时所必需的数据。2022-7-2412第第1章章 软件工程概述软件工程概述二、软件工程方法学二、软件工程方法学通常把在软件生命周期全过程中使用的一整套技通常把在软件生命周期全过程中使用的一整套技术的集合,称为术的集合,称为软件工程方法学软件工程方法学。软件工程方法学。软件工程方法学包括三个要素:方法、工具和过程。包括三个要素:方法、工具和过程。其中:软件工程方法是完成软件开发的各项任务其中:软件工程方法是完成软件开发的各项任务的技术方法,为软件开发提供了的技术方法,为软件开发提供了“如何做如何做”的技术。的技术。软件工具为软件工程方法提供了自动的或半自动的软件工具为软件工程方法提供了自动的或
11、半自动的软件支撑环境。软件工程的过程则是将软件工程的软件支撑环境。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。机软件开发的目的。注:传统方法学和面向对象方法学是目前使用得最广注:传统方法学和面向对象方法学是目前使用得最广泛的两种软件工程方法学。泛的两种软件工程方法学。2022-7-2413第第1章章 软件工程概述软件工程概述1.4 1.4 软件生存期和软件开发模型软件生存期和软件开发模型一、软件生存期一、软件生存期 如同任何其他事物一样,软件也有一个孕育、如同任何其他事物一样,软件也有一个孕育、诞生、成
12、长、成熟、衰亡的生存过程,一般称之诞生、成长、成熟、衰亡的生存过程,一般称之为计算机为计算机软件的生存期软件的生存期。一般说来,软件生命期由软件定义、软件开一般说来,软件生命期由软件定义、软件开发和软件维护三个时期组成,每个时期又可进一发和软件维护三个时期组成,每个时期又可进一步划分成若干个阶段。步划分成若干个阶段。2022-7-2414第第1章章 软件工程概述软件工程概述1 1软件定义时期软件定义时期 (1 1)问题定义:这是软件生存期的第一个阶段,)问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题是什么。主要任务是弄清用户要计算机解决的问题是什么。(2 2)可行性
13、研究:任务是为前一阶段提出的问)可行性研究:任务是为前一阶段提出的问题寻求一种至数种在技术上可行、且在经济上有题寻求一种至数种在技术上可行、且在经济上有较高效益的解决方案。较高效益的解决方案。2022-7-2415第第1章章 软件工程概述软件工程概述2 2软件开发时期软件开发时期 (1 1)需求分析:弄清用户对软件系统的全部需求,)需求分析:弄清用户对软件系统的全部需求,主要是确定目标系统必须具备哪些功能。主要是确定目标系统必须具备哪些功能。(2 2)总体设计:设计软件的结构,即确定程序由哪)总体设计:设计软件的结构,即确定程序由哪些模块组成以及模块间的关系。些模块组成以及模块间的关系。(3
14、3)详细设计:针对单个模块的设计。)详细设计:针对单个模块的设计。(4 4)编码:按照选定的语言,把模块的过程性描述)编码:按照选定的语言,把模块的过程性描述翻译为源程序。翻译为源程序。(5 5)测试:通过各种类型的测试)测试:通过各种类型的测试(及相应的调试及相应的调试)使软使软件达到预定的要求。件达到预定的要求。2022-7-2416第第1章章 软件工程概述软件工程概述3 3软件运行时期软件运行时期 是软件生存周期的最后一个时期。软件人员是软件生存周期的最后一个时期。软件人员在这一时期的工作,主要是做好软件维护。维在这一时期的工作,主要是做好软件维护。维护的目的,是使软件在整个生存周期内保
15、证满护的目的,是使软件在整个生存周期内保证满足用户的需求和延长软件的使用寿命。足用户的需求和延长软件的使用寿命。2022-7-2417第第1章章 软件工程概述软件工程概述二、软件开发模型二、软件开发模型 1.瀑布模型:瀑布模型:将软件生存周期的各项活动规将软件生存周期的各项活动规定为依照固定顺序连接的若干阶段工作,定为依照固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品。形如瀑布流水,最终得到软件产品。2022-7-24182022-7-2419第第1章章 软件工程概述软件工程概述2.螺旋模型:为了克服瀑布模型的不足,螺螺旋模型:为了克服瀑布模型的不足,螺旋模型于旋模型于1988年提
16、出。该模型中加入了风年提出。该模型中加入了风险分析,通常用来指导大型软件项目的开险分析,通常用来指导大型软件项目的开发。发。2022-7-2420螺旋模型2022-7-24212022-7-2422第第1章章 软件工程概述软件工程概述3.喷泉模型:体现了软件创建所固有的喷泉模型:体现了软件创建所固有的迭代和无间隙的特征。迭代和无间隙的特征。2022-7-2423喷泉模型2022-7-24242022-7-2425第2章 需求分析 2.1 需求分析需求分析 2.2 需求分析的过程需求分析的过程 2.3 数据数据流图流图 2.4 数据字典数据字典 2.5 结构化需求分析的若干技术结构化需求分析的若
17、干技术 2.6 验证软件需求验证软件需求 2.7 小结小结 为什么需要需求分析为什么需要需求分析:开发人员往往急于求成开发人员往往急于求成希望对开发进行指导希望对开发进行指导希望开发人员理解用户的要求希望开发人员理解用户的要求希望用户理解开发人员希望用户理解开发人员测试部门有理可依测试部门有理可依2.1 2.1 需需 求求 分分 析析需求分析的任务需求分析的任务 需求分析的主要任务就是要通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求。准确地定义未来系统的目标准确地定义未来系统的目标确定为了满足用户的需求系统必须做什么确定为了满足用户的需求系统必须做什么用用需求规格说明书需求
18、规格说明书 规范的形式准确地规范的形式准确地表达用户的需求。表达用户的需求。什么是用户需求什么是用户需求n思考、涉及的几个问题思考、涉及的几个问题如何识别、获取需求如何识别、获取需求?你能够采取何种手段与用户进行交流沟你能够采取何种手段与用户进行交流沟通通?何为需求建模何为需求建模?你如何理解模型与建模你如何理解模型与建模?用户对系统的需求通常可分为如下两类用户对系统的需求通常可分为如下两类:(1)功能性需求功能性需求:主要说明了待开发系统在功能上实际应做到什么,是用户最主要的需求。通常包括系统的输入、系统能完成的功能、系统的输出及其他反应。(2)非功能性需求非功能性需求:从各个角度对所考虑的
19、可能的解决方案的约束和限制。主要包括:过程需求过程需求(如交付需求、实现方法需求等)、产品需求产品需求(如可靠性需求、可移植性需求、安全保密性需求等)和外部需外部需求求(如法规需求、费用需求等)等。需求分析的步骤需求分析的步骤问题分析问题分析问题评估和方案综合问题评估和方案综合建模建模规约规约复审复审 系统分析员的主要系统分析员的主要焦点焦点是是 “做什么做什么(whatwhat)”,不是,不是 “怎样做(怎样做(howhow)”需求获取面临的挑战需求获取面临的挑战 客户说不清楚需求客户说不清楚需求 需求易变性需求易变性问题的复杂性和对问题空间问题的复杂性和对问题空间 理解的不完备性与不一致性
20、理解的不完备性与不一致性需求获取的常用方法需求获取的常用方法建立分析小组建立分析小组 领域专家:领域专家:主角主角 系统分析员:导演系统分析员:导演客户访谈客户访谈问题分析与确认问题分析与确认 现场提问题的类别现场提问题的类别第一类第一类:关注客户、整体目标和收益:关注客户、整体目标和收益谁是本工作的最初请求者?谁是本工作的最初请求者?谁将使用该解决方案?谁将使用该解决方案?成功的解决方案的经济收益是什么?成功的解决方案的经济收益是什么?存在另外一个需要解决的问题吗?存在另外一个需要解决的问题吗?第二类第二类:便于分析员更好的理解、并使:便于分析员更好的理解、并使得客户更好的表达观点得客户更好
21、的表达观点对正在开发中的系统能够带来的好处有对正在开发中的系统能够带来的好处有什么看法?什么看法?该解决方案强调了什么问题?该解决方案强调了什么问题?能向我演示或者描述本方案应用的环境能向我演示或者描述本方案应用的环境吗?吗?存在影响本方案的特殊性能问题或约束存在影响本方案的特殊性能问题或约束吗?吗?第三类第三类:所谓的:所谓的“元问题元问题”你是回答这些问题的合适人员吗?你的你是回答这些问题的合适人员吗?你的回答是回答是“正式的正式的”吗?吗?我的提问和你想解决的问题相关吗?我的提问和你想解决的问题相关吗?还有其他人员可以提供附加信息吗?还有其他人员可以提供附加信息吗?还有其他我应该问你的问
22、题吗?还有其他我应该问你的问题吗?常用的提问词常用的提问词 谁谁 什么什么 哪里哪里 何时何时 为什么为什么 如何(怎样)如何(怎样)某出版社系统调查表某出版社系统调查表编号提出问题1您在哪个部门工作?您在哪个部门工作?2出版业务流程是什么?出版业务流程是什么?3您每日都处理那些文件、数据、报表?您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响工作中手工处理什么问题解决不了?影响效率的问题有哪些?效率的问题有哪些?6您认为提高工作效率,节省工作时间,减您认为提高工作效率,节省工作时间,减轻工作强度
23、可采取哪些办法?轻工作强度可采取哪些办法?某出版社系统调查表某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪您的部门需要成本核算和统计的内容有哪些?些?8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解哪些问题是目前传统手工方法根本无法解决的?决的?11出版社计算机管理信息系统需要解决什么出版社计算机管理信息系统需要解决什么问题?问题?客户的需求观客户的需求观谁是客户谁是客户?客户是指直接或间接从产品中获得利益客户是指直接或间接从产品中获得利益的个人或组
24、织的个人或组织 软件客户包括提出要求、支付款项、选软件客户包括提出要求、支付款项、选择、具体说明或使用软件产品的项目风择、具体说明或使用软件产品的项目风险承担者险承担者(stakeholder)(stakeholder)或是获得产品或是获得产品所产生的结果的人。所产生的结果的人。客户与开发人员之间的合作关系客户与开发人员之间的合作关系 高质量的需求来源于客户与开发人员之间有效高质量的需求来源于客户与开发人员之间有效的交流与合作的交流与合作 通常,开发人员与客户或客户代理人成为一种通常,开发人员与客户或客户代理人成为一种对立关系对立关系 只有当双方参与者都明白要成功自己需要什么,只有当双方参与者
25、都明白要成功自己需要什么,同时也应知道要成功合作方需要什么时,才能同时也应知道要成功合作方需要什么时,才能建立起一种合作关系。建立起一种合作关系。软件客户需求权利书软件客户需求权利书(1)(1)客户有如下权利:客户有如下权利:1.1.要求分析人员使用符合客户语言习惯的表达。要求分析人员使用符合客户语言习惯的表达。2.2.要求分析人员了解客户系统的业务及目标。要求分析人员了解客户系统的业务及目标。3.3.要求分析人员组织需求获取期间所介绍的信要求分析人员组织需求获取期间所介绍的信息,并编写软件需求规格说明。息,并编写软件需求规格说明。4.4.要求开发人员对需求过程中所产生的工作结要求开发人员对需
展开阅读全文