ImageVerifierCode 换一换
格式:PPT , 页数:64 ,大小:710KB ,
文档编号:5059091      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5059091.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(第一篇软件工程概述1课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

第一篇软件工程概述1课件.ppt

1、软件工程软件工程德州学院德州学院1.0 课程介绍1.1 软件的概述1.2 软件危机1.3 软件工程概述1.4 软件生命周期1.5 软件过程模型1.6 软件工程师职业道德规范与要求第第1 1章章 软件工程概述软件工程概述 1.0.1 学科知识点与本课程的关系 1.0.2 本课程的主要学习内容1.0 1.0 课程介绍课程介绍1.0.1 1.0.1 学科知识点与本课程的关系学科知识点与本课程的关系课程分类(三大类)课程分类(三大类)(1 1)计算机数学类)计算机数学类 线性代数线性代数 概率与统计概率与统计 数值分析数值分析 离散数学离散数学 (2 2)硬件与体系结构类)硬件与体系结构类 普通物理普

2、通物理 电路原理电路原理 电子技术电子技术 数字逻辑数字逻辑 汇编语言汇编语言 计算机组成原理计算机组成原理 微型计算机技术微型计算机技术 计算机网络与通信计算机网络与通信 计算机体系结构计算机体系结构(3 3)计算机软件类)计算机软件类 软件工程软件工程 结构化程序设计结构化程序设计 面向对象程序设计面向对象程序设计 数据结构数据结构 算法设计与分析算法设计与分析 操作系统操作系统 编译原理编译原理 数据库系统原理数据库系统原理 Web Web程序设计程序设计 人机界面设计技术人机界面设计技术 人工智能人工智能 软件需求分析软件需求分析 软件项目管理软件项目管理1.0.2 1.0.2 本课程

3、的主要学习内容本课程的主要学习内容p 本课程的研究范畴和教学内容本课程的研究范畴和教学内容p 本课程的教学思想与目标本课程的教学思想与目标p 参考书和学习方法参考书和学习方法p 考核方法考核方法 软件工程理论软件工程理论 软件工程理论软件工程理论的研究主要集中于软件生命周期、过程模的研究主要集中于软件生命周期、过程模型等。型等。过程模型过程模型 过程模型过程模型的主要任务是在软件项目的支持下,按照应用的主要任务是在软件项目的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的应用程序而采取的步骤和模型。效率较高的应用

4、程序而采取的步骤和模型。程序设计语言程序设计语言 程序设计语言程序设计语言的主要介绍软件开发过程中各种开发语言的主要介绍软件开发过程中各种开发语言和相应程序设计风格。和相应程序设计风格。(1 1)本课程的研究范畴)本课程的研究范畴教学内容教学内容本课程较全面介绍软件工程的基本概念、基本原理和基本技术着重介绍软件,包括软件定义和特点,包括软件定义和特点等讨论软件危机、软件工程、生命周期和过程模型等简要介绍程序设语言、软件维护软件测试教学思想与目标教学思想与目标本课程将注重对同学如下能力的培养本课程将注重对同学如下能力的培养 1 1)分析、归纳和设计能力分析、归纳和设计能力:深刻理解基本概念和方法

5、,:深刻理解基本概念和方法,学会软件工程的分析方法,归纳各种概念,权衡各方因素学会软件工程的分析方法,归纳各种概念,权衡各方因素,设设计合理系统。计合理系统。2 2)自学能力自学能力:软件工程软件很多,发展快,绝大多数要:软件工程软件很多,发展快,绝大多数要求学生在实验或课余自学掌握,课堂重在讲方法和个案剖析。求学生在实验或课余自学掌握,课堂重在讲方法和个案剖析。3 3)研究创新能力研究创新能力:软件工程技术发展快,新内容层出不:软件工程技术发展快,新内容层出不穷,注意学习类比,观察提炼,提出新问题,新概念,新方法穷,注意学习类比,观察提炼,提出新问题,新概念,新方法。参考书和学习方法参考书和

6、学习方法学习方法学习方法 软件工程(第二版),齐治昌等软件工程(第二版),齐治昌等 软件工程软件工程理论、方法与实践,孙家广等理论、方法与实践,孙家广等 软件工程软件工程 钱乐秋等钱乐秋等 软件工程概论软件工程概论 郑人杰等郑人杰等考核方法考核方法考核方法:考查 考查成绩(70%)平时成绩(30%)考勤要求:只点人数,可找人替。若查到(处)缺勤,取消平时成绩为0分。(可参加大赛等方式来补偿)课堂纪律:劝导为主(笔记、手机)学生任性。第第1 1章章 软件工程概述软件工程概述 软件是什么?软件是什么?软件软件是计算机系统中是计算机系统中程序、数据程序、数据及其相关及其相关文文档。档。程序程序是按事

7、先设计的功能和性能要求执行的是按事先设计的功能和性能要求执行的指令序指令序列。列。数据数据是使程序能正常操纵信息的是使程序能正常操纵信息的数据结构数据结构。文档文档是与程序开发、维护和使用有关的是与程序开发、维护和使用有关的图文资料图文资料。第第1 1章章 软件工程概述软件工程概述p 软件的概述软件的概述p 软件危机软件危机p 软件工程概述软件工程概述p 软件生命周期软件生命周期p软件过程模型软件过程模型 p软件工程师职业道德规范与要求软件工程师职业道德规范与要求1.1 1.1 软件的概述软件的概述p软件的发展历程软件的发展历程p软件的分类软件的分类p软件的特点软件的特点1.1.1 1.1.1

8、 软件的发展历程软件的发展历程软件经历四个发展阶段软件经历四个发展阶段:第一阶段第一阶段:从从20世纪世纪50年代初到年代初到20世纪世纪60年代年代初初某个具体应用专门设计某个具体应用专门设计开发人员一般地是软件自身的使用者开发人员一般地是软件自身的使用者主要用途是快速计算主要用途是快速计算采用批处理技术采用批处理技术不存在任何系统化的开发方法不存在任何系统化的开发方法1.1.1 1.1.1 软件的发展历程软件的发展历程第二阶段:从20世纪60年代中期到70年代中期多用户系统引入了人机交互多用户系统引入了人机交互存储设备的发展产生了第一代数据库管理系统存储设备的发展产生了第一代数据库管理系统

9、软件产品和软件产品和“软件作坊软件作坊”的概念出现的概念出现软件危机软件危机1.1.1 1.1.1 软件的发展历程软件的发展历程第三阶段:第三阶段:从从20世纪世纪70年代中期到年代中期到80年代末期年代末期分布式系统、网络、微处理器、硬件等因素发分布式系统、网络、微处理器、硬件等因素发展,加剧了软件危机展,加剧了软件危机软件工程学的理论得到快速发展软件工程学的理论得到快速发展1.1.1 1.1.1 软件的发展历程软件的发展历程第四阶段:第四阶段:从从20世纪世纪80年代末期到现在年代末期到现在桌面系统和计算机网络迅速发展桌面系统和计算机网络迅速发展客户机客户机/服务器模式服务器模式面向对象技

10、术推广面向对象技术推广1.1 1.1 软件的概述软件的概述p软件的发展历程软件的发展历程p软件的分类软件的分类p软件的特点软件的特点1.1.2 1.1.2 软件的分类软件的分类p按软件功能进行划分按软件功能进行划分(1)系统软件)系统软件系统软件是与硬件进行频繁地交互,负责各资源系统软件是与硬件进行频繁地交互,负责各资源共享及进程管理、复杂数据结构的处理等工作,共享及进程管理、复杂数据结构的处理等工作,如操作系统、设备驱动程序等。如操作系统、设备驱动程序等。操作系统:操作系统:DOS操作系统、操作系统、Windows、Linux、UNIX。Android、iOS、Windows Phone、C

11、hrome OS。1.1.2 1.1.2 软件的分类软件的分类p 按软件功能进行划分按软件功能进行划分(2)支撑软件)支撑软件支撑软件是协助进行软件开发的工具软件,如支撑软件是协助进行软件开发的工具软件,如API(Application Programming Interface,应用程序编程接,应用程序编程接口)帮助文档等。口)帮助文档等。例:例:Visual Studio是目前最流行的是目前最流行的Windows平台应用程序平台应用程序的集成开发环境。的集成开发环境。Java的的IDE工具:工具:Eclipse、MyEclipse、NetBeans。建模工具:建模工具:Visio、IBM

12、Rational Software Architect、Enterprise Architect、Power designer。1.1.2 1.1.2 软件的分类软件的分类p 按软件功能进行划分按软件功能进行划分(3)应用软件)应用软件应用软件在特定领域内开发,为特定目的服务的一类软件。应用软件在特定领域内开发,为特定目的服务的一类软件。如计算机辅助教学(如计算机辅助教学(Computer Aided Instruction,简称,简称CAI)。)。例:电子商务网站:天猫、京东、好乐购、唯品会。例:电子商务网站:天猫、京东、好乐购、唯品会。教务管理系统、图书管理系统、微信、教务管理系统、图书管

13、理系统、微信、QQ、中国铁路客户服务中心(中国铁路客户服务中心(12306)1.1.2 1.1.2 软件的分类软件的分类p 按软件规模进行划分按软件规模进行划分类别所需人力研制期限产品规模(源代码行数)微型114周500小型116周10002000中型2512年500050 000大型52023年50 000500 000超大型100100045年1 000 000极大型20005000510年1 000 00010 000 000表1.1 软件划分种类1.1.2 1.1.2 软件的分类软件的分类p 按工作方式进行划分按工作方式进行划分 (1)实时处理软件)实时处理软件 例:实时监控软件、股票

14、行情软件、火车票订票系统、例:实时监控软件、股票行情软件、火车票订票系统、交通控制控制系统、导弹火箭控制系统。交通控制控制系统、导弹火箭控制系统。(2)分时软件)分时软件 (3)交互式软件)交互式软件 (4)批处理软件)批处理软件 1.1 1.1 软件的概述软件的概述p软件的发展历程软件的发展历程p软件的分类软件的分类p软件的特点软件的特点1.1.3 1.1.3 软件的特点软件的特点(1)软件是一种)软件是一种逻辑实体逻辑实体,不是具体的物理实体。,不是具体的物理实体。(2)软件是通过)软件是通过研制研制而产生。而产生。(3)软件没有机械磨损和老化问题,但有)软件没有机械磨损和老化问题,但有退

15、化退化问题。问题。(4)软件对计算机系统依赖性较强,具有)软件对计算机系统依赖性较强,具有可移植性可移植性。(5)软件的开发至今未摆脱)软件的开发至今未摆脱手工作坊式手工作坊式的开发方式,的开发方式,生生产效率低产效率低。(6)软件作为提高人类工作效率的逻辑产品,其本身具)软件作为提高人类工作效率的逻辑产品,其本身具有有复杂性复杂性。(7)软件)软件成本成本相当昂贵。相当昂贵。(8)软件开发牵扯到相当多的)软件开发牵扯到相当多的社会因素社会因素。第第1 1章章 软件工程概述软件工程概述p 软件的概述软件的概述p 软件危机软件危机p 软件工程概述软件工程概述p 软件生命周期软件生命周期p软件过程

16、模型软件过程模型 p软件工程师职业道德规范与要求软件工程师职业道德规范与要求1.2 1.2 软件危机软件危机p软件危机定义及表现软件危机定义及表现p产生的原因及解决途径产生的原因及解决途径1.2.1 1.2.1 软件危机定义及表现软件危机定义及表现软件危机软件危机是指在计算机软件开发和维护过程中所遇到的是指在计算机软件开发和维护过程中所遇到的一系列严重问题一系列严重问题。在在1968年,北大西洋公约组织的计算机科学家在联邦德年,北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提到了国召开的国际学术会议上第一次提到了“软件危机软件危机”(Software crisis)。)。软

17、件危机包含问题:软件危机包含问题:如何开发软件如何开发软件,以满足不断增长、日趋复杂的需求。,以满足不断增长、日趋复杂的需求。如何维护如何维护已有软件产品。已有软件产品。1.2.1 1.2.1 软件危机定义及表现软件危机定义及表现软件危机的表现:软件危机的表现:(1)对软件开发成本和进度的估计常常不准确。)对软件开发成本和进度的估计常常不准确。软件开发成本软件开发成本很难预估,导致开发经费不断追很难预估,导致开发经费不断追加。加。工作量估计工作量估计不足,预先制定的进度计划无法遵不足,预先制定的进度计划无法遵循,开发工作完成期限一拖再拖。循,开发工作完成期限一拖再拖。1.2.1 1.2.1 软

18、件危机定义及表现软件危机定义及表现(2)用户对)用户对“已完成的已完成的”软件系统不满意的现软件系统不满意的现象经常发生。象经常发生。用户用户在描述需求时表述不明确,在软件开发过在描述需求时表述不明确,在软件开发过程中,不断程中,不断变更需求变更需求,同时,同时双方双方未能及时沟通,造未能及时沟通,造成软件开发后期积累了大量问题。成软件开发后期积累了大量问题。开发人员开发人员不重视需求分析,在没有充分明确需不重视需求分析,在没有充分明确需求的情况下开始着手编程,这种求的情况下开始着手编程,这种“闭门造车闭门造车”的状的状态必然导致最终产品不符合用户实际需求。态必然导致最终产品不符合用户实际需求

19、。1.2.1 1.2.1 软件危机定义及表现软件危机定义及表现(3)软件产品的质量往往靠不住。)软件产品的质量往往靠不住。例:例:1994年年,英特尔奔腾浮点除法软件缺陷,导致为自英特尔奔腾浮点除法软件缺陷,导致为自己的行为道歉并花费己的行为道歉并花费4亿多美元亿多美元更换坏芯片更换坏芯片.原因:芯片发布前已发现问题,但管理层忽略了。软件原因:芯片发布前已发现问题,但管理层忽略了。软件缺陷被发现时,英特尔试图掩饰该问题的严重性。受到压缺陷被发现时,英特尔试图掩饰该问题的严重性。受到压力时,英特尔承诺更换芯片但要求用户证明自己受到软件力时,英特尔承诺更换芯片但要求用户证明自己受到软件缺陷的影响缺

20、陷的影响.(4195835/3145727)3145727-4195835=01.2.1 1.2.1 软件危机定义及表现软件危机定义及表现(3)软件产品的质量往往靠不住)软件产品的质量往往靠不住例:例:1991年年,美国爱国者导弹防御系统在几次对抗导弹战美国爱国者导弹防御系统在几次对抗导弹战役中失利,误击毙役中失利,误击毙28名美军士兵。名美军士兵。(海湾战争海湾战争)原因:一个很小的系统时钟错误积累,可能拖延原因:一个很小的系统时钟错误积累,可能拖延14小时并小时并造成跟踪系统失去准确度,多哈战中系统拖延了造成跟踪系统失去准确度,多哈战中系统拖延了100多个小时。多个小时。例:例:2007年

21、年10月月30日上午日上午11时,时,2008北京奥运会售票系统北京奥运会售票系统软件瘫痪。售票系统瘫痪事件发生后,公众普遍质疑歌华特软件瘫痪。售票系统瘫痪事件发生后,公众普遍质疑歌华特玛捷公司是否具备承担玛捷公司是否具备承担2008北京奥运会的票务销售能力。北京奥运会的票务销售能力。1.2.1 1.2.1 软件危机定义及表现软件危机定义及表现(3)软件产品的质量往往靠不住)软件产品的质量往往靠不住例:例:2013年年6月月23日,日,中国工商银行中国工商银行系统瘫痪导致全国多系统瘫痪导致全国多地工行系统柜面取款、地工行系统柜面取款、ATM、网银等无法办理。、网银等无法办理。24日,中日,中国

22、银行系统也短暂瘫痪,一时间金融业钱荒,银行股价暴国银行系统也短暂瘫痪,一时间金融业钱荒,银行股价暴跌,金融市场流动性紧张。跌,金融市场流动性紧张。此次事件涉及北京、上海、武汉、四川等中国多个省市。此次事件涉及北京、上海、武汉、四川等中国多个省市。工行随后证实事件乃系统升级所致。工行随后证实事件乃系统升级所致。1.2.1 1.2.1 软件危机定义及表现软件危机定义及表现(4)软件常常是不可维护的)软件常常是不可维护的投入使用的软件,总是出现一定数量的错误。投入使用的软件,总是出现一定数量的错误。软硬件环境发生变化或者用户提出新的需求,软硬件环境发生变化或者用户提出新的需求,都需要对软件进行修改。

23、都需要对软件进行修改。在软件开发过程中,没有严格遵循软件开发标在软件开发过程中,没有严格遵循软件开发标准,没有完整文档,给维护带来了极大的困难。准,没有完整文档,给维护带来了极大的困难。开发人员离开了开发组织的现象,致使软件维开发人员离开了开发组织的现象,致使软件维护困难。护困难。1.2.1 1.2.1 软件危机定义及表现软件危机定义及表现(5)软件通常没有适当的文档资料)软件通常没有适当的文档资料计算机软件开发完成,不仅仅有程序,还应该计算机软件开发完成,不仅仅有程序,还应该有一套完整文档资料。有一套完整文档资料。软件开发人员可以利用这些文档资料准确地交软件开发人员可以利用这些文档资料准确地

24、交流信息。流信息。维护人员可以作为文档资料阅读从而掌握程序维护人员可以作为文档资料阅读从而掌握程序开发思路。开发思路。1.2.1 1.2.1 软件危机定义及表现软件危机定义及表现(6)软件成本在计算机系统总成本中所占的比)软件成本在计算机系统总成本中所占的比例逐年上升。例逐年上升。软件开发需要大量的人力,软件成本随着通货软件开发需要大量的人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而逐年上升。膨胀以及软件规模和数量的不断扩大而逐年上升。1.2 1.2 软件危机软件危机p软件危机定义及表现软件危机定义及表现p产生的原因及解决途径产生的原因及解决途径1.2.2 1.2.2 产生的原因及解

25、决途径产生的原因及解决途径产生软件危机的主要原因:产生软件危机的主要原因:(1)软件开发需要用科学的工程化的思想来组织)软件开发需要用科学的工程化的思想来组织和指导软件开发各个阶段。和指导软件开发各个阶段。很多软件开发人员往往认为很多软件开发人员往往认为软件开发就是程序设计软件开发就是程序设计。(2)没有完善的质量保证体系。)没有完善的质量保证体系。没有严格的评审制度、科学的软件测试技术及质量没有严格的评审制度、科学的软件测试技术及质量维护技术。维护技术。1.2.2 1.2.2 产生的原因及解决途径产生的原因及解决途径(3)软件文档的重要性没有得到足够的重视。)软件文档的重要性没有得到足够的重

26、视。软件文档是团队成员之间交流和沟通的平台,也是项目管理软件文档是团队成员之间交流和沟通的平台,也是项目管理的重要工具。的重要工具。(4)从事开发的专业人员对软件产业认识不充分,缺乏经)从事开发的专业人员对软件产业认识不充分,缺乏经验。验。(5)软件独有的特点给其开发和维护带来困难。)软件独有的特点给其开发和维护带来困难。软件的自身特点使得软件在开发之前,很难对开发过程进行软件的自身特点使得软件在开发之前,很难对开发过程进行估计。估计。软件错误的隐蔽性和改正错误的复杂性,都使得软件开发和软件错误的隐蔽性和改正错误的复杂性,都使得软件开发和维护在客观上比较困难。维护在客观上比较困难。1.2.2

27、1.2.2 产生的原因及解决途径产生的原因及解决途径为了解决软件危机,用工程化的思想去指导软为了解决软件危机,用工程化的思想去指导软件开发,于是诞生软件工程学。件开发,于是诞生软件工程学。第第1 1章章 软件工程概述软件工程概述p 软件的概述软件的概述p 软件危机软件危机p 软件工程概述软件工程概述p 软件生命周期软件生命周期p软件过程模型软件过程模型 p软件工程师职业道德规范与要求软件工程师职业道德规范与要求1.3 1.3 软件工程概述软件工程概述p软件工程的定义软件工程的定义p研究内容研究内容p基本原理基本原理1.3.1 1.3.1 软件工程的定义软件工程的定义Fritz Bauer认为:

28、认为:软件工程软件工程就是为了经济地获得可靠的且就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。原理。IEEE Standard Glossary of Software Engineering Terminology的定义:的定义:软件工程软件工程是把系统的、规范的、可度是把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,即将工程化应用量的途径应用于软件开发、运行和维护过程,即将工程化应用到软件上到软件上。研究中所述方法的研究。研究中所述方法的研究。1.3.1 1.3.1 软件工程的定义软

29、件工程的定义计算机科学技术百科全书计算机科学技术百科全书的定义:的定义:应用应用计算机科学、数学及管理科学计算机科学、数学及管理科学等原理和理论,借鉴等原理和理论,借鉴传统传统工程工程的原则、方法,创建软件以达到的原则、方法,创建软件以达到提高质量、降低成本的提高质量、降低成本的目目的。的。其中:其中:计算机科学、数学用于构建模型与算法。计算机科学、数学用于构建模型与算法。工程科学用于制定规范、设计规范、评估成本及确定权衡。工程科学用于制定规范、设计规范、评估成本及确定权衡。管理科学用于计划、资源、质量、成本等管理。管理科学用于计划、资源、质量、成本等管理。1.3.1 1.3.1 软件工程的定

30、义软件工程的定义2010年的年的高等学校软件工程本科专业规范高等学校软件工程本科专业规范中对软件工中对软件工程的定义为:程的定义为:应用计算机科学理论和技术以及工程管理原则和方法,按应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或进行研究的学科。布和维护的工程或进行研究的学科。1.3.1 1.3.1 软件工程的定义软件工程的定义软件工程是一门指导软件工程是一门指导软件开发和维护软件开发和维护的工程学科,的工程学科,采用采用工程工程的概念、原理、技术和方法来开发与维护软的

31、概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的件,把经过时间考验而证明正确的管理技术管理技术和当前能和当前能够得到的最好的够得到的最好的技术方法技术方法结合起来,以经济地开发出结合起来,以经济地开发出高质量的软件并有效地维护它。高质量的软件并有效地维护它。1.3 1.3 软件工程概述软件工程概述p软件工程的定义软件工程的定义p研究内容研究内容p基本原理基本原理1.3.2 1.3.2 研究内容研究内容软件工程方法学包括软件工程方法学包括3个要素:个要素:方法、工具和过程方法、工具和过程。方法方法是完成软件开发的各项任务的技术方法。是完成软件开发的各项任务的技术方法。工具工具是

32、为了运用方法而提供的自动或半自动的软件是为了运用方法而提供的自动或半自动的软件工程工程支撑环境支撑环境。过程过程是为了获得高质量的软件所需要完成的一系列是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的任务框架,它规定了完成各项任务的工作步骤工作步骤。1.3.2 1.3.2 研究内容研究内容p 方法方法软件工程方法为软件设计和开发方面提供技术上的解决方法。软件工程方法为软件设计和开发方面提供技术上的解决方法。这些方法包括沟通、需求分析、设计建模、编写代码、测试这些方法包括沟通、需求分析、设计建模、编写代码、测试和维护支持。和维护支持。软件工程方法主要包括软件工程方法主要包

33、括结构化方法、面向对象方法结构化方法、面向对象方法等。等。1.3.2 1.3.2 研究内容研究内容(1)结构化方法)结构化方法基本思想基本思想为:为:自顶向下、逐步求精,采用模块化技术和抽自顶向下、逐步求精,采用模块化技术和抽象技术将系统按功能分解为若干模块象技术将系统按功能分解为若干模块。复杂的软件系统:复杂的软件系统:系统系统子系统子系统 模块。模块。系统系统子系统子系统 子任务子任务 子程序模块。子程序模块。模块由顺序、选择、循环等基本控制结构组成。模块由顺序、选择、循环等基本控制结构组成。结构化方法将过程与数据分离为相互独立的实体,开发的结构化方法将过程与数据分离为相互独立的实体,开发

34、的软件可复用性较差。软件可复用性较差。1.3.2 1.3.2 研究内容研究内容(2)面向对象方法)面向对象方法基本原则基本原则是尽可能是尽可能模拟模拟人类习惯的思维方式,使开发软件人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,将客观世界中的过程,将客观世界中的实体实体抽象为问题域中的抽象为问题域中的对象对象。特点:特点:认为客观世界是由各种对象组成的。认为客观世界是由各种对象组成的。把所有对象都划分为各种对象类,每个类定义一组数据把所有对象都划分为各种对象类,每个类定义一组数据和一组方法。和一组方法。

35、1.3.2 1.3.2 研究内容研究内容按照子类与父类的关系,把若干对象类组成一个按照子类与父类的关系,把若干对象类组成一个层次结层次结构构的系统。的系统。对象彼此之间仅能通过传递对象彼此之间仅能通过传递消息消息相互联系。相互联系。优点优点:使用现实的概念抽象地思考问题,从而自然地解决:使用现实的概念抽象地思考问题,从而自然地解决问题,保证软件系统的稳定性和可复用性以及良好的维护性。问题,保证软件系统的稳定性和可复用性以及良好的维护性。在实际的软件开发中,综合地应用结构化方法和面向对象在实际的软件开发中,综合地应用结构化方法和面向对象方法。方法。1.3.2 1.3.2 研究内容研究内容p 工具

36、工具软件工具是指软件工具是指为支持软件开发、维护、管理而专门研究的计算为支持软件开发、维护、管理而专门研究的计算机程序系统机程序系统。软件工具的分类:软件工具的分类:(1)系统计划工具)系统计划工具版本管理软件、项目进度管理软件等。版本管理软件、项目进度管理软件等。如:如:Visual Studio Team Foundation Server(简写(简写TFS)不仅包括源代码版本控制,)不仅包括源代码版本控制,还包括项目管理、工作流等团队协作功能。还包括项目管理、工作流等团队协作功能。1.3.2 1.3.2 研究内容研究内容(2)需求分析工具)需求分析工具数据字典管理系统、绘制数据流图的专业

37、工具、绘制系统结数据字典管理系统、绘制数据流图的专业工具、绘制系统结构图或构图或E-R的图工具、绘制的图工具、绘制UML各类图的工具等。各类图的工具等。例:例:Visio、Enterprise Architect、IBM Rational Software Architect、Powerdesigner、StarUML、Visual paradigm。1.3.2 1.3.2 研究内容研究内容(3)系统设计工具)系统设计工具用于描述程序算法的程序流程图、判定表等绘制工具,如:用于描述程序算法的程序流程图、判定表等绘制工具,如:Visio、Enterprise Architect。(4)支持编码工

38、具)支持编码工具编辑系统、解释和编译系统等工具,如:编辑系统、解释和编译系统等工具,如:Visual Studio,Java的的IDE工具如工具如Eclipse、MyEclipse、NetBeans。1.3.2 1.3.2 研究内容研究内容(5)测试和调试工具)测试和调试工具测试用例生成器、测试工具、调试工具等,如:测试用例生成器、测试工具、调试工具等,如:Mercury测测试工具,试工具,Rational测试工具,测试工具,Segue测试工具,测试工具,qtp自动化测试自动化测试工具和工具和AutoRunner工具。工具。(6)运行和维护工具)运行和维护工具包括系统运行配置工具以及支持系统维

39、护的工具等。包括系统运行配置工具以及支持系统维护的工具等。(7)文档管理工具)文档管理工具生成和管理系统文档的工具,文档如计算机软件文档编制生成和管理系统文档的工具,文档如计算机软件文档编制规范规范GB/T8567-2006。1.3.2 1.3.2 研究内容研究内容p 软件工程管理软件工程管理软件工程管理的目的是为了按照进度及预算完成软件开发计划,软件工程管理的目的是为了按照进度及预算完成软件开发计划,实现预期的经济和社会效益。实现预期的经济和社会效益。软件工程有软件工程有3类过程管理,如表类过程管理,如表1.2所示。所示。表1.2 软件工程中的三类过程管理序号序号名称名称来源来源特点特点1I

40、SO9000质量管理和质量保证体系国际标准化组织规定了可接受的质量体系的基本要求2CMM软件能力成熟度模型美国卡内基梅隆大学软件工程研究所按5个阶段和18个关键过程域KPA管理3软件企业文化如微软公司等按“人品、智慧、团队精神”三要素管理1.3 1.3 软件工程概述软件工程概述p软件工程的定义软件工程的定义p研究内容研究内容p基本原理基本原理1.3.3 1.3.3 基本原理基本原理软件工程的七条基本原理(软件工程的七条基本原理(BWBoehm,美国):,美国):(1)用分阶段的生命周期计划严格管理)用分阶段的生命周期计划严格管理软件生命周期划分成若干阶段,并相应制定出切实可行的软件生命周期划分

41、成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。计划,然后严格按照计划对软件的开发与维护工作进行管理。Boehm认为,在整个软件生命周期中应制定并严格执行六认为,在整个软件生命周期中应制定并严格执行六类计划:类计划:项目概要计划、里程碑计划、项目控制计划、产品控项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划制计划、验证计划和运行维护计划。1.3.3 1.3.3 基本原理基本原理(2)坚持进行阶段评审)坚持进行阶段评审统计结果显示大部分错误是设计错误,大约占统计结果显示大部分错误是设计错误,大约占63%。错误发现得越晚,改正错

42、误付出的代价越大。错误发现得越晚,改正错误付出的代价越大。坚持进行严格的阶段评审,以便尽早发现错误。坚持进行严格的阶段评审,以便尽早发现错误。(3)实行严格的产品控制)实行严格的产品控制开发人员要采用科学的产品控制技术来顺应需求变化。开发人员要采用科学的产品控制技术来顺应需求变化。当需求变动时,其它各个阶段的文档或代码随之相应变动,当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。以保证软件的一致性。1.3.3 1.3.3 基本原理基本原理(4)采纳现代程序设计技术)采纳现代程序设计技术结构化软件开发技术、面向对象技术。结构化软件开发技术、面向对象技术。采用先进的技术既可

43、以提高软件开发的效率,又可以减少采用先进的技术既可以提高软件开发的效率,又可以减少软件维护的成本。软件维护的成本。(5)结果应能清楚地审查)结果应能清楚地审查尽量明确地每个阶段的开发小组的责任和产品标准,从而尽量明确地每个阶段的开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。使所得到的标准能清楚地审查。1.3.3 1.3.3 基本原理基本原理(6)开发小组的人员应少而精)开发小组的人员应少而精开发人员素质和数量是影响软件质量和开发效率的重要因开发人员素质和数量是影响软件质量和开发效率的重要因素,应该少而精。素,应该少而精。开发小组为开发小组为N人时,可能的通信信道为人时,可能的通信信

44、道为N(N-1)/2,可见随着,可见随着人数人数N的增大,通信开销将急剧增大。的增大,通信开销将急剧增大。1.3.3 1.3.3 基本原理基本原理(7)承认不断改进软件工程实践的必要性)承认不断改进软件工程实践的必要性(1)(6)条原理只是对现有经验的总结和归纳,并不能)条原理只是对现有经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。保证赶上技术不断前进发展的步伐。Boehm提出应把承认不断改进软件工程实践的必要性作为提出应把承认不断改进软件工程实践的必要性作为软件工程的第(软件工程的第(7)条原理。积极采纳新的软件开发技术,注)条原理。积极采纳新的软件开发技术,注意不断总结经验。意不断总结经验。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|