现代软件工程(第一讲) 现代软件工程概述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年8月21日 18
3.4 我国与印度软件企业的差距分析

软件教育水平比较:印度软件人员面对同 样的问题有惊人相似的解决方法和程序结 构。而我国软件人员更重视的是解决问题 的个人技巧,重视创造性地发挥(每个人 都觉得别人做的软件不好,自己需要延续 别人的工作时总是将别人贬损一通,然后 重新开发,殊不知:程序员只要具备拧好 螺丝钉的能力就可以了。)
Why? 规模化和系统化不够。 规模化:软件企业无法形成规模,大多数 企业都是从小型软件开发干起来的,当软 件企业达到一定规模时,管理工作跟不上, 无法形成规模效应。 系统化:软件是一种商品,只有系统地控 制产品的质量、开发时间、开发成本才能 使商品走入市场、走向国际。

2012年8月21日 13
3.3 印度软件企业的现状


项目经理就是制定开发计划,负责协调,填写 各种表格。 所有的东西(包括草稿)都有文档。 详细设计文档要求达到只有这个文档就可以编 码的程度,一般写文档的时间为60%,编码时 间极少。 有各种详细的review,组内的、组间的、客户 的等。 计划很详细,的确能达到小时级别,但是实际 情况还是误差比较大,所以也有加班。
17
2012年8月21日
3.4 我国与印度软件企业的差距分析
Example:软件中需要一个列表,用来表示 处理的事务。该列表在业务繁忙的时候将 变得很大。 我国从业人员:用双向链表(先编码后分 析)。 印度从业人员:开一个大的数组,不用链 表。(先分析后编码) Why?小型机的512MB内存足够,数组访 问方便、效率高。
存放设计模式、对象或 其它可重用的设计构件。
25
四、软件工程技术的发展

分布式部件对象技术
Microsoft COM/DCOM/COM+ OMG CORBA(Common Object Request Broker Architecture) Sun Microsystem JavaBean




2012年8月21日
28
五、教学内容组织
第二章 软件生命周期过程 2.1 软件生命周期 2.2 基本过程 2.3 支持过程 2.4 组织过程



2012年8月21日
29
五、教学内容组织





第三章 软件过程改进的CMM/PSP/TSP模型 3.1 CMM产生背景 3.2 CMM内容及管理透视 3.3 CMM组织结构 3.4 CMM应用 3.5 CMM与ISO9001 3.6 PSP过程组织结构 3.7 TSP过程及角色

2012年8月21日 23
四、软件工程技术的发展
新型软件开发模型,如:RUP(Rational Unified Process)、XP(eXtrem Programming)。 新的软件开发方法:面向对象软件开发方 法。 新的软件开发工具:UML(Unified Modeling Language)、ROSE(Rational Object-oriented Software Engineering)
2012年8月21日 6
二、教学侧重点

本科生教学侧重点: 1、软件工程的概念 2、软件生命周期 3、软件开发模型 4、软件开发方法 5、软件开发工具 6、基本的项目管理知识
7
2012年8月21日
二、教学侧重点

研究生教学侧重点: 1、对软件开发技术的寻根索源; 2、软件质量 3、软件度量 4、软件过程及项目管理 5、SPICE/CMM 6、新型软件工程技术(基于软件体系结构的开 发方法、面向对象建模、分布式部件对象技术、 软件复用技术等)

2012年8月21日
14
3.3 印度软件企业的现状
一个现象:一个印度人到美国登记住宿, 接待员问:“你是从印度来吗?”“是 的”,“那你一定是个软件专家”。 以前呢?舞蛇者 公众对印度软件的肯定来自于质量。其成 功当然还来自于:良好的英语、低廉的人 力成本。

2012年8月21日
15
3.3 印度软件企业的现状
30
2012年8月21日
五、教学内容组织
第四章 软件质量 4.1 软件质量概念 4.2 软件质量属性 4.3 软件质量度量 4.4 软件质量保证 4.5 质量管理和质量保证的实施




2012年8月21日
31
五、教学内容组织



第五章 软件项目管理 5.1 项目管理过程 5.2 风险管理 5.3 软件质量和效率度量 5.4 软件项目成本和进度估算 5.5 软件项目进度安排 5.6 项目组织结构设计 5.7 项目过程监控

2012年8月21日
11
3.2 我国软件企业的现状
从上世纪70年代至今,始终处于落后于国 际的位置。 CMM5-摩托罗拉中国软件中心;CMM3 有联想软件、东软、托普软件等,大部分 企业在向CMM2努力。 CMM3是软件企业迈向国际化的门槛。

2012年8月21日
12
3.2 我国软件企业的现状
现代软件工程课程概述
主讲:谭良教授 tanliang@software.ict.ac.cn
提纲
一、软件工程的体系 二、教学侧重点 三、为什么偏重于软件工程管理 四、软件工程技术的发展 五、教学内容组织 六、教学方法 七、参考资料
2012年8月21日 2
一、软件工程的体系
软件工程:以工程化的原理、原则和方法 进行软件开发,以期解决当时出现的“软 件危机”。 软件危机:大型软件开发成本高;开发过 程不易控制;软件开发工作量估计困难; 软件质量低;软件项目失败率高,错误率 高;无法判断大型系统能否正常工作;软 件维护任务重等。




2012年8月21日
34
五、教学内容组织
第八章 分布式部件对象技术 8.1 分布式网络计算 8.2 基于部件的技术 8.3 部件模型 8.4 互操作性 8.5 部件对象技术的发展




2012年8月21日
35
五、教学内容组织
第九章 软件复用之模式和框架 9.1 软件复用类型 9.2 模式复用 9.3 设计模式 9.4 过程模式和分析模式 9.5 框架复用 9.6 模式和框架的关系
32
2012年8月21日
五、教学内容组织
第六章 面向对象建模语言和过程 6.1 面向对象建模思想 6.2 面向对象建模方法 6.3 统一建模语言UML 6.4 统一建模过程RUP 6.5 轻量级建模过程XP




2012年8月21日
33
五、教学内容组织
第七章 软件体系结构 7.1 软件体系结构概念 7.2 软件体系结构的研究意义 7.3 软件体系结构的研究内容 7.4 基本软件体系结构风格 7.5 基于体系结构的软件开发模式
3.3 印度软件企业的现状
根据印度国家软件和服务企业协会的数据:最 近5年印度软件产业的累计增长率达到了令人惊 奇的52%,软件出口累计增长率超过55%。 印度年软件产业产值2010年达到600亿美元。 印度软件产业从业人员40万人。 2000多家软件企业中,400家通过ISO9000, 300多家软件公司通过了CMM认证。
36





2012年8月21日
五、教学内容组织






目标:通过本课程的学习,学生应该掌握: 软件工程技术发展的原因、解决的问题机器局限性, 能够根据具体情况灵活应用各种技术。 软件过程及其管理方法,围绕软件过程改进(SPI) 熟悉CMM(过程能力成熟度模型)、PSP(个体软件 过程)和TSP(群体软件过程)等方面的知识; 软件体系结构及其基本风格; 面向对象的建模技术及UML(统一建模语言); 分布式部件对象技术; 软件复用技术(分析模式、设计模式和过程模式、框 架) 软件项目管理、质量控制。
4
2012年8月21日
一、软件工程的体系

软件过程管理 1、软件产品和过程的质量度量 2、项目计划与管理(包括风险管理) 3、软件过程改进与评估(SPICE) 工程技术解决的是开发效率问题;而过程 管理解决的是开发质量问题。
2012年8月21日
5
一、软件工程的体系

为什么需要软件工程?
当你遇到一个新领域的问题而不知道该如何下 手时; 当你在解决复杂问题的过程中感觉到杂乱无章、 力不从心时; 当你面对一个充满个性的开发团队而不知如何 协调时; 当你感觉到开发效率低下、开发质量始终是你 的心头之患时…...

2012年8月21日
26
四、软件工程技术的发展

软件复用技术
Pattern (analysis, design, process) Framework

2012年8月21日
27
五、教学内容组织
第一章 软件工程现状及发展 1.1 软件发展现状 1.2 软件危机 1.3 软件工程及发展历程 1.4 软件工程框架 1.5 软件发展趋势及特点

2012年8月21日 3
一、软件工程的体系

软件工程技术: 1、软件开发模型:软件开发全过程中系 统的开发、运行和维护所实施的全部过程 (PDCA)、活动、任务的结构框架。 (what) 2、软件开发方法:采用类似于工程的原 理和原则进行软件开发。(how) 3、软件开发工具:实现方法的自动或半 自动的软件支撑环境。(CASE)
19
2012年8月21日
3.4 我国与印度软件企业的差距分析

许多公司的项目经理不需要懂技术,有些 甚至就是MBA或者是领域专家,而不是编 码专家,却能够领导一大群素质良好的程 序员把工作做好,没有内部不团结的情况。 国内的项目经理如果不懂技术则后果是可 想而知的(内部不团结,技术人员与管理 人员做对=〉项目经理必须在技术上能够 压服下属)。
8
2012年8月21日
三、为什么偏重于软件工程管理
3.1 软件企业的特殊性 3.2 我国软件企业的现状 3.3 印度软件企业的现状 3.4 我国与印度软件企业的差距分析 3.5 重视软件工程管理的必要性
2012年8月21日
9
3.1 软件企业的特殊性

软件的复杂性和各模块间的相互依赖性是 其他的产品所无法比拟的。所有的模块以 及模块间的连接环节必须是100%的正确, 不能像硬件那样允许出现一定范围的偏差。

2012年8月21日
21
3.4 我国与印度软件企业的差距分析
印度的开发计划能够做到小时级别。如果 项目经理没有上班,手下的员工可能不知 道干什么。一般的计划都定到天。(来自 于良好的度量) 国内能够将计划定到月就不错了,而且给 出的月度计划要么不可能实现,要么就可 能被取消,开发人员一般会出现前松后紧 的局面。
国内从业人员到印度的感受: 流程重于项目 QC独立于研发部门,专门检查研发部门 的开发流程是不是按照流程走,如果QC 觉得流程不对,会报告上层人员,项目可 能会因此而停止。 所谓的项目经理一般是从编码人员升上来 的,并不是不懂技术,一般至少有4年的 工作经验。

2012年8月21日 16
20
2012年8月21日
3.4 我国与印度软件企业的差距分析
印度的编程人员的流动率高达30%!可以 想见他们的文档工作做得多么地好,他们 的产品不依赖于任何一个人,谁都可以立 即辞职,产品的开发还是会正常进行。 国内:老板害怕总工,技术骨干拥兵自重, 抗拒管理。任何制定好的计划都有可能被 技术人员推翻或者跟你消极怠工。
想象一下:如果没有好的管理,软件的架
构会显得混乱,软件的开发过程会是杂乱 无章的。
2012年8月21日
10
3.1 软件企业的特殊性
软件作为产品,是用人的大脑生产出来的,不 是机器制造出来的,因而,软件过程对人的依 赖性极大。除去采用好的方法和工具等技术外, 软件的质量极大地依赖于人。(人的创造性极 具个性化) 工程制造业影响质量的5要素:人、机器、原料、 方法、环境。人占20%。 软件工程管理就是要为人提供好的方法和工具 以减轻人的压力,提高效率;通过过程管理技 术尽量减少人的低级错误,减少过程对于人的 依赖程度。

2012年8月21日 24
四、软件工程技术的发展

以软件体系结构为中心的面向对象软件开 发过程
复用/存储
进行体系 结构设计
分配系统功能 到相应的构建 和连接件上
设计构件和 连接件
提炼特定应用领域的稳 定需求和易变需求,建 立可复用的领域模型。 2012年8月21日
在特定领域模型的基础 上提炼特定应用领域的 软件体系结构。
பைடு நூலகம்
2012年8月21日 22
3.5 重视软件工程管理的必要性
印度软件公司十分重视软件开发过程的管理及 与其相关理论与标准的发展。认为编码是十分 简单的工作,高中生就可以完成。 国内软件公司更重视个人技能的发挥,忽视了 过程的管理。 国内的个人创造性应该在有限的范围内得到发 挥。 在满足国内软件市场需求的同时,拓展国际软 件市场,增加软件出口量。
相关文档
最新文档