软件工程整套课件完整版电子教案最全ppt整本书课件全套教学教程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程整套课件完整版电子教案最全ppt整本书课件全套教学教程.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 整套 课件 完整版 电子 教案 ppt 全套 教学 教程
- 资源描述:
-
1、2022-8-6Software Engineering 2022-8-6 软件工程是计算机科学与技术专业的一门专业核心课程。通过本课程的学习,使学生掌握系统的软件开发理论、技术和方法,使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下坚实的基础。课程的性质、目的与任务课程的性质、目的与任务2022-8-6 本课程比较全面、系统地介绍软件工程的概念、技术与方法。主要内容包括:软件工程概述、软件生存周期及软件需求分析、软件设计方法、软件测试技术等。通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目
2、,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能。课程主要内容课程主要内容2022-8-6学习本课程的基本要求学习本课程的基本要求 本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设计方法论。通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。2022-8-6第一章第一章 软件工程概述软件工程概述水利工程建筑工程机械工程 本章将对软件的地位和作用、软件的
3、特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生期等方面的问题和基本概念传统工程新兴工程气象工程生物工程2022-8-61.1 软件的概念与特点软件的概念与特点1、软件softwaresoft+ware软制品(软体)软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。2022-8-62、软件特点 软件是一种逻辑实体,而不是具体的物理实体 软件的生产与硬件不同 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线2022-8-6 软件的成本相当昂贵软件技术的发
4、展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%1950197019851995硬件硬件2022-8-63、软件的分类系统软件支撑软件应用软件2022-8-6支撑软件2022-8-6 按开发软件所需的 人力、时间以及完成的 源代码行数。2022-8-6 软件项目开发软件产品开发2022-8-61.2 软件工程的概念及范畴软件工程的概念及范畴 1、“软件工程”-Software Engineering 于1968年 NATO 组织在德国召开的一次会议上提出2022-8-6 软件工程学 软件开发技术 软件工程管理 软件开发方法学 软件工具 软件工程环境 软件工程管理学
5、 软件经济学-软件工程学的范畴 2、软件工程学 2022-8-6 Wake up every day with a feeling of passion for the different technology will make in peoples Life.微软企业文化宗旨部分内容 每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。2022-8-6程序 3、软件的演变(即从传统软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 802022-8-61.3 软件生存周期软件生存周期把软件从产生、发展到成
6、熟、直至衰亡为止(SW life cycle)2022-8-6特点:上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期软件生存周期模型(瀑布模型 Waterfall Model)2022-8-6原型模型(Prototype Model)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。2、为了尽
7、快向用户提供原型,开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。2022-8-6 第二章第二章 问题的定义与可性行研究问题的定义与可性行研究 当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为 计划时期2022-8-6开始问题定义可性行研究 可行否?项目实施计划终止项目的建议结束Y计划时期的工作流程图N2022-8-6Who 为谁设
8、计,用户是谁?What 要解决哪些问题?Why 为什么要解决这些问题 3W Win CE1.0 有用的软件有用的软件2022-8-62.1 现状调查和问题的定义现状调查和问题的定义 目的目的:弄清楚用户要求计算机解决什么问题弄清楚用户要求计算机解决什么问题任务任务:编写系统目标与规范说明书编写系统目标与规范说明书2022-8-62.2 可行性研究与论证可行性研究与论证 1、经济可行性:进行成本效益分析,评估项目的开发成本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用其论证的焦点是:围绕着对系统开发的价值价值进行论证20
9、22-8-6举例:关于开发CAD系统的软件开发成本及效益分析 1 2 3 4 5 年604020 0成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期-成本及效益分析图2022-8-62、技术可行性:对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。通过技术可行性的分析,将为新系统提交技术可行性评估。以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等 技术可行性分析方法-数学模型和优化技术、概率和统计、排队论、控制论等方法。2022-8-6可行性论证报告1、系统概述2、可行性分析3、拟订开发计划4、结论意见2022-8-62.3 可行性分析所
10、需工具可行性分析所需工具(系流程图与系统结构图)1、系统流程图:是用来描述系统物理模型的一种传统工具。2022-8-62022-8-6 举例库存清单系统流程图库存清单程序库存清单程序定货报告定货报告事务事务定货信息定货信息结束结束报告生成程序报告生成程序零件库零件库2022-8-6人工销售教材 流程图2022-8-6计算机售书系统流程图2022-8-62022-8-62、系统结构图:系统工程师用结构摸板开发的系统模型-结构摸板-2022-8-6-传输线的分类系统 3、系统结构环境图(ACD-Architecture Context Diagram):ACD 可用于描述实现系统与系统运行环境之间
11、的信息边界。2022-8-6传输线分类系统条形码阅读器传输线分配站操作员分配站操作员分类机构主 机条形码线速指示器分路命令格式化报告数据查询查询及报告诊断数据-传输线分类系统的 ACD 图处理与控制功能区外部实体2022-8-6 ACD 的层次结构ABC2022-8-6请画出学生成绩管理系统的 ACD 图 2022-8-6 第第3 章章 软件需求分析软件需求分析 软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。软件需求分析阶段要求用 需求
12、规格说明书(SRS)来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。本章将介绍需求分析的(面向数据流图分析方法、面向对象的分析方法)。2022-8-63.1 需求分析的任务需求分析的任务2022-8-6某学校医疗费管理系统2022-8-6 1 1、医疗费管理系统每天医疗费管理系统每天记录记录当天报销的若干职工或职工子女的医当天报销的若干职工或职工子女的医 疗费的疗费的类别、金额类别、金额。2 2、在当天下班前让系统在当天下班前让系统自动结帐自动结帐、统计当天报销的医疗费总额统计当天报销的医疗费总额,供,供 出纳员核对。出纳员核对。3 3、每笔帐要保存备查,每天所报销的费用要
13、和各个职工已报销的金每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金 额累计起来,以便检查哪些职工已超额。额累计起来,以便检查哪些职工已超额。4 4、系统还要配有适当的系统还要配有适当的查询功能查询功能。5 5、年终结算后,下一年度开始时要对数据库文件进行初始化。年终结算后,下一年度开始时要对数据库文件进行初始化。6 6、当职工调离本单位,职工调如本单位或在本单位内部门间调动,当职工调离本单位,职工调如本单位或在本单位内部门间调动,数据库文件应能及时得到修改。数据库文件应能及时得到修改。请完成对上述系统的 需求分析用户对系统的要求2022-8-62022-8-62022-8-62022
14、-8-62022-8-6问题需求问题需求 1、建立目标系统逻辑模型的步骤2022-8-6图形工具 数据流图 数据字典 2、建立目标系统逻辑模型的图形工具2022-8-6 -学生购买教材的具体模型 -学生购买教材的 逻辑模型 2022-8-6 完善目标系统并补充细节,的出目标系统的正式逻辑模型2022-8-62022-8-6一、数据流图一、数据流图 3.2 面向数据流的方法面向数据流的方法 -DFD(Data Flow Diagram)是用来描述系统逻辑模型的一种图形工具。是用来描述系统逻辑模型的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式数据流图从数据传递和加工的角度,以图形的方
15、式刻画数据流从输入到输出的移动变换过程。刻画数据流从输入到输出的移动变换过程。DFD2022-8-62022-8-62022-8-6-系统系统逻辑逻辑模型模型2022-8-62022-8-62022-8-62022-8-62022-8-62022-8-6外部实体外部实体2022-8-6 F1书号书号单价单价数量数量2022-8-62022-8-6-DFD 2022-8-6DFD 2022-8-62022-8-62022-8-6请画出学生成绩管理系统的 DFD 图 2022-8-6二、数据字典二、数据字典 -DD(Data Dictionary)数据字典的任务是数据字典的任务是:对于数据流图中出
16、现的所有被对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。每一个图形元素的名字都有一个确切的解释。DD2022-8-62022-8-62022-8-62022-8-62022-8-62022-8-62022-8-62022-8-62022-8-62022-8-62022-8-62022-8-6 描述把输入数据流变 换为输出数据流的加工过 程,是加工说明的主体。2022-8-62022-8-6自然语言自然语言+结构化形式结构化形式结构化语言结构化语言2022-8-6 例例1:1:请写
17、出下列在请写出下列在 DFD DFD 图中给出的图中给出的 “统计晚婚职工统计晚婚职工”的加工说明的加工说明 Count Late-MarriageEmployeesLate-Marriage-Count RequestLate-Marriage-List=List-Count+Name-ListName-List=Name2022-8-6 Count Late-Marriage Employees Policy For each Late-Marriage-Count request:Repeat the following;Access the staffs-Record.If statu
18、s is single,If sex is maie and Age is over 30 or sex is female and Age is over 26 Write Name to Name-List.Increment List-Count.Until there are no more Staff-Records.Combine List-Count and Name-List.Write Up Late-Marriage-List.2022-8-6 例例2:2:请为下列请为下列DFDDFD中的中的“审查并开发票审查并开发票”加工点写加工点写 加工说明加工说明 2022-8-6把
19、学生学号和姓名写到发票上把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号按购书单上学生的年级和系、专业与班号 检索检索“各班学生用书表各班学生用书表”文件,获得该生当年的书单文件,获得该生当年的书单 对对 购书单上的每一书号购书单上的每一书号 如果如果 书单上无此书号书单上无此书号 则则 把书号写到出错通知单上把书号写到出错通知单上 否则否则 按书号检索按书号检索 “教材存量表教材存量表”文件,文件,从而获得该书的单价与库存量从而获得该书的单价与库存量 如果如果 库存量库存量 购书单的数量购书单的数量 则则 将书号写到出错通知单上将书号写到出错通知单上 否则否则 将将书号、单价、
20、数量、总价等项写入到发票上;书号、单价、数量、总价等项写入到发票上;更新存书量,并写回更新存书量,并写回“教材存量表教材存量表”文件;文件;累计书费合计累计书费合计 把把书费合计写到发票上书费合计写到发票上对对每张购书单每张购书单2022-8-6分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房分房加工逻辑分房加工逻辑判断表判断表采用表格的形式来表达采用表格的形式来表达具复杂判断的加工逻辑具复杂判断的加工逻辑1 1、一般职工婚后、一般职工婚后5 5年可参加分房年可参加分房 2 2、中级以上职称的职工婚后、中级以上职称的职工婚后3 3年年 可参加分房可参
21、加分房 3 3、符合正常分房条件的职工,、符合正常分房条件的职工,若再符合晚婚条件可优先分房若再符合晚婚条件可优先分房2022-8-6分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房2022-8-6判断树判断树判断树是判断表的图形形式判断树是判断表的图形形式其适用场合与判断表相同其适用场合与判断表相同中中 级级 职职 称称不不 分分 房房初婚初婚分房决策分房决策 5年年3-5 年年E(P1)+E(P2)设:C(x)为复杂程度函数 E(x)为决定解决问题x x所需的工作量(时间)函数 C(P1)C(P2)E(P1)E(P2)C(P1+P2)C(P1)+
22、C(P2)Magical Number Seven,Plus or Minus Two,Some Limits on Our Capacity for Processing Information The Psychological Review,1956 G.A.Miller奇妙的数字 7+2,人类信息处理能力的限度2022-8-6C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)软件工程基本定理最小成本区M模块成本接口成本总成本软件开发工作量 模块数 2022-8-6 每个模块的实现细节对于其他模块来说是隐藏的。也就是说,模块中所包含的信息是不允许其他不需要 这些
23、信息的模块使用的。2、信息隐藏(information hiding)栈stack置空栈 makenull进栈 push退栈 pop2022-8-63、模块的独立性(module independence)模块的独立性是指软件系统中每个模块只模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。中其他模块的接口是简单的。2022-8-6(1)、内聚(Cohesion)低 高强弱 内聚性模块独立性2022-8-6 偶然性内聚偶然性内聚 M STORE RECN()TO N READ MASTRE FILE A
24、DD 1 TO X 。ABC 当模块内各部之间没有联系,或者即使有联系,这种联系也很松散。则称这种模块为巧合内聚模块。2022-8-6 逻辑性内聚逻辑性内聚 这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的判定参数来确定该模块应执行哪一种功能。调用模块判定读一个记录写一个记录被调用模块2022-8-6SXYZWABCDSXYZW ABCD2022-8-6 信息性内聚信息性内聚 这种模块能完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。符符 号号 表表 查找登录删除修改2022-8-6 功能性内聚功能性内聚 如果一个模块内所有成分都完成一个功能则称这样的模
25、块为功能模块。主控模块录入查询打印低 高强弱 内聚性模块独立性2022-8-6(2)、耦合 耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低 高弱 强耦合性模块独立性2022-8-6 公共耦合公共耦合 允许一组模块访问同一全局性的数据结构。全局全局数据区数据区ABCDEFB、C、E 为公共耦合2022-8-6 控制耦合控制耦合 如果一个模块通过传送开关、标志、名字 等控制信息,明显地控制选择另一模块的功能 就是控制耦合。A 模块flagf1Bf2fn 2022-8-6 以上给出了 7种耦合类型,这只是从耦合 的机制上所做的分
展开阅读全文