软件工程复习题一、名词解释1、软件工程2、软件生命周期3、需求分析4、集成测试5、CASE6、结构化分析方法7、数据字典8、数据流图答案:1、软件工程用科学的知识程和技术原理来定义,开发,维护软件的一门学科。2、软件生命周期一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。3、需求分析开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。4、集成测试集成测试也称组装测试或联合测试。是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。组装模块的方式有两种:渐增式测试和非渐增式测试。5、CASECASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。因而,CASE领域是一个应用、继承和综合的领域。6、结构化分析方法:结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。7、数据字典:用来定义数据库流图中的各个成分的具体含义。有以下四类条目:数据流,数据项,数据存储,基本加工。8、数据流图:数据流图DFD是一种图形化技术,它描绘了信息流和数据从输入到输出的过程所经历的变换。二、简答题1、什么是黑盒测试法?2、什么是软件生存周期模型?有哪些主要模型?3、简述面向对象方法的要点。4、简述软件工程目标和面临的主要问题。5、简述结构化程序设计方法的基本要点。6、简述多态性。7、简述在项目开发时,选择程序设计语言应考虑因素。8、简述面向对象设计的准则。9、简述面向对象设计的启发规则。10、简述文档在软件工程中的作用。11、什么是软件危机?12、什么是白盒测试法?13、简述提高可维护性的方法。14、可行性研究的任务是什么?答案:简答题1、什么是黑盒测试法?答:所谓黑盒测试是指在完全不考虑程序的内部结构和处理过程的前提下,在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据产生正确的输出信息,并且保持外部信息的完整性。因此,又称为功能测试。2、什么是软件生存周期模型?有哪些主要模型?生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。3、简述面向对象方法的要点。答:关键是四个要点:1、客观世界是由对象组成;2、对象划分为对象类,类由数据与方法组成;3、按子类与父类的关系,把类组成一个层次结构;4、对象彼此之间仅能通过传递消息互相联系。4、简述软件工程目标和面临的主要问题。答:软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。5、简述结构化程序设计方法的基本要点。答:(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。6、简述多态性。答:多态性指面向对象技术中,子类对象可以象父类对象那样使用,同样的消息即可以发送给父类对象也可以发送给子类对象。多态性机制增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且提高了可重用性和可扩充性。7、简述在项目开发时,选择程序设计语言应考虑因素。答:(1)项目的应用领域;(2)软件开发的方法(3)软件执行的环境(4)算法和数据结构的复杂性(5)软件开发人员的知识8、简述面向对象设计的准则。答:模块化,抽象,信息隐藏,弱耦合,强内聚,可重用。9、简述面向对象设计的启发规则。答:1、设计结果应该清晰易懂;2、一般—具体结构的深度应适当;3.设计简单类;4.使用简单的协议;5.使用简单的操作;6.把设计变动减至最小;10、简述文档在软件工程中的作用。答:(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。11、什么是软件危机?软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。12、什么是白盒测试法?答:所谓白盒测试就是在知道产品内部工作过程或程序内部结构和处理过程的前提下,检验产品内部动作是否按照规格说明书的规定正常进行或按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确工作的测试方法。因此白盒测试又称为结构测试或逻辑测试。13、简述提高可维护性的方法。答:(1)建立明确的软件质量目标(2)利用先进的软件开发技术和工具(3)建立明确的质量保证工作(4)选择可维护的程序设计语言(5)改进程序文档14、可行性研究的任务是什么?答:首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性。三、概要设计是什么?其基本任务是什么?答案:把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。基本任务:⑴设计软件系统结构,具体为:采用某种设计方法,将一个复杂的系统按功能划分为模块。确定每个模块的功能。确定模块之间的调用关系。确定模块之间的接口(模块之间传递的信息)评价模块的结构质量⑵进行数据结构及数据库的设计⑶编写概要设计的文档主要内容有:概要设计说明书,数据库说明书(DBMS的简介,概念模型,逻辑设计,结果)用户手册,修订测试计划(测试的策略﹑方法﹑步骤)⑷评审:是否完整地实现了规定的功能﹑性能要求。设计方案是否可行。关键的处理及内部接口定义的正确性,有效性,各部分的一致性。四、某图书管理系统有以下功能:(1)借书:输入读者借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10,拒借,未达10本,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件。)(2)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如超期(3个月)作罚款处理。否则,修改库存目录与借书文件。(3)查询:通过借书文件,库存目录文件查询读者情况﹑图书借阅及库存情况,打印统计表。把上面数据流程图转换为软件结构图和IPO图答案: