版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程复习大纲IEEE是如何定义的软件和软件工程的?软件工程三个要素是什么?软件工程基础理论研究和工程化技术研究的内容是什么?软件是如何分类的?为什么软件维护的费用一直居高不下?根据你的分析,软件维护的主要困难何在?克服这些困难的途径何在?系统分析过程,必须考虑哪八个方面的问题?系统分析员应具备的素质是什么?系统技术评审的评审内容包括哪些问题?系统管理评审的范围应包括哪些比较关键的问题?Vitalari和Dickson的研究说明系统分析和设计哪六大困难?11.软件需求分析的基本原则有哪些?建立快速原型进行系统的分析和构造,有哪些好处?PIECES模型的组成部分是什么?对每个组成部分进行简要描述。说出并简述科德对问题域需求的收集和建模的面向对象方法的四大活动。软件工程经常提到“困难”或“复杂,的系统,他们指什么?程序难于理解与程序难于设计之间是否有所差别?试论信息隐蔽与模块的独立性两概念之间的关系。模块内聚有哪七种类型?传统的软件设计有什么缺点?列出并描述面向对象方法论的8个特点。软件复用范围的层次和软件复用技术类型?列举并简要讨论科德分析模型的5个层次和4个部件?列举并简要讨论科德面向对象方法论的符号。描述一个信息系统,最少需求什么?定义符号,简要描述它在面向对象的信息系统中的重要性。纠错性维护与排错是否同一件事?说明你的理由。请列出有利于提高可维护性的软件开发和程序设计技术。提高软件可靠性最有效的技术有哪些?软件可靠性与软件质量有何差别?若你是一个小项目的主管,你将为此工程设置哪些基线,又如何控制它们?制定一个用于配置审计的核查清单(CheckList)简述SW-CMM中的配置管理内容。请将影响软件质量的因素按重要性次序排列。作为项目管理人员,你认为应该如何度量这些因素?如何利用度量结果在软件开发过程中有效地提高软件质量?简单说明软件成熟度模型。简单说明MaCall给出的11个质量要素特性及其英文名称。简单说明DADM设计方法。企业信息模型是什么?36.什么是Web工程的多学科性?1.1IEEE是如何定义的软件和软件工程的?答:1983年IEEE给出的定义为:“软件工程是开发、运行、维护和修复软件的系统方法。其中“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所需要的数据。1993年IEEE进一步给出了一个更全面的定义:软件工程是:①把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;②研究①中提到的途径。1.2软件工程三个要素是什么?答:软件工程三要素是方法、工具、过程1.3软件工程基础理论研究和工程化技术研究的内容是什么?答:软件工程的研究除了计算机软件本身外,还涉及许多其它的领域,如管理科学、心理学、经济学、人机工程学等,所以,它是一门综合性的学科。基础理论研究:主要目标是用形式化技术解决软件生产中所遇到的问题,如需求规格的描述,规格到系统的转换,系统测试、维护及理解等,主要为解决做什么”的描述手段问题。工程化技术研究:总结软件开发过程的规律,探讨软件开发过程的工程化因素、方法及工程支持,解决“怎么做”的问题。1.4软件是如何分类的?答:软件的分类按其功能可分为系统软件支撑软件和应用软件软件的分类按其规模可分为1微型2小型3中型4大型5甚大型6极大型1.5为什么软件维护的费用一直居高不下?根据你的分析,软件维护的主要困难何在?克服这些困难的途径何在?答:首先是没有充分认识到软件维护的重要性和困难;其次是没有系统地考虑软件维护问题,例如从需求分析和系统设计时就考虑到维护的问题;还有管理问题和技术问题,例如文档与编码难于理解,又难于修改。文档质量差和不全,开发技术陈旧。2.1系统分析过程,必须考虑哪八个方面的问题?答:在系统分析过程,一般必须考虑下面八个方面的问题:(1) 所期望的功能和性能是什么?(2) 可靠性和质量问题是哪些?(3) 总的系统目标是什么?(4) 成本与进度限制如何?(5) 制造的需求是什么?(6) 市场与竞争情况怎样?(7) 有效的技术有哪些?(8) 将来可能有哪些扩充?2.2系统分析员应具备的素质是什么?答:系统分析员通常应具备的下面的基本素质:(1) 能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。(2) 善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整理成为各种逻辑成分,并给出简明、清晰的描述。(3) 善于从相互冲突或混淆的原始资料中抽取出恰当的条目来。(4) 善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件。(5) 能够倾听他人的意见,注意发挥其他人员的作用。(6) 具有良好的书面和口头交流表达能力。2.3系统技术评审的评审内容包括哪些问题?答:系统技术评审的评审内容包括的问题:(1) 系统功能复杂性是否与开发风险、成本和进度评估保持一致?(2) 系统采用的术语、系统与子系统功能定义是否足够详细?(3)系统与环境的接口以及各个子系统之间的接口定义是否详细?(4) 系统规格说明是否指明系统性能、可靠性和可维护性的问题?(5) 系统规格说明是否为后续的硬件工程、软件工程打下坚实的基础?2.4系统管理评审的范围应包括哪些比较关键的问题?答:系统管理评审的范围应包括的比较关键的问题:(1) 系统是否有一个稳定的商业需求,系统开发是否有意义?(2) 系统开发是否有市场价值或社会效益?(3) 系统开发是否有其它选择方案?(4) 系统各部分的开发风险是什么?(5) 系统开发所需资源是否具备?(6) 成本和进度计划是否恰当?2.5Vitalari和Dickson的研究说明系统分析和设计哪六大困难?答:Vitalari和Dickson的研究说明系统分析和设计有如下六大困难:(1) 分析问题就其本质来说,开始时问题的边界和结构定义就不清楚和有不少问题,解决方案的本质也有很大的不确定性。(2) 系统分析员提出的问题解决方案是人为方案。(3)分析活动具有动态性。(4) 一个分析问题的解决需要多学科的知识和技能。因此信息系统开发必须采用团队方式。现在非常强调用户群体和信息系统开发商之间的合作关系。(5) 系统分析员的知识基础在不断发展。(6) 分析过程主要是一个认知过程,在这个过程中需要(a) 为抽象问题域建立结构;(b) 处理从各类用户得到的不同信息;(c) 写作一份逻辑上一致的能够产生一个成功信息系统的说明。3.2软件需求分析的基本原则有哪些?答:软件需求分析的基本原则如下:(1) 必须能够表达和理解问题的数据域和功能域(2) 必须按自顶向下,逐层分解的方式对问题进行分解和不断细化(3) 要给出系统的逻辑视图和物理视图3.3建立快速原型进行系统的分析和构造,有哪些好处?答:建立快速原型进行系统的分析和构造的好处有:(1) 增进软件人员和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化。(2) 原型化方法提供了一种有力的学习手段。(3) 使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。(4)软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。3.4PIECES模型的组成部分是什么?对每个组成部分进行简要描述。答:这个模型将需求划分为6个主题:性能(performance)、信息(information)、经济(economy,控制(control,效率(efficiency)>W务(service)。性能:指系统怎样为用户服务。必须考虑处理能力(一段时间内系统的工作量和反应时间(响应事务或用户请求的平均延迟)。信息:系统维持的信息模型或数据模型的基础。必须考虑数据输入、数据输出和数据存储。经济:主要指项目开发费用和运行费用,以及一切与系统相关的经济目标和财务目标。控制:与系统安全及编辑输入数据有关。有关问题还包括对于系统用户、输入输出和数据的控制。效率:是衡量方法正确与否的度量。即要衡量:“情况好吗?”通常检查3个层次的效率:公司、部门和个人。这方面的问题主要考查任何解决问题方案对环境的影响。服务:系统分析员询问的典型问题是:“系统怎样解决这个问题?需要进行什么操作?”或者“对象怎样运作?对象应该做些什么?”除了功能需求,服务也要考虑易用性以及对持续使用系统、维护系统、培训和文档需求提供必要支持等运行问题。3.5说出并简述科德对问题域需求的收集和建模的面向对象方法的四大活动。答:科德(Coad)面向对象的需求确定建模方法主要包括四大步骤:(1)确定信息系统的目的和特点。(2) 确定对象和模式。(3) 建立对象责任:“我知道什么,我了解谁,我做些什么。(4) 设计系统的动态场景。4.1软件工程经常提到“困难”或“复杂,的系统,他们指什么?程序难于理解与程序难于设计之间是否有所差别?答:软件工程经常提到'困难”或“复杂”的系统,他们指系统的设计所涉及的问题很多,数据结构和程序的模块层次结构很复杂,软件系统各主要成分之间的关系不明显或者难于表达,难以给出系统的足够详细的定义,使之在物理上得以实现。程序难于理解与程序难于设计之间是有所差别的。程序难于理解是指程序的结构很复杂,程序的复杂度很大。而程序难于设计是指设计所涉及的问题很多,数据结构很复杂,软件系统各主要成分之间的关系不明显或者难于表达。4.2试论信息隐蔽与模块的独立性两概念之间的关系。答:信息隐蔽:每个模块的实现细节对于其它模块来说是隐蔽的也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。模块的独立性度量准则:模块间的耦合和模块的内聚。耦合。0叩11昭)是模块之间的相对独立性(相互连接的紧密程度)的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而其模块独立性就越弱。内聚(Cohesion)是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高,相对地,它与其它模块之间的耦合性就会减低,而模块独立性就越强。4.3模块内聚有哪七种类型?答:模块的内聚一共分为七种类型它们分别是功能内聚、信息内聚、通信内聚、过程内聚、时间内、聚逻辑内聚、巧合内聚。功能内聚:一个模块中各个部分都是完成某一具体功能不可少的组成部分或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割。信息内聚:模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。通信内聚:一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据。过程内聚:一个模块内的处理是相关的,而且必须以特定次序执行。时间内聚:又称为经典内聚。这种模块大多数为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。逻辑内聚:把几种相关功能组合在一起,每次调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。巧合内聚:又称偶然内聚,即模块间没有联系,或者即使有联系,这种联系也很松散。4.4传统的软件设计有什么缺点?答:传统的软件设计的缺点:(1) 功能与数据结构分离的软件设计结构与人类的现实世界环境不一样;(2) 在系统中模块之间的控制作用有需要时,无法适应系统要求;(3) 因为所有的函数必须知道数据结构,这种开发方法开发出的系统往往难以维护;(4) 自顶向下功能分解方法极大地限制了软件的可重用性;(5) 系统围绕如何实现一定的行为来进行,当系统行为易变,需要常常修改,修改极为困难。5.1列出并描述面向对象方法论的8个特点。答:面向对象方法论的8个特点:(1) 通用组织方法用于协助组织信息系统模型以及最终编写的软件。有关方法包括:1) 对象及其属性或特征。2) 整体和部分。3) 类和成员。(2) 抽象忽略问题域的无关部分而集中考虑关键部分的原则在系统设计,抽象用来确定必要的信息系统需求,及删除不必要的部分。为了突出重点,抽象有意忽略信息系统的某些性质、属性或功能。抽象是一种突出重点、去掉细节的总结。抽象同时忽略在给定细节层次上对理解系统并非必要的细枝末节。(3)封装或信息隐蔽软件的组成部分(模块、子程序、方法等)应该相互独立,或者隐藏设计细节。封装有利于灵活地局部修改和维护软件模块。封装或信息隐蔽的进一步细化是指允许隐藏信息系统某些部分的机制。(4) 继承表示相似性质的机制。(5) 多态一般指具有多种形态的能力。(6) 消息通信面向对象的方法中对象之间相互联系的方法(7) 关联有助于把信息系统的各个部分相互联系起来。可以把同时发生或相似条件下发生的事情关联起来。(8) 复用复用可以采用3种形式:(1)共享;(2)拷贝;(3)改造。5.2软件复用范围的层次和软件复用技术类型?答:软件复用范围的五个层次:1复用数据2复用模块3复用结构4复用设计5复用规格说明。软件复用技术可分为两大类合成技术和生成技术。5.3列举并简要讨论科德分析模型的5个层次和4个部件?答:Coad方法分析模型的5个层次(1)主题层:控制一次分析所考虑的范围,即对相关的类进行归并。(2)对象层:在分析范围内找出全部对象。(3)结构层:分析对象的分类结构和组装结构。(4) 属性层:描述每个对象的状态特征。(5) 服务层:描述每个对象所具有的操作。Coad方法分析模型的4个部分(1) 设计问题域(2) 设计人机界面(3) 设计任务管理(4) 设计数据管理5.4列举并简要讨论科德面向对象方法论的符号。答:科德的面向对象方法论的符号包括七个记号,即部件、类、对象类、通用寺定联结、整体部分联结、对象联结和信息。部件:问题域、人机交互、数据管理,系统交互。2.类和对象类通常都有属性,或者,具体描述类和对象类的特征。通用-特定联结符号用于将一个通用类或对象类与一个或多个特定类对象类按照层次父子关系联系在一起。整体-部分联结符号用于将两个对象类按照整体部分关系联系在一起。对象联结符号和整体部分联结符号一样,用于将两个对象类符号联系在一起。但是,这个联结没有整体-部分联结紧密。消息符号是从发送者向接收者发出的要求执行服务的请求,用于帮助一个类或对象类执行其责任。5.5描述一个信息系统,最少需求什么?答:描述一个信息系统,最少需要以下组成部分:1.输入处理输出控制反馈边界人过程数据5.6定义符号,简要描述它在面向对象的信息系统中的重要性。答:定义符号在描述面向对象的信息系统中是十分重要的。通过符号,我们可以描述面向对象的信息系统的部件、对象类、类、对象类之间的关系以及消息等。可以记录信息系统的用户需求。有了符号,我们就可以用这些符号很简单地表示系统的模型而且便于系统分析人员、程序员和用户之间进行交流。降低系统的开发和维护等活动的难度。6.1保证绝对正确的程序理论上可行吗?说明你的理由。答:保证绝对正确的程序理论上是不可行。我的理由:程序是系统分析人员、编码人员和测试人员等的脑力劳动的产品。虽然程序按照软件工程的原理经过了分析、设计、编码和测试等阶段,程序的错误已经尽量减到最少,但是程序要处理的情况是多种多样的,我们难以每种情况都考虑周全。测试只能发现程序中的错误,但不能说明程序不存在6.2白盒测试的覆盖标准有哪些?答:(1)语句覆盖(2) 判定覆盖(3) 条件覆盖(4) 判定-条件覆盖(5) 条件组合覆盖(6) 路径测试7.1纠错性维护与排错是否同一件事?说明你的理由。答:纠错性维护与排错不是一件事。理由:我认为纠错性维护是在维护过程中的排错活动。纠错性维护只是排错的一部分。排错活动的范围更广。7.2请列出有利于提高可维护性的软件开发和程序设计技术。答:1)使用数据库管理系统、软件开发环境、程序自动生成系统、较高级的语言。2) 利用应用软件包,可开发出比由用户完全自己已开发的系统可靠性更高的软件。3) 使用结构化技术,用它开发的软件易于理解和测试。4) 防错性程序设计。把自检能力引入程序,通过非正常状态的检查,提供审查跟踪。5) 在配置管理时,把硬件、操作系统和其它环境的可能变化考虑在内,可以减少某些工作量。6) 把与硬件、操作系统,以及其它外围设备有关的程序归到特定的程序模块中。可把因环境变化而必须修改的程序局部于某些程序模块之中。7) 使用内部程序列表、外部文件,以及处理的例行程序包。7.3提高软件可靠性最有效的技术有哪些?软件可靠性与软件质量有何差别?答:提高软件可靠性最有效的技术:1) 利用应用软件包,可开发出比由用户完全自己已开发的系统可靠性更高的软件。2) 结构化技术,用它开发的软件易于理解和测试。3) 防错性程序设计。把自检能力引入程序,通过非正常状态的检查,提供审查跟踪。4) 通过周期性维护审查,在形成维护问题之前就可确定质量缺陷。可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。软件质量:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性,包括:软件产品质量满足用户要求的程度;软件各种属性的组合程度;3.用户对软件产品的综合反映程度;4.软件在使用过程中满足用户要求的程度。8.1用自己的话说明设置基线的理由。答:基线(Baseline)标志软件开发过程的各个里程碑,任一SCI(例如,设计说明书),一旦形成文档并复审通过,即成为一个基线,它标志开发过程中一个阶段的结束。对于已成为基线的以,虽然可以修改,但必须按一个特殊的、正式的过程进行评估,确认每一处修改。相反,对于未成为基线的SCI,可以进行非正式的修改。这样可以减少混乱,提高软件生产率。对软件的修改进行标识和控制,协调和控制整个系统过程。8.2若你是一个小项目的主管,你将为此工程设置哪些基线,又如何控制它们?答:若我是一个小项目的主管,我将设置以下基线:系统规格说明书软件需求规格说明书设计规格说明书源代码测试计划/过程/数据可操作的系统对基线的控制:将基线放入项目数据库(Projectdatabase)。此后,若开发小组中某位成员欲改动SCI,首先要将它拷贝到私有工作区并在项目数据库中锁住,不允许他人使用。在私有工作区中完成修改控制并复审通过之后,再把修改后的SCI推出并送回到项目数据库,同时解锁。8.7制定一个用于配置审计的核查清单(CheckList)答:配置审计的核查清单:ECO中指定的修改是否都已完成?还另加了哪些修改?是否做过正式的技术复审?是否严格遵守软件工程标准?修改过的SCI是否做了特别的标记?修改的日期和执行修改的人员是否已经注册?该SCI的属性是否能够反映本次修改的结果?是否完成与本次修改有关的注释、记录和报告等事宜所有相关的SCI是否已一并修改?8.8简述SW-CMM中的配置管理内容。答:SW-CMM中的软件配置管理包括:?确定在给定的时间上和给定的位置上的软件配置(该软件是指选出来的软件工作产品,由它们来组成软件的基线)?控制配置项目中的变化?从软件配置库中构造软件工作产品?在整个软件生命周期内维护好集成了的软件9.1请将影响软件质量的因素按重要性次序排列。作为项目管理人员,你认为应该如何度量这些因素?如何利用度量结果在软件开发过程中有效地提高软件质量?答:软件质量的因素按重要性次序排列:正确性、可靠性、有效性、完整性和可用性、可维护性、灵活性、可测试性、可移植性、可重用性、可互操作性。可维护性的度量:记录以下10种时间问题识别时间2.管理延迟时间3.收集维护工具时间4.问题分析时间5.修改规格说明书的时间6.改正(或修改)时间局部测试时间8.整体测试时间9.维护复审时间分发与恢复时间9.2简单说明软件成熟度模型。答:成熟度模型是一套用于软件开发过程和软件开发能力的改进与评估的模型。CMM共分5级,最高为5级。1级:初始级(Initial),2级:可重复级(Repeatable),3级:被定义级(Defined),4级:被管理级(Managed),5级:优化级(Optimizing)。SW-CMM的结构从上到下是成熟度等级、关键过程域、公共特点、关键实践。除第一级外,每个成熟度等级都包括2到7个关键过程域(KeyProcessAreaKPA)。这些关键过程域指出了组织需要集中力量进行改进的软件过程。同时,这些关键过程域指出了为达到该能力成熟度等级所需要解决的具体问题。每个关键过程域都明确地列出一个或多个目标Goal),并且指明了一组相关联的关键实践(KeyPractices,KP)。实现这些关键实践就能够实现这个关键过程域的目标,从而达到增加过程能力的效果。9.3简单说明MaCall给出的11个质量要素特性及其英文名称。1.正确性(correctness)。程序满足规格说明及完成用户目标的程度。可靠性(reliability)。能够防止因为概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。有效性(efficiency)。软件系统能最有效地利用计算机的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程合同终止协议书 范本
- 合作招商协议合同范本
- 酒店安全协议合同范本
- 弱电工程施工方案
- 常州市人民医院科室文化建设考核
- 扬州市中医院评审条款佐证材料准备与自查试题
- 深耕一轮复习聚力决胜高考 - 在高三教学质量分析会上的讲话
- 嘉兴市中医院标本接收处理与保存规范考核
- 绍兴市中医院肿瘤介入疗效评估考核
- 福州市人民医院瘘管护理技术专项考核
- 2025年高校辅导员考试基础知识试题及答案
- 2025江苏苏州市高新区基层公共服务岗位招聘高校毕业生30人考试参考题库及答案解析
- 2025广东清远市纪委市监委纪律审查管理中心招聘17人考试参考题库及答案解析
- 紧固件包装培训知识总结
- DB51-T 3299-2025 数据资产登记规范
- 粘多糖贮积症课件
- 山西三晋卓越联盟2025-2026高三10月质量检测(26-X-028C)英语(B)
- 中考英语阅读理解专项训练试卷
- 保密知识培训课件
- DB31T 1605-2025电动自行车充换电柜建设和消防安全管理要求
- GB/T 24460-2025太阳能光伏照明装置总技术规范
评论
0/150
提交评论