1、物联网工程课程实训(验)项目单物联网工程课程实训(验)项目单编制部门:编制部门:编制人:编制人:审核人审核人: :编制日期:编制日期:年年月月日日项目编号项目编号项目名称项目名称物联网软件工程物联网软件工程训练对象训练对象学时学时2 2课程名称课程名称物联网工程物联网工程教教 材材要求递交要求递交递交时间递交时间实训目标1. 物联网软件工程概述物联网软件工程概述2.软件和软件危机软件和软件危机3.软件过程模型软件过程模型4. 2 软件需求软件需求5. 3 软件设计软件设计内容(方法、步骤、要求或考核标准)内容(方法、步骤、要求或考核标准)一、实训设备与工具一、实训设备与工具计算机、全职通计算机
2、、全职通-3000-3000 移动互联专业互联平台移动互联专业互联平台二、实训步骤、方法与要求二、实训步骤、方法与要求(1)物联网软件工程物联网软件工程(2)起始案例起始案例(3)比尔盖子是一名建筑工人比尔盖子是一名建筑工人起初只干一些比较简单的建筑工作起初只干一些比较简单的建筑工作凭个人技术和经验,不需要特别设计,可以顺利完成凭个人技术和经验,不需要特别设计,可以顺利完成新任务:建造一间非常美丽而完整的房间新任务:建造一间非常美丽而完整的房间工作变得复杂许多工作变得复杂许多像不断发展的软件,功能越来越多,越来越复杂像不断发展的软件,功能越来越多,越来越复杂软件复杂性软件复杂性图形用户界面图形
3、用户界面客户客户/服务器结构服务器结构分布式应用分布式应用数据通信数据通信超大型关系型数据库超大型关系型数据库比尔想到需要更多的人手帮他比尔想到需要更多的人手帮他终于组成了自己工作团队终于组成了自己工作团队就像软件中的项目团队就像软件中的项目团队4.项目人员构成比例项目人员构成比例例子:例子:微软微软 EXCHANGE 2000 SERVER 的开发:的开发:项目经理:项目经理:25 人人开发人员:开发人员:140 人人测试人员:测试人员:350 人人WINDOWS 2000:项目经理:项目经理:250 人人开发人员:开发人员:1700 人人测试人员:测试人员:3200 人人5.软件工程师的工
4、作软件工程师的工作项目设计与分析项目设计与分析编码编码编写文档编写文档测试测试团队管理团队管理6.软件开发过程软件开发过程“这次不能盲目开工,我们需要首先好好设计一下!这次不能盲目开工,我们需要首先好好设计一下!”构想构想分析分析设计设计构造构造评估评估7.什么是软件?什么是软件?软件就是程序?软件就是程序?一定要纠正软件就是程序,开发软件就是编写程序的错误观念!一定要纠正软件就是程序,开发软件就是编写程序的错误观念!软件的构成:软件的构成:软件软件=程序程序+文档文档软件定义软件定义:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据软件是能够完成预定功能和性能的可
5、执行的计算机程序和使程序正常执行所需要的数据,加加上描述软件开发过程及其管理、程序的操作和使用的有关文档。上描述软件开发过程及其管理、程序的操作和使用的有关文档。8/软件特征软件特征1.软件不会磨损和老化软件不会磨损和老化2.软件主要是研制,生产是简单的拷贝软件主要是研制,生产是简单的拷贝3.软件是一种逻辑实体,不是物理实体,它具有抽象性软件是一种逻辑实体,不是物理实体,它具有抽象性4.成本昂贵,其开发方式至今尚未摆脱手工方式成本昂贵,其开发方式至今尚未摆脱手工方式5.软件维护不同于硬件维修,易产生新的问题软件维护不同于硬件维修,易产生新的问题6.软件具有软件具有“复杂性复杂性”,其开发和运行
6、常受到计算机系统的限制,即受环境影响大,其开发和运行常受到计算机系统的限制,即受环境影响大9/软件的特征软件的特征硬件失效率曲线,是一硬件失效率曲线,是一 U 型曲线(即浴盆曲线型曲线(即浴盆曲线) 。软件失效率曲线,它没有。软件失效率曲线,它没有 U 型曲线的右半翼。型曲线的右半翼。因为软件不存在磨损和老化问题,然而存在退化问题。因为软件不存在磨损和老化问题,然而存在退化问题。10.软件危机软件危机定义定义计算机软件的开发和维护过程所遇到的一系列严重问题计算机软件的开发和维护过程所遇到的一系列严重问题表现表现对软件开发成本和进度的估算很不准确对软件开发成本和进度的估算很不准确用户很不满意用户
7、很不满意质量很不可靠质量很不可靠没有适当的文档没有适当的文档软件成本比重上升软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势国外软件危机实例国外软件危机实例1963 年美国飞往火星的火箭爆炸,造成年美国飞往火星的火箭爆炸,造成 1000 万美元的损失。原因是万美元的损失。原因是 FORTRAN 程序:程序:DO 5I=1,3误写为:误写为:DO 5I=1 . 31967 年苏联年苏联“联盟一号联盟一号”载人宇宙飞船在返航时载人宇宙飞船在返航时, 由于软件忽略一个小数点由于软件忽略一个小数点, 在进入大气层时因打不开降在
8、进入大气层时因打不开降落伞而烧毁。落伞而烧毁。1991 年年 2 月月 25 日美军位于沙特阿拉伯宰赫兰的军营被一枚成功突防的日美军位于沙特阿拉伯宰赫兰的军营被一枚成功突防的“飞毛腿飞毛腿”击中,死伤击中,死伤 28 人人国内软件危机的表现国内软件危机的表现ERP 成功率为零的讨论成功率为零的讨论国外软件企业水土不服国外软件企业水土不服国内软件企业鱼龙混杂国内软件企业鱼龙混杂财务财务+仓储仓储=ERP?软件危机的原因软件危机的原因原因原因客观:软件本身特点客观:软件本身特点逻辑部件逻辑部件规模庞大规模庞大主观:不正确的开发方法主观:不正确的开发方法忽视需求分析和设计忽视需求分析和设计错误认为:
9、软件开发错误认为:软件开发=程序编写程序编写轻视软件维护轻视软件维护缺陷产生的原因缺陷产生的原因据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占 64%,属于程序编写,属于程序编写的错误仅占的错误仅占 36%。程序编写的许多错误是。程序编写的许多错误是“先天的先天的”。软件缺陷修复的代价软件缺陷修复的代价软件在从需求软件在从需求、设计设计、编码编码、测试一直到交付用户公开使用后的过程中测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷都有可能产生和发现缺陷。随随着整个开发过程的时间推移,更正缺
10、陷或修复问题的费用呈几何级数增长。着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。有没有银弹?有没有银弹? Brooks软件工程软件工程面向对象分析与设计面向对象分析与设计重用重用自动编程工具自动编程工具CMM(软件能力成熟度模型)(软件能力成熟度模型)软件开发过程模型软件开发过程模型软件开发需要经历几个步骤软件开发需要经历几个步骤具体如何实施,具体项目不同,有所区别具体如何实施,具体项目不同,有所区别软件开发过程模型:制作具体软件时,开发步骤的具体实施方法软件开发过程模型:制作具体软件时,开发步骤的具体实施方法瀑布模型瀑布模型瀑布模型瀑布模型 “线性顺序模型线性顺序模型”将
11、每个阶段都清楚定义了起止点将每个阶段都清楚定义了起止点产生明确的交付成果产生明确的交付成果阶段之间通过文档进行沟通阶段之间通过文档进行沟通每个阶段都必需完成全部规定的任务(文档)后才能够进入下一个阶段每个阶段都必需完成全部规定的任务(文档)后才能够进入下一个阶段可行性研究与计划阶段可行性研究与计划阶段确定项目目的确定项目目的了解系统中客户的期望了解系统中客户的期望确定系统的规模确定系统的规模论证项目可行性论证项目可行性技术可行性技术可行性经济可行性经济可行性操作可行性操作可行性社会可行性社会可行性需求分析阶段需求分析阶段需求是产品的根源需求是产品的根源需求工作的优劣对产品影响最大需求工作的优劣
12、对产品影响最大软件设计阶段软件设计阶段设计应用程序体系结构设计应用程序体系结构设计用户界面设计用户界面设计并集成数据库设计并集成数据库用于设计详细资料的原型用于设计详细资料的原型设计并集成系统控件设计并集成系统控件目的:根据用户的需要制定标准,划分并分配任务目的:根据用户的需要制定标准,划分并分配任务测试阶段测试阶段软件测试关键问题软件测试关键问题测试由谁来执行测试由谁来执行who测试什么测试什么what什么时候进行测试什么时候进行测试when怎样进行测试怎样进行测试how软件维护阶段软件维护阶段当软件产品制成并交付使用后当软件产品制成并交付使用后,便开始了软件生命周期的最后阶段便开始了软件生
13、命周期的最后阶段运行和维护阶段运行和维护阶段。软件产品软件产品投入运行之后。仍有必要对软件进行维护,维护工作又分为以下两个部分。投入运行之后。仍有必要对软件进行维护,维护工作又分为以下两个部分。程序维护程序维护正确性维护:改正在开发阶段产生,在测试阶段又没有发现的错误。正确性维护:改正在开发阶段产生,在测试阶段又没有发现的错误。适应性维护:为适应软件的外界环境的变化引起的软件修改。适应性维护:为适应软件的外界环境的变化引起的软件修改。完善性维护:为扩充软件系统功能或改善性能而进行的修改。完善性维护:为扩充软件系统功能或改善性能而进行的修改。使用维护使用维护环境维护:为保证软件产品正常运行而进行
14、的维护(如主机、环境维护:为保证软件产品正常运行而进行的维护(如主机、打印机等打印机等) 。意外事故维护:解决因发生意外事故而使数据混乱或丢意外事故维护:解决因发生意外事故而使数据混乱或丢失的问题而进行的维护。失的问题而进行的维护。计算机病毒治理和维护:预防、检测,清除计算机病毒。计算机病毒治理和维护:预防、检测,清除计算机病毒。运行和维护也应像其他开发阶段一样,提供运行日志、软件问题报告、软件修改报告等维运行和维护也应像其他开发阶段一样,提供运行日志、软件问题报告、软件修改报告等维护文档。护文档。3实训思考实训思考(1)弄清什么是软件。弄清什么是软件。(2)软件怎么维护软件怎么维护三、评分标准三、评分标准1 1什么是软件,得什么是软件,得 2020 分。分。2 2软件怎么维护,得软件怎么维护,得 4040 分分3.3.产生缺陷的原因,得产生缺陷的原因,得 4040 分分