软件工程简答题_第1页
软件工程简答题_第2页
软件工程简答题_第3页
软件工程简答题_第4页
软件工程简答题_第5页
全文预览已结束

下载本文档

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

文档简介

1. 请简要说明软件过程的概念和基本元素。答案要点:软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它应该明确定义以下元素:过程中所执行的活动及其顺序关系; 每一个活动的内容和步骤; 团队人员的工作和职责.2. 软件工程包括哪些基本要素?请简要说明这些要素及其作用。答案要点:软件工程包括过程、方法和工具三个要素。软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标;.软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等;工具:为软件工程的方法提供自动或半自动的软件支持环境辅助软件开发任务完成。3,请简要描述SWEBOK所包含的10个知识域。(1) 软件需求(Software Requirements)(2 )软件设计(Software Design)。(3)软件构造( Software Construction)。(4) 软件测试(Software Testing)。(5)软件维护(Software Maintenance)。(6)软件配置管理(Software Configuration Management)。(7)软件工程管理(Software Engineering Management)。(8)软件工程过程(Software Engineering Process)。 (9)软件工程工具和方法(Software Engineering Tool and Method)。 (10)软件质量(Software Quality)。4. 需求工程包括哪些基本活动?每一项活动的主要任务是什么?答案要点:需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。这些基本活动的主要任务包括:(1)需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。(2)需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。(3)需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。(4)需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。(5)需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。5.请比较本章介绍的几种主要需求获取技术,说明每一种技术的优缺点和适用场合。答案要点:(1)用户面谈优点:可以与项目相关人员一对一地进行交谈和讨论;具有私密性,使被访者可以直率地和无隐瞒地回答问题;便于探查一些附加信息或反馈信息;有利于与客户建立良好的关系。缺点:面谈是一种非常费时和高成本的方式;难以解决不同的项目干系人之间的冲突和矛盾;在地理位置相距较远的情况下很难实施。适用场合:适用于在初步理解整体概念的情况下讨论和交流一些细节问题。(2)需求专题讨论会优点:有助于了解系统需求;有利于共享系统开发的成果;给用户一种主人的感觉;可以与足够多的项目干系人进行讨论和交流,且节省时间;支持头脑风暴式的讨论。缺点:需要占用参与人员比较长的整块时间;主持人的能力和会议的准备工作必须是非常好的,否则结果很糟。适用场合:适用于讨论和审查软件系统方案和模型,解决不同项目干系人之间的冲突和矛盾。(3)观察用户工作流程优点:通过直接观察的方式提取用户或系统的特性;有助于理解难以用语言描述清楚的复杂业务。缺点:观察可能使用户紧张,从而表现得与往常不同。适用场合:适用于理解难以用语言描述清楚复杂业务过程。(4)原型化方法优点:通过一个可以运行的软件原型直观地理解和澄清问题,便于使开发人员与用户达成共识。缺点:用户容易产生误解,认为软件系统可以在原型的基础上很容易地构建,但实际上该原型的内部结构和程序质量比较差。适用场合:适用于用户需求不明确或描述不清楚的情况6. 请解释下列术语,并举例说明之。对象、类、属性、操作、关联、泛化、聚合、依赖参考答案:(1)对象(Object)对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。举例:中国就是一个对象。(2)类(Class)类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,包括属性和服务两个主要部分。举例:学生、人、树木等都是类。(3)属性(Attribute)属性是用来描述对象静态特征的一个数据项。举例:学生具有姓名、性别、年龄等属性。(4)操作(Operation)操作是类的实例被要求执行的服务,具有名字和参数列表。举例:学生具有入学注册、选课等操作。(5)关联(Association)关联是一种结构关系,说明一个事物的对象与另一个事物的对象之间的联系。举例:学生与课程之间的关系就是关联,一个学生可以选修多门课程,一门课程也可以被多个学生选修。(6)泛化(Generalization)泛化是一种一般事物(父类)和特殊事物(子类)之间的关系。举例:学生与研究生之间是泛化关系,研究生是一类特殊的学生。(7)聚合(Aggregation)聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。举例:学校和系之间存在聚合关系,系是学校的一个组成部分。(8)依赖(Dependency)依赖是一种使用关系,描述了一个事物发生变化会影响到另一个使用它的事物。举例:课程表使用课程,二者之间是依赖关系。7. 什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?参考答案:实体类用于描述必须存贮的信息及其相关行为;边界类用于描述外部参与者与系统之间的交互;控制类用于描述一个用例所具有的事件流控制行为。将分析类划分成这三种类型的好处在于:所产生的类更小更专门化;这种划分将易变的外部界面与系统基本功能进行了屏蔽,使分析模型更易于变化。8. 什么是三层体系结构?它的优缺点是什么?答案要点:三层体系结构将系统划分成表示层、应用逻辑层和数据存储层,其中表示层由客户机上的浏览器处理,应用逻辑层交给独立的应用服务器处理,数据存储层则放在数据服务器上。这种结构的优点如下:浏览器与应用服务器之间是松耦合关系,二者通过标准的 HTML 语言进行交互,客户端的维护代价几乎是零;应用服务器与数据服务器之间是松耦合关系,应用服务器可以通过标准的数据访问接口(如 JDBC 和 ODBC)灵活地访问不同厂商和不同平台的数据库;应用逻辑层可以部署在由多个服务器节点组成的集群上,集群可以提供复制、负载平衡和故障切换等功能,保证了应用的性能、可靠性和可伸缩性。这种结构的缺点是应用服务器与技术平台耦合紧密,因此基于不同平台的应用服务器依然是信息孤岛。9. 软件测试包括哪些类型的测试?这些测试之间的区别是什么?参考答案:软件测试包括单元测试、集成测试、系统测试和验收测试等。单元测试集中于每一个独立的模块;集成测试集中于模块的组装;系统测试确保整个系统与系统的功能需求和非功能需求保持一致;验收测试是用户根据验收标准(通常来自项目协议),在开发环境或模拟真实环境中执行的可用性、功能和性能测试。10. 为什么说软件维护是一项困难的工作?参考答案:软件维护工作的困难主要表现在以下几个方面:读懂别人的程序是很困难的,而文档的不足更增加了这种难度。一般开发人员都有这样的体会,修改别人的程序还不如自己重新编写程序。文档的不一致性是软件维护困难的又一个因素,主要表现在各种文档之间的不一致以及文档与程序之间的不一致性,从而导致维护人员不知所措,不知怎样进行修改。这种不一致性是由于开发过程中文档管理不严造成的,开发中经常会出现修改程序而忘了修改相关的文档,或者某一个文档修改了,却没有修改与之相关的其他文档等现象,解决文档不一致性的方法就是要加强开发工作中文档的版本管理。软件开发和软件维护在人员和时间上存在差异。如果软件维护工作是由该软件的开发人员完成,则维护工作相对比较容易,因为这些人员熟悉软件的功能和结构等。但是,通常开发人员和维护人员是不同的,况且维护阶段持续时间很长,可能是1020年的时间,原来的开发工具、方法和技术与当前有很大的差异,这也造成了维护的困难。软件维护不是一件吸引人的工作。由于维护工作的困难性,维护经常遭受挫折,而且很难出

温馨提示

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

评论

0/150

提交评论