软件工程复习提纲_第1页
软件工程复习提纲_第2页
软件工程复习提纲_第3页
软件工程复习提纲_第4页
软件工程复习提纲_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、1. 什么是软件?是一系列按照特定顺序组织的计算机数据和指令的集合,包括程 序、数据和文档。附:软件的特征:成本高、风险大、维护困难2. 什么是软件危机,其内容主要是指什么?原因:1、与软件本身的特点有关;2、与软件开发人员有关;定义: 在计算机软件 开发和维护过程中所遇到的一系列严重的问题。23456)对软件开发成本和进度的估计常常不准确。)用户对“已完成”系统不满意的现象经常发生。)软件产品的质量不可靠。)软件的可维护程度非常之低。)软件通常没有适当的文档资料。)软件的成本不断提高。)软件开发生产率无法满足人们对软件的生产要求,软件开发生产率的提高落后于硬件的发展。3. 什么是软件工程?开

2、发、运行和维护软件的系统方法?软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关 的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降 低软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。4. 软件工程的目标()及其组成部分。方法、工具和过程。?软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、 有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪 性、可互操作性和满足用户需求的软件产品。方法:是指产生某些结果的形式化过程,如各种集成开?工具:是用更好的方式完成某件事情的设备或自动化系统, 发环境、编译工具、测试工具等。

3、?过程:生产特定产品的工具和技术的结合?软件工程方法学包含 3个要素:方法、工具和过程。5. 软件开发方法的定义。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。 比如SASD方法、面向对象的软件开发方法。6. 好的软件的一些主要衡量指标。例如McCall的质量模型。(1)质量,它的衡量:产品的质量、过程的质量、商业环境背景下产品的质量。McCall 的质量模型:附:开发团队的成员? 需求分析员 : 与客户合作,确定并文档化客户需求? 设计人员 : 生成系统描述 : 系统要做什么? 程序员 :编写事先指定需求的代码? 测试人员发现错误? 培训人员向用户说明如何使用这个系统?

4、维护小组修复系统验收之后出现的错误? 资料管理员 : 准备和存储软件需求文档等? 配置管理团队 : 保持各工件之间的通信第二章1. 什么是软件生命周期?主要分为哪些阶段?各个阶段的主要任务及产生的主要制品? 定义:当过程是在开发软件产品时,把这种软件开发过程称为软件生命周期。 阶段:(1) 可行性研究与计划 任务:对于问题是否有行得通的解决方法(技术、经济、操作、社会) 制品:可行性论证报告初步的项目开发计划(2) 需求分析 任务:为了解决这个问题,目标系统必须做什么 制品:软件需求规格说明书(3) 总体(概要)设计 任务:概括地说,应该怎样实现目标系统 制品:概要设计规格说明书数据库或数据结

5、构设计说明书 集成测试计划(4) 详细设计 任务:应该怎样具体地实现这个系统 制品:详细设计规格说明书 单元测试计划(5) 实现 任务:写出正确的容易理解、容易维护的程序模块 制品:源程序代码(6) 集成测试 任务:根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试 制品:生成满足概要设计要求、可运行的系统源程序和系统集成测试报告(7) 确认测试 任务:根据软件需求规格说明书,测试软件系统是否满足用户的需求 制品:可供用户使用的软件产品 ( 文档,源程序 ) (8) 使用和维护 任务:通过各种必要的维护活动使系统持久地满足用户的需要 制品:版本更新的软件产品2. 需求分析的定义。-

6、确定用户对待开发软件系统的需求包括:? 功能? 性能? 运行环境约束3. 典型的软件开发过程模型的特点(优缺点)及要求,特别是原型法、瀑布模型、增量和 迭代等(1)瀑布模型:需求分析 -系统设计 -程序设计 -编码- 单元测试和集成测试 -系统测试 -验收测试 - 运行和维护;优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必 须经过验证;缺点:对如何处理开发中产品和活动的变化没有提供相关的指导?将软件开发视为制造而不是创造?创造一个产品没有迭代的活动?需要等待很长时间(2) V模型:? 用单元测试验证程序设计? 用系统测试验证系统设计? 用验收测试验证需求? 如果在验

7、证和确认过程中发现了问题,那么在再次执行右边的测试步骤之前,重新 执行左边的步骤以修正左边(3) 原型化模型:? 允许需求或设计反复调查? 减少开发中的风险和不确定性原型模型存在的问题 为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。 为了演示,可能采用不合适的操作系统、编程语言、效率低的算法, 这些不理想的选择成了系统的组成部分。开发过程不便于管理。(3)增量开发:先定义一个小的功能子系统,再在每个新的发布中增加新功能 迭代开发:一开始就提交完整的系统,再在每一个新的发布中改变每个子系统的功能 ? 减少循环时间? 系统一部分一部分地交付? 两个系统功能可以并行4. 原型法的特点

8、以及分类:探索型原型、实验型原型和演化型原型法定义原型法是指在获取一组基本的需求定义后,利用高级软件工具可视化的开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、 补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。? 演化型原型-不仅帮我们回答问题,而且还要演变为最终产品-原型必须展现最终产品的质量需求,并且这些质量的要求不能改进5. 极限编程的特点-交流:保持客户和开发者的交换看法-简单性:选择简单设计和实现-勇气:尽早并经常性交付功能(敢于承诺并信守诺言)-反馈:开发过程中各种活动循环第三章1. 了解项目计划和管理的主要内容和常用的方

9、法。Ppt71 到 812. 软件可行性研究的内容。技术、经济、操作、社会四个可行性3. 估算工作量的主要方法:代码行、任务分解技术、自动估算成本技术。1)代码行技术软件成本=每行代码的平均成本X估计的源代码总行数估算方法:? 由多名有经验的软件工程师分别做出估计。? 每个人都估计程序的最小规模 (a)、最大规模(b)和最可能的规模(m ,? 分别算出这3种规模的平均值、和之后,再用下式计算程序规模的估计值:?L=( a的平均值+4*m的平均值+b的平均值)/6单位:LOC或KLOC代码行技术的优点:? 代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数;? 有大量参考文献和数据。代

10、码行技术的缺点:? 源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理;? 用不同语言实现同一个软件所需要的代码行数并不相同;? 不适用于非过程性语言。?2)任务分解技术?软件开发项目分解为若干个相对独立的任务,分别估计每个单独任务的成本:?单独任务成本=任务所需人力估计值X每人每月平均工资;各个单独任务成本估计值之和。?软件开发项目总成本估计?3)自动估计成本技术采用自动估计成本的软件工具估计第四章1. 了解需求的重要性及需求分析阶段的主要产物。如果开发过程的早期没有检测到并修复需求错误,那么会造成很高的代 价,甚至使项目失败。产物:软件需求规格说明书2. 需求的类型:功能需求、非功

11、能需求或质量需求、设计约束、过程约 束。功能需求:根据要求的活动描述需求行为质量需求或非功能需求:描述软件必须拥有的质量特征设计约束:已经做出的设计决策或对问题解决方案集的限制的设计决策过程约束:对用于构建系统的技术和资源的限制3. 两种需求文档:需求定义文档和需求规格说明书。 需求定义:用户想要得到的每一件事情的完整列表。 描述打算构建的系统将要安装的环境中的实体 需求规格说明:将需求重新陈述为关于要构建的系统将如何运转的规格 说明4. 需求规格说明书的主要内容。 详细描述输入和输出,包括 输入的源输出的目的地,有效范围输入输出的数据格式数据协议窗口格式和组织计时约束根据接口的输入输出重新陈

12、述要求的功能 对用户的质量需求,设计适配标准5.常用的需求建模表示方法:ER图、事件跟踪、状态机、Petri网、数 据流图、用例图和原型法。ER图:一种表示概念模型的流行图形表示法三个核心结构实体:表示为矩形,代表具有共同性质和行为的现实世界对象构成 的集合关系:表示为两个实体之间的边,边中间有一个菱形,表示关系的 类型属性:是实体的注释,描述实体相关的数据或性质事件跟踪:?关于现实世界实体之间交换的时间序列的图形描述-垂直线:不同实体的时间线,其名字出现在线的顶部-水平线:两个实体之间的一个事件或交互-时间按从顶到下跟踪进展?每一个图描述一个跟踪,表示只是若干个可能行为中的一个?事件跟踪语义

13、相对简单,易于理解状态机:种图形描述,描述了系统与其环境之间的所有对话-点(状态)表示存在于事件发生之间的一个稳定的条件集合-边(转移)表示由于一个事件的发生而产生的行为或条件的变化?在表示动态行为方面,以及在描述在响应已经发生的历史事件时行为将如 何变化方面很有用Petri 网:? Petri网是状态-转移表示法的一种形式,用于建模并发活动以及他们之 间的交互。?圆圈:位置?条:变迁?弧:箭头?点:令牌数据流图:?数据流图(DFD)建模功能以及从一个功能到另一个功能数据流-一个泡泡表示:一个加工-箭头表示:数据流-平行线:数据存储:正式的库或信息库-矩形:表示参与者:提供输入数据或接受输出的

14、实体用例图:?构成大的方框:系统边界方框外的小人:参与者,人或者系统方框内的椭圆:用例,表示必须的主要功能及其变种 参与者和用例之间的线:参与者参与了该用例而是用于说明用户对?用例不一定建模系统应该提供的所有任务,重要系统行为的观察specifying )、可视化 (documenting )的一6.(1) UML的作用:是为软件系统的制品进行描述(visualiz ing )、构造(con struct ing )、文档化 种语言。(2)UM冲的4+ 1视图:用例视图,设计视图,进程视图,实现视图, 分布视图。(3) UML中的三种扩展机制构造型 Stereotype, 标记值 tagged

15、 value, 约束 contraint.(4) UML中所包含的10种图形及各自的作用。(5)用例图的作用。用例图用来描述软件需求模型中的系统功能,通过一组用例可以描述 软件系统能够给用户提供的功能。用例图可以作为整个系统开发过程中的开发依据,指导和驱动其他模 型。(6)用例图的主要构成部分。 执行者、系统边界和用例第五章5. 获取需求? 概念设计:告诉客户系统将做什么数据来自哪里?系统中数据会发生什么情况 ?对用户来说,系统将会是什么?向用户提 供的选择是什么?事件的计时是什么?报表和屏幕是什么样的?)? 技术设计:告诉变成这系统将做什么对主要硬件部分及其功能的描述软件构件的层次和功能 数

16、据结构数据流好设计的衡量:耦合和内聚耦合度:? 高度耦合:当两个构件之间有大量依赖关系的时候? 松散耦合:当两个构件具有某种程度的依赖,但他们之间的相互连接比较弱? 非耦合:构件之间不存在相互连接耦合度的类型:? 内容耦合:当一个构件修改了另一个构件的内部数据项时,或一个构件内的分支转移到另外一个构件中的时候,可能出现内容耦合? 公共耦合:对公共数据的改变意味着需要通过反向跟踪所有访问过该数据的构件来评估该改变的影响?控制耦合?标记耦合?数据耦合?内聚:如果构件的所有元素都是直接面向执行同一个任务的并且必须的,那么该构 件是内聚的6. 细述对象1. OOM中的典型特征,其中特别是封装、继承和多

17、态。? 标识? 抽象? 分类? 封装? 继承? 多态? 持久性? 对象的概念:对象是指某个事物,大多对应于真实世界中的某个客观实体;但有些对象在真实世 界中没有直接的对应物,是人们对某个事物的一种抽象描述。对象的基本特征可以 归纳为对象的属性和行为两类。类的概念:类是指对一组具有相同特征的对象的抽象描述;任何对象都是某个类的实例。类图的作用:类图技术是00方法的核心技术,应用非常广泛,其中类、对象以及它们之间的关系 是最基本的建模元素。类模型和对象模型揭示了系统的结构。2. 了解类之间的各种关系:关联、依赖、继承或泛化、组合/聚合等。关联用来表示来表示两个(或多个)类的对象之间的结构关系,它在

18、代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的引用。泛化关系:(继承关系)定义类和包之间的一般元素和特殊元素之间的分类关系。继承(Inheritanee):泛化关系的一种实现机制并非所有的泛化关系都适合用继承关系实现聚合表示类之聚合:是表示类和类之间的“整体-部分”关系,用空心菱形表示。间的整体与部分的关系。聚合意味着一个类拥有但共享另一个类的对象组合是聚合的一种特殊情形,用实心菱形表示。与聚合相比,它有两个特点:1. 一个部分类最多只能属于一个整体类2. 当整体类不存在时,部分类将同时被销毁。3. 了解类图的基本建模步骤。(1) 寻找出需求中的名词(候选对象)。(2) 合并含

19、义相同的名词,排除范围以外的名词,并寻找隐含的名词。(3 )去掉只能作为类属性的名词。(4 )剩下的名词就是要找的分析类(候选类)。(5 )根据常识、问题域、系统责任确定该类有那些属性。(6)补充该类动态属性,如状态、对象间联系(如聚合、关联)等属性。(7 )从需求中的动词、功能或系统责任中寻找类的操作(候选操作)4. 接口和抽象类的定义及各自的特点。抽象类是指那些不具有任何对象的类,其作用是为其他的类描述它们的公共属性和 行为。通常,抽象类具有一组抽象操作。一个拥有至少一个抽象操作的类必定是一 个抽象类。接口是一组没有实现的操作的集合。接口只提供操作的声明,不提供任何相应的功 能代码。具体的

20、功能代码由使用该接口的类实现,这叫作实现关系。一个类和一个接口不同:一个类可以有它形态的真实实例,然而一个接口必须至少 有一个类来实现它。UML中协作图改称通5. 交互图的分类:顺序图和协作图。这两种图形各自的优缺点。注意 信图。序列图主要用来描述对象之间信息交换时的时间顺序,它强调的是消息发送 的时间的先后顺序而协作图则用来描述系统对象之间如何协作共同完成系统功能的要求。协作 图描述对象之间消息的连接关系,侧重说明哪些对象之间有消息传递。与序 列图相比,通过编号来看消息的执行顺序比较困难,但协作图中对象间灵活 的空间布局可以更方便地展示动态连接关系等有用信息。序列图和协作图都属于交互图,用来

21、描述对象之间的动态关系。序列图强调消息的时间顺序,协作图强调参与交互的对象的组织关系。 序列图和协作图在语义上是等价的,两者可以相互转换。相同点:1. 它们都表现出了对象之间的交互信息。2. 两个图对象的绘制方式相同 不同点:1. 顺序图反映了对象之间交互的时间关系,而通信图反映了对象之间交互的空间关 系。2. 顺序图用于展示特定的业务场景,而通信图用来展示详细的业务过程。3. 顺序图的对象在图形的顶部一字排开,而通信图对象的摆放位置在二维空间只要 选择合适的位置即可。4. 通信图不能表现组合片段。6.状态图和活动图各自的作用。注意活动图中泳道的作用。状态图:描述交互对对象内部的影响,交互图中

22、的消息在这里变成外部事件对对象 发出的命令,对象对这些命令的响应导致对象的状态发生变化。因此,从这个意义 上说,状态图是顺序图的进一步细化,并且是对核心对象(选择核心对象的依据是 看是否在多个交互图中有多个消息指向该对象)的细化。活动图是一种特殊形式的状态机,用于对计算流程和工作流程建模.;交互与交互图相比:活动图着重表现活动的控制流,描述在对象之间传递的操作 图着重表现的是对象到对象的控制流,描述在对象之间传递的消息 泳道是活动图里对其中的活动按照其职责上的关联进行的划分。泳道在活动图内是 一系列的垂直的隔断(这也是泳道这个名字的由来)7. 组件图的作用以及组件与接口间的关系。组件是系统的一

23、个物理的和可替代的组成部分,该组成部分遵循并实现了一组给定的 接口。组件属于实现视图8. 部署图的作用。用来描述软件产品在计算机硬件系统和网络上的-安装-分发(delivery )-分布(distribution)1.主要的面向对象设计原则及各自的原理:设计原则名称简介里氏替换原则LSP任意父类可以出现的地方,子类也可以出现开闭原则OCP对扩展开发,对修改关闭单一职责原则SRP类的职责单一依赖倒转原则DIP针对抽象(或接口)编程,而不针对具体编程接口隔离原则ISP使用多个专门接口要优于使用单一的接口组合聚合原则CRP优先使用组合或聚合关系,不要过于使用继承关系迪米特原则LoD一个软件实体对其他

24、实体的引用越少越好。2. LSP中的子类型与继承的关系及区别。Open for extension ):模块的行为可以扩展,当应用的需求改变 以满足新的需求Closed for modificati on软件实体(类、模块、函数等)应该是可扩展的,但是不可修改的 特征:对于扩展是开放的(时,可以对模块进行扩展,):对模块行为扩展时,不必改动模块对于更改是封闭的(的源代码或二进制代码开闭原则的思想及关键。OCP( The Open-Close Principle,开放-封闭原则)软件实体(类、模块、函数等)应该是可扩展的,但是不可修改的 特征:对于扩展是开放的( Open for extensi

25、on ):模块的行为可以扩展,当应 用的需求改变时,可以对模块进行扩展,以满足新的需求 对于更改是封闭的( Closed for modification):对模块行为扩展时,不必改动模块的源代码或二进制代码4. 设计模式的分类。 创建型 结构型 行为型5. 设计模式与面向对象设计原则之间的关系,特别是OCPM则。6. 掌握各种工厂模式的设计思想及其原理,了解如何从OCP勺角度进行分析。写程序1. 注意编程程序过程中应遵循一定的标准和过程。 对单个开发人员的标准编写代码文档的方法对其他开发人员的标准集成人员,维护人员,测试人员文档序言对代码分析的自动化工具设计和实现的匹配低耦合,高内聚,定义明

26、确的接口2. 了解一些编程指导原则。控制结构使程序容易阅读根据模块化的块来构建程序不要让代码太过特殊,也不要太过普通用参数名和注释来展现构件之间的耦合度 构件之间的关系必须是可见的算法重点关注:性能效率可能会伴随着一些隐藏的代价编写更快代码的代价测试代码的代价用户理解代码的代价修改代码的代价数据结构有几种使用数据结构的技术提出应该怎样对程序进行组织 保持程序简单用数据结构来决定程序结构保持程序简单(continued)通用性指导原则局部化输入和输出包含伪代码改正和重写,而不是打补丁复用生产者复用:在设计的构建要在以后的应用中进行复用消费者复用:正在使用的构件是原先为其他项目开发的构件3. 注意

27、实现容错技术的主要手段是冗余, 冗余通常分为四类 :(1) 结构冗余。 (2) 信息冗余 (3) 时间冗余和( 4)冗余附加技术。4. 软件中的注释主要分:序言性注释和功能性注释两种。8. 测试程序和 9. 测试系统1. 测试的目标和衡量标准。 测试目标 : 发现错误 只有当发现了错误时,测试才被认为是成功的 故障识别是确定由哪一个故障或哪些故障引起失效的过程 故障改正是修改系统使得故障得以去除过程2. 测试的分类(或组织) 。各种类型的测试的主要任务及所依赖的文档。模块测试、构件测试、单元测试 集成测试 功能测试 性能测试 验收测试 安装测试Alpha 测试Beta 测试3. 黑盒测试和白盒

28、测试的思想, 了解白盒测试中的基本路径测试等方法 闭盒或黑盒 : 测试对象的功能 开盒或白盒 : 测试对象的结构黑盒优点 免于受强加给测试对象内部结构和逻辑的约束 缺点不可能总是进行完备的测试4. 单元测试的主要内容。检查代码代码走查代码审查 典型的审查准备时间和会议时间 错误发现率 证明代码的正确性 形式化证明技术 符号执行自动定理证明测试与证明证明 : 在假设环境下测试 : 实际操作环境下运转的相关信息 选择测试用例的步骤确定测试目标选择测试用例定义测试测试的完全性语句测试分支测试路径测试 定义使用的路径测试 所有使用的测试 所有谓词使用 / 部分计算使用的测试 所有计算使用 / 部分谓词

29、使用的测试5. 集成测试的类型及主要的测试策略。自底向上的测试自顶向下测试一次性测试三明治测试改进的自顶向下测试 : 进行合并之前每一个层的构件进行单独测试改进的三明治测试 : 允许在将较上层的构件和其他构件合并前, 先对这些较上层 的构件进行测试6. 了解测试计划的主要内容。 计划的目的构建测试目标设计测试用例编写测试用例测试测试用例执行测试评估测试结果计划的内容测试的目标是什么 怎样进行测试 用什么标准确定何时测试完成集成系统是否按照需求规格说明执行它的功能 是否满足非功能需求 ? 系统是客户期望的吗? 系统能在客户端运行吗 ?7. 测试系统中的测试过程:功能测试、性能测试、验收(或确认)

30、测试、安装 测试,及它们的内容。功能测试性能测试验收测试安装测试11. 系统维护1. 维护活动的类型:改正性、适应性、完善性、预防性。维护对日常的系统功能的控制 维护对系统修改的控制 完善现有系统 防止系统性能下降到不可接受的程度2. 各种维护活动的主要内容和目标。 改正性 适应性 完善性 预防性3. 软件再生:文档重构、重组、逆向工程、再工程,以及它们各自的内容和含 义。文档重构 : 对原代码进行静态分析,给出更多的信息重组 : 改变代码结构逆向工程 : 根据代码重新创建设计和规格说明信息再工程 : 对现有工程进行逆向工程,接着再改变规格说明和设计以完成逻 辑模型 ;然后,根据修改的规格说明

31、和设计生成新的系统其他1. 了解产品评估的几种方法:特征分析、调查、案例研究和正式的试验。 特征分析 : 对属性进行评分和排列调查:记录数据 确定项目参与者对某一方法、工具或技术的反应是怎样的 确定趋势或关系获取产品或项目的相关信息 记录构件规模、故障数目、花费的工作量案例研究 确定可能影响活动的结果的关键因素,随后记录下它们 包括一系列步骤 : 概念、设计、准备、执行、分发以及决策 将一种情形和另一种情形进行比较正式试验 操纵自变量 用一些方法来减少偏见和消除混杂因素 通常测量一个活动的复制实例 实例具有代表性 : 通过变量研究样本2. 了解几种主要的产品质量模型:Boehm的模型、ISO

32、9126和Dromey的模型。产品质量模型Boehm 的质量模型 反映了对质量的一种理解软件做了用户想要它做的事情 软件正确、有效地使用了计算机 软件易于用户学习和使用 软件是设计良好的、代码良好的,并且易于测试和维护ISO 9126 质量模型 是一个层次结构的模型,具有 6个影响质量的主要属性每一个右边的特性都严格与左边的一个属性相联系Dromey 质量模型 产品质量很大程度上由组成产品的构件、构件组成部分的实际性质决定的正确的属性内部属性上下文性质描述性性质ISO 9126的6种属性可复用性属性 机器无关性 可分离性 可配置性 过程成熟度属性包括客户倾向良好定义保证有效性CMM SPICE

33、、CMM和 ISO 9000 等。3. 了解常用的过程评估模型: 过程和能力成熟度CMMISO 9000SP ICE4. 了解软件工程与计算机科学的关系。 软件工程即涉及计算机科学又涉及工程学计算机科学集中于数据、数据转换和算法 高级课程介绍特定领域的设计和编程技术软件工程集中于构建软件产品考虑开发一个软件系统所涉及的所有活动(从初始想法到最终的产品) 设计概念往往集中于通用的设计原理、模式和标准高级的课程介绍适应于大型的软件系统的设计和分析技术1第1部分:软件工程概论要求掌握: 软件的概念,软件的本质特征是什么?软件:是相对硬件而言的,是计算机系统中的程序、数据,及其相关文档的总 称。软件的

34、本质是:对人的意识的反映软件的特征:抽象性、智能性、无形性、依附性、复杂性、泛域性、非损性、 复制性、演化性 软件工程概念软件工程是采用工程概念、原理、技术和方法来指导计算机软件开发和维护的工 程学科,该学科运用到计算机科学、数学、管理学等原理和方法,遵循系统化的思想,运用工程化方法,指导软件开发和维护工作。 软件工程提出的原因,软件危机的主要表现形式 答 :因软件危机提出了软件工程表现形式: 软件开发不能按照计划进行控制和完成,普遍存在拖延工期的现 象; 软件开发生产率满足不了巨大的市场需要; 开发出来的软件满足不 了用户的需求; 软件投资严重超出预算;软件可靠性和可用性差。 软件工程学科的

35、发展过程, 各阶段的时间范围, 以及在每一个发展阶段突出 的特征 软件工程学科的发展可以粗略划分为四个时期: 1. 软件工程准备 期:20 世纪 40年代中-60 年代末特征: 程序是软件的核心内容; 强调程序的艺术化和个性化; 软件概念出 现;软件危机出现 。2. 软件工程形成期: 20世纪 60年代末-80 年代中特征:软件工程概念出现; 没有形成完整软件工程学科体系; 以软件开发方法 研究带动整个软件工程的发展 ,出现了典型的结构化方法 ,JSD 方法等经典软件 开发方法; 程序设计方法深入研究 : 程序设计 =算法+数据结构;数据结构 , 操作系 统, 数据库技术发展 3. 软件工程发

36、展期: 20世纪 80 年代末 -90 年代中 特征:软件需求旺盛 , 软件产业形成;微机、网络等技术出现并飞速发展;软件 开发集成环境; 面向对象方法开始受到重视;文件服务器模式, C/S 模式出 现。 4. 软件工程纵深期: 20 世纪 90年代末-今天特征: WW技术出现并趋于成熟; 软件体系结构; 软件工程过程 以UML 为代表的软件建模语言和软件建模技术出现;云计算和物联网 软件工程学科的基本内容,在什么时间提升为一级学科?答: 内容: 软件工程理论,软件工程技术,软件工程管理,软件服务工程 , 在 2011 年. 软件生存期模型,都有哪些形式,每一种模型的特征及优缺点答:1. 瀑布

37、模型 :各阶段明确任务、自上而下、顺序固定、逐级过渡的结构模 式,各阶段的联系就象瀑布流水一样自上而下、不可逆返。 特点:软件各阶段之间具有顺序性和依赖性的观点; 问题放大效应的观点; 推迟 实现的观点;质量保障的观点 缺点:开发过程不允许往返,缺乏灵活性;在软件开发出来之前,用户无法知道 软件的真实面目。 2. 演化模型 特点:针对事先不能完整地定义需求; 针对用户的核心需求 , 开发核心系统; 根据用户的反馈 , 实施活动的迭代。 优点:解决了瀑布模型不允许阶段返回的问题; 适合不能及时确定需求的开发 场景;缺点: 每一个迭代期,仍然以瀑布模型为基础。 3.增量模型 优点:每个阶段交付一个

38、可用的产品; 减少一个全新产品给客户带来的心理上的 影响;分阶段地交BAIDU_CLB_fillSlot( 920314 );2付产品不需要大的资金支出; 需求经常变化, 增量模型的灵活性使其具有更加优 越的适用性。缺点:需要一个开放的结构, 方便构件的加入; 增量模型本身就是 词。 4. 螺旋模型:分步推进、逐步深化的螺旋方式 优点:更符合人们的认知规律; 容易确定某个软件产品何时测试完成。 缺 点:开发和维护的界限变得不十分清晰; 仅适应于大型软件开发。 5. 喷泉模型 特点:软件生存期需要划分成为多个相对独立的阶段, 但各个阶段之间的界限并 不是十分明确,相邻阶段之间存在明显的重迭和交叉。 6. 智能模型什么叫软件工程过程,国际标准化组织规定了有哪些过程?RUP的含义是什么?它有哪些典型特征? 答:软件工程过程: 是指软件在其生命周期中, 列相关活动按照确定的次序演绎变化的进程 .包括:获取过程 运作过程 供应过程 维护过程 过程 过程个矛盾的名一系 支持过程 开发过程统一软件开发过程 RUP时间维: 初始、细化、构建、移交 4 个阶段。 工作维:领域分析、需求分析、系统设计、实现和测试等核心工作。 软件建模技术概论 要求掌握: 软件模型的概念管理裁剪2 部分: 答:软件模型 : 是指通过软件建模语言,对软件的功能和性能等外特性,软件的 要素和结构, 以及软件的动态行为特

温馨提示

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

评论

0/150

提交评论