软件工程作业_第1页
软件工程作业_第2页
软件工程作业_第3页
软件工程作业_第4页
软件工程作业_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

精选文库第1章 概述1什么叫软件危机?软件危机主要有哪几种表现?答:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。软件危机包含下述两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机主要有下列表现:产品不符合用户的实际需要。软件开发生产率提高的速度远远不能满足客观需要。软件产品的质量差。对软件开发成本和进度的估计常常不准确。软件的可维护性差。软件文档资料通常既不完整,也不合格。软件的价格昂贵。2什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是指导计算机软件开发和维护的一门学科。它采用工程的概念、原理、技术和方法,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,用于开发与维护软件。软件工程是这样克服软件危机的:用分阶段的生存周期计划严格管理。坚持进行阶段评审。实行严格的产品控制。采用现代程序设计技术。应能清楚地审查结果。合理安排软件开发小组的人员。3软件工程的目标、原则和主要研究内容是什么?答:软件工程的目标是:定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。确定软件成分,记录软件生存周期每一步的软件文件资料,按步显示其轨迹。可预测结果,在生存周期中,每隔一定时间可以进行复审。软件工程学的最终目的,是以较少的投资获得易维护、易理解、可靠、高效率的软件产品。软件工程的原则是:分解。抽象和信息隐蔽。一致性。确定性。软件工程的主要研究内容是:软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。第2章 可行性研究1可行性研究的任务是什么?简述可行性研究的步骤。答:可行性研究的任务是:经济可行性。技术可行性。运行可行性。法律可行性。开发方案可行性。可行性研究的步骤是:复查系统规模和目标。研究目前正在使用的系统。导出新系统的高层逻辑模型。重新定义问题。导出和评价供选择的方案。推荐一个方案并说明理由。推荐行动方针。书写计划任务书。提交审查。第3章 需求工程1需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎样做”?答:需求分析的基本任务是分析与综合已收集到的需求信息,通过分析找出需求信息内在联系和可能的矛盾,通过综合找出解决问题的方法并建立系统的逻辑模型。具体地说,需求分析是提炼、分析和审查已收集到的需求信息,找出真正的和具体的需求,并确保所有相关人员都理解其含义。此外,通过建立软件系统的逻辑模型,发现和找出需求信息中存在的冲突、遗漏、错误或含糊的问题。绘制系统关联图。创建用户接口原型。分析需求可行性。确定需求的优先级。为需求建立模型。创建数据字典。质量功能调配。我是这样理解分析阶段的任务是决定“做什么”,而不是“怎样做”:分析阶段主要是指用户对软件的功能与性能需求,也就是用户希望软件能够做什么事情,完成哪些功能,达到哪些性能等,而不是如何去实现软件的这些功能。2需求规格说明书由哪些部分组成?各部分的关系是什么?答:需求规格说明书由下列部分组成:引言。任务概述。数据描述。功能要求。性能需求。运行需求。其他要求。附录。各部分的关系是:首先用户必须对软件功能和性能提出初步要求,并澄清一些模糊概念;然后软件分析人员认真了解用户的要求,细致地进行调查分析,把用户要求做什么的问题转换成一个完全的、精细的软件逻辑模型并写出软件的需求规格说明,准确地表达用户的要求。第4章 概要设计1结构化设计方法的基本思想是什么?它如何与SA方法相衔接?答:结构化设计方法的基本思想是:系统分析员审查软件计划、软件需求分析提供的文档,提出候选的最佳推荐方案以及系统流程图、组成系统物理元素清单、成本效益分析和系统的进度计划供专家审定,审定后进入设计。确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。编写概要设计说明书、用户手册、测试计划,选用相关的软件工具来描述软件结构,选择分解功能与划分模块的设计原则。它是这样与SA方法相衔接的:设计系统方案。选取一组合理的方案。推荐最佳实施方案。功能分解。软件结构设计。数据库设计与文件结构设计。制订测试计划。编写概要设计文档。审查与复审概要设计文档。2什么是模块独立性?用什么来度量?答:模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而且与其他模块接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。模块的独立程度可以由两个定性标准度量,这两个标准分别称为耦合和内聚。耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。3什么是自顶向下设计?为什么说它尤其适用于大型软件的开发?答:自顶向下设计:设计人员要对系统有一个全面的了解,然后从顶层开始,连续地逐层向下分解,直至系统的所有模块都小到便于掌握为止。 对于大型软件的开发,如若采用自顶向下的方法进行设计,可以很好的把握整体系统,使得系统整体结构合理。第5章 详细设计1简述详细说明书的主要内容。怎样对它进行复审?答:详细说明书的主要内容是:表示软件结构的图表。对逐个模块的程序描述,包括算法和逻辑流程,输入/输出项与外部接口等。 这样对它进行复审:详细设计复审的重点应该放在各个模块的具体设计上。例如,设计的模块能否满足其功能与性能要求,选择的算法与数据结构是否合理,是否符合编码语言的特点,设计描述是否简单而清晰等。2说明详细设计的基本原则和任务。答:详细设计的基本原则是:由于详细设计的蓝图是给人阅读的,是编码的基础,所以模块的逻辑描述要清晰易读、正确可靠。采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。选择恰当的描述工具来描述各模块算法。详细设计的任务是:为每一个模块确定使用的算法和相关的数据结构,并用选定的表达工具清晰地描述。这一阶段的主要任务如下:为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。确定每一模块使用的数据结构。确定模块接口的细节。要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试。第6章 面向对象设计1什么是面向对象方法学?试阐述这种方法学的主要优点。答:面向对象软件开发方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。面向对象方法学的主要优点:从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。事物的静态特征是可以用一些数据来表达的特征,可以用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务(或操作)表示。对象的属性与服务结合为一个独立的实体,对外屏蔽其内部细节,称为封装。把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性和服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。复杂的对象可以用简单的对象作为其构成部分,称为聚合。对象之间通过消息进行通信,以实现对象之间的动态联系。通过关联表达对象之间的静态关系。2面向对象分析的过程、遵循的准则是什么?答:面向对象分析的过程:发现对象、定义它们的类。识别对象的内部特征。识别对象的外部关系。划分主题,建立主题图。定义use case,建立交互图。建立详细说明。原型开发。 面向对象分析遵循的准则是:抽象。分类。聚合。关联。消息通信。粒度控制。行为分析。3为“火车站自动化售票系统”设计一个结构化模型。答:第7章 编码1评价、选择可用编程语言的准则是什么?答:(1)理想标准:应该有理想的模块化机制,以及可读性好的控制结构和数据结构,以使程序容易测试和维护,同时减少软件生存周期的总成本。应该使编译程序能够尽可能多地发现程序中的错误,以便于调试和提高软件的可靠性。应该有良好的独立编译机制,以降低软件开发和维护的成本。(2)实践标准:语言自身的功能。系统用户的要求。编码和维护成本。软件的兼容性。可以使用的软件工具。软件可移植性。开发系统的规模。程序设计人员的知识水平。2提高软件可靠性的技术有哪些?它们有什么不同?答:提高软件可靠性的技术有:一类是避开错误技术,另一类是容错技术。两者的不同是:避开错误技术是在开发的过程中不让差错潜入软件的技术;容错技术是对某些无法避开的差错,使其影响减至最小的技术。避开错误技术是进行质量管理,实现产品应有质量所不可少的技术,也就是软件工程中所讨论的先进的软件分析和开发技术和管理技术。但是,无论使用多么高水平的避开错误技术,也无法做到绝无错误,这就需要采用容错技术。实现容错的主要手段是冗余和防错程序设计。3采用面向对象的程序设计方法时,基本步骤是什么?答:(1)建立软件系统的动态模型:根据问题域和具体要求确定组成软件系统的对象及该对象所应具备的固有处理能力。分析各对象之间的所有联系,并确定它们相互间的消息传递方式。设计对象的消息模式,由消息模式和对象的处理能力共同构成对象的外部特性。(2)建立软件系统的静态模型:分析各对象的外部属性,将具有相同外部属性的对象归为一类,进而确定不同的类别。确定类间的继承关系,将具有公共性质的对象放在较上层的类中描述,并通过继承来共享公共性质。根据以上两点设计各对象的外部属性和层次结构。(3)实现:为每个对象设计其内部实现,包括内部状态的表现形式和固有处理能力的实现。为每个类设计其内部实现,包括数据结构和成员函数。创建所需要的对象(即类的实例),以实现这些对象之间的联系。第8章 软件质量与质量保证1为什么测试应该从OOA和OOD开始?答:OO软件工程模型从对系统需求的表示开始,逐步演化为详细的类模型、类连接和关系、系统设计和分配、以及对象设计。在每个阶段都测试模型,使错误传播到下一次递进前发现错误,在它们的开发的后面阶段,OOA和OOD模型提供了关于系统的结构和行为的实质性信息,为此,这些模型应该在生成代码前经受严格的复审。2纠错性维护和排错性维护是否是同一件事,说明理由。答:不是同一件事。纠错性维护是指在软件交付之后,针对在特定情况下暴露的本来掩藏的错误进行诊断和改正的过程。排错性维护是指在软件测试阶段,程序存在大量的错误,通过测试来发现错误,通过排错来纠正错误。3如何提高软件的可维护性?答:保证可维护性的复审:在需求分析阶段的复审中,应对将来可能修改和可以改进的部分加以注释,对软件的可移植性加以讨论并考虑可能影响软件维护的系统界面;在设计阶段的复审中,应从易于维护和提高设计总体质量的角度全面评审数据设计、总体结构设计、过程设计和界面设计;代码复审主要强调编程风格和内部文档这两个直接影响可维护性的因素;最后,每一阶段性测试都应该指出软件正式交付之前,应该进行的预防性维护。第9章 项目计划与管理1名词解释:软件工作范围、主程序员小组、成本估算、软件配置管理、基线。答:软件工作范围,即软件的用途及对软件的要求,其中主要包括软件的功能、性能、接口和可靠性等4个方面。主程序员小组的核心由1位高级工程师(主程序员)、2-5位技术人员和1位后备工程师组成。主程序员负责小组的所有技术活动的计划、协调和评审工作;技术人员负责项目的具体分析和开发;后备工程师则支持主程序员工作,必要时能代替主程序员工作,以便使项目能继续进行,而使损失最小。软件开发的成本估算主要是指软件开发过程中所花费的工作量及相应的代价。软件开发成本的估算,应是从软件计划、需求分析、设计、编码、单元测试、组装测试到确认测试,以整个软件开发全过程所花费的代价作为依据的。软件配置管理是讨论软件生存期各阶段的交付项的管理问题。软件配置管理SCM是贯穿于整个软件过程中的保护性活动。因为变化可能发生在任意时间,SCM活动被设计用于标记变化、控制变化、保证变化被适当地实现、向其他可能有兴趣的人员报告变化。软件

温馨提示

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

评论

0/150

提交评论