软件工程_期末复习笔记

软件工程_期末复习笔记
软件工程_期末复习笔记

软件工程期末复习笔记

一.基本概念

1.什么是软件工程?

答:见作业

2.什么是参与者,角色?

答:所有参与到软件项目中的人员称为参与者。把项目或系统的一组职责称为角色。一个角色与一组任务联系在一起,且被派给一个参与者。一个参与者能充当多个角色。

3.系统和模型。系统指内部关联部分的集合。模型指系统的任何抽象。

4.软件工程开发活动:开发活动通过构造和验证应用域模型或系统模型处理复杂性问题,开发活动包括:需求获取、分析、系统设计、对象设计、实现、测试。

二.基本概念(2)

1.系统开发的主要内容集中在系统的3个不同模型上:

功能模型,在MUL中,使用用例图表示功能模型,以从用户观点描述系统功能。

对象模型,在MUL中,使用类图表示对象模型,使用对象、属性、关联和操作来描述系统的结构。

动态模型,在UML中,使用交互图、状态图和活动图表示动态模型,以描述系统的内部行为。

2.用例模型(功能模型)

2.1用例模型=用例文档+用例图

2.2用例间的关系:用例之间的关系关联(association )、包含(include)、扩展(extend)和泛化(generalization)这几种关系。

关系关联(association ):通信1.表示参与者用例之间进行通信。

2.不同的参与者可以访问相同的用例。

包含(include):把它所包含的用例行为作为自身行为的一部分。

扩展(extend):扩展用例被定义为基础用例的增量扩展。

基础用例提供扩展点以添加新的行为。

扩展用例提供插入片段以插入到基础用例的扩展点上泛化(generalization):继承

2.3 用例文档包括的内容:1.用例名。2.范围。

3.级别。

4.主要参与者。

5.涉众及其关注点。

6.前臵条件

7.后臵条件

8.主事件流

9.备用事件流。

3.类图(对象模型)

3.1类是面向对象系统组织结构的核心。对一组具有相同属性、操作、关系和语义的对象的抽象。包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。

3.2类之间的关系 1.依赖关系2.泛化关系3.关联关系

4.实现关系

1.依赖关系表示两个或多个模型元素之间语义上的关系。例如:客户以某种形式依赖于提供者。关联、实现和泛化都是依赖关系。

2.泛化关系描述了一种“is a kind of”的关系。

3.关联关系包括:

名称(Name)

角色(Role)

多重性(Multiplicity)一对一,一对多,多对多。

聚合关系(Aggregation)(一个类由多个类组成,has a关系)

组合关系(Composition)聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合。成员对象的生命周期取决于聚合的生命周期。聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和解构

导航性(Navigation)

4.实现关系

4.时序图(同一个用例中的变迁)

表示单一用例间的一组对象之间的交互

强调消息时间顺序的交互图。时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。

5.状态图

状态图表示了单一对象(或者是一组连接非常紧密的对象)的行为。,是一个对象的状态的变迁。

三.项目组织和沟通

1.一个项目的沟通涉及计划内沟通和计划外沟通,其中计划内沟通包括:1问题检查。

2现状通报会议。3通报情况会议。4客户和项目检查。5发布。计划外沟通包括:1澄清需求(需求澄清是指澄清有关任何使得系统看上去存在二义性的内容)2变化需求。(需求变化指参与者报告问题或者是提出解决方案。)3问题解决。(提出问题,找到问题解决方案评审并上报后,选择一个解决方案,并进行必要的沟通和实现。)

四.需求获取

1.需求工程的目标是定义所构造系统的需求。需求工程包括两个主要活动:第一,需求获取,导出用户可理解的系统规格说明;第二,分析,其结论是给出开发者无二义理解的模型

2.需求获取

需求获取包括以下活动:

●标识参与者标识出未来系统将支持的不同用户类型。(自然人,软/硬件实体)

●标识场景对未来系统的典型功能用一组带有细节的场景来描述。(使用某一功能的

具体过程)

●标识用例从场景中抽象出用例。

●求精用例细化每一个用例和描述面临错误和异常条件时系统行为。

●标识用例之间关系标识出用例之间的依赖关系。

●标识初始分析对象建立用例的术语表

●标识非功能性需求如:性能上约束、文档、资源、安全性、质量等。

3.绿地工程没有现存系统存在,开发过程从草稿开始,需求从用户和客户出提取。

再工程对一个现存系统的再设计和再实现。

界面工程对一个现存系统的用户界面的再设计。

五.分析(建模)

1.分析关注系统模型的产生,这一模型称为分析模型,该模型必须正确、完全、一致和可确认。分析模型由三个独立模型构成:

●通过用例和场景表示的功能模型。

●通过类和对象图表示的分析对象模型。

●通过状态图和顺序图表示的动态模型。

2.实体对象表示系统将跟踪的持久性信息。边界对象表示参与者与系统之间的交互。控制对象负责用例实现。

3.分析活动

3.1标识实体对象

3.2 标识边界对象

3.3 标识控制对象

3.4 使用顺序图将用例映射成对象

3.5 使用CRC卡建模的对象之间的交互

3.6 标识关联(类与类之间的关系)

3.7 标识聚集(表示整体—部分的关系,用钻石符号,实心钻石符号表示组合聚集,部

分的存在依赖于整体,空心钻石表示共享聚集,部分和整体可以独立的存在)

3.8 标识属性

3.9 建模单一对象状态相关的行为(方法)

3.10 建模对象之间的继承关系(用空心箭头指向父类)

六.系统设计:分解系统

1.系统设计是将系统分析模型变换到系统设计模型。系统设计后,得到的是一个包括子系统分解和每个策略的清晰描述模型。

2.系统设计包括活动:

●标识系统目标。开发者标识并区分应进行优化的各种系统属性的优先次序。(可靠

性。容错性。安全性。可修改性)

●设计初始子系统分解。根据用例和分析模型,开发者将系统分解成一些小的部分。

●分解求精子系统以对应设计目标。初始的分解大多不能满足所有的设计目标。开

发者必须不断分解求精,直到所有的设计目标都被满足为止。

3.耦合用于度量子系统之间的依赖程度。内聚用于度量子系统中类之间的依赖程度。(耦合度越小越好,内聚越大越好)。分层将系统看成是由多个子系统按一定层次组织起来的,每一层通过使用低层子系统服务,为上一层的子系统提供服务(层是有序的)。划分是将多个子系统组合成多个对等的实体,这些对等实体相互提供服务。

4.体系结构

七.系统设计(选择设计目标)

1 将子系统映射到处理器和构件,选择硬件配臵与平台

2 标识并存储持久性数据

2.1标识持久性数据,我们可以通过检查所有在系统关闭之后必须保存的类,来标识持久性对象。长期储存的

2.2选择存储管理策略,有三种选择来进行存储管理:

●平面文件。这种文件是由操作系统提供的存储对象。

●关系数据库。数据按照预先定义好的模式类型存储在表中。表中的每一列代表

一个属性。每一行代表一个属性元组值的数据项。个别对象的属性,则用不

同表中的元组来展示。

●面向对象数据库。以对象和关联的方式来存储数据。出了提供一个上层抽象外,

面向对象数据库为开发者提供了继承和抽象类型。

3 提供访问控制,访问权限

4 设计全局控制流

有3种可能的控制流机制:

●过程驱动的控制。例如,一个操作需要从一个参数那里获得数据,该操作不得

不等待这些数据的输入。

●事件驱动的控制。一个主循环等待一个外部事件。

●线程。线程是过程驱动控制的并发单元。

5 标识边界条件

5.1边界条件标识决定系统如何启动,如何初始化和如何关闭,同时还需要定义在数据发生故障和网路断开等情况下,如何处理失败。我们把负责处理这些条件的用例称为边界用例。

边界用例有哪些:

●配臵。对每一个持久性对象,我们应该检查持久性对象在哪个用例中被创

建、撤销(存档)。

●启动与关闭。对每一个构件,我们增加3个用例来启动、关闭和配臵构件。

●异常处理。对于每一个类型的构件失败,系统如何进行反应,由开发者决

定。通过使用异常用例,对这些决定进行文档化,这些异常用例是通过对

在需求过程中标识的一般用例进行扩展而得到。

5.2一般来说,一个异常是在系统执行过程中发生的一个事件或者错误。导致异常的不同原因主要有三个:

●硬件失败。硬件老化和失败。

●操作环境改变。如果超出了发射器范围,无线移动系统就会失去连接。

●软件失败。

异常处理是系统对异常所做出的反应机制。

八.对象设计:复用模式解决办法

1.对象设计包括:

●重用(Reuse),标识商业外购构件和设计模式以利用已有的解决方法。(复用别人

的额,和把自己的做好的东西为他人复用而做准备)(第八章)

●服务规格说明(Server Specification),在这个过程中,精确地描述每一个类接

口。(第九章)

●对象模型重构(Object Model Restructuring),改进对象设计模型,提高该模型

的可读性和扩展性。

●对象模型优化(Object Model Optimization),改进对象设计模型来标识性能标

准,例如系统的响应时间和存储空间利用率等。

2.说明继承,即接口继承,只继承签名,没有继承任何实现代码。

3.实现继承,子类继承基类所有成员函数和字段。

4.授权,一种可供选择的实现继承的办法,授权不干涉现存构件且会产生更健壮的代码。

5.Liskov替换准则,Liskov替换准则能够为接口的规格说明提供一个形式化的描述。它的本质是,如果客户代码使用了由某个父类提供的方法,那么开发者就能够新增子类而不用对代码做任何改变(子类型必须能替换它们的基类型。

6.设计模式(是开发者通过长时间地求精,从而得到的解决重复出现问题的模板化解决方案)

6.1一个设计模型包括4个要素:

Name(名字),用来将一个设计模式与其他设计模式区别开。

Problem description(问题描述),用来描述该设计模式适用于何种情况。

Solution(解决方案),描述了解决该问题需要的、结合在一起的类和接口的集合。

Consequences(结果),描述了将要解决设计目标的协议和可供选择的办法。

6.2设计模式中出现的不同类:

●客户类(Client Class),用来访问模式。

●模式接口(Pattern Interface),模式接口是模式中对客户可见的部分。

●实现类(Implementor Class),该类实现了模式中较低层次的类。

扩展类(Extender Class),扩展类是指为了实现一个不同操作,或者是实现模式的一个扩展活动而将一个实现类特殊化。

7.常见的设计模式

8.桥梁模式原理(详见作业)

9.

九.对象设计:说明接口(接口:操作)

1 类实现者、类扩展者和类使用者

●类实现者(class implementor)负责实现待实现的类。

●类使用者(class user)在其它类的实现过程中,调用由待实现类所提供的操作,

这个类成为客户类。

●类扩展者(class extender)开发待实现类的特定扩展。

2 类型、签名和可见性

类型:说明了属性的取值范围,以及该属性能够进行的操作。

签名:给定一个操作,由参数类型和返回值类型构成的元组,称为操作的签名。

可见性:一个操作或属性的可见性,是指说明该属性或操作是否能被其它类使用的一种机制。UML定义了可见性的3种级别:

●私有属性或操作:私有属性仅能被定义它的类访问。私有操作仅能被定义它的类调用。

●保护属性或操作:保护属性或操作能够被定义它的类或者是子类访问。

●公有属性或操作:公有属性或者操作能够被所有的类访问。在UML中,可见性是通过在

属性或操作的名字前面加一个前缀来表示:—表示私有,#表示保护,+表示共有。

3 契约:不变式、前臵条件和后臵条件

契约就是在一个类上定义的,确保有关该类的类实现者、类使用者、类扩展者都要遵循的假设条件。契约包括3种类型的约束:

●不变式:不变式是一个对该类的所有实例而言都为真的谓词。不变式是和类或接口有关

的约束。

●前臵条件:前臵条件是在调用一个操作之前,必须为真的谓词。前臵条件用来说明类使

用者在调用一个操作之前必须满足的约束。

●后臵条件:后臵条件是在调用一个操作之后必须为真的谓词。后臵条件用来说明类实现

者和类扩展者在调用一个操作之后必须满足的约束。

4.接口规格说明包括的活动

1 标识遗漏的属性和操作

在这一步中,检查子系统提供服务的描述,并且标识遗漏的属性及操作。

2说明类型、签名和可见性

本节讨论属性类型、操作签名以及属性和操作的可见性。说明类型可以从两个方面对对象设计模型进行求精。

3 说明前臵条件和后臵条件

为每个类的所用公有操作定义契约。契约就是存在于类使用者和类实现者之间的一个协议。一个操作的前臵条件,描述了类使用者必须遵守的那部分契约;后臵条件描述了类实现者在类使用者满足其所遵守的那部分契约后,类实现者应该保证契约得到满足。

4.说明不变式

不变式提供一个对类的基本属性的综述。不变式组成了一个能够扩展和重写特定操作的持久性契约。

5 继承契约

一个类可以被它的任何派生类所替换。

契约可以通过下列方式来实现继承:

●前臵条件(Precondition):子类的方法可以弱化加在它所重写方法上的前臵条件。

换句话说,一个重写方法能比它的超类解决更多的问题。

●后臵条件(Postcondition):方法必须确保子类有和超类一样的后臵条件,或者

有更加严格的后臵条件。

●不变式(Invariant):一个子类必须遵守其超类的所有不变式。但是,一个子类

可以增强它所继承的不变式。

十.将模型映射到代码

1.正向工程产生与对象模型对应的源代码模板。正向工程应用于对象元素集合,并产生其对应的源代码语句集合。正向工程的目的是保持对象设计模型与代码间的高度一致,并减少实现期间引入的错误数,从而减少实现部分的工作量。

逆向工程产生与源代码对应的模型。逆向工程应用于源代码元素集合,并产生模型元素集合。这类转换用于为现存系统重构模型,由于已经丢失该系统的模型,或从未构件,或其模型与源代码不一致。

2.映射活动包括1 优化对象设计模型2 将关联映射到集合3 将契约映射到异常4 将对象

软件工程导论复习笔记

简答题: 1.什么是软件? 答:软件是: (1)指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。 (2)数据结构,使得程序可以合理利用信息。 (3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用。 2.How do software characteristics differ from hardware characteristics? 软件的特性是如何不同硬件的特性? 答:(1)软件是设计开发的,而不是传统意义上生产制造的(2)软件不会磨损,但会退化 (3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的 3.What do people mean by the expression "software crisis"? 人们是怎样理解“软件危机”这个短语的?

答:软件危机主要表现在两个方面: (1)无法满足日益增长的对软件的需求。 (2)难以满足对已有的软件系统的维护需求。 软件危机出现的原因: (1)由于软件生产本身存在着复杂性 (2)与软件开发所使用的方法和技术有关 “软件工程”的概念用工程化的思想来克服软件危机。 4.What myths about software still exist ? 软件仍然存在着什么神话? 答:管理者的神话;用户的神话;开发者的神话。 简答题: 1.What are the three generic phases of software engineering? 软件工程的三个一般的阶段是? 答:定义阶段、开发阶段、维护阶段 (软件生存周期的三个阶段:软件定义、软件开发、软件维护) 2.What are the names of the five levels of the SEI Capability Maturity Model?

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件工程导论复习资料解答

软件工程导论复习题汇总 一、选择题 1.软件重用的单位是A。 A.软件模块B.功能 C.系统D.语句 2.软件生存周期借用了 D 中产品生存周期的概念。 A.计算机科学B.需求 C.数学D.工程 3.项目开发计划是 D 文档。 A.技术性B.管理性 C.设计D.需求分析 4.在结构化分析(SA)中, C 与数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。 A.模块图B.E-R图 C.数据字典D.程序流程图 5.为了提高模块的独立性,模块之间最好是A 。 A.数据耦合B.控制耦合 C.公共耦合D.内容耦合 6.对一个开始是模糊的模块进行处理过程分解时,下面说法错误的是 D 。 A.用顺序方式对过程分解,确定各部分的执行顺序 B.用选择方式对过程分解,确定某个部分的执行条件 C.用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件 D.对处理过程仍然模糊的部分反复使用循环方式对过程进行分解 7.软件测试的关键问题是A 。 A.如何选择测试用例B.如何采用综合策略 C.如何验证程序的正确性D.如何组织软件评审 8.软件生存期的 D 工作与软件的可维护性有密切的关系。 A.详细设计阶段B.编码阶段 C.测试阶段D.每个阶段 9.增量模型属于一种 B 模型。 A.整体开发B.非整体开发 C.较早产生工作软件D.灵活性差 10.下列说法正确的是 D 。 A.动态模型指出发生了什么 B.对象模型确定什么时候发生 C.功能模型确定发生的客体 D.动态模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织11.用类库这种机制和结构来实现 D 中的信息共享。 A.同一应用B.不同应用 C.同一个类D.不同类

软件工程 期末复习笔记

软件工程期末复习笔记 胡丹 一.基本概念 1.什么是软件工程? 答:见作业 2.什么是参与者,角色? 答:所有参与到软件项目中的人员称为参与者。把项目或系统的一组职责称为角色。一个角色与一组任务联系在一起,且被派给一个参与者。一个参与者能充当多个角色。 3.系统和模型。系统指内部关联部分的集合。模型指系统的任何抽象。 4.软件工程开发活动:开发活动通过构造和验证应用域模型或系统模型处理复杂性问题,开发活动包括:需求获取、分析、系统设计、对象设计、实现、测试。 二.基本概念(2) 1.系统开发的主要内容集中在系统的3个不同模型上: 功能模型,在MUL中,使用用例图表示功能模型,以从用户观点描述系统功能。 对象模型,在MUL中,使用类图表示对象模型,使用对象、属性、关联和操作来描述系统的结构。 动态模型,在UML中,使用交互图、状态图和活动图表示动态模型,以描述系统的内部行为。 2.用例模型(功能模型) 2.1用例模型=用例文档+用例图 2.2用例间的关系:用例之间的关系关联(association )、包含(include)、扩展(extend)和泛化(generalization)这几种关系。 关系关联(association ):通信1.表示参与者用例之间进行通信。 2.不同的参与者可以访问相同的用例。 包含(include):把它所包含的用例行为作为自身行为的一部分。 扩展(extend):扩展用例被定义为基础用例的增量扩展。 基础用例提供扩展点以添加新的行为。 扩展用例提供插入片段以插入到基础用例的扩展点上泛化(generalization):继承 2.3 用例文档包括的内容:1.用例名。2.范围。 3.级别。 4.主要参与者。 5.涉众及其关注点。 6.前臵条件 7.后臵条件 8.主事件流 9.备用事件流。 3.类图(对象模型) 3.1类是面向对象系统组织结构的核心。对一组具有相同属性、操作、关系和语义的对象的抽象。包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。

北方工业大学软件工程期末复习题(含答案)

北方工业大学 《软件工程》课程期末复习题(答案) A 卷 2014年春季学期 开课学院:信息工程学院 考试方式:闭卷 考试时间:120 分钟 班级 姓名 学号 一.简要回答下列各问题(共40分,每个小题5分) (1) 阐述软件工程的定义。 答: ● 是指导计算机软件开发和维护的一门工程学科; ● 采用工程的概念、原理、技术和方法来开发和维护软件; ● 把证明正确的管理技术和最好技术综合运用到软件开发中; ● 研究经济地开发出高质量的软件方法和技术; ● 研究有效维护软件的方法和技术。 (2) 简述软件危机的原因。 答: ● 缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。 ● 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误 。 ● 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 ● 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作, 不仅涉及技术问题,更重要的是必须有科学严格的管理。 ● 缺少有效的软件评测手段,提交用户的软件质量不能完全保证。 订 线 装

(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。 (4) 画出软件生存周期的增量模型的示意图,并简述其优点。 优点: ●可强迫开发人员采用规范化的方法。 ●严格地规定了每个阶段必须提交的文档。 ●要求每个阶段交出的所有产品都必须是经过验证 的。 缺点 ●由于瀑布模型几乎完全依赖于书面的规格说明,很 可能导致最终开发出的软件产品不能真正满足用户 的需要。如果需求规格说明与用户需求之间有差异, 就会发生这种情况。 ●瀑布模型只适用于项目开始时需求已确定的情况。 1-2 瀑布模型示意图 ●能在较短时间内向用户提交可完成一些有用的工作产 品,即从第1个构件交付之日起,用户就能做一些有用 的工作。 ●逐步增加产品的功能可以使用户有较充裕的时间学习和 适应新产品,从而减少一个全新的软件可能给用户组织 带来的冲击。 ●项目失败的风险较低,虽然在某些增量构件中可能遇到 一些问题,但其他增量构件将能够成功地交付给客户。 ●优先级最高的服务首先交付,然后再将其他增量构件逐 次集成进来。因此,最重要的系统服务将接受最多的测 试。

软件工程导论第五版复习资料

软件工程导论 第一章软件工程学概述 1、软件 完成特点功能的程序以及数据结构和文档 2、软件的特点 (1)软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。软件开发、设计几乎都是从头开始,成本和进度很难估计。 (2)软件存在潜伏错误,硬件错误一般能排除。 (3)软件开发成功后,只需对原版进行复制。 (4)软件在使用过程中维护复杂: 1)纠错性维护—改正运行期间发现的潜伏错误; 2)完善性维护—提高或完善软件的性能; 3)适应性维护—修改软件,以适应软硬件环境的变化; 4)预防性维护—改进软件未来的可维护性和可靠性。 (5)软件不会磨损和老化。 3、软件危机及软件危机的表现 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。 软件危机的表现 1)对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象,从而降低了开发商的信誉,引起用户不满。 2)用户对已完成的软件不满意的现象时有发生。 3)软件产品的质量往往是靠不住的。 4)软件常常是不可维护的。 5)软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 6)软件成本在计算机系统总成本中所占比例逐年上升。特别是软件维护成本迅速增加,已经占据软硬件总成本的40%~75%。 7)开发生产率提高的速度远跟不上软件需求。 4、软件工程及软件工程的特性 软件工程是用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。 软件工程的特性: 1)软件工程关注于大型程序的构造 2)软件工程的中心课题是控制复杂性 3)软件经常变化 4)开发软件的效率非常重要 5)和谐地合作是开发软件的关键 6)软件必须有效地支持它的用户

软件工程期末复习填空题

软件工程填空题 1、软件危机是指在计算机软件的_开发和维护_过程中所遇到的一系列严重问题。 2、软件危机包含下述两个方面的问题:一是 _如何开发软件,以满足对软件日益增长的需求;二是_如何维护数量不断膨胀的已有软件_。 3、软件不同于硬件,它是计算机系统中的_逻辑部件_而不是物理部件。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为__生命周期__。 5、软件配置主要包括 __程序、文档_和_数据_ 等成分。 6、软件工程学的一个重要目标就是提高软件的 _可维护性、减少 _软件维护_ 的代价。 7、软件工程是指导计算机软件 __软件开发_ 和 __维护_ 的一门工程学科。 8、软件工程包括 _技术_ 和 __管理__ 两方面的内容,是技术与管理紧密结合所形成的工程学科。 9、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 _方法学_ ,也称为范型。 10、软件工程方法学包含_方法、工具和_过程_ 三个要素。 11、目前使用最广泛的软件工程方法学,分别是 _传统方法学和面向对象方法学 __ 。 12、概括地说,软件生命周期由 _软件定义_ 、 __软件开发_ 和 __运行维护(软件维护)__ 3个时期组成,每个时期又进一步划分为若干个阶段。 13、软件定义时期通常进一步划分为3个阶段,即 _问题定义__ 、 __可行性研究__ 和需求分析。、 14、螺旋模型将 _瀑布、_ 模型和 __快速原型_ 模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。 15、瀑布模型 _不能_ 适应需求可变的软件开发,只有到 _开发结束_ 才能见到整个软件系统。 16、可行性研究阶段当从系统逻辑模型出发,探索若干种可供选择的主要解法,对每种解法都应该从 __技术可行性、经济可行性_和 _操作可行性__ 这三个方面研究每种解法的可行性。

软件工程导论复习试题库完整

a(1)在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看作是 A) 路径的集合 B)循环的集合C)目标的集合D)地址的集合 c(2)在下述哪一种测试中,测试程序的设计者必须接触到源程序 I.功能测试Ⅱ. 结构测试 A)均不须B)只有ⅠC)只有ⅡD)Ⅰ和Ⅱ a(3)检查软件产品是否符合需求定义的过程称为 A)确认测试B)集成测试C)验证测试D)验收测试 c(4)下述陈述中,哪一个不是软件健壮性的度量指标? A)失败后重新启动所需的时间B)引起失败的时间所占的百分比 D)失败前的平均工作时间D)在一次失败中数据恶化的概率 b(5)对软件是否能达到用户所期望的要求的测试称为 A) 集成测试B) 有效性测试C) 系统测试D) 验收测试 a(6)在面向数据流的软件设计方法中,一般将信息流分为 A)变换流和事务流B)变换流和控制流 C)事务流和控制流D)数据流和控制流 d(7)软件需求说明书是软件需求分析阶段的重要文件,下述哪个(些)是其应包含的内容 I.数据描述Ⅲ. 模块描述 II.功能描述Ⅳ. 性能描述 A)ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅱ和ⅢD)Ⅰ、Ⅱ和Ⅳ (8)软件测试一般分为三类,即 I.静态测试Ⅱ. 动态测试Ⅲ. 正确性测试 设计测试用例对程序进行测试,应属于 A)ⅠB)ⅡC)Ⅰ和ⅡD)Ⅲ (9)模块独立性是由内聚性和耦合性来度量的,其中内聚性是度量____,耦合性是度量____。 A)模块间联系程度B)模块的功能强度 C)信息隐蔽程度D)模块的复杂程度 (10)软件设计中一般将用到图形工具,下述哪种(些)工具可用作设计的图形工具 I.结构图Ⅱ. 实体关系图Ⅲ. IPO图 II.Ⅳ. 流程图Ⅴ. N-S图 A)Ⅰ和ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅲ、Ⅳ和ⅤD)全部 A (2)C (3)A (4)C (5) B (6)A (7)D (8)B (10)C (11)试判断下列论述中哪个(些)是正确的 I.软件系统中所有的信息流都可以认为是变换流 II.软件系统中所有的信息流都可以认为是事务流 III.事务分析和变换分析的设计步骤基本类似 A)ⅠB)ⅡC)ⅢD)Ⅰ和Ⅲ (12)软件的有效性测试是验证软件的运行是否达到用户的期望,用户的期望应体现于A)详细设计报告B)软件需求说明书 C)总体设计报告D)有效性测试要求 (13)软件设计中的软件过程其主要描述的是 A)模块间关系B)模块操作细节 C)模块控制方法D)模块类型 (14)软件测试是软件件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?

软件工程期末复习知识点整理

复习整理 一、绪论 1.软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 ●是指导计算机软件开发和维护的一门工程学科; ●采用工程化的原理及方法对软件进行计划、开发和维护; ●把证明正确的管理技术和最好技术综合运用到软件开发中; ●研究经济地开发出高质量的软件方法和技术; ●研究有效维护软件的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1) 过程式编程范型:把程序理解为一组被动的数据和一组能 动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小 (2) 面向对象编程范型:数据及其操作被封装在对象中;程序 =对象+消息;着眼于程序中的对象,粒度比较大 (3) 基于构件技术的编程范型:构件是通用的、可复用的对象 类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大 二、软件生存周期及软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么, 有哪几个主要活动 ●定义:一个软件从开始立项起,到废弃不用止,统称为软件的 生存周期 ●目的:软件生存周期划分为计划、开发和运行3个时期;把整 个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的 任务,就能够化简每一步的工作内容,使因为软件规模而增长 而大大增加了软件复杂性变得较易控制和管理。 ●主要活动:需求分析、软件分析、软件设计、编码、软件测试、 运行维护(P19) 2、软件生命周期划分为哪几个阶段

辽师软件工程期末复习题

说明: 以下试题虽然经过多次整理,但由于时间有限,存在错误或不足之处在所难免。同学们在阅读和使用过程中如发现问题,请你在课程评价的“建议”中指出,具体方法是: 写明大小题号:问题所在;正确内容。 在此谢谢你提供的方便和指正。 一、概念题 1、软工程:是1)将系统性的、规范化的、可定量的方法应用于软件的开发、 运行和维护,即将工程化应用到软件上;2)对1)中所述方法的研究。 2、软件:是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。 3、软件危机:是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 4、软件过程:是软件工程人员为了获得软件产品而在软件工具的支持下实施的 一系列软件工程活动。 5、基线:是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开 发的基础,并且只有通过正式的变化控制过程才能改变。 6、软件配置项:是为配置管理而作为单独实体处理的一个工作产品或软件。 7、对象:是系统中用来描述客观事物的一个实体,它是构成系统给的一个基本 单位,有一组属性和对这组属性进行操作的一组服务组成。 8、软件过程模型:是描述软件过程的整体框架,它是软件过程的一种抽象表示。 9、类:是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提 供了统一的抽象描述,其内部包括属性和服务两个主要部分。 10、实体类:用于描述必须存储的信息及其相关行为,它是对系统核心信息的建 模,通常这些信息需要长久地保存。 11、版本:是确定在明确定义的时间点上某个配置项的状态。

12、耦合度:是表示两个子系统之间的关联程度。当一个子系统发生变化时对另 一个子系统的影响很小,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。 13、软件需求:1)用户解决问题或达到目标所需要的条件或能力。2)系统或系 统部件要满足合同、标准、规范或其他正式规定文档所需要具有的条件或能力。3)一种反映上面1)或2)所描述的条件或能力的文档说明。 14、软件实现:是软件产品由概念到实体的一个关键过程,它将详细设计的结果 翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。 15、内聚性:是子系统内部的相关程度。当子系统中彼此相关的多个对象执行类 似的任务时,则认为该子系统是高内聚的;反之,当子系统内的多个对象彼此不相关时,则认为是低内聚的。 16、软件验证:是指试图证明在软件生存期各个阶段,软件产品或中间产品是否 能够满足客户需求,包括逻辑协调性、完备性和正确性。 17、软件测试:广义上讲,测试是指软件产品生存周期内所有的检查、评审和确 认活动。狭义上讲,测试是对软件产品质量的检查和评价,它一方面检查软件产品中存在的质量问题,同时对产品质量进行客观的评价。 18、软件再工程:是以系统理解为基础,结合逆向工程、重构和正向工程等方法, 将现有系统重新构造成为新的形式。 19、软件确认:是一系列的活动和过程,其目的是保证软件产品能够符合其描述 要求。 20、软件维护:是指在软件运行或维护阶段对软件产品所进行的修改,做这些修 改时可能改正软件中的错误,也可能是增加新的功能以适应新的需求,但是

软件工程期末考试总复习题与答案

)))))))) 精品文档考试教学资料施工组织设计方案 复习题 填空题 1.在信息处理和计算机领域内,一般认为软件是_程序____、_文档____ 和_数据____ 。 2.数据流图的基本组成部分有_数据的源点与终点____、数据 流_____、加工_____、数据文件_____。 3.数据流图和数据字典共同构成了系统的_逻辑____模型,是 需求规格说明书的主要组成部分。 4.划分模块时尽量做到__高内聚、低耦合______,保持模块的 独立性,尽量使用公共模块。 5.类的实例化是_对象_______。 6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可 7.靠性的两个指标是_成功地运行的概率_______和_平均故障 时间_______。

8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来, 9.将得到软件的总开发量。这种成本估算方法称为_自底向上 _______。 10.如果一个模块被n 个模块调用,其中直接的上级模块的个数是m 个(m<=n )那么该模块的扇入数是____N_______ 个。 11.结构化设计以__数据流图_________ 为基础,按一定的步骤映射成软件结构。 12.软件的风险分析可包括风险识别、风险预测和风险驾驭(或风险管理)等3项活动。 )))))). )))))))) 13.软件著作权登记的3种主要类型:(1)著作权登记;(2)著 作权延续登记;(3)权利转移备案登记。 14.软件工程管理的主要内容有:项目经费管理,软件质量管理, 项目进度管理和人员管理。 15.面向对象分析的目的是对客观世界的系统进行___建模 _______________ 。 16.软件维护工作的生产性活动包括分析评价、修改设计和 ____编写程序代码_______ 等。

软件工程期末复习重点

1、什么是软件工程 在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。 2、软件生存周期分哪几个阶段分别简述各个阶段的任务。 答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。 A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机 系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。 B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界 面等要求,生成软件需求规约。 C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细 设计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。 E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。 3、简述各类软件过程模型的特点。 答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是: 接受上一阶段活动的结果作为本阶段活动的输入; 依据上一阶段活动的结果实施本阶段应完成的活动; 对本阶段的活动进行评审; 将本阶段活动的结果作为输出。 B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件 的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。然 后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一

河北工业大学软件工程期末复习

软件工程期末复习总结 第一讲概述(选择U填空U简答) 1.1 软件工程的研究内容 软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题 软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题 1.2 什么是软件? 软件包括:---软件的内涵 ①能够提供客户所需功能与性能的计算机程序; ②使程序能够适当的操作信息的数据结构; ③用以描述程序开发过程及使用的文档。 软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。 软件产品可以分成: 一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。 1.3 什么是软件工程? 软件工程是涉及软件生产各个方面的一门工程学科 软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法. ——IEEE[IEE93] 1.4 什么是成功的软件项目 一个成功软件项目的三个要素包括: 按时交付不超预算满足用户要求。 1.5 软件过程与软件生命周期的相关概念 软件过程是指开发或制作软件产品的一系列活动及其成果. 所有的软件过程中都包括四个基本活动:(填空) 1. 描述( Specification)- 系统应该提供的功能及其开发约束; 2. 开发( Development)- 软件产品的生产过程; 3. 有效性验证(Validation )- 检验软件产品是否满足了客户的需要; 4. 进化( Evolution )- 按照用户的变更要求不断的改进软件。 软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。 1.6什么是优良软件的属性? P8 (填空U选择) 优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配) 可维护性(Maintainability) Software must evolve to meet changing needs; 可依赖性(Dependability) Software must be trustworthy;

软件工程期末考试复习题及答案

(4分) 变换型结构的数据流呈() A. 线性形状 B. 辐射状 C. 椭圆形 D. 阶梯形 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..2. (4分) 可行性研究阶段使用的图形工具是() A. DFD图 B. N-S图 C. PAD图 D. Warnier图 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..3. (4分) 软件的开发模式有() A. 面向过程模式、面向对象模式、混合模式 B. 变换模式、渐增模式、瀑布模式 C. 自顶向下模式、自底向上模式、关系模式 D. 分步模式、渐增模式、非渐增模式 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 B .解析..4. (4分) 模块的初始化工作和模块处理意外故障均属于() A. 时间内聚 B. 顺序内聚 C. 功能内聚 D. 逻辑内聚 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案 A .解析..5. (4分) HIPO的含义是()

A. 层次、输入、处理、输出 B. 高速、信息、程序、目标 C. 顶层的IPO图 D. 关于输入、处理、输出的层次 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..6. (4分) 数据字典和数据流图共同构成系统的() A. 物理模型 B. 结构模型 C. 设计说明书 D. 逻辑模型 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案D .解析..7. (4分) 好的软件结构它的外观形状一般呈() A. 线性 B. 扇形 C. 椭圆形 D. 层次型 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 C .解析..8. (4分) CMU/SEI推出的()将软件组织的过程能力分为五个成熟度级别,每一个级别定义了一组过程能力目标,并描述了要达到这些目标应该具备的实践活动。 A. CMM B. PSP C. ISO-9000 D. RUP 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..9. (4分) 若要保证开发出来的软件局部优化,而且能尽早发现设计上的错误,应采用()

软件工程导论第五版复习重点(必考题)

(最后部分为每年必考题) 第一章 1. .软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的. 2. 软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。 3. 产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 4. 面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。4.对象彼此间仅能通过发送消息互相联系。 5. 软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要) 6. 瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。 7. 微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。 第二章 1.可行性包括:技术可行性,经济可行性,操作可行性。 2. 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形势描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。4. 书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示。 5. 用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。有数据元素组成的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次

软件工程期末复习资料非常全

1、下列哪一模型是软件的基础模型 A.瀑布模型 B.快速原型 C.增量模型 D.螺旋模型 2、划分软件生存周期的阶段时所应遵循的基本原则是 A.各阶段的任务尽可能相对独立 B.各阶段的任务在时间上连续 C.各阶段的任务尽可能相关性 D.各阶段的任务在时间上相对独立 3、下列哪个办法不属于解决软件危机的途径之一 A.采用软件工程的解决途径 B.研制新一代智能计算机 C.采用面向对象的软件设计方法 D.大力扶持软件企业 4、下列哪个不属于软件工程的内涵之一 A.扶持培养软件高手的学院 B.开发既可靠又能有效运行的软件 C.应用完善的科学与工程原理 D.经济地开发软件 5.造成大型软件开发困难的根本原因在于 A.开发人员缺乏足够的开发经验 B.项目开发进度不合理 C.软件系统的复杂性 D.对软件开发的资金投入不足 6.软件会逐渐退化而不会磨损,其原因在于 A.软件备件很难订购 B.不断的变更使组件接口之间引起错误

C.软件错误在经常使用之后会逐渐增加 D.软件通常暴露在恶劣的环境下 7.下面说法正确的是 A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化 B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产 C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功 D.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制 9.软件危机的主要原因是 A.软件本身的特点及开发方法。 B.软件工具落后。 C.软件生产能力不足。 D.对软件的认识不够。 10.下面的描述正确的是 A.软件质量是在开发过程中逐渐构建起来的。

软件工程期末考试题及答案++精华版!!

《软件工程》期末考试样题 一、填空题 1.软件开发模型有(瀑布模型)(螺旋模型)第四代技术模型(原型模型)构件组装模型、混合模型。 2.可行性研究一般可以从(经济)可行性、(技术)可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年后从银行得到F元,现在应该存入的钱数为(F/(1+i)n)。 4.数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。 5.Jackson图除了可以表达程序结构外,还可以表达(数据结构),它首先要分析(数据结构),并用适当的工具来描述。 6.详细设计的工具有图形工具)、表格工具和(语言工具)。 7.IPO图由(输入)、处理和(输出)三个框组成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(继承)、(封装)、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列( A )属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX 2.下列哪个图是N-S图的构件( C )。 A. 3.对于螺旋模型,下列( D )不是利用笛卡尔坐标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABXD )。 A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(ABCD )。 A.表头 B.表体 C.表名 D.字段名 3.关于内容耦合的描述正确的是( AD )。 A、内容耦合是最高程度的耦合 B、应该尽量使用内容耦合 C、高级语言一般设计成允许内容耦合的形式 D、如果一个模块有多个入口,可能发生内容耦合 4.下列属于不标准的书写格式( BCD )。 A、书写时适当使用空格分隔 B、一行写入多条语句 C、嵌套结构不使用分层缩进的写法 D、程序中不加注释 四、判断题(正确的在括号内打上“√”,错误的打上“×”) 1.软件生存周期是从软件开始开发到开发结束的整个时 期。() 2.系统流程图是一个典型的描述逻辑系统的传统工具。() 3.数据流图和数据字典共同构成系统的逻辑模型。 ( 1) 4.扇出是一个模块直接调用的模块数目,一般推荐的扇 出为3或4。( 1 ) 5.耦合用于衡量一个模块内部的各个元素彼此结合的紧 密程度。()

大连理工大学城市学院软件工程导论期末考试复习重点

软件工程导论重点 第一章重点: 软件的概念:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。 软件危机概念:软件危机暴发于上个世纪六十年代末。 主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。 软件工程概念: 概括地说,软件工程是指导计算机软件开发和维护的工程学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程的目标: 软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。 基本目标: 付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作,及时交付使用 软件生存期概念和包含内容: 软件也有一个孕育、诞生、成长、成熟和衰亡的生存过程,我们称这个过程为软件生命周期或软件生存期。 软件生存期分为三个时期 软件定义 软件开发 运行维护

软件工程的方法: 软件工程包含技术和管理两方面的内容,是技术和管理紧密结合所形成的工程学科。 通常将软件开发全过程中使用的一整套技术方法的集合称为方法学(methedology),也称为范型(paradigm)。 目前使用最广泛的软件工程方法学:传统方法学(结构化方法学),面向对象方法学。 软件工程三要素: 三要素:方法、工具和过程。 第二章重点: 生存期模型有哪些: ?瀑布模型 ?快速原型模型 ?增量模型 ?螺旋模型 ?喷泉模型 ?统一过程 ?基于构件的开发模型 ?敏捷过程 前四种面向过程后四种面向对象 给一个模型,判断出是哪一模型的 第三章重点: 结构化分析方法的概念: 传统的分析建模方法称为结构化分析(structured analysis,SA)方法。 三大建模:(未完待续!!!) 功能建模: 功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。功能模型

相关文档
最新文档