期末软件工程复习第1章_第1页
期末软件工程复习第1章_第2页
期末软件工程复习第1章_第3页
期末软件工程复习第1章_第4页
期末软件工程复习第1章_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

软件工程(SoftwareEngineering)平时成绩:40

考勤:10

实验:30(A、B+、B、B-、C)卷面成绩:60考试形式:闭卷题目形式: 1.选择 10-20 2.判断 10-20 3.解答 60-70第1章:软件工程学概述1.1了解计算机危机产生背景和概念软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)1.2知道危机的典型表现1)对软件开发成本和进度的估计常常很不准确;2)用户对完成的软件系统不满意的现象经常发生;3)软件产品的质量往往靠不住;4)软件常常是不可维护的;5)软件通常没有适当的文档资料;软件危机的典型表现:6)软件成本在计算机系统总成本中所占的比例逐年上升;7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。软件危机的典型表现:1.3产生软件危机的原因1)软件本身特点造成;2)软件开发与维护的方法不正确。主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护;高中低早期中期后期软件开发时期代价图1.1引入同一修改的代价随时间变化的趋势有效的开发方法和技术更好的软件工具;良好的组织管理措施。

1.4怎么来解决危机?1.5

软件工程的概念1.6软件工程的本质特性1.7软件工程的基本原理1.8软件工程方法学软件工程方法学的3要素:方法、工具和过程典型的方法结构化方法结构化分析与设计技术(SADT)JACKSON方法WARNIER方法面向对象方法1.9

软件生命周期软件生命周期:指软件从提出到最终被淘汰的这个存在期。软件生命周期组成:

1)软件定义;

A.问题定义B.可行性研究C.需求分析

2)软件开发;

D.总体设计E.详细设计

F.编码和单元测试G.综合测试

3)运行维护;A.问题定义任务:问题是什么?通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告。经过讨论和必要的修改之后这份报告应该得到客户的确定。结果:关于系统规模和目标的报告书。

问题定义是软件生命周期中时间最短的阶段,一般都比较简单,因此在实际开发中它是最容易被忽视的一个阶段。这一阶段工作主要由系统分析员来完成,系统分析员要尽可能从较高的角度概括软件所要做的工作,而不用写明问题的实现细节。

B.可行性研究任务:有可行的解?系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程。研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。结果:系统的高层逻辑模型(数据流图、成本效益分析)。可行性论证报告(立即进行、推迟进行、不能或者不值得进行)C.需求分析任务:必须做什么主要是确定目标系统必须具备哪些功能。系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。结果:系统的逻辑模型(数据流图、数据字典、简要的算法描述)。用规格说明书准确地记录对目标系统的需求。D.总体设计任务:如何解决已提出的问题?设计出实现目标系统的几种可能的方案(低、中、高成本)。用适当的表达工具描述每种方案,分析优缺点,推荐一个最佳方案,制定出实现最佳方案的详细计划,设计程序的体系结构结果:可能的解法(系统流程图、成本效益分析)。推荐的系统体系结构(层次图或结构图)E.详细设计任务:怎样具体实现该系统?详细设计每个模块,确定实现模块功能所需要的算法和数据结构。结果:每个模块的算法和数据结构(程序流程图、PAD图)。F.编码和测试任务:得到符合要求的软件?选取一种适当的高级程序设计语言,把详细设计的结果翻译成选定的语言书写的程序。并且仔细测试编写出的每一个模块,通过集成测试、验收测试等方法对目标系统进一步测试。。结果:代码和测试报告。G.软件维护任务:使系统持久地满足用户的需要?在软件运行过程中,进行改正性、适应性、完善性、预防性维护。每一项维护活动实质上是经历了一次压缩和简化了的软件定义和开发的全过程。结果:完整准确的维护记录。1.10

软件过程了解软件过程的概念为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。掌握几种过程模型及其特点瀑布模型1.阶段间具有顺序性和依赖性2.推迟实现的观点3.质量保证的观点传统瀑布模型的特点

提供了软件过程模型的基本框架(模板)。

强调了每一阶段活动的严格顺序。

质量保证观点:以经过评审确认了的阶段工作

产品(文档)驱动下一阶段的工作,便于管理。

是一种整体开发模型,程序的物理实现集中在

开发阶段的后期,用户在最后才能看到自己的

产品。

传统瀑布模型存在什么问题?优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。瀑布模型适合于用户需求明确、完整、无重大变化的软件项目开发。瀑布模型的成功在很大程度上是由于它基本上是一种文档驱动的模型。“瀑布模型是由文档驱动的”这个事实也是它的一个主要缺点。

实际项目很少按照该模型给出的顺序进行;用户常常难以清楚地给出所有需求;用户必须有耐心,等到系统开发完成。

瀑布模型的优缺点快速原型模型(RapidPrototypeModel)

在用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户的一组基本需求,快速建造一个原型(可运行的软件),然后进行评估,进一步精化、调整原型,使其满足用户的要求,也使开发者对将要做的事情有更好的理解。建造/修改原型

听取用

户意见用户测试运行原型原型实现范型快速原型模型优点:不带反馈环,基本上是线性顺序进行。原型模型存在的问题

⑴为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。

⑵为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不理想的选择成了系统的组成部分。有效的使用原型模式建造原型仅是为了定义需求,之后就被抛弃(或被部分抛弃),实际的软件在充分考虑了质量和可维护性之后才被开发。快速原型验证规格说明验证设计验证编码测试综合测试维护变化的需求验证维护过程开发过程(3)增量模型(IncrementalModel)是一种渐进地开发逐步完善的软件版本的模型。需求分析验证规格说明验证设计验证维护针对每个构件完成详细设计、编码和集成,经测试后交付给用户分析分析分析分析设计设计设计设计编码编码编码编码测试测试测试测试增量1增量2增量3增量4交付交付交付交付●●●●●

反复的应用瀑布模型的基本成分和原型模型的迭代特征,每一个线型过程产生一个“增量”的发布或提交,该增量均是一个可运行的产品。

早期的版本实现用户的基本需求,并提供给用户评估的平台。增量模型在较短时间内向用户提交可完成部分工作的产品,并分批、逐步地向用户提交产品。从第一个构件交付之日起,用户就能做一些有用的工作。整个软件产品被分解成许多个增量构件,开发人员可以一个构件一个构件地逐步开发。逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。采用增量模型比采用瀑布模型和快速原型模型需要更精心的设计,但在设计阶段多付出的劳动将在维护阶段获得回报。增量模型的优点增量模型的困难在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。此外,必须把软件的体系结构设计得便于按这种方式进行扩充,向现有产品中加入新构件的过程必须简单、方便,也就是说,软件体系结构必须是开放的。开发人员既要把软件系统看作整体。又要看成可独立的构件,相互矛盾。多个构件并行开发,具有无法集成的风险。(4)螺旋模型(SpiralModel)

软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件越复杂,承担该项目所冒的风险也越大。

对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,加入了风险分析。在该模型中,软件开发是一系列的增量发布,早期的迭代中,发布的增量可能是一个纸上的模型或原型,在以后的迭代中,逐步产生系统更加完善的版本。螺旋模型的基本思想是降低风险。快速原型验证规格说明验证设计验证编码测试综合测试维护变化的需求验证风险分析风险分析风险分析风险分析风险分析风险分析可看作在每个阶段之前都增加了风险分析过程的快速原型模型。简化的螺旋模型完整的螺旋模型

螺旋模型风险分析工程实施用户通信用户评估产品维护项目产品增强项目新产品开发项目概念开发项目计划建造及发布螺旋模型的优点对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标减少了过多测试或测试不足维护和开发之间并没有本质区别螺旋模型的特点风险驱动,需要相当丰富的风险评估经验和专门知识,否则风险更大主要适用于内部开发的大规模软件项目,随着过程的进展演化,开发者和用户能够更好的识别和对待每一个演化级别上的风险随着迭代次数的增加,工作量加大,软件开发成本增加(5)面向对象模型喷泉模型(FountainModel)分析设计实现测试集成演化特点:主要用于支持面向对象开发过程体现了软件创建所固有的迭代和无间隙的特征(6)RUP软件开发经验迭代式开发管理需求使用基于构件的体系结构可视化建模贯穿于开发过程的软件质量验证控制软件变更图1.10RUP软件开发生命周期(7)

敏捷过程与极限编程1.敏捷过程具有高效、快速响应变化的开发过程。(1)个体和交互胜过过程和工具;(2)可以工作的软件胜过面面俱到的文档;(3)客户合作胜过合同谈判;(4)响应变化胜过遵循计划。2.极限编程

温馨提示

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

评论

0/150

提交评论