现代软件工程课程概述详解_第1页
现代软件工程课程概述详解_第2页
现代软件工程课程概述详解_第3页
现代软件工程课程概述详解_第4页
现代软件工程课程概述详解_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、现代软件工程课程(kchng)概述主讲(zhjing):肖丁dxiao;北京邮电大学通信软件工程中心4:8443/svn/MSE/2014_2/共五十五页2022年7月29日2课程概述(i sh)导引关于课程(kchng),首先需要澄清的问题为什么要学习这门课程?传统软件工程还有哪些内容需要研究?现代软件工程与传统的区别本科教学与研究生教学的区别软件的过程与软件质量的重要性其次,课程的教学及考核形式考勤10%+平时作业 20% + 期末考试 70%共五十五页2022年7月29日3提纲(tgng)一、软件工程的知识体系(tx)二、教学侧重点三、软件工程管理的重要性四、软件工程技术的发展五、教学内

2、容组织六、教学方法七、参考资料共五十五页2022年7月29日4一、软件工程的知识(zh shi)体系提问:软件工程师应具备的知识结构?软件工程知识体系指南(SWEBOK)目的与目标:为学科范围提供一致的确认;澄清与其它学科(计算机科学、项目管理等)的关系;地位反映学科内容的特征(tzhng);知识构成域-10个专题域。共五十五页2022年7月29日5一、软件工程的知识(zh shi)体系软件工程:以工程化的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。包含一系列过程、方法、技术和工具的框架。Codingprogrammingsoftware engineering软件规模不断扩

3、大软件复杂程度增加软件危机:大型软件开发成本高;开发过程不易控制;软件开发工作量估计困难;软件质量低;软件项目失败率高,错误率高;无法判断大型(dxng)系统能否正常工作;软件维护任务重等。软件危机仍然存在!共五十五页2022年7月29日6一、软件工程(run jin n chn)的知识体系软件工程技术:软件开发模型:软件开发全过程中系统的开发、运行和维护所实施(shsh)的全部过程、活动、任务的结构框架。(What)软件开发方法:采用类似于工程的原理和原则进行软件开发。(How)软件开发工具:实现方法的自动或半自动的软件支撑环境。(CASE)共五十五页2022年7月29日7一、软件工程的知识

4、(zh shi)体系共五十五页2022年7月29日8一、软件工程(run jin n chn)的知识体系软件过程管理软件产品和过程的质量度量项目计划与管理(包括风险管理)软件过程改进与能力测定(SPICE:Software Process Improvement and Capability dEtermination)工程技术主要解决开发效率(xio l)问题;而过程管理则主要解决开发质量问题。共五十五页2022年7月29日9一、软件工程的知识(zh shi)体系共五十五页2022年7月29日10一、软件工程(run jin n chn)的知识体系为什么需要软件工程?遇到一个新领域的问题而不

5、知道该如何下手时;一般的方法、过去的经验模式在解决(jiju)复杂问题的过程中感觉到杂乱无章、力不从心时;抽象、隔离、Teamwork面对一个充满个性的开发团队而不知如何协调时;项目管理、过程管理感觉到开发效率低下、质量始终是你的心头之患时.质量管理、技术管理、过程管理共五十五页软件工程(run jin n chn)与计算机科学的差异软件工程计算机科学目标在时间、资源、人员这3个主要限制条件下构建满足用户需求的软件系统探索正确的计算和建模方法,从而改进计算方法本身产品软件(如办公套件和编译器)算法(比如希尔排序法)和抽象的问题(比如哲学家进餐问题)进度和时间表软件项目都有特定的进度和时间表研究

6、项目一般不具有设定的进度和时间表关注点软件工程关注如何为用户实现价值软件理论关注的是软件本身运行的原理,比如时间复杂度,空间复杂度,和算法的正确性。变化程度随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。同时软件工程本身也处于不断的发展中。对于某一种特定问题的正确解决方法将永远不会改变 2022年7月29日11共五十五页2022年7月29日12提纲(tgng)一、软件工程的知识体系(tx)二、教学侧重点三、软件工程管理的重要性四、软件工程技术的发展五、教学内容组织六、教学方法七、参考资料共五十五页2022年7月29日13二、教学(jio xu)侧重点本科生教学

7、侧重点:(培养软件开发人员)软件工程的概念软件生命周期软件开发模型(mxng) 软件开发方法软件开发工具基本的项目管理知识共五十五页2022年7月29日14二、教学(jio xu)侧重点研究生教学侧重点: (培养软件项目管理人员)软件项目管理软件过程及CMM/CMMI软件质量与软件度量新型软件工程技术(新型软件开发过程模型、基于(jy)软件体系结构的开发方法、构件技术、软件复用之模式和框架技术等)共五十五页2022年7月29日15提纲(tgng)一、软件工程的知识体系二、教学侧重点三、软件工程管理(gunl)的重要性四、软件工程技术的发展五、教学内容组织六、教学方法七、参考资料共五十五页202

8、2年7月29日16三、软件工程(run jin n chn)管理的重要性3.1 软件企业(qy)的特殊性3.2 我国软件企业的现状3.3 印度软件企业的现状3.4 我国与印度软件企业的差距分析3.5 提高我国软件企业的管理水平共五十五页2022年7月29日173.1 软件(run jin)企业的特殊性软件的复杂性和各模块间的相互依赖性是其他的产品所无法比拟的。所有的模块以及模块间的连接环节必须是100%的正确,不能像硬件那样允许出现一定范围的偏差。想象一下:如果没有好的管理,软件开发的组织架构会显得混乱,软件的开发过程会是杂乱无章(z lun w zhng)的。规范化、标准化产业化工业化过程管

9、理、质量管理共五十五页2022年7月29日183.1 软件(run jin)企业的特殊性软件作为产品,是人用大脑生产出来的,不是机器制造出来的,因而,软件过程对人的依赖性极大。除去采用好的方法和工具等技术外,软件的质量极大地依赖于人。(人的创造性极具个性化)工程(gngchng)制造业影响质量的5要素:人、机器、原料、方法、环境。人占20%。软件工程管理就是要为人提供好的方法和工具以减轻人的压力,提高效率;通过过程管理技术尽量减少人的低级错误,减少过程对于人的依赖程度。共五十五页2022年7月29日193.2 我国软件企业(qy)的现状产业政策:信息化带动工业化,工业化促进信息化,信息化是我国

10、加快实现工业化和现代化的必然选择 。产业规模不断(bdun)壮大:1992年我国软件产业总额仅43亿元;2000年593亿元;2001年796亿元,到2002年软件产业总额达到1100亿元,2004年达到2300亿。 共五十五页2022年7月29日203.2 我国软件(run jin)企业的现状软件出口额攀升(pn shn),但相对比例较小。2004年达到28亿美元共五十五页2022年7月29日213.2 我国软件企业(qy)的现状产业结构不良:IT软件服务在IT整体市场中的比重不超过20%(信息化发达国家为40%);软件公司很多,但是大规模的软件公司却很少。硬件网络vs软件服务我国:6:4软

11、件发达国家:3:7截至(jizh)目前为止,我国通过CMM2级以上评估的软件企业已超过100家,其中,通过CMM3级以上评估的已超过45家,通过CMM4,CMM5级评估的有9家 。CMM3是软件企业迈向国际化的门槛。共五十五页2022年7月29日223.2 我国软件(run jin)企业的现状Why?规模化和系统化不够。规模化:软件企业无法形成规模,大多数企业都是从小型软件开发干起来的,当软件企业达到一定规模时,管理工作跟不上,无法形成规模效应。进而无法吸引国际顶尖软件客户。 系统化:软件是一种商品,只有系统地控制产品的质量、开发时间、开发成本才能使商品走入市场、走向国际。许多软件企业在技术开

12、发的工程化、规范化方面程度低,软件产品质量和标准化程度不高,普遍缺乏先进(xinjn)的软件生产技术、经营管理模式和严格的质量监控措施。 共五十五页2022年7月29日233.3 印度软件企业(qy)的现状2001年印度软件销售总额102.3亿美元,软件企业约6000家,从业人员40万。 2001年我国软件销售总额96.3亿美元,软件企业约5000家,从业人员29万。 1990年印度软件出口只有5000万美元,1999年就达到了39亿美元,2000年达到了62亿美元,已经占到了印度全部出口总额的10.5。2001年印度软件出口额为77.8亿美元,同比增长25。估计到2008年,印度软件业产值将

13、达到850亿美元,其中出口500亿美元。 据SEI统计(tngj),有大约300家印度软件公司通过了CMM认证,其中通过最高质量等级CMM5的有50余家,占全球的60%以上。 共五十五页2022年7月29日243.3 印度(yn d)软件企业的现状国内从业人员到印度的感受:流程重于项目QC独立于研发部门,专门检查研发部门的开发流程是不是按照流程走,如果QC觉得流程不对,会报告上层人员,项目可能会因此而停止。所谓的项目经理一般是从编码人员升上来的,并不是(b shi)不懂技术,一般至少有4年的工作经验。共五十五页2022年7月29日253.3 印度(yn d)软件企业的现状项目经理就是制定开发计

14、划,负责协调,填写各种表格。所有的东西(包括(boku)草稿)都有文档。详细设计文档要求达到有这个文档就可以编码的程度,一般写文档的时间为60%,编码时间极少。有各种详细的review,组内的、组间的、客户的等。计划很详细,的确能达到小时级别,但是实际情况还是误差比较大,所以也有加班。共五十五页2022年7月29日263.4 我国与印度软件企业(qy)的差距分析Example:软件中需要一个列表(list),用来表示处理的事务(transaction)。该列表在业务繁忙的时候将变得很大。我国从业人员:用双向链表(先编码后分析)。印度从业人员:开一个大的数组,不用(byng)链表。(先分析后编码

15、)Why?小型机的512MB内存足够,数组访问方便、效率高。共五十五页2022年7月29日273.4 我国与印度(yn d)软件企业的差距分析软件教育水平比较:印度软件人员(rnyun)面对同样的问题有惊人相似的解决方法和程序结构。我国软件人员更重视的是解决问题的个人技巧,重视创造性地发挥(每个人都觉得别人做的软件不好,自己需要延续别人的工作时总是将别人贬损一通,然后重新开发,殊不知:程序员只要具备拧好螺丝钉的能力就可以了。)共五十五页2022年7月29日283.4 我国与印度软件(run jin)企业的差距分析许多公司的项目经理不需要懂技术,有些甚至就是MBA或者是领域专家,而不是编码专家,

16、却能够领导一大群素质良好(lingho)的程序员把工作做好,没有内部不团结的情况。国内的项目经理如果不懂技术则后果是可想而知的(内部不团结,技术人员与管理人员作对项目经理必须在技术上能够压服下属)。共五十五页2022年7月29日293.4 我国与印度软件(run jin)企业的差距分析印度的编程人员的流动率高达30%!可以想见他们的文档工作做得多么地好,他们的产品不依赖于任何一个人,谁都可以立即辞职(c zh),产品的开发还是会正常进行。国内:老板害怕总工,技术骨干拥兵自重,抗拒管理。任何制定好的计划都有可能被技术人员推翻或者跟你消极怠工。共五十五页2022年7月29日303.4 我国与印度软

17、件(run jin)企业的差距分析印度的开发计划能够做到小时级别。如果项目经理没有上班(shng bn),手下的员工可能不知道干什么。一般的计划都定到天。(来自于良好的度量)国内能够将计划定到月就不错了,而且给出的月度计划要么不可能实现,要么就可能被取消,开发人员一般会出现前松后紧的局面。共五十五页2022年7月29日313.4 我国与印度软件(run jin)企业的差距分析印度软件公司十分重视软件开发过程的管理及与其相关理论(lln)与标准的发展。认为编码是十分简单的工作,高中生就可以完成。软件蓝领国内软件公司更重视个人技能的发挥,忽视了过程的管理。国内的个人创造性应该在有限的范围内得到发挥

18、。在满足国内软件市场需求的同时,拓展国际软件市场,增加软件出口量。共五十五页2022年7月29日323.5 提高我国软件(run jin)企业的管理水平质量管理过程质量管理产品质量管理项目管理项目规划(guhu)度量进度安排和跟踪风险管理配置管理变更管理版本管理发布管理其他管理活动共五十五页2022年7月29日333.5 提高(t go)我国软件企业的管理水平在发展具有自主知识产权的民族软件产品的同时,通过大力发展软件外包(ITO/BPO)来提升(tshng)国内软件企业的管理水平,逐步扩大软件企业规模。共五十五页2022年7月29日34提纲(tgng)一、软件工程的知识体系二、教学侧重点三、

19、软件工程管理的重要性四、软件工程技术的发展(fzhn)五、教学内容组织六、教学方法七、参考资料共五十五页2022年7月29日35四、软件工程技术(jsh)的发展新型软件开发过程模型,如:RUP(Rational Unified Process)、XP(eXtrem Programming)新的软件开发方法(fngf):面向对象软件开发方法。新的软件开发工具:UMLIBM RSA共五十五页2022年7月29日36四、软件工程技术(jsh)的发展以软件体系结构为中心(zhngxn)的面向对象软件开发过程提炼特定应用领域的稳定需求和易变需求,建立可复用的领域模型。在特定领域模型的基础上提炼特定应用领

20、域的软件体系结构。进行体系结构设计分配系统功能到相应的构件和连接件上存放设计模式、对象或其它可重用的设计构件。设计构件和连接件复用/存储共五十五页2022年7月29日37四、软件工程(run jin n chn)技术的发展分布式部件对象技术Microsoft COM/DCOM/COM+OMG CORBA(Common Object Request Broker Architecture)Oracle/Sun Microsystem JavaBean、EJB、Java EE基于Web Service技术的SOA(面向服务架构)业务(yw)驱动服务,服务驱动技术 业务敏捷是基本的业务需求 一个成功

21、的SOA总在变化之中 共五十五页2022年7月29日38四、软件工程技术(jsh)的发展软件复用技术Pattern (analysis, design)模式(面向过程抽象)Framework框架(面向应用抽象)MDA:模型驱动架构(面向业务抽象)软件工程(run jin n chn)界越来越普遍的两个发展方向:架构(architecture)研究方法学(methodology)研究共五十五页2022年7月29日39提纲(tgng)一、软件工程的知识(zh shi)体系二、教学侧重点三、软件工程管理的重要性四、软件工程技术的发展五、教学内容组织六、教学方法七、参考资料共五十五页2022年7月29

22、日40五、教学内容组织(zzh)第一章 软件工程现状及发展软件工程发展现状软件危机(wij)软件工程及发展历程软件工程框架软件工程发展趋势及特点共五十五页2022年7月29日41五、教学内容组织(zzh)第二章 软件生命周期过程软件生命周期基本(jbn)过程支持过程组织过程统一过程(UP)共五十五页2022年7月29日42五、教学内容组织(zzh)第三章 软件过程改进的CMM/PSP/TSP模型CMM产生背景CMM内容及管理透视CMM组织结构(jigu)CMM应用CMM与ISO9001PSP过程组织结构TSP过程及角色共五十五页2022年7月29日43五、教学内容组织(zzh)第四章 软件质量

23、软件质量概念软件质量属性软件质量度量(dling)软件质量保证质量管理和质量保证的实施共五十五页2022年7月29日44五、教学内容组织(zzh)第五章 软件(run jin)项目管理项目管理过程风险管理软件质量和效率度量软件项目成本和进度估算软件项目进度安排项目组织结构设计项目过程监控共五十五页2022年7月29日45五、教学内容组织(zzh)第六章 面向对象建模语言和过程面向对象建模思想(sxing)面向对象建模方法统一建模语言UML统一建模过程RUP (以上为本科教学内容)轻量级建模过程XP(研究生的主要内容)本章内容有可能前移共五十五页2022年7月29日46五、教学内容组织(zzh)

24、第七章 软件体系结构(Option)软件体系结构概念软件体系结构的研究意义软件体系结构的研究内容(nirng)基本软件体系结构风格基于体系结构的软件开发模式共五十五页2022年7月29日47五、教学内容组织(zzh)第八章 软件复用(f yn)之模式和框架(Option)软件复用类型模式复用设计模式过程模式和分析模式框架复用模式和框架的关系共五十五页2022年7月29日48五、教学(jio xu)目标敏捷思想及XP方法;软件工程过程及其管理(gunl)方法;评价软件组织能力的技术,CMM/CMMI;软件体系结构及其基本风格;软件项目管理、质量控制。软件复用技术(分析模式、设计模式和过程模式、框架)共五十五页2022年7月29日49提纲(tgng)一、软件工程的知识体系二、教学侧重点三、软件工程管理的重要性四、软件工程技术(jsh)的发展五、教学内容组织六、教学要求及方法七、参考资料共五十五页2022年7月29日50六、教学要求及方法(fngf)软件工程-实践者的研究(ynji)方法。包括实践:要求将软件工程过程、方法和技术应用到实际中,“身体力行”;研究:同时能够站在更高的层面上,在软件工程的过程及管理上,“反思而有所获”;案例分析及总结。 共

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论