现代软件工程课程概述共40页文档
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统化:软件是一种商品,只有系统地控 制产品的质量、开发时间、开发成本才能 使商品走入市场、走向国际。
14.06.2020
12
3.3 印度软件企业的现状
根据印度国家软件和服务企业协会的数据:最 近5年印度软件产业的累计增长率达到了令人惊 奇的52%,软件出口累计增长率超过55%。
印度年软件产业产值超过22亿美元,软件服务 和产品出口累计达10亿美元。2000年达到40亿 美元。
CMM5-摩托罗拉中国软件中心;CMM3 有联想软件、东软、托普软件等,大部分 企业在向CMM2努力。
CMM3是软件企业迈向国际化的门槛。
14.06.2020
11
3.2 我国软件企业的现状
Why?
✓ 规模化和系统化不够。
规模化:软件企业无法形成规模,大多数 企业都是从小型软件开发干起来的,当软 件企业达到一定规模时,管理工作跟不上, 无法形成规模效应。
印度从业人员:开一个大的数组,不用链 表。(先分析后编码)
Why?小型机的512MB内存足够,数组访 问方便、效率高。
14.06.2020
17
3.4 我国与印度软件企业的差距分析
3.1 软件企业的特殊性 3.2 我国软件企业的现状 3.3 印度软件企业的现状 3.4 我国与印度软件企业的差距分析 3.5 重视软件工程管理的必要性
14.06.2020
8
3.1 软件企业的特殊性
软件的复杂性和各模块间的相互依赖性是 其他的产品所无法比拟的。所有的模块以 及模块间的连接环节必须是100%的正确, 不能像硬件那样允许出现一定范围的偏差。
14.06.2020
6
二、教学侧重点
研究生教学侧重点: 1、对软件开发技术的寻根索源; 2、软件质量 3、软件度量 4、软件过程及项目管理 5、SPICE/CMM 6、新型软件工程技术(基于软件体系结构的开 发方法、面向对象建模、分布式部件对象技术、 软件复用技术等)
14.06.2020
7
三、为什么偏重于软件工程管理
➢ 想象一下:如果没有好的管理,软件的架 构会显得混乱,软件的开发过程会是杂乱 无章的。
14.06.2020
9
3.1 软件企业的特殊性
软件作为产品,是用人的大脑生产出来的,不 是机器制造出来的,因而,软件过程对人的依 赖性极大。除去采用好的方法和工具等技术外, 软件的质量极大地依赖于人。(人的创造性极 具个性化)
印度软件产业从业人员16万人。
2000多家软件企业中,75家通过ISO9000,60 多家软件公司通过了CMM认证。5-1,4-3,3-4
14.06.2020
13
3.3 印度软件企业的现状
一个现象:一个印度人到美国登记住宿, 接待员问:“你是从印度来吗?”“是 的”,“那你一定是个软件专家”。
提纲
一、软件工程的体系 二、教学侧重点 三、为什么偏重于软件工程管理 四、软件工程技术的发展 五、教学内容组织 六、教学方法 七、参考资料
14.06.2020
1
一、软件工程的体系
软件工程:以工程化的原理、原则和方法 进行软件开发,以期解决当时出现的“软 件危机”。
软件危机:大型软件开发成本高;开发过 程不易控制;软件开发工作量估计困难; 软件质量低;软件项目失败率高,错误率 高;无法判断大型系统能否正常工作;软 件维护任务重等。
14.06.2020
3Hale Waihona Puke Baidu
一、软件工程的体系
软件过程管理 1、软件产品和过程的质量度量 2、项目计划与管理(包括风险管理) 3、软件过程改进与评估(SPICE)
工程技术解决的是开发效率问题;二过程 管理解决的是开发质量问题。
14.06.2020
4
一、软件工程的体系
为什么需要软件工程?
➢ 当你遇到一个新领域的问题而不知道该如何下 手时;
✓ 所谓的项目经理一般是从编码人员升上来 的,并不是不懂技术,一般至少有4年的 工作经验。
14.06.2020
15
3.3 印度软件企业的现状
✓ 项目经理就是制定开发计划,负责协调,填写 各种表格。
✓ 所有的东西(包括草稿)都有文档。
✓ 详细设计文档要求达到只有这个文档就可以编 码的程度,一般写文档的时间为60%,编码时 间极少。
以前呢?舞蛇者 公众对印度软件的肯定来自于质量。其成
功当然还来自于:良好的英语、低廉的人 力成本。
14.06.2020
14
3.3 印度软件企业的现状
国内从业人员到印度的感受:
✓ 流程重于项目
✓ QC独立于研发部门,专门检查研发部门 的开发流程是不是按照流程走,如果QC 觉得流程不对,会报告上层人员,项目可 能会因此而停止。
✓ 工程制造业影响质量的5要素:人、机器、原料、 方法、环境。人占20%。
✓ 软件工程管理就是要为人提供好的方法和工具 以减轻人的压力,提高效率;通过过程管理技 术尽量减少人的低级错误,减少过程对于人的 依赖程度。
14.06.2020
10
3.2 我国软件企业的现状
从70年代至今,始终处于落后于国际的位 置。
➢ 当你在解决复杂问题的过程中感觉到杂乱无章、 力不从心时;
➢ 当你面对一个充满个性的开发团队而不知如何 协调时;
➢ 当你感觉到开发效率低下、开发质量始终是你 的心头之患时…...
14.06.2020
5
二、教学侧重点
本科生教学侧重点: 1、软件工程的概念 2、软件生命周期 3、软件开发模型 4、软件开发方法 5、软件开发工具 6、基本的项目管理知识
14.06.2020
2
一、软件工程的体系
软件工程技术:
1、软件开发模型:软件开发全过程中系 统的开发、运行和维护所实施的全部过程 (PDCA)、活动、任务的结构框架。 (what)
2、软件开发方法:采用类似于工程的原 理和原则进行软件开发。(how)
3、软件开发工具:实现方法的自动或半 自动的软件支撑环境。(CASE)
✓ 有各种详细的review,组内的、组间的、客户 的等。
✓ 计划很详细,的确能达到小时级别,但是实际 情况还是误差比较大,所以也有加班。
14.06.2020
16
3.4 我国与印度软件企业的差距分析
Example:软件中需要一个列表,用来表示 处理的事务。该列表在业务繁忙的时候将 变得很大。
我国从业人员:用双向链表(先编码后分 析)。
14.06.2020
12
3.3 印度软件企业的现状
根据印度国家软件和服务企业协会的数据:最 近5年印度软件产业的累计增长率达到了令人惊 奇的52%,软件出口累计增长率超过55%。
印度年软件产业产值超过22亿美元,软件服务 和产品出口累计达10亿美元。2000年达到40亿 美元。
CMM5-摩托罗拉中国软件中心;CMM3 有联想软件、东软、托普软件等,大部分 企业在向CMM2努力。
CMM3是软件企业迈向国际化的门槛。
14.06.2020
11
3.2 我国软件企业的现状
Why?
✓ 规模化和系统化不够。
规模化:软件企业无法形成规模,大多数 企业都是从小型软件开发干起来的,当软 件企业达到一定规模时,管理工作跟不上, 无法形成规模效应。
印度从业人员:开一个大的数组,不用链 表。(先分析后编码)
Why?小型机的512MB内存足够,数组访 问方便、效率高。
14.06.2020
17
3.4 我国与印度软件企业的差距分析
3.1 软件企业的特殊性 3.2 我国软件企业的现状 3.3 印度软件企业的现状 3.4 我国与印度软件企业的差距分析 3.5 重视软件工程管理的必要性
14.06.2020
8
3.1 软件企业的特殊性
软件的复杂性和各模块间的相互依赖性是 其他的产品所无法比拟的。所有的模块以 及模块间的连接环节必须是100%的正确, 不能像硬件那样允许出现一定范围的偏差。
14.06.2020
6
二、教学侧重点
研究生教学侧重点: 1、对软件开发技术的寻根索源; 2、软件质量 3、软件度量 4、软件过程及项目管理 5、SPICE/CMM 6、新型软件工程技术(基于软件体系结构的开 发方法、面向对象建模、分布式部件对象技术、 软件复用技术等)
14.06.2020
7
三、为什么偏重于软件工程管理
➢ 想象一下:如果没有好的管理,软件的架 构会显得混乱,软件的开发过程会是杂乱 无章的。
14.06.2020
9
3.1 软件企业的特殊性
软件作为产品,是用人的大脑生产出来的,不 是机器制造出来的,因而,软件过程对人的依 赖性极大。除去采用好的方法和工具等技术外, 软件的质量极大地依赖于人。(人的创造性极 具个性化)
印度软件产业从业人员16万人。
2000多家软件企业中,75家通过ISO9000,60 多家软件公司通过了CMM认证。5-1,4-3,3-4
14.06.2020
13
3.3 印度软件企业的现状
一个现象:一个印度人到美国登记住宿, 接待员问:“你是从印度来吗?”“是 的”,“那你一定是个软件专家”。
提纲
一、软件工程的体系 二、教学侧重点 三、为什么偏重于软件工程管理 四、软件工程技术的发展 五、教学内容组织 六、教学方法 七、参考资料
14.06.2020
1
一、软件工程的体系
软件工程:以工程化的原理、原则和方法 进行软件开发,以期解决当时出现的“软 件危机”。
软件危机:大型软件开发成本高;开发过 程不易控制;软件开发工作量估计困难; 软件质量低;软件项目失败率高,错误率 高;无法判断大型系统能否正常工作;软 件维护任务重等。
14.06.2020
3Hale Waihona Puke Baidu
一、软件工程的体系
软件过程管理 1、软件产品和过程的质量度量 2、项目计划与管理(包括风险管理) 3、软件过程改进与评估(SPICE)
工程技术解决的是开发效率问题;二过程 管理解决的是开发质量问题。
14.06.2020
4
一、软件工程的体系
为什么需要软件工程?
➢ 当你遇到一个新领域的问题而不知道该如何下 手时;
✓ 所谓的项目经理一般是从编码人员升上来 的,并不是不懂技术,一般至少有4年的 工作经验。
14.06.2020
15
3.3 印度软件企业的现状
✓ 项目经理就是制定开发计划,负责协调,填写 各种表格。
✓ 所有的东西(包括草稿)都有文档。
✓ 详细设计文档要求达到只有这个文档就可以编 码的程度,一般写文档的时间为60%,编码时 间极少。
以前呢?舞蛇者 公众对印度软件的肯定来自于质量。其成
功当然还来自于:良好的英语、低廉的人 力成本。
14.06.2020
14
3.3 印度软件企业的现状
国内从业人员到印度的感受:
✓ 流程重于项目
✓ QC独立于研发部门,专门检查研发部门 的开发流程是不是按照流程走,如果QC 觉得流程不对,会报告上层人员,项目可 能会因此而停止。
✓ 工程制造业影响质量的5要素:人、机器、原料、 方法、环境。人占20%。
✓ 软件工程管理就是要为人提供好的方法和工具 以减轻人的压力,提高效率;通过过程管理技 术尽量减少人的低级错误,减少过程对于人的 依赖程度。
14.06.2020
10
3.2 我国软件企业的现状
从70年代至今,始终处于落后于国际的位 置。
➢ 当你在解决复杂问题的过程中感觉到杂乱无章、 力不从心时;
➢ 当你面对一个充满个性的开发团队而不知如何 协调时;
➢ 当你感觉到开发效率低下、开发质量始终是你 的心头之患时…...
14.06.2020
5
二、教学侧重点
本科生教学侧重点: 1、软件工程的概念 2、软件生命周期 3、软件开发模型 4、软件开发方法 5、软件开发工具 6、基本的项目管理知识
14.06.2020
2
一、软件工程的体系
软件工程技术:
1、软件开发模型:软件开发全过程中系 统的开发、运行和维护所实施的全部过程 (PDCA)、活动、任务的结构框架。 (what)
2、软件开发方法:采用类似于工程的原 理和原则进行软件开发。(how)
3、软件开发工具:实现方法的自动或半 自动的软件支撑环境。(CASE)
✓ 有各种详细的review,组内的、组间的、客户 的等。
✓ 计划很详细,的确能达到小时级别,但是实际 情况还是误差比较大,所以也有加班。
14.06.2020
16
3.4 我国与印度软件企业的差距分析
Example:软件中需要一个列表,用来表示 处理的事务。该列表在业务繁忙的时候将 变得很大。
我国从业人员:用双向链表(先编码后分 析)。