当前位置:文档之家› 软件工程整理答案

软件工程整理答案

软件工程整理答案
软件工程整理答案

1.简述C/S软件系统和B/S软件系统各自特点和发展趋势。(10分)

B/S结构的优点

(1)具有分布性特点,可以随时随地进行查询、浏览等业务处理。

(2)业务扩展简单方便,通过增加网页即可增加服务器功能。

(3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新。

(4)开发简单,共享性强

B/S 模式的缺点

(1)个性化特点明显降低,无法实现具有个性化的功能要求。

(2)操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。

(3)页面动态刷新,响应速度明显降低。

(4)无法实现分页显示,给数据库访问造成较大的压力。

(5)功能弱化,难以实现传统模式下的特殊功能要求。

C/S的结构是,客户端/服务器端

B/S的结构是,浏览器/服务器端

C/S的程序通常也叫胖客户端,也就是一个程序的大部分功能,都在客户端实现,而服务器端只实现一小

部分功能。通过这点不难看出,C/S的程序大部分在客户端实现,对于服务器端的压力相对小一些,服务

器端可以节省一些。而且C/S的程序用窗口来做,个人认为开发效率上快一点。但C/S的程序一大弊端就是,必须要在客户端安装并部署程序才能运行,也就是用户必须得到客户端程序才可以运行。所以得考虑

不同系统之间的安装与配置。

B/S的程序通常也叫瘦客户端,与C/S相反。B/S的程序大部分功能都要在服务器端实现,客户端只用来做

辅助的控制功能。B/S应用程序最近大受欢迎,因为B/S的程序直接部署安装在服务器上。用户只需要有

浏览器,并知道网址就可以使用程序。客户端不必做任何配置和安装,即可使用应用程序。而B/S也是有

缺点的,首先B/S大部分功能都要在服务器端实现,对于服务器的要求就很高。服务器同时要应付用户访

问与程序处理,所以服务器的配置必须能够应付。另外就是B/S的程序是浏览器中执行,所以B/S的程序

操作客户端电脑的硬件,一般就得安装ActiveX等插件在客户端才可以操作。因此B/S的程序对于操作硬件,优势没有C/S的程序要好。

发展趋势:C/S结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降

低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。B/

S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)

和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,

是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。

2.EJB(Enterprise Java Bean)的接口分Local接口和Remote接口,简述其差异和应用场景。(15分)

local是本地接口,remote是远程接口。web层调用app层使用remote接口。session bean 和entity bean之间调用使用的是local接口。如果Bean类实现了一个接口,这个接口被认为是Bean类的业务接口,默认是本地业务接口。local 是同一个容器调用的,remote可以跨容器调用。Local接口适用于一个JVM中,而Remote接口适用于不同的JVM中。

Bean类被允许有多个接口,必须清楚地使用Local或者Remote注释或者使用部署描述器标识业务接口:供远程访问的接口,与普通接口基本相同,需要使用元注释声明:@Remote;供本地访问的接口,使用元注释:@Local。

当@Local和@Remote的EJB注释都不存在时,会话Bean实现的接口默认为Local接口。如果在本机调用EJB(确保客户端与EJB容器运行在同一个JVM),采用Local接口访问EJB 优于Remote接口,因为Remote接口访问EJB需要经过远程方法调用,而Local接口访问EJB直接从JVM 中返回EJB的引用。Bean的提供者可以用@Remove注释来标记任何SFSB 的方法,以说明这个方法被调用之后bean的实例将被移除。同样,规范组织仍然在讨论是否要有一种机制来处理这种特殊的情况,即当这个方法出现异常的情况下bean的实例是否被移除。

3.敏捷软件开发的主要思想和实现步骤是什么?(15分)

敏捷软件开发宣言具体表达了敏捷开打的具体思想:

?个体和交互胜过过程和工具

?可以工作的软件胜过面面俱到的文档

?客户合作胜过合同谈判

?响应变化胜过遵循计划

虽然右项也具有价值,但认为左项具有更大的价值。

实现步骤:

4.简述基于构建软件开发的主要技术分类和各自技术特点。(20分)

1)面向对象技术。具有封装性、继承性、多态性、自然模拟客观世界的能力,是建立可复用构件的主要基础;面向对象的开发方法也是形成基于构件的软件开发方法的主要基础,其是最核心的支撑技术。

2)设计模式。设计模式(design patterns)是指在特定场合下,对某一类问题的通用解决方案,表现为一组对象间的组合和交互的特定方式。设计模式是建立可复用构件的重要方法,是把专家级的设计思路用于构件设计的快捷方法。

3)重构技术。重构(refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。有助于从遗产系统中发现可复用构件,也是已有构件进化的重要手段。

4)范型编程技术。范型编程(generic pro~gramming)技术是一种典范(paradigm),专注于将型别(type)抽象化,形成功能需求方面的一个精细接口,并复用这些需求来实现算法。由于算法为其所操作型别定义了严格、精细的接口,因此相同的算法可用于广泛的型别集。在构件的生产中,范型技术是实现构件体的重要工具。

5)形式化方法。可以分为:形式化描述和建立在形式化描述基础之上的形式化开发。形式化的描述就是用形式化的语言(具有严格的语法语义定义的语言)做描述。形式化的软件开发,就是用形式化的语言来描述软件需求和特征,并且通过推理验证来保证最终的软件产品是否满足这些需求和具备这些特征。形式化方法是建立精确、一致的构件模型和构件描述语言等的基础。

6)软件工程的基础理论。软件工程是采用工程的概念、原理、技术和方法来开发和维护软件,把经过考验证明是正确的管理技术与能得到的最好的技术方法结合起来进行软件开发。基于软件工程的基础理论,根据自身特点和要求形成实用的软件工程方法,是基于构件的软件开发研究和获得成功的必然之道。

7)软件体系结构。又被称为构架,是软件系统的高级抽象,体现了系统开发中最早做出的决策,它体现了根本性的系统设计思路,对系统起着最为深远的影响,是一种可预制和可复用的软件框架结构。

8)领域分析方法。领域分析是在软件开发过程中对应用领域的信息进行收集、抽象和组织,识别和构造出各种可重用的信息,使得这些信息能够在开发该领域的软件构件时得到最大限度的利用。合适的领域分析方法是抽象领域基本特征,获得可重用资产的关键。

9)人工智能技术。人工智能是关于知识获取、知识的描述、理性推理和学习的科学和技术,在构件模型描述和自动组装等多方面有着广泛的应用。

5.简述UML语言实现面向对象软件开发的主要过程和相应的UML图例。(20分)过程包括设计对象和类、设计系统结构、设计问题域子系统、设计人-机交互子系统、设计任务管理子系统、设计数据管理子系统和设计优化。

6.就课堂讨论的主题,谈谈你对其中某一个主题的认识。(10分)

7.下面两个E-R图是数据建模的概念模型,请指出各自应用场景?并简述理由。(10分)

1.EJB(Enterprise Java Bean)的分类和各自应用场景。(15分)

EJB3中:

会话Bean:有状态会话Bean、无状态会话Bean——状态会话Bean是一种保持会话状态的服务,每个实例都与特定的客户机相关联,在与客户机的方法调用之间维持对话状态。与之相反,无状态会话Bean不保存与特定客户的对话状态。因此状态会话Bean比无状态会话Bean具有更多的功能,而无状态会话Bean实例可以通过EJB容器自由地在客户机之间交换,从而少量的会话Bean就可以服务于大量的客户机。

实体(通过JPA访问):代表商务上的实体,比如商务数据,应该包含与数据相关的逻辑。实体Bean是对应到数据库中的一个视图,一个实体Bean实例和底层数据库完全是一回事。因此,一个简单的实体bean实例代表一个特殊的记录。更复杂的实体bean可以代表数据库表间关联视图。

消息驱动Bean:通过允许容器去聚合并且管理消息驱动Bean实例,以此来提供传入JMS 消息的并发处理。

2.比较Java EE架构和.Net架构的特点。(15分)

Java EE应用都大致可以分为如下三层:表现层,业务逻辑层,数据持久层。轻量级Java EE架构以Spring IoC容器为核心,承上启下:其向上管理来自表现层的Action,向下管理业务逻辑层,同时负责管理业务逻辑层所需的DAO对象.满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。这种基于组件,具有平台无关性的J2EE 结构使得J2EE 程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE 服务器以容器的形式为所有的组件类型提供后台服务. 因为你不用自己开发这种服务, 所以你可以集中精力解

决手头的业务问题.通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

.NET架构,其特点是:

1. 一致的编程模型

2. 简化的编程方式

3. 可靠的版本机制

4. 轻便的部署管理

5. 广泛的平台支持

6. 无缝的语言集成

7. 简便的代码重用

8. 自动化的内存管理(垃圾收集)

9. 坚实的类型安全

10. 丰富的调试支持

11. 统一的错误报告

12. 全新的安全策略

13. 强大的互操作能力

3.SOA(Service-Oriented Architecture)主要特点和优势是什么?(15分)

SOA从面向构件开始,面向构件从SOA开始——服务是构件与生俱来的,而以前的开发语言却不是;因此以构件为单元的应用软件就与生俱有了服务的能力,也就是服务别人的能力和享用别人服务的能力。面向构件这个开发方式是最好的服务的制造方式,它所造出的构件和业务构件是全粒度的服务。面向构件就是最好的应用软件构造方法,并能把SOA企业架构下的企业服务资源很好地应用起来。

SOA生命周期中,我们将设计时、运行时和变更时看做是松散耦合系统中正在建设的业务过程或服务的三个阶段。SOA的一个优势是有能力实现系统分拆,大大节省了成本,增加了灵活性,将开发和测试团队移动到更多的并行开发周期中。

4.基于MVC(Model/View/Controller)模式开发B/S结构的特点是什么?(15分)

MVC模式将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。MVC有助于把应用分离成合理的组件,以方便开发。

(1)在MVC模式中,三个层各司其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。

(2)有利于开发中的分工

在MVC模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。

(3)有利于组件的重用

分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。

5.简述基于构建软件开发的主要技术分类和各自技术特点。(20分)

同上

6.谈谈你对《高级软件工程》课程的认识。(10分)

7.下面E-R图是数据建模的概念模型,将其转换成对应的物理模型。(10分)

软件工程重点整理

软件工程重点 (吐血整理——林新发) 红色的是重点中的重点 前面数字是课本页码 第一章概论 1 什么是计算机软件 计算机软件指计算机系统中的程序及其文档 3软件的特点 (1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算 (2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大 (3)软件的使用没有硬件那样的机械磨损和老化问题 4软件的分类 (1)系统软件(如操作系统、编译程序等)、 (2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、 (3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等) 6软件工程定义 软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程 7生存周期 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期 软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护 12能力成熟度模型CMM(了解一下) 初始级、可重复级、已定义级、已管理级、优化级 18瀑布模型(重) 系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护 第二章系统工程 41系统工程的任务 (1)识别用户的要求,确定待开发软件的总体要求和范围,

(2)系统建模和模拟 (3)进行成本估算,做出进度安排 (4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。 (5)生成系统规格说明书 42可行性分析 (1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入) (2)技术可行性(风险分析、资源分析、技术分析) (3)法律可行性 第三章需求工程 48软件需求 指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求 50需求获取方法与策略(重) 建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况 51 图3.2 53 创建用况模型的主要步骤 (1)确定谁会直接使用该系统,即参与者(Actor) (2)选取其中一个参与者 (3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况 (4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程 (5)描述该用况的基本过程 54需求分析原则(重) 1.必须能够表示和理解问题的信息域 2.必须能够定义软件将完成的功能 3.必须能够表示软件的行为(作为外部事件的结果) 4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

软件工程知识点汇总

软件工程知识点汇总 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.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

软件工程试题含答案案.docx

软件工程期末试题(1) 一, 判断题(正确的在括号内打上"√",错误的打上"×".每题1.5分,共15分) Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格.(×) PAD图在设置了五种基本控制结构后,还允许递归调用. (×) 你为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(×) 当验收测试通过,软件开发就完成了.(×) 完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×) 系统结构图是精确表达程序结构的图形表示法.因此,有时也可以将系统结构图当作系统流程图使用.(×) 在程序调试时,找出错误的位置和性质比改正该错误更难.(√) 以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一.(√) 二,单项选择题(每小题2分,共10分) 试判断下列叙述中,哪个(些)是正确的(D) a,软件系统中所有的信息流都可以认为是事务流 b,软件系统中所有的信息流都可以认为是变换流 c,事务分析和变换分析的设计步骤是基本相似的 A,a B,b C,c D,b和c 进行需求分析可使用多种工具,但(B)是不适用的. A,数据流图B,PAD图C,判定表D,数据词典 在详细设计阶段,经常采用的工具有(A).

A,PAD B,SA C,SC D,DFD 详细设计的结果基本决定了最终程序的(C) A,代码的规模B,运行速度C,质量D,可维护性 使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准. A,程序的内部逻辑B,程序的复杂程度 C,该软件的编辑人员D,程序的功能 三,多项选择题(每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分.) (ABCD)可以作为模块. A,子程序B,函数C,过程D,编译文件 下面哪些测试属于黑盒测试(BCD). A,路径测试B,等价类划分C,边界值分析D,错误推测E,循环测试下列属于度量效益方法的是(ABCD). A,货币的时间价值B,投资回收期C,收入D,投资回报率 软件维护的策略包括(BCD). A,定期检测维护B,改正性维护C,适应性维护D,完善性维护 下列属于软件测试过程的是(ABE). A,单元测试B,组装测试C,内核测试D,法律验证E,确认测试 四,简答题(每题6分,共24分) 1、耦合性和内聚性有几种类型其耦合度,内聚强度的顺序如何答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高

软件工程问题整理版

1、软件危机定义、发生原因、常见表现,如避免软件危机? (1)软件危机定义:课本Page 8(开发和维护过程) (2)发生原因、常见表现:课本Page 8-9,练习册Page 1 (3)如避免:Page 10 (采用软件工程的法) 答案(由于大部分答案参考ppt,故仅供参考,下同) 软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列重问题。 表现在: (1)对于软件开发的成本和进度的估计很不准确。 (2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。 (3)开发的软件可靠性差。 (4)软件通常没有适当的文档。 (5)软件的可维护性差。 (6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 原因: (1)软件的规模愈发庞大; (2)软件开发的管理困难。 (3)成功的软件开发经验没被很好地应用。 (4)软件开发和维护中千金错误认识和法的形成可以归结与计算机发展早期软件开发的个体化特点。 (5)软件开发技术落后。 (6)生产式落后。 (7)开发工具落后,生产率提高缓慢。 如避免(参考,可以自己总结): 从软件开发的工程化法入手,即用现代工程的概念原理、技术和法去指导软件的开发、管理和维护,这就是软件工程思想和法。具体措施: (1)使用好的软件开发技术和法; (2)要有良好的组织、密的管理,各类人员协同配合,共同完成任务; (3)使用好的软件开发工具,提高软件生产率; (4)建立格的文档资料,重视软件开发过程的阶段评审。 2、软件生命期模型(软件生命期?)的组成,每个阶段的容? (1)组成:Page 21 (2)容:Page 22—25) 答案: 软件生存期定义: 一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存期。 软件生存期一般可分为以下阶段: (1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计) (5)详细设计(6)编码(7)测试(8)维护 也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

软件工程试题与答案-(27)

一.单项选择题(每题1分,20题共20分) 1.计算机系统可以划分为软件系统和硬件系统,软件是一种 A.逻辑产品 B.文档资料 C.程序代码D.物理装置 2.可行性分析研究的主要目的是 A.定义项目 B. 项目是否值得开发 C.开发项目 D.规划项目 3.在下列四种模块的耦合性中,信息隐蔽性能最好的是() A.控制耦合 B.内容耦合 C. 数据耦合 D. 特征耦合 4.需求分析是回答系统必须()的问题。 A. 为谁做 B.怎么做 C.何时做 D.做什么 5.在UML中,类是用()表示的 A 矩形框 B 椭圆 C 箭头 D 菱形框 6.编码阶段是位于哪个阶段之后 A. 详细设计 B. 可行性研究 C. 总体设计 D. 需求分析 7.在数据流图中,圆圈符号表示的是 A. 数据源点或终点 B.数据处理 C. 数据存储 D. 数据流 8.内聚是衡量模块内部聚合能力的量度。内聚越高,说明模块内各成分彼此联系的程度 A.越松散B.彼此相等C.越紧密D.没有联系 9.在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于() A、维护时期 B、开发时期 C、运行时期 D、计划时期 10.软件维护有四种,下面哪一个不是的 A. 完善性维护 B. 测试性维护 C. 预防性维护 D. 适应性维护 11.结构化程序设计采用的三种基本控制结构是() A.顺序、选择、重复 B.选择、循环、重复 C.顺序、分支、选择 D.输入、变换、输出 12.软件测试的目的是() A. 为了表明程序没有错误 B.为了发现程序中的错误 C. 为了说明程序能正确地执行 D.为了评价程序的质量 13.在UML的用例图中,人形符号表示的是 A 关联 B 用例C角色 D 系统 14.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试() A、结构合理性 B、软件外部功能 C、程序正确性 D、程序内部逻辑 15.下面哪些测试属于黑盒测试()。 A、路径测试 B、循环测试 C、等价类划分 D、条件判断 16.()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A封装 B 继承 C 多态性 D 消息 17.在UML中,协作图反映收发消息的对象的结构组织,它与()是同构的 A 用例图B时序图 C 活动图 D 类图 18.需求分析是软件生存周期中的一个重要阶段,它的应该是在()进行。 A、维护阶段 B、软件开发全过程 C、软件定义阶段 D、软件运行阶段

软件工程试题与答案整理版

软件工程试题 一、简述题(4 * 10 = 40) 1 简述生命周期方法学及其特点。 2 什么是软件过程?简述RUP及其特点。 3 简述面向对象的基本思想。 4 简述控制软件复杂性的基本方法。 二、判断题(判断命题正确与否,如错误,请改正)(10 * 2 = 20) 1 ()在建立了设计模型之后,就可以开始制定测试计划。 2 ()耦合是指一个模块内各个元素彼此结合的紧密程度。 3 ()数据流程图是描绘物理系统的传统工具。 4 ()软件工程标准有5个不同的级别层次:国际标准、国家标准、行业标准、企业规范、项目规范。 5 ()软件重用是指在软件开发过程中重复使用相同或相似软件元素的过程。 6 ()模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。 7 ()如果测试数据满足条件覆盖,则必然满足判定覆盖。 8 ()软件开发模型是跨越整个软件生命周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。 9 ()能力成熟度模型是评价程序员程序设计能力的一种全面而客观的评审依据。 10()好的测试具有较高的发现错误的可能性。 三、选择题(将正确的答案代号填入括号中,每小题2分,共20分) 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.在数据流程图中,符号“□”用来表示()。 A.处理 B.外部实体 C.数据存储 D.数据源点 9.()是基于形式化规格说明语言及程序变换的软件开发模型。 A.增量模型 B.喷泉模型 C.变换模型 D.螺旋模型 10.对象类之间的归纳关系就是()关系。 A.一般-特殊 B.整体-部分 C.相互依赖 D.层次关系 四、填空题(每小题10分,共20分) 1. 信息系统是一个复杂的人机系统,系统内外环境以及各种人为的、机器的因素都在不断地变化。为了使系统能够适应这种变化,充分发挥软件的作用,产生良好的社会效益和经济效益,就要进行系统的维护工作。系统的维护对于延长系统的生命周期具有决定意义,请列出系统开发中能够提高系统可维护性的要求。 ① ② ③ ④ ⑤ 2. 软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。请列出软件开发过程中软件质量保证的主要措施。 ① ② ③

软件工程各种图的画法考试必备

1.完成患者监护系统功能级的数据流图、实体联系图、软件结构图。 2.网上书店系统,其外部用户主要有游客、会员和管理员。其中,游客进行注册后,可以成为系统的会员,会员享有订购图书及订单和书籍等信息查询的功能,管理员可对系统的各种信息进行管理和维护。根据上述描述,请画出网上书店系统的:①基本系统模型(第0层);②功能级的数据流图(第1层);③底层的订购图书数据流图。 1.把如下统计空格程序的Jackson图改画为等价的程序流程图和盒图。 2、用Jackson图描述下述的一列火车的构成: 一列火车最多有两个火车头。只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车的最后面。火车头既可以是内燃机车也可以是电气机车。车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部 分。此外,在硬卧车厢和软卧车厢之间还有一节餐车。 1.饮用水自动销售系统的工作过程大致如下:如果投入1元硬币,则自动放水5升;如果投入5角硬币,放水2.5升;如果选择1元,投入2个伍角的硬币,也可放水5升。如果饮用水来不及生成,系统会把硬币退出来并亮红灯。收到的硬币由收银员定时回收。试画出该系统的用例图。 2.某寄宿学校需要开发一个信息管理系统,通过该管理系统对学生的日常事务进行管理: 校长助理:管理学生的档案,进行新增、删除、查询、修改等操作;对学生班级进行管理(新增、删除等),进行新学生的编班工作和调班工作,查询班级名册等情况。 财务人员:进行每月的收费和退费工作,每个学生的每月费用包括住宿费,伙食费220,在6-8 月收取空调费20,在11-2 月收取取暖费20,每个学期的开学初(3 月、9 月)收取书本费(不定)。住宿费分三种情况:双职工的子女为60,单职工的子女80 元,父母均不在本单位工作为100 元。每个班的老师在每天要申报本班学生的出勤表,由校长助理完成各班的考勤录入,考勤情况决定上月的伙食退费,以每天10 元计算。 学生家长:在对退费有疑问时,可以查询学生的出勤情况。请画出本系统用例图。 1、汽车和自行车都是交通工具。一辆自行车只能归一个人拥有,但一辆汽车可归一个人或者两个人拥有。一个人可能没有自行车或汽车.也可能拥有多辆自行车或汽车。人分男人和女人两类,每个人都具有年龄和名字。在任何时候,一辆汽车上可能载有0个多个乘客。每辆汽车都有自己的颜色和商标。特别地,每辆汽车都只有两个前灯和一台发动机。请画出类图。 2、用聚集关联表示家用计算机系统的组成。家用计算机系统是由主机箱、键盘、鼠标、显示器、CD—ROM驱动器、一个或多个硬盘驱动器、调制解调器、软盘驱动器、打印机组成,还可能包括几个音箱。而主机箱内除CPU外带着一些驱动设备,例如显示卡、声卡等。 3、建立一个能够反映咨询公司日常业务的类图。为每一个关联起一个名字,并写上重数。该类图可能包括下列的类:顾问、客户、项目、提案、数据和报告。 4、画出打电话操作过程的事件跟踪图(即序列图)。 5、活动图是状态图的一种特殊情况。用于简化描述一个过程或者操作的工作步骤。活动用圆角矩形表示——比状态图更窄,更接近椭圆。一个活动中的处理一旦完成,则自动引起下一个活动的发生。箭头表示从一个活动转移到下一个活动。和状态图类似,活动图中的起点用一个实心圆表示,终点用一个同心圆(内圆为实心圆)表示。在活动图中可以带判定点,即一组条件引发一条执行路径,另一组条件则引发另一条执行路径,并且这两条执行路径是互斥的。判定点常用小的菱形图标表示,同时在相关路径的附近指明引起这条路径被执行的条件,条件用方括号括起来。请用活动图描述打电话过程。

软件工程习题及详细答案

个人收集整理勿做商业用途 软件工程习题及答案 一、选择题: 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、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

软件工程各章重点

软件工程各章重点 第1章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么? 答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义? 答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 3. 软件工程研究的主要内容是什么? 答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么? 答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期? 答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?

答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗? 答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些? 答:结构化方法和面向对象方法。 9. 软件标准的层次是如何划分的? 为了提高软件开发的效率,保障软件产品的质量,软件工程领域中公布了许多国际标准、国家标准、行业标准、企业标准、项目规范,通常由低级到高级使用。软件工程的标准关系到许多方面,有规范开发过程的标准,有定义产品的标准,还有管理标准和记法符号的标准等等。 10. 软件工程师职业道德规范的8组关键词是什么? 答:1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 11. 职业化软件工程师要注意的十大问题是什么? 答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第2章本章的题型主要是选择题。

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

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

软件工程各阶段的工作内容及特征

软件工程各阶段的工作内容及特征 软件工程的目标是提高软件质量,质量因素有正确性、性能、可靠性、容错性、易用性、灵活性、可扩充性、可理解性、可维护性等等。开发常用模型有:线性模型、渐增式模型、螺旋模型、快速原型模型、形式化描述模型等等。“套用固定的模型不是程序员的聪明之举”。比如“程序设计”与“测试”之间的关系,习惯上总以为程序设计在先,测试在后,而对于一些复杂的程序,将测试分为同步测试与总测试更有效。软件开发中的三种基本策略:“复用”“分而治之”“优化—折衷”。软件复用是将具有一定集成度并可以重复使用的软件组成单元,称为软构件。分而治之是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。软件的优化是指优化软件的各个质量因素,如提高运行速度,提高对内存资源的利用率,使用户界面更加友好等等。优化工作的复杂之处是很多目标之间存在千丝万缕的关系,当不能够使所有的目标都得到优化时,就需要“折衷”策略。软件中的折衷策略是指通过协调各个质量因素,实现整体质量的最优。软件折衷的重要原则是不能使某一方损失关键的职能,更不可以像“舍鱼而取熊掌”那样抛弃一方。下面从需求分析、系统分析、系统实现、测试与改错、维护与再生这五个方面逐一阐述。 2.1 需求分析阶段 需求分析是项目成败与否的第一步,对需求把握得越准确,软件的修修补补就越少。有些需求在一开始时很难确定,在开发过程中要不断地加以改正。软件修改越早代价越少,修改越晚代价越大。需求

分析要关注到每一个最终使用者,避免遗漏使用方的需求。需求分析尽量从多个角度进行。需求分析需要与使用者进行多次反复沟通,开发者做到真正领会使用者的需求。做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的细节都加以权衡。可行性分析必须为决策提供有价值的证据。需要分析的工作要点有:1)完成问题整理、收集;2)走访使用部门,进行询问、沟通;3)交流中的心态定位是我们在为编辑、为业务工作;4)我们要为用户考虑。让用户意识到我们的每一句话都是在为他们考虑;5)采用适当的交流语言。勾画出思路清晰用户易懂的流程图,清晰明了的表格,形象美观的图形,必不可少的文字;6)保留交流的记录和整理汇总的文档;7)技术人员自己要提出用户易用性需求、系统功能需求、系统维护需求;8)响应变更需求,拒绝不合理要求;9)业务建模。通过UML绘制的模型来完整、适当地对需求进行描述;10)分析绘制业务流程图和数据流程图,总结出各级操作人员,识别系统中的所有用例和角色;分析各角色和用例之间的联系,使用UML建模工具画出系统的用例图;最后勾画系统的概念层模型,借助UML建模工具描述概念层的类图和活动图。 2.2 系统设计阶段 系统设计阶段完成系统设计。系统设计是把需求转化为软件系统的最重要的环节,决定一套软件系统的健壮性、可扩展性、易开发性等。系统设计的优劣在根本上决定了软件系统的质量。这个阶段要确定系统结构,系统结构的稳定性决定应用软件的使用寿命。有了上一阶段需求的把控和需求建模,系统分析阶段就要完成结构设计、模块

《软件工程》试题及参考答案(第1套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 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、生产率高 7.确认测试主要涉及的文档是()。 A、需求规格说明书 B、概要设计说明书 C、详细设计说明书 D、源程序 8.模块的内聚性最高的是( ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 9.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( ) A.生存期 B.面向对象设计 C.面向对象程序设计 D.面向对象分析 10.原型化方法是用户和设计者之间执行的一种交互构成,适用于( )系统。 A.需求不确定性高的 B.需求确定的 C.管理信息D.实时 12、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 13.下列关于瀑布模型的描述正确的是( )。 A.利用瀑布模型,如果发现问题修改的代价很低

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件工程整理

第一章 软件工程研究的主要内容:为了在有限的资金、资源和时间条件下开发满足客户要求的高质量软件,需要研究与软件开发和管理相关的模型、方法、技术等。 在《计算机科学技术百科全书》中,对计算机软件作出如下定义:计算机软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据或信息。处理规则一般指处理的动作和步骤。文档是为了便于了解程序所需的阐述性资料。 软件工程的定义:⑴IEEE在软件工程术语汇编中的定义:①软件工程是将系统化的的方法用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究⑵软件工程是应用计算机科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源等管理。 软件工程的框架:目标,过程和原则 软件工程目标是指生产具有正确性、可用性、和开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜指软件开发、运行的整个开销满足用户要求的程度。 软件工程原则包括围绕工程设计、工程支付和工程管理所提出的以下4条基本原则 (1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑 (4)重视软件工程的管理 软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。 软件生存周期分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护 软件过程是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。 软件过程是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。软件过程有3层含义:一是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合;二是整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体;三是工程含义,即指解决软件过程的工程,应用软件工程的原则、方法来构造软件过程模型、并结合软件产品的具体要求进行实例化,以及在用户环境,并结合软件产品的具体要求进行实例化,以及在用户环境下运作,以此进一步提高软件生产率,降低成本。 软件过程模型也称软件开发模型,是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有:瀑布模型、演化模型(如增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 瀑布模型是1970年由W.Royce提出的,它给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终得到所开发的软件产品。其特征是:接受上一阶段活动的结果作为本阶段活动的输入 依据上一阶段活动的结果实施本阶段应完成的活动 对本阶段的活动进行评审 将本阶段活动的结果作为输出,传递给下一阶段 瀑布模型也逐渐暴露出它的不足(1)不少软件的需求存在着不确定性,(2)如果发现不满足客户需求的问题,那么修改软件的代价是巨大的 演化模型,是从构造初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型适用于对软件需求缺乏准确认识的情况。典型的演化模型有:增量模型、原型模型、螺旋模型 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 增量模型融合了瀑布模型的基本成分和演化模型的迭代特征,强调每一次增量都发布一个可运行的产品。特征:(1)适用于需求经常发生变化的软件开发(2)在市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品,此时也适宜用增量模型进行开发(3)能有计划的管理技术风险

软件工程知识点

第一章软件工程概述 一、软件的定义和特性(P2—P3) 定义:软件=程序+数据+文档 程序:按照事先设计的功能和性能要求执行的指令或语句序列 数据:程序能正常操纵信息的数据结构 文档:描述程序操作和使用的文档 特性: (1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体; (2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理; (3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件; (4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题; (5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。 * 掌握P4图1-2(b)软件失效率曲线 二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2) 共经历了四个阶段 特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术 第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机 第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件 第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。 三、什么是软件危机?其产生的原因是什么? 定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。(P4) 原因:(P5) (1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求; (2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致; (3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验; (4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误; (5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化 (6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。 四、什么是软件工程?它的目标和内容是什么? 定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并对方法的研究。(P6) 目标:在给定的成本和进度前提下,开发出具有可修改性、可理解性、可维护性、有效性、可靠性、可适用性、可重用性、可移植性、可跟踪性和互操作性并且满足用户需求的软件产品。(P7) 内容:主要内容包括软件开发技术和软件工程管理两方面。(P6) 要素:方法,工具,过程 五、什么是软件生存周期?它有哪几个活动? 定义:(software life cycle)把软件产品从形成概念开始,经过定义、开发、使用和维护直到最后退役的全过程。 活动:软件定义、软件开发、软件使用维护和退役(P9)

相关主题
文本预览
相关文档 最新文档