软件工程知识点汇总

合集下载

《软件工程》-重点考试知识点,简答

《软件工程》-重点考试知识点,简答

第一章1、软件概念:由计算机程序,数据,软件文档组成软件的特点:无法直接观察它的物理形态,只能通过观察他的是实际运行情况来了解他的功能特性和质量等;人们在分析设计开发测试过程以及软件开发项目的管理过程中渗透了大量的人类的脑力劳动;不存在磨损和老化但存在缺陷维护和技术更新的问题;开发运行依赖一定的计算机系统环境;具有可复用性软件的分类:按功能分:系统支撑应用软件;按服务对象:通用定制软件;按规模:大中小型软件;按工作方式:实时分时交互式批处理2、软件危机:是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件的开发与维护过程中出现一系列严重问题的现象。

主要表现:●开发人员开发的软件产品不能完全满足用户的需求;●软件产品的质量难以得到保障;●开发周期开发经费和维护费用很难被准确估计从而给项目的管理带来很多麻烦;●随着技术的更新,用户的扩大,已有的软件产品不能灵活地适应环境的改变;●软件文档不完备并且存在文档内容与软件产品不符的情况。

原因:①软件开发是一项复杂的工程,需要用科学的工程化思想来组织和指导软件开发的各个阶段②没有完善的质量保证体系③软件文档的重要性没有得到软件开发人员和用户的足够重视④从事软件开发的专业人员对这个产业认识不够充分缺乏经验⑤软件独有的特点也给软件的开发和维护带来困难3、软件工程是指应用计算机科学与技术,数学和管理学的原理,运用工程学理论方法和技术,研究和指导软件开发和演化的一门交叉学科。

软件工程的目标:●使软件开发的成本控制在预计的合理范围内;●使软件产品的各项功能和性能能够满足用户需求;●提高软件产品的可靠性;●使生产出来的软件产品易于移植维护升级和使用;●使软件产品的开发周期能够控制在预计的合理时间范围内。

软件工程学科内容:●软件工程原理过程方法模型管理度量环境应用。

软件工程的基本原则:●将软件的生命周期划分为多个阶段,对各个阶段实施严格的项目管理;●坚持阶段评审制度已确保软件产品的质量;●实施严格的产品控制以适应软件规格的变更;●采用现代程序设计技术;开发出来的产品应该能够清楚地被审查;●合理地安排软件开发小组人员并且开发小组的人员要少而精;●不断改进软件工程的实践。

(专升本)自考《软件工程》备考知识点汇总

(专升本)自考《软件工程》备考知识点汇总

(专升本)自考《软件工程》备考知识点汇总自考《软件工程》备考知识点汇总软件工程作为一门重要的学科,涵盖广泛的知识点。

对于计划参加自考《软件工程》考试的考生来说,了解并掌握备考知识点是非常重要的。

本文将结合《软件工程》课程大纲,对备考知识点进行汇总与总结,帮助考生有效备考。

一、软件工程概述软件工程的基本概念和原理、软件生命周期、软件过程模型、软件工程发展历程等。

1.1 软件工程的定义和目标软件工程是一门将系统化、规范化和可量化的方法应用于软件的开发、运维和维护的学科。

其目标是提高软件的质量、效率和可靠性。

1.2 软件生命周期软件生命周期包括需求分析、设计、编码、测试、交付、运维等阶段。

每个阶段都具有相应的活动和产出物。

1.3 软件过程模型常见的软件过程模型包括瀑布模型、迭代模型、增量模型、螺旋模型、敏捷开发等。

每种模型都有自己的优缺点,适用于不同的项目和团队。

1.4 软件工程发展历程软件工程的发展经历了不同的阶段,从软件危机到软件工程的产生和发展,包括软件工程的兴起、规范化和认证等。

二、需求分析与设计软件需求分析和设计是软件工程中至关重要的环节,涉及到对用户需求的理解和转化。

2.1 需求分析方法需求分析方法包括面向对象的方法、结构化分析方法、数据流图等,可以帮助开发人员理解用户需求并建立准确的需求规格说明书。

2.2 需求规格说明书需求规格说明书是对软件需求的详细描述和定义,包括功能需求、非功能需求、用户需求等,为软件设计和开发提供依据。

2.3 软件设计原则常见的软件设计原则包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则等。

良好的设计原则可以提高软件的可维护性和扩展性。

三、软件开发与编码规范软件开发和编码规范是保证软件质量和可维护性的重要环节,包括选择开发语言、代码风格约定等。

3.1 软件开发过程软件开发过程包括需求分析、设计、编码、测试和部署等阶段,每个阶段都需要遵循相应的规范和流程。

软件工程复习知识点和例题

软件工程复习知识点和例题

.1.软件危机的概念,内容,原因及消除的途径;概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

内容:软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护不断膨胀的已有软件。

具体地说,软件危机主要有以下一些典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;原因:在软件开发和维护的过程中存在这么多严重问题:一方面与软件本身的特点有关;另一方面也和软件开发与维护的方法不正确有关。

(1)软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。

(2)软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序的规模的增加而呈指数上升。

(3)目前相当多的软件专业人员对软件开发和维护还有不少糊涂概念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。

(4)对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。

2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。

基本原理:软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性3.软降工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。

软件工程方法学包含3个要素:方法、工具和过程。

软件工程知识点

软件工程知识点

软件工程知识点第一章软件工程概述一、软件的定义和特性(P2—P3)定义:软件=程序+数据+文档程序:按照事先设计的功能和性能要求执行的指令或语句序列数据:程序能正常操纵信息的数据结构文档:描述程序操作和使用的文档特性:(1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体;(2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理;(3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件;(4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题;(5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。

* 掌握P4图1-2(b)软件失效率曲线二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2)共经历了四个阶段特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。

三、什么是软件危机?其产生的原因是什么?定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

(P4)原因:(P5)(1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求;(2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致;(3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验;(4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误;(5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化(6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。

软件工程主要知识点

软件工程主要知识点

软件工程主要知识点软件工程是一门涵盖多个领域的学科,它旨在研究软件的开发、维护和管理过程。

在软件工程的学习中,有许多重要的知识点需要了解和掌握。

以下是软件工程的主要知识点:1.需求工程:需求工程是软件开发的关键环节,它涉及到收集、分析和管理用户需求的过程。

了解如何正确地定义和验证需求是非常重要的。

2.软件架构:软件架构是软件系统整体结构和组织的蓝图。

学习软件架构的目的是设计出可扩展、可维护的软件系统。

3.软件开发方法:软件开发方法是指一种系统化的方法,用于规划、设计、实施和测试软件系统。

了解常用的软件开发方法,如瀑布模型、敏捷开发和迭代开发等,可以帮助我们更好地管理软件开发过程。

4.软件测试:软件测试是为了验证软件系统的正确性和可靠性而进行的一系列活动。

学会进行有效的软件测试可以帮助我们尽早发现和修复潜在的问题。

5.软件工程项目管理:软件工程项目管理是指管理和控制软件开发过程,以确保项目按时、按质量和按预算完成。

学习项目管理的知识可以帮助我们合理地安排资源、制定计划和解决问题。

6.软件质量保证:软件质量保证是指确保软件系统满足用户需求和质量标准的一系列活动。

学习如何进行软件质量评估和测试可以帮助我们提高软件的质量。

7.可维护性和重构:可维护性是软件系统易于改变和维护的程度。

学习如何进行重构可以帮助我们改进现有的软件系统,使其更加易于理解和维护。

8.软件工程经济学:软件工程经济学是研究软件开发过程中经济方面问题的学科。

了解如何进行成本估算和投资评估可以帮助我们做出明智的决策。

9.软件安全性:软件安全性是指软件系统免受恶意行为和非法访问的能力。

学习如何设计和实施安全措施可以帮助我们保护软件系统的安全。

10.软件工程伦理和法律:软件工程伦理和法律是研究软件工程中伦理和法律问题的学科。

了解软件开发过程中的道德和法律规定可以帮助我们遵守相关的标准和法律规定。

除了以上列举的知识点,软件工程还涉及到很多其他的领域,如人机交互、软件配置管理、软件工程教育等。

软件工程概论知识点汇总

软件工程概论知识点汇总

软件危机是指在计算机软件的开发和维护过程中遇到一系列严重问题。

软件工程是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门。

、工具和过程3个要素:方法软件工程方法学包含目前使用最广泛的软件工程方法学,分别传统方法面向对象方法软件生命周期由软件定义、软件开发和运行维护3个时期组成。

软件生存周期是指一个软件从提出开发要求开始直到软件报废为止的整个时期。

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。

软件定义分3个阶段,即问题定义、可行性研究和需求分析。

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

可行性、经济可行性和操作可行性3个方面。

可行性研究的主要内容包括技术开发时期由4个阶段组成:总体设计、详细设计、编码和单元测试,综合测试。

其中前两个阶段称为系统设计,后两个阶段称为系统实现。

系统流程图是概括地描绘物理系统的传统工具;而数据流图是系统逻辑功能的图形表示工具。

模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。

通常,模型由一组图形符号和组织这些符号的规则组成。

分析建模的用处是为了更好地理解复杂事物。

软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。

需求分析过程应该建立3种模型,分别是数据模型、功能模型和行为模型。

数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。

结构程序设计的定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制接口进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

软件工程导论(第6版)知识点总结、复习课-图文

软件工程导论(第6版)知识点总结、复习课-图文

软件工程导论(第6版)知识点总结、复习课-图文复习课--------酷爱YC第一章1、什么是软件危机,什么是软件工程软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

它包括两方面:(1如何开发软件,以满足对软件日益增长的需求;(2如何维护数量不断膨胀的已有软件。

软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。

2、完整的软件配置由哪些内容组成软件配置主要包括程序,文档和数据等成分。

3、软件生命周期分为哪3个时期和8个阶段,每个阶段的任务(工作分别是什么,重要性如何开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

(1 总体设计(概要设计,回答“怎样实现目标系统”。

建立系统的总体结构,划分子系统;确定系统由哪些模块组成,各子系统间、各模块间的关系(包括定义各子系统接口界面和各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划。

成果:概要设计说明书、数据库或数据结构说明书、系统的组装(集成测试计划等文档。

(2详细设计任务就是把解法具体化,也就是回答:“应该怎样具体地实现这个系统呢?”,设计每个程序模块的内部细节,包括数据结构、算法以及各程序模块间的接口信息,并设计模块的单元测试计划。

成果:详细设计规格说明和单元测试计划等详细设计文档。

以上(1、(2又合称为软件设计。

(3编码和单元测试这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。

根据详细设计规格说明,选用某种程序设计语言把详细设计的结果转化为机器可运行的源程序模块;运行和调试每一个程序模块;每编写出一个程序模块的源程序,调试通过后,即对该模块进行单元测试。

《软件工程》-经典考试例题复习题,重点知识点(含答案)

《软件工程》-经典考试例题复习题,重点知识点(含答案)

1.某旅馆的电话服务如下:可以拨分机号和外线号码。

分机号是从7201至7299。

外线号码先拨9,然后是市话号码或长话号码。

长话号码是以区号和市话号码组成。

区号是从100到300中任意的数字串。

市话号码是以局号和分局号组成。

局号可以是455,466,888,552中任意一个号码。

分局号是任意长度为4的数字串。

要求:写出在数据字典中,电话号码的数据流条目的定义即组成。

电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。

(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。

(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。

或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。

人们往往根据天气情况决定出门时的行装。

天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。

如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。

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

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素

1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工

程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、特点、示意图;

软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1 工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用户需求为基本依据,从功能、性能、数据、操作等多个方面,对软件系统给出完整、准确、具体的描述,用于确定软件规格。 2.软件设计 根据系统需求的定义,确定系统的结构,进行系统的概要设计和各部分的功能与结构的详细设计。 3.编码与单元测试 在这一阶段,根据软件设计文档完成了程序模块或程序单元的编码。通过程序单元测试,验证其是否满足设计规范。 4.集成和系统测试 程序模块或程序单元被组装集成起来成为一个软件系统,然后进行系统测试。测试完成后即交付用户使用。 5.运行和维护 通常这是软件生命周期中最长的一个阶段。如果在运行期发现了软件的错误,就要修改软件,可能会重复上述某个或多个阶段的活动。 3.1.4 特点: ① 顺序性、依赖性:下一阶段依赖上一阶段的完成。 ② 推迟实现:阶段任务结束形成文档,并审核后方能进行设计任务,将程序的实现推迟进行。 ③ 质量保证:文档完整、文档评审,避免错误积累与放大效应。 3.1.5 示意图:

3.2 快速原型 3.2.1 工作原理: 快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。 废弃型:也称快速建立需求规格原型法:先构造一个功能简单而质量要求不高的模型系统,针对这个模型系统反复的进行分析修改,从而形成较好的设计思想,据此设计出更加完整、准确、一致可靠的最终系统,系统构造完成后,原来的模型就被废弃 追加型:也称快速建立渐进原型法。它采用循序渐进的开发方式,对系统模型作连续精化,即先构造一个功能简单而且质量要求不高的模型系统,最为最终系统的核心,将系统需要具备的性能逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至所有性能全部满足,此时原型模型也就是最终的产品。 3.2.2 阶段及任务 原型快速分析:是指在分析者和用户的紧密配合下,快速确定软件系统的基本要求,根据原型所要体现的特性(总体结构、处理功能、模拟性能、界面形式等),描述基本需求规格说明,以满足开发圆形的需要。 原型构造:在快速原型分析的基础上,根据基本需求规格说明,忽略细节只考虑主要特性快速构造一个可运行的系统。 原型运行与评价:是软件开发人员与用户频繁通信、发现问题、消除误解的用药阶段,目的是验证原型的正确程度,进而开发新的并修改原有的需求。 原型修改:根据评价原型的活动结果进行修改。若原型未满足需求说明的要求,说明 对需求说明存在不一致的理解或实现方案不够合理,则根据明确的要求迅速修改原型。

3.2.3 特点 1.增强了软件开发人员和用户对系统需求的理解,便于将用户模糊的功能需求明确化 2.为用户提供了一种强有力的学习手段 3.易于确定系统的性能,是理解和确定软件需求规格说明的良好工具 4.按照快速建立渐进原型法建立的原型即为最终的产品 利用快速原型化技术可以为软件开发提供一种完整、灵活、近似动态的需求规格说明方法。 3.2.4 示意图

3.3 喷泉模型 3.3.1 工作原理:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。 3.3.2 阶段 3.3.3 每阶段任务 3.3.4 特点:喷泉模型体现了软件创建所固有的迭代和无间隙的特征。迭代指系统中某个部分常常重复工作多次,无间隙指活动之间没有明显的间隙,如在分析和设计之间没有明显的界限。 3.3.5 示意图

。 4 软件生命周期:阶段、各阶段功能、所涉及的内容(图、工具和文档) 4.1 软件生命周期:是指一个计算机软件从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补和完善,知道被新的需求所替代而停止该软件的使用全过程。 4.2 四个工作阶段: 初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围。 精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求。 构建阶段:开发出所有构件和应用程序,把它们集成为客户需要的产品,并且详尽地测试所有功能。 移交阶段:把开发出的产品提交给用户使用 4.3 各阶段功能: 1问题定义可行性研究 ○1可性研究的任务是以最小的代价在尽可能短的时间内确定问题是否值得解决、是否能够解决。 ○2阶段性成果《项目可行性报告》 2需求分析阶段 ○1需求分析的主要任务就是要通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求。 ○2阶段性成果《需求规格说明书》、数据字典、数据流图(DFD) 3概要设计阶段 ○1划分出组成系统的物理元素,设计软件的结构,即确定模块及模块间的关系,根据需求分析阶段得到的逻辑模型来设计系统的物理模型 ○2阶段性成果《概要设计说明书》 4详细设计阶段 ○1设计每个模块的算法,确定每一模块使用的数据结构,确定模块接口的细节,为每一个模块设计一个测试用例,编写详细设计说明书 ○2《软件详细设计》文档 5编码和单元测试 6系统测试 7软件维护阶段

4.4 各阶段所涉及的内容(文档、工具、图) 5 结构化方法: 生命周期中各阶段任务.获取用户需求、画数据流图、数据字典 6 可行性分析、需求分析、设计(概要设计+详细设计)、测试、维护 7 面向对象方法:核心概念、模型 7.1 面向对象中的基本概念: 对象:代表了一个现实的或虚构的实体 类:对具有相同数据和相同操作的一组相似对象的定义 继承:子类自动的共享父类中定义的数据和方法的机制 多态性:一个名字具有多种语义 封装:将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行 消息:对象间在交互中所传送的通讯信息 关联:对象之间所存在的联系 7.2 模型 对象模型:即寻找问题域中的对象,从对象中抽象出类的定义,识别对象的内部特征,定义属性,识别对象的外部关系,识别主题。 动态模型:即建立交互图、状态图和活动图,进一步定义用例。 功能模型:即用例分析,以用例对用户需求进行规范化描述; 为了更好地理解问题,人们常采用建立建立问题模型的方法。

模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。 通常,模型由一组图示符号和组织这些符号的规则组成。模型是一种思考工具,可以把知识规范地表示出来。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了减少复杂性。一旦建立起模型之后,就要经受用户和各个领域专家的严格审查。模型常常会经过多次必要的修改。 用OO方法开发软件,通常需要建立3种形式的模型:对象模型----描述系统数据结构;动态模型----描述系统控制结构;功能模型----描述系统功能;这三种模型各自从不同的侧面反映软件系统的内容,相互影响、相互制约,有机地结合在一起,全面地表达对目标系统的需求。对象模型表示静态的、结构化的系统的“数据”性质。描述了系统的静态结构。面向对象方法强调围绕对象而不是功能来构造系统。对象模型为建立动态模型和功能模型,提供了实质性的框架。1997年11月,国际对象管理组织OMG

相关文档
最新文档