软件工程第一章-软件和软件工程

上传人:E**** 文档编号:104689747 上传时间:2019-10-10 格式:PDF 页数:54 大小:2.30MB
返回 下载 相关 举报
软件工程第一章-软件和软件工程_第1页
第1页 / 共54页
软件工程第一章-软件和软件工程_第2页
第2页 / 共54页
软件工程第一章-软件和软件工程_第3页
第3页 / 共54页
软件工程第一章-软件和软件工程_第4页
第4页 / 共54页
软件工程第一章-软件和软件工程_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《软件工程第一章-软件和软件工程》由会员分享,可在线阅读,更多相关《软件工程第一章-软件和软件工程(54页珍藏版)》请在金锄头文库上搜索。

1、实践者的研究方法 课程教学目标课程教学目标 掌握掌握系统的系统的软件开发理论、技术和方法,学会使用正软件开发理论、技术和方法,学会使用正 确的确的工程化方法工程化方法开发出开发出成本低成本低、可靠性好可靠性好、能、能高效高效运运 行的软件。行的软件。 转变对软件的认识:转变对软件的认识: 转变思维定式:转变思维定式: 系统分析员的地位:系统分析员的地位: 工程化训练。工程化训练。 程序程序 系统系统 上升上升 程序员程序员 系统工程师系统工程师 (系统分析员)(系统分析员) 上升上升 用户用户 分析员分析员 程序员程序员 与软件编程课的区别与软件编程课的区别 其他编程类课程:具体某种编程语言(

2、如其他编程类课程:具体某种编程语言(如C/C+、 JAVA等)、专业领域(如网络、嵌入式等)。等)、专业领域(如网络、嵌入式等)。 软件工程软件工程课程:课程: 1.立足于系统的整体。立足于系统的整体。 2.讲授获取需求、系统分析、系统设计、测试及维护,讲授获取需求、系统分析、系统设计、测试及维护, 以及项目管理的理论和方法。以及项目管理的理论和方法。 3.构筑一个软件系统,实践软件开发全过程。构筑一个软件系统,实践软件开发全过程。 4.较之技术,更偏重于管理。较之技术,更偏重于管理。 软件开发知识的半衰期为软件开发知识的半衰期为3年,但软件工程的知识可年,但软件工程的知识可 在整个职业生涯内

3、提供服务。在整个职业生涯内提供服务。 课程内容课程内容 1.概述:软件和软件工程概述:软件和软件工程 2.软件过程软件过程 3.需求工程:需求分析与建模需求工程:需求分析与建模 4.设计:体系结构、构件、用户界面等设计:体系结构、构件、用户界面等 5.软件测试策略和测试技术软件测试策略和测试技术 6.项目管理:估算与度量、风险管理等项目管理:估算与度量、风险管理等 7.质量管理:评审技术、质量保证、配置管理等质量管理:评审技术、质量保证、配置管理等 考核方式考核方式 期末卷面考试期末卷面考试 作业作业 工程化训练:工程化训练: 组建团队:组建团队:56人一组,拥有组名和组长人一组,拥有组名和组

4、长 项目选题:项目选题: 订餐系统订餐系统 闲置书籍流通管理系统闲置书籍流通管理系统 航班订票系统航班订票系统 自拟题目自拟题目 能成功吗?能成功吗? 用户的参与用户的参与 主管层的支持主管层的支持 需求的清晰表述需求的清晰表述 软件软件项目成功的三个主要因素项目成功的三个主要因素: : 软件软件人成功的三个主要因素人成功的三个主要因素: : 需求的把握与控制能力需求的把握与控制能力 良好的沟通能力良好的沟通能力 责任心与承担责任的能力责任心与承担责任的能力 本周任务本周任务 1.确定分组名单确定分组名单 2.召开项目启动会议,确定如下内容:召开项目启动会议,确定如下内容: 组名组名 组长人选

5、组长人选 做什么项目?做什么项目? 3.提交:组名、组长、名单提交:组名、组长、名单(学号学号&姓名姓名)、项目题目、项目题目 备注备注: 应于两周内确定,此后不可更改。应于两周内确定,此后不可更改。 自拟题目应给出一份简要的项目说明。自拟题目应给出一份简要的项目说明。 团队成员上课时请坐在一起,方便讨论。团队成员上课时请坐在一起,方便讨论。 第一章 软件和软件工程 本章内容本章内容 软件的定义、特性、分类。软件的定义、特性、分类。 软件危机!软件危机! 软件工程的含义。软件工程的含义。 容易误导人们的那些软件神话容易误导人们的那些软件神话 一个笑话一个笑话 比尔比尔 盖茨在一次展览会的演讲中

6、谈到:假如盖茨在一次展览会的演讲中谈到:假如GM的的 技术能像计算机技术那样发展,我们现在应该能用技术能像计算机技术那样发展,我们现在应该能用 25美元买到一辆美元买到一辆1加仑油跑加仑油跑1000英里的汽车。英里的汽车。 GM反唇相讥:如果反唇相讥:如果GM的技术像微软那样发展,我的技术像微软那样发展,我 们现在开的汽车会有以下的特点:们现在开的汽车会有以下的特点: 1.你的汽车可能毫无道理的每天抛两次锚。你的汽车可能毫无道理的每天抛两次锚。 2.每次公路上重新画线时,你都得买辆新车。每次公路上重新画线时,你都得买辆新车。 3.有时候你的车在高速公路上莫名其妙的熄火,你必须有时候你的车在高速

7、公路上莫名其妙的熄火,你必须 accept,然后,然后restart。 4.当你买了“轿车当你买了“轿车95”或者“轿车”或者“轿车NT”后,每次车上”后,每次车上 只能坐一个人,你要给其他人再买椅子。只能坐一个人,你要给其他人再买椅子。 5.油量、水温和其他警告牌等将由一个“油量、水温和其他警告牌等将由一个“general car failure”的警告灯所代替。”的警告灯所代替。 6.新坐椅要求大家屁股的尺寸相同。新坐椅要求大家屁股的尺寸相同。 7.气囊系统弹出前将询问“气囊系统弹出前将询问“are you sure?”,要求你加”,要求你加 以确认。以确认。 8.有时汽车会锁死车门使你无

8、法进入汽车,你得不停地有时汽车会锁死车门使你无法进入汽车,你得不停地 提门把手,拿钥匙捅,晃天线,直到打开车门。提门把手,拿钥匙捅,晃天线,直到打开车门。 软件缺陷造成的损失软件缺陷造成的损失 软件缺陷造成的损失软件缺陷造成的损失(续续) 第一节 软件概述 软件的定义软件的定义 软件是计算机系统中与硬件相互依存的另一部分,它软件是计算机系统中与硬件相互依存的另一部分,它 包括:包括: 1.指令的集合指令的集合(计算机计算机程序程序):通过执行这些指令,可以:通过执行这些指令,可以 满足预期的特性、功能和性能需求。满足预期的特性、功能和性能需求。 2.数据结构数据结构:使得程序可以合理利用信息。

9、:使得程序可以合理利用信息。 3.软件描述信息软件描述信息(文档文档):以硬拷贝和虚拟形式存在,用:以硬拷贝和虚拟形式存在,用 来描述程序的开发、维护、操作和使用。来描述程序的开发、维护、操作和使用。 软件的特性软件的特性 1.软件是逻辑产品,没有明显的物软件是逻辑产品,没有明显的物 理形态,它是设计开发的,而不理形态,它是设计开发的,而不 是传统意义上生产制造的。是传统意义上生产制造的。 2.软件在运行和使用期间,没有硬软件在运行和使用期间,没有硬 件那样的机械磨损和老化问题,件那样的机械磨损和老化问题, 但存在软件退化问题但存在软件退化问题 。 3.虽然软件产业正在向基于构件的虽然软件产业

10、正在向基于构件的 组装前进,但大多数软件仍是定组装前进,但大多数软件仍是定 制式的手工生产方式。制式的手工生产方式。 软件的分类软件的分类 系统软系统软 件件 针对特定针对特定 业务的应业务的应 用软件用软件 工程和科工程和科 学计算软学计算软 件件 嵌入式软嵌入式软 件件 产品线软产品线软 件件 基于基于WEB 的应用软的应用软 件件 人工智能人工智能 软件软件 软件的规模软件的规模 软件规模类别软件规模类别 参加人员数参加人员数 开发期限开发期限 产品规模产品规模(源代码行数源代码行数) 微型微型 1 14周周 500行行 小型小型 1 16月月 10002000行行 中型中型 25 12

11、年年 50005万行万行 大型大型 520 23年年 5万万10万行万行 甚大型甚大型 1001000 45年年 10万万100万行万行 极大型极大型 20005000 510年年 100万万1000万行万行 几个实例几个实例 系统名称系统名称 规模规模 水星计划系统水星计划系统(1963年年) 200万条指令万条指令 双子星座计划系统双子星座计划系统(1967年年) 400万条指令万条指令 阿波罗计划系统阿波罗计划系统(1973年年) 1000万条指令万条指令 哥伦比亚航天飞机系统哥伦比亚航天飞机系统(1979年年) 4000万条指令万条指令 Windows95 1000万行代码万行代码 W

12、indows2000 5000万行代码万行代码 开发人员结构开发人员结构 Exchange2000 Windows2000 项目经理项目经理 25人人 约约250人人 开发人员开发人员 140人人 约约1700人人 测试人员测试人员 350人人 约约3200人人 软件的发展历程软件的发展历程 阶段阶段 程序设计程序设计 1950 至至 60 年代年代 程序系统程序系统 60至至70年代年代 (现代)软件工程(现代)软件工程 70年代以后年代以后 特点特点 软件所指软件所指 程序程序 程序及说明书程序及说明书 程序、文档和数据程序、文档和数据 程序设计语言程序设计语言 汇编及机器语言汇编及机器语

13、言 高级语言高级语言 软件语言软件语言 软件工作范围软件工作范围 程序编写程序编写 包括设计和测试包括设计和测试 软件生存期软件生存期 需求者需求者 程序设计本人程序设计本人 少数用户少数用户 市场用户市场用户 开发软件的组织开发软件的组织 个人个人 开发小组开发小组 开发小组及大中型软件开发机构开发小组及大中型软件开发机构 软件规模软件规模 小型小型 中小型中小型 大中小型大中小型 决定质量的因素决定质量的因素 个人程序技术个人程序技术 小组技术水平小组技术水平 管理水平管理水平 开发技术和手段开发技术和手段 子程序子程序/程序库程序库 结构化程序设计结构化程序设计 数据库、开发工具、开发环

14、境、工程化数据库、开发工具、开发环境、工程化 开发方法、标准和规范、网络及分布式开发方法、标准和规范、网络及分布式 开发、面向对象技术、软件复用开发、面向对象技术、软件复用 维护责任者维护责任者 程序设计者程序设计者 开发小组开发小组 专职维护人员专职维护人员 硬件特征硬件特征 价格高价格高/存储容量小存储容量小 工作可靠性差工作可靠性差 降价、速度、容量及工作降价、速度、容量及工作 可靠性明显提高可靠性明显提高 快速向超高速、大容量、微型化及网络快速向超高速、大容量、微型化及网络 化发展化发展 软件特征软件特征 完全不受重视完全不受重视 软件技术的发展不能满足软件技术的发展不能满足 需求,出

15、现需求,出现软件危机软件危机 开发技术有进步,但未获突破性进展,开发技术有进步,但未获突破性进展, 价高,未完全摆脱软件危机价高,未完全摆脱软件危机 软件危机软件危机 软件工程的概念源自软件工程的概念源自软件危机软件危机(Software Crisis) 60年代后期,在软件的开发和维护过程中存在一系列年代后期,在软件的开发和维护过程中存在一系列 严重问题,如:严重问题,如: 成本难以估计:开发成本常严重超标;成本难以估计:开发成本常严重超标; 无法制定合理的进度计划:开发周期常大大超过规定无法制定合理的进度计划:开发周期常大大超过规定 日期;日期; 用户对完成的软件常不满意:错误多,质量差,

16、不能用户对完成的软件常不满意:错误多,质量差,不能 保证可用性和可靠性;保证可用性和可靠性; 系统无法增加新功能,难于维护和扩充。系统无法增加新功能,难于维护和扩充。 有些系统彻底失败。有些系统彻底失败。 一个实例一个实例 60年代,年代,IBM OS/360系统,由系统,由4000多个模块组成,约多个模块组成,约 100万条指令,人工为万条指令,人工为5000人年,耗费数亿美元。人年,耗费数亿美元。 该系统投入运行后便发现了该系统投入运行后便发现了2000多个错误,修改后发布新多个错误,修改后发布新 版本,前后共发布了版本,前后共发布了19个版本,每个版本都是修改前一个个版本,每个版本都是修改前一个 版本的上千个错误产生的,系统开发陷入了僵局。版本的上千个错误产生的,系统开发陷入了僵局。 OS/360系统的负责人系统的负责人F. D. Brooks曾这样形象地描述了开曾这样形象

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号