1软件工程概述_第1页
1软件工程概述_第2页
1软件工程概述_第3页
1软件工程概述_第4页
1软件工程概述_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、 u软件生产不能满足日益增长的客观需要,软件生产不能满足日益增长的客观需要,供不应求供不应求u软件开发软件开发成本和进度估计不准确成本和进度估计不准确。节约成本所采取的。节约成本所采取的“权宜之计权宜之计”损害软件的质量,引起用户的不满损害软件的质量,引起用户的不满u软件开发人员对用户的需求缺乏了解。软件开发人员对用户的需求缺乏了解。“闭门造车闭门造车”导致软件产品导致软件产品不符合实际需要不符合实际需要u软件产品软件产品质量差质量差。软件质量保证技术。软件质量保证技术( (审查、复查、审查、复查、测试测试) )没有贯穿于开发的全过程没有贯穿于开发的全过程u软件软件可维护性差可维护性差。错误难

2、以改正,新功能难以增加,。错误难以改正,新功能难以增加,“再用性再用性”的软件没能实现,重复开发类似的软件的软件没能实现,重复开发类似的软件u没有文档资料没有文档资料。资料不完整,给软件交流、管理、维。资料不完整,给软件交流、管理、维护造成困难护造成困难u软件成本逐年上升,软件的软件成本逐年上升,软件的价格昂贵。格昂贵价格昂贵。格昂贵u软件本身的特点软件本身的特点( (如如: :软件规模庞大软件规模庞大) )导致开发和维护导致开发和维护困难困难u软件开发的方法不正确软件开发的方法不正确u开发人员与管理人员重视开发而轻视问题的定义和软开发人员与管理人员重视开发而轻视问题的定义和软件维护件维护u软

3、件开发技术落后软件开发技术落后u软件管理技术差软件管理技术差u采用工程化方法和工程途径来研制与维护软件采用工程化方法和工程途径来研制与维护软件u采用先进的技术、方法与工具来开发与设计软件采用先进的技术、方法与工具来开发与设计软件u采用必要的组织管理措施采用必要的组织管理措施u软件工程是用工程、科学和数学的原则与软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关方法研制、维护计算机软件的有关技术和技术和管理方法管理方法uBoehm:运用现代科学技术知识来设计并构造计运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需算机程序及为开发、运行和维护这些程序所必

4、需的相关文件资料的相关文件资料uIEEE: 软件工程是开发、运行、维护和修复软件软件工程是开发、运行、维护和修复软件的系统方法的系统方法u软件工程方法:为软件开发提供了软件工程方法:为软件开发提供了“如何做如何做”的技术,的技术, 常用的两种方法学是:常用的两种方法学是:结构化方法和面向对象法。结构化方法和面向对象法。u软件工程工具:为软件工程方法提供了自动的或半自软件工程工具:为软件工程方法提供了自动的或半自动的软件支撑环境:动的软件支撑环境:语言、图形、图表语言、图形、图表u软件工程过程:为了获得高质量软件所需完成的一系软件工程过程:为了获得高质量软件所需完成的一系列任务框架,使用列任务框

5、架,使用生命周期模型生命周期模型简洁描述。简洁描述。是一门是一门学科,涉及计算学科,涉及计算机、工程科学、管理科学和数学。机、工程科学、管理科学和数学。软件软件和软件和软件两两个方面。个方面。 。ttp:/ model)快速原型模型快速原型模型(rapid prototype model)演化开发模型演化开发模型增量模型增量模型(incremental model)螺旋模型螺旋模型(spiral model)面向对象开发模型面向对象开发模型构件集成模型构件集成模型(component integration model) 形式化开发模型形式化开发模型转换模型转换模型(transformatio

6、nal model)净室模型净室模型(cleanroommodel)n瀑布模型(生存周期模型)就是传统的生命周期方瀑布模型(生存周期模型)就是传统的生命周期方法学(既法学(既自顶向下结构化开发模型自顶向下结构化开发模型方法)。方法)。n优点:优点:奠定了软件工程方法的基础;流水依赖;便奠定了软件工程方法的基础;流水依赖;便于分工协作;推迟现实;文档易修改;有复审质量于分工协作;推迟现实;文档易修改;有复审质量保证。保证。n缺点:缺点:用户需求明确困难;用户见面晚;纠错慢;用户需求明确困难;用户见面晚;纠错慢;难于克服系统分析员不懂专业领域的知识,用户不难于克服系统分析员不懂专业领域的知识,用户

7、不懂计算机的困难,成功率低。懂计算机的困难,成功率低。适合于系统要求明确适合于系统要求明确的小系统。的小系统。计划时期计划时期开发时期开发时期运行时期运行时期问题定义问题定义可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计编码编码测试测试运行维护运行维护评价评价返回计划返回计划维护阶段维护阶段开发阶段开发阶段定义阶段定义阶段定义做什么的问题结构定义做什么的问题结构设计如何做的体系结构设计如何做的体系结构修改设计修改设计需求说明书需求说明书设计说明书设计说明书源程序清单源程序清单测试报告测试报告维护报告维护报告阶段间的阶段间的顺序性顺序性和和依赖性依赖性(文档文档)推迟实现推

8、迟实现的观点(尽可能推迟物理的观点(尽可能推迟物理实现)实现)质量保证质量保证的观点的观点(文档和评审文档和评审)存在问题存在问题(不适合需求模糊的系统)(不适合需求模糊的系统) 基本思想基本思想先建立一个能够反映用户主要需求的原型,让用先建立一个能够反映用户主要需求的原型,让用户评判,然后再将原型反复改进,最终建立符合户评判,然后再将原型反复改进,最终建立符合用户要求的新系统。用户要求的新系统。建立原型的方法建立原型的方法原型仅包含主要功能和重要接口原型仅包含主要功能和重要接口原型应尽量使用能缩短开发周期的语言和工具原型应尽量使用能缩短开发周期的语言和工具最终的系统,仅把建立原型的过程当作帮

9、助定义最终的系统,仅把建立原型的过程当作帮助定义软件需求的一种手段软件需求的一种手段 规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量增量1规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量增量2规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量增量3规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量增量n属于非整体开发模型,它推迟某些阶段属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件。或所有阶段中的细节,从而较早地产生工作软件。特点:特点:是瀑布模型的是瀑布模型的顺序顺序特征与快速原型法特征与快速原型法的

10、的迭代迭代特征相特征相结合结合的产物的产物在前面增量的基础上开发后面的增量在前面增量的基础上开发后面的增量迭代的思路迭代的思路每次提交每次提交一个满足用户需求子集的一个满足用户需求子集的增量增量构件构件第一个第一个增量往往是增量往往是核心核心的产品。的产品。强调强调每一个增量每一个增量均发布一个可操作的均发布一个可操作的产产品品。能在短时间内向用户能在短时间内向用户提交提交可使用的软件可使用的软件.特点:特点:u瀑布模型瀑布模型+快速原型快速原型+风险分析风险分析u迭代过程迭代过程 n过程过程n软件过程中各个阶段的迭代软件过程中各个阶段的迭代n无间隙指在各项活动之间无明显边界无间隙指在各项活动

11、之间无明显边界n 现在软件产业界普遍认为,开发复杂软现在软件产业界普遍认为,开发复杂软件项目必须采用基于件项目必须采用基于UML的、以构架为中心、的、以构架为中心、用例驱动与风险驱动相结合的迭代式增量开用例驱动与风险驱动相结合的迭代式增量开发过程发过程,它是世界公认的开发复杂软件项目,它是世界公认的开发复杂软件项目的最好过程,已经成为软件界的的最好过程,已经成为软件界的“圣经圣经”。这一开发过程目前已经稳定、成熟。这一开发过程目前已经稳定、成熟。这就是:这就是: RUPRational Unified Process Rational 统一过程是由统一过程是由Rational 软件公软件公司开

12、发和营销的一种司开发和营销的一种软件工程过程软件工程过程,是开发,是开发组织用以组织用以分配与管理任务和职责的一种规范分配与管理任务和职责的一种规范化方法化方法。这个过程的。这个过程的目的目的是在预定的进度和是在预定的进度和预算范围内,开发出满足最终用户需要的高预算范围内,开发出满足最终用户需要的高质量软件。质量软件。(1) (1) 最佳软件开发实践最佳软件开发实践 Best PracticesBest Practicesn迭代迭代地开发软件地开发软件 Develop Iterativelyn管理管理需求需求 Manage Requirementsn应用基于应用基于构件构件的构架的构架 Use

13、 Component Architecturesn为软件建立为软件建立可视化可视化的模型的模型 Model Visually (UML) n不断地不断地验证验证软件质量软件质量 Continuously Verify Qualityn控制软件的控制软件的变更变更 Manage Change(2) RUP (2) RUP 二维过程结构二维过程结构沿时间轴的组织结构沿时间轴的组织结构沿内容轴的组织结构沿内容轴的组织结构9 9个过程:个过程:核心过程工作流核心过程工作流 6 6个个(1 1)业务建模)业务建模(2 2)需求)需求(3 3)分析和设计)分析和设计(4 4)实现)实现(5 5)测试)测试

14、(6 6)部署)部署: :将软件分发给最终用户。将软件分发给最终用户。 4 4个阶段:个阶段:初始阶段初始阶段(Inception)(Inception)、精精化阶段化阶段(Elaboration)(Elaboration)、构构建建阶段阶段(Construction)(Construction)、移移交阶段交阶段(Transition) (Transition) 核心支持工作流核心支持工作流 3 3个个(1 1)配置和变更管理)配置和变更管理(2 2)软件项目管理)软件项目管理(3 3)环境工作流)环境工作流: :提供软件开发环境,包括过程和提供软件开发环境,包括过程和工具工具 17 17位

15、著名软件专家于位著名软件专家于20012001年年2 2月联合起草月联合起草了敏捷软件开发宣言:了敏捷软件开发宣言:n个体和交互个体和交互 胜过胜过 过程和工具过程和工具n可以工作的软件可以工作的软件 胜过胜过 面面俱到的文档面面俱到的文档n客户合作客户合作 胜过胜过 合同谈判合同谈判n响应变化响应变化 胜过胜过 遵循计划遵循计划n虽然右项也具有价值,但我们认为左项具有虽然右项也具有价值,但我们认为左项具有更大的价值。更大的价值。n目标:目标:u可修改性可修改性u有效性有效性u可靠性可靠性u可理解性可理解性u可维护性可维护性u可重用性可重用性u可适应性可适应性u可移植性可移植性u可追踪性可追踪

16、性u可互操作性可互操作性1 1、我们拥有一套讲述如何开发软件的书籍,书中充满、我们拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助我们解决软件开发中遇到的了标准与示例,可以帮助我们解决软件开发中遇到的任何问题。任何问题。2 2、我们拥有最好的开发工具、最好的计算机,一定能、我们拥有最好的开发工具、最好的计算机,一定能做出优秀的软件。做出优秀的软件。 3 3、如果我们落后于计划,可以增加更多的程序员来解、如果我们落后于计划,可以增加更多的程序员来解决。决。 4 4、既然需求分析很困难,不管三七二十一先把软件做、既然需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随

17、时可以修改。了再说,反正软件是灵活的,随时可以修改。5 5、如果软件运行较慢,是换一台更快的计算机,还是、如果软件运行较慢,是换一台更快的计算机,还是设计一种更快的算法?设计一种更快的算法? 6 6、有最好的软件工程方法,最好的编程语言吗?、有最好的软件工程方法,最好的编程语言吗? 7 7、软件中的错误是否可按严重程度分等级?、软件中的错误是否可按严重程度分等级?8 8、确定是否进行一个开发项目时(假如该项目已、确定是否进行一个开发项目时(假如该项目已 通过可行性分析),最先考虑的是是否有通过可行性分析),最先考虑的是是否有: 时间、掌握了项目需要的开发技术、对项目的时间、掌握了项目需要的开发

18、技术、对项目的 应用领域了解程度、合作者情况应用领域了解程度、合作者情况9 9、我可以同时从事多个项目开发吗?、我可以同时从事多个项目开发吗?1010、技术重要还是管理重要?技术重要还是管理重要?我是项目经理,为了我是项目经理,为了 保密,必须掌握项目的核心模块源代码。保密,必须掌握项目的核心模块源代码。1111、开发时,应选择我最熟悉的工具和软件。、开发时,应选择我最熟悉的工具和软件。技术与管理的最大的差异就是管理的艺术性。技术给人的印象是生硬的语法定义和刻板的设计流程,而管理的主题更多的是人,是生命。其实项目管理还包含了人文的关怀和尊重,人与人之间的沟通。管理作为一门艺术性的学科已经得到了人们的广泛认同。 在IT业迅猛发展的今天,科班出生的项目管理人员是否就能站稳脚跟呢?很多掌握了项目管理知识的毕业生,往往因为缺乏技术背景,而感到心里发虚。其实这也是正常的,社会的发展已经不再需要单一学科的狭窄型人才,而需要多种学科交叉的复合型人才。 在

温馨提示

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

评论

0/150

提交评论