软件工程简答题1
软件工程—简答题

软件工程—简答题1. 什么是软件工程?软件工程是一门将工程学原理与方法应用于软件开发的学科。
它涉及对软件的设计、开发、测试、维护和管理等方面的技术和方法。
软件工程的目标是创建高质量和可靠的软件系统,以满足用户的需求。
通过使用软件工程的原则和技术,开发团队能够有效地管理和控制软件开发过程,并提供可维护和可扩展的软件解决方案。
2. 软件工程的基本原则有哪些?软件工程的基本原则包括:2.1 分阶段开发软件开发过程通常分为需求分析、设计、编码、测试和维护等阶段。
每个阶段都应该有明确的目标和任务,确保软件系统的稳定性和质量。
2.2 面向对象设计面向对象设计是一种将问题领域的概念与程序设计语言中的对象模型相匹配的方法。
通过将问题划分为一组相互关联的对象,可以更好地组织和管理软件系统的结构和功能。
2.3 模块化和组件化模块化和组件化是将软件系统划分为相互独立且可重用的模块或组件的过程。
这样可以提高软件系统的可维护性和可扩展性,并降低代码的重复性。
2.4 品质保证软件工程要求对软件系统进行全面的测试和验证,以确保其满足用户的需求和质量标准。
包括单元测试、集成测试、系统测试等各个层次的测试。
2.5 项目管理项目管理是软件工程中非常重要的一环,它涉及资源的分配、进度的控制、团队协作等方面。
通过合理的项目管理,能够提高软件开发的效率和质量。
3. 软件工程的开发模型有哪些?软件工程的开发模型有许多种,常见的包括:3.1 瀑布模型瀑布模型是最早提出的软件开发模型,它将软件开发过程划分为需求分析、系统设计、编码、测试和维护等连续的阶段。
每个阶段的输出作为下一个阶段的输入,依次进行。
3.2 增量模型增量模型将软件开发过程划分为多个独立的增量,每个增量都包含完整的开发过程。
每个增量都可以交付给客户使用或测试,这样可以更快地获取用户反馈并逐步完善系统。
3.3 原型模型原型模型通过快速开发一个原型来获取用户需求,并以此为基础进行详细设计和开发。
软件工程期末考试简答题汇总

1什么是软件工程?基本原理有哪些? ................................................................................................. 2成本_效益分析可用哪些指标进行度量?(写出公式).................................................................... 3什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。
.................. 4非渐增式测试与渐增式测试有什么区别? ......................................................................................... 5试从基本符号和设计方法分析HC图与JACKSON图异同点................................................................ 6软件测试的目的是什么? ..................................................................................................................... 7结构化程序设计的思想是什么? ......................................................................................................... 8请解释极限编程和自适应软件开发,并说明其异同?...................................................................... 9需求工程的起始阶段,需求工程师的主要工作是?.......................................................................... 10请画出“在餐厅使用信用卡付费”这一活动的完整用例图?........................................................ 11分析说明结构化分析和面向对象分析的区别? ...............................................................................12 请简要给出评价软件设计质量的标准? ..........................................................................................13 一个良好的设计类需要满足四个特点,请详细描述这四个特点?............................................... 14软件项目估算内容与步骤 ................................................................................................................... 15面向对象设计的准则是什么?有哪5个层次和4个部分?............................................................ 16简述软件工程目标和面临的主要问题。
软件工程简答题及答案

软件工程试题整顿_简答题1、可行性研究旳任务是什么?首先需要进行概要旳分析研究,初步确定项目旳规模和目旳,确定项目旳约束和限制,把他们清晰地列举出来。
然后,分析员进行简要旳需求分析,抽象出该项目旳逻辑构造,建立逻辑模型。
从逻辑模型出发,通过压缩旳设计,探索出若干种可供选择旳重要处理措施,对每种处理措施都要研究它旳可行性,可从如下三个方面分析研究每种处理措施旳可行性。
㈠技术可行性:对要开发项目旳功能、性能、限制条件进行分析,确定在既有旳资源条件下,技术风险有多大,项目与否能实现。
㈡经济可行性:进行开发成本旳估算以及理解获得效益旳评估,确定要开发旳项目与否值得投资开发。
㈢社会可行性:要开发旳项目与否存在任何侵犯、阻碍等责任问题,要开发项目旳运行方式在顾客组织内与否行得通,既有管理制度、人员素质、操作方式与否可行。
2、什么是模块旳影响范围?什么是模块旳控制范围?他们之间应当建立什么关系?一种模块旳作用范围(或称影响范围)指受该模块内一种鉴定影响旳所有模块旳集合。
一种模块旳控制范围指模块自身以及其所有下属模块(直接或间接附属于它旳模块)旳集合。
一种模块旳作用范围应在其控制范围之内,且鉴定所在旳模块应在其影响旳模块在层次上尽量靠近。
假如再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响旳模块,将它下移到判断所在模块旳控制范围内”旳措施加以改善。
3、非渐增式测试与渐增式测试有什么区别?渐增式测试怎样组装模块?非渐增式测试与渐增式测试旳测试措施有如下区别:㈠非渐增式测试措施把单元测试和集成测试提成两个不一样旳阶段,前一阶段完毕模块旳单元测试,后一阶段完毕集成测试。
而渐增式测试往往把单元测试与集成测试和在一起,同步完毕。
㈡非渐增式需要更多旳工作量,由于每个模块都需要驱动模块和桩模块,而渐增式运用已测试过旳模块作为驱动模块或桩模块,因此工作量较少。
㈢渐增式可以较早旳发现接口之间旳错误,非渐增式最终组装是才发现。
软件工程简答题1

1.简述你对软件工程的理解?(包括起源,定义,目标,内容,作用等)起源:为了解决软件危机发展:第一代软件工程,即传统软件工程:结构化分析、结构化设计和结构化编程方法是这个时期的代表从80年代中到90年代中,研究的重点转移到面向对象分析和设计上来,从而演化成软件工程的第二代,称之为对象工程。
组件技术的研究和发展形成了新一代软件工程,即第三代软件工程定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。
目标:旨在开发满足用户需要、及时交付、不超过预算和无故障的软件。
主要目标是:⏹实现预期的软件功能,达到较好的软件性能,满足用户的需求。
⏹增强软件过程可见性和可控性,保证软件的质量。
⏹提高软件的可维护性,降低维护费用。
⏹提高软件开发生产率,及时交付使用。
合理预算开发成本,付出较低的开发费用内容:技术方面:研究软件开发方法、软件开发过程、软件开发工具。
管理方面:主要研究软件项目管理学、软件经济学、软件心理学。
作用:2.什么是软件危机?定义:计算机软件开发和维护过程中所遇到的一系列严重问题。
表现:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。
3.什么是瀑布模型?瀑布模型规定了软件生命周期的各项活动:问题定义、可行性研究、需求分析、软件设计、编码、测试、运行和维护。
各项活动自顶向下、相互衔接如同瀑布一样。
这里的修饰词“瀑布”非常贴切,明确了一个活动结束,进入到下一个活动后,很难再回到前一个活动中去,也就是工作不可逆转。
4.什么是需求分析?需求分析阶段的基本任务是什么?答:所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说,“需求分析”就是确定要计算机“做什么”。
任务:确定软件项目的目标和范围。
(完整word版)软件工程简答题必考

1、什么是软件工程?它目标和内容是什么?软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科.软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高.软件工程内容:包括开发技术和开发管理两个方面。
2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发?软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。
其中喷泉模型、统一软件过程适用于面向对象的软件开发.3、什么是结构分析方法?该方法使用什么描述工具?结构化分析:简称SA,面向数据流进行数据分析的方法.采用自顶向下逐层分解的分析策略.顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑.4、什么是软件概要设计?该阶段的基本任务是什么?把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。
称为概要设计或结构设计。
基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审5、软件维护有哪些内容?(1)校正性维护。
在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.(2)适应性维护。
为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。
(3)完善性维护。
为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
(4)预防性维护。
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试.单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
软件工程简答题复习题(带答案)

软件⼯程简答题复习题(带答案)第⼀章1,与计算机硬件相⽐,计算机软件有哪些特点?软件的特点如下。
1)⽆法直接观察计算机软件的物理形态,只能通过观察它的实际运⾏情况来了解它的功能、特性和质量等。
2)⼈们在分析、设计、开发、测试软件产品,以及在软件开发项⽬的管理过程中,渗透了⼤量的脑⼒劳动。
3)不存在像硬件⼀样的磨损和⽼化现象,但存在着缺陷维护和技术更新的问题。
4)软件的开发和运⾏必须依赖于特定的计算机系统环境。
5)具有可复⽤性。
3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。
1)经费超出预算,项⽬⼀再拖延。
2)不重视需求,开发的软件不能满⾜⽤户的要求,项⽬成功率低。
3)没有规的软件⼯程⽅法,软件可维护性差、软件质量差、可靠性差。
4)开发⼯具落后,⼿⼯⽅式,开发效率低。
所有导致软件危机的原因,都与软件本⾝的产品特点相关。
1)软件是⼀个复杂的逻辑产品。
如果没有解决复杂问题的有效⽅法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费⽤就会持续升⾼。
2)软件产品不能实现⼤规模复⽤,这导致了软硬件⽣产效率的不同。
3)软件⽣产是脑⼒劳动,它看不见、摸不着,开发成本、开发周期等都⽆法做到准确估算,⽣产过程不易控制。
4)软件成本主要是由研发成本构成;⽽硬件的⽣产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相⽐要复杂得多。
5,请简述软件⼯程研究的容。
软件⼯程研究的容包括软件开发⽅法、软件开发模型、软件⽀持过程和软件管理过程。
软件开发⽅法的容涵盖市场调研、正式⽴项、需求分析、项⽬策划、概要设计、详细设计、编程、测试、试运⾏、产品发布、⽤户培训、产品复制、销售、实施、系统维护、版本升级等。
常⽤的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件⽀持过程由所⽀持的CASE⼯具组成,常⽤的CASE⼯具有Power Designer和Rational Rose等。
软件工程—简答题

全国2021年10月四、简答题1.简述软件危机产生的缘故。
答案:软件危机产生的缘故有:(每点1分)(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发的治理困难。
由于软件规模大,结构复杂,又具有无形性,导致治理困难,进度操纵困难,质量操纵困难,可靠性无法保证。
(3)软件开发费用不断增加。
软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投进人力多,周期长,费用上升非常快。
(4)软件开发技术、开发工具落后,生产率提高缓慢。
(5)生产方式落后。
软件仍然采纳个体手工方式开发。
2.简述需求分析的概念及需求分析的全然任务。
答案:需求分析是指开发人员要正确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格讲明)的过程。
(3分)需求分析的全然任务是要正确地定义新系统的目标,为了满足用户需要,答复系统必须“做什么〞的咨询题。
(2分)3.简述数据流图的分类及每一类的特点。
答案:数据流图有两类:变换型数据流图和事务型数据流图。
(1分)变换型数据流图是由输进、处理和输出三局部组成,(1分)因此变化型数据流图是一个顺序结构。
(1分)事务型数据流图特征:事务处理中心将它的输进流不离成许多发散的数据流,形成许多加工路径,(1分)并依据输进的值选择其中一个路径来执行。
(1分)4.简述建立对象模型的过程。
答案:建立对象模型的步骤如下:(每点1分)(1)确定类:标出来自咨询题域的相关对象类。
(2)预备数据字典:为所有建模实体预备一个数据字典,正确描述各对象类的精确含义,描述当前咨询题中的类的范围,包括对类的成员、用法方面的假设或限制;(3)确定关联:确定二个或多个类之间的相互依靠;(4)确定属性:只考虑与具体应用直截了当相关的属性(5)使用接着来细化类:使用接着来共享公共结构,以此来重新组织类__全国2021年1月1.简述软件工程面临的咨询题。
软件工程习题及解答1

软件工程第一章习题一、选择题1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理二、简答题1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.简述你对软件工程的理解?(包括起源,定义,目标,内容,作用等)起源:为了解决软件危机发展:第一代软件工程,即传统软件工程:结构化分析、结构化设计和结构化编程方法是这个时期的代表;从80年代中到90年代中,研究的重点转移到面向对象分析和设计上来,从而演化成软件工程的第二代,称之为对象工程;组件技术的研究和发展形成了新一代软件工程,即第三代软件工程定义:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机;软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。
目标:旨在开发满足用户需要、及时交付、不超过预算和无故障的软件。
主要目标是:实现预期的软件功能,达到较好的软件性能,满足用户的需求;增强软件过程可见性和可控性,保证软件的质量;提高软件的可维护性,降低维护费用;提高软件开发生产率,及时交付使用;合理预算开发成本,付出较低的开发费用内容:软件开发技术和软件开发管理两个方面。
软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。
软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。
作用:在一定程度上解决了软件危机的问题2.什么是软件危机?定义:计算机软件开发和维护过程中所遇到的一系列严重问题。
表现:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。
3.什么是瀑布模型?瀑布模型规定了软件生命周期的各项活动:问题定义、可行性研究、需求分析、软件设计、编码、测试、运行和维护。
各项活动自顶向下、相互衔接如同瀑布一样。
这里的修饰词“瀑布”非常贴切,明确了一个活动结束,进入到下一个活动后,很难再回到前一个活动中去,也就是工作不可逆转。
4.什么是需求分析?需求分析阶段的基本任务是什么?答:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程基本任务:确定对系统的综合要求,分析系统的数据要求,导出系统的逻辑模型,修正系统的开发计划 1.定义系统边界2.建立软件原型3.分析需求可行性4.确定需求优先级5.建立需求分析模型6.创建数据字典7.制定符合要求的系统开发计划5.什么是数据流程图?有几种图形元素,分别起什么作用?答:数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图的基本符号的意思:1.矩形表示数据的外部实体;2.圆角的矩形表示变换数据的处理逻辑;3.少右面的边矩形表示数据的存储;4.箭头表示数据流。
6.什么是数据字典?在数据字典中定义数据时用的几种符号是什么?数据字典:主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。
数据字典中所有的定义必须是严密的、精确的、无二义性的。
数据字典把数据的最小组成单位看成是数据元素或者叫做基本数据项,若干个数据元素可以组成一个数据结构也叫做组合数据项。
7.详细设计的基本任务是什么?结构化设计有那几种描述方法?答:从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。
这就是过程设计的任务。
在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。
表达过程规格说明的工具叫做详细设计工具,它可以分为以下三类:图形工具、表格工具、语言工具结构化程序的特征:程序模块只有一个入口和一个出口;程序中只包含顺序、条件和循环三种控制结构。
详细设计主要方法有设计程序流程图、判定树、PDL(是一种用于描述功能模块的算法设计和加工细节的语言)、N-S图(盒图)、问题分析图(PAD)、判定表、8.模块的内聚有哪几种?模块间的耦合有哪几种?答:内聚分为七种类型:a.功能内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。
则称该模块为功能内聚模块。
b.顺序内聚:模块中处理元素和同一个功能密切相关;一个成分的输出作为另一个成分的输入;处理元素必须是顺序执行的c.通信内聚:一个模块内各功能部分都针对相同输入/输出数据进行处理。
d.过程内聚:模块内各处理成分相关;必须以特定次序执行e.时间内聚:模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。
f.逻辑内聚:把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。
g.巧合内聚:模块内各部分间无联系耦合分为七类:1.非直接耦合:模块之间没有消息传递2.数据耦合:一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)3.特征耦合:如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系, 则称这两个模块间存在特征偶合。
4.控制耦合:在模块间传递的信息是用作控制信号的开关值或标志量。
控制模块必须知道被控制模块的内部逻辑,从而增强了模块间的相互依赖。
5.外部耦合:允许一组模块访问同一个全局变量6.公共耦合:多个模块都访问同一个公共数据环境,则称它们是公共耦合。
7.内容耦合:一个模块直接使用另一个模块的内部数据9.面向对象分析的关键步骤有哪些?应建立哪几个模型?答:面向对象分析是抽取和整理用户需求并建立问题域精确模型的过程。
关键步骤是识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;1.功能模型:表达系统的详细需求,由用例图和场景描述组成2.对象模型:表示静态的、结构化的系统“数据”性质。
描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
在面向对象方法中,类图是构件对象模型的核心工具。
3.动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。
面向对象方法中,常用状态图、顺序图、合作图、活动图构件系统的动态模型。
10.面向对象设计的主要活动有哪些的?面向对象的设计活动主要有:系统构架设计、用例设计、类设计、数据库设计和用户界面设计。
11.面向对象设计的原则是什么?开闭原则、替换原则、依赖倒转原则、单一职责原则、接口分离原则1.开闭原则:扩展性开放,更改性封闭;与高内聚低耦合原则对应;抽象化是开闭原则的关键。
面向对象设计的目标2.里氏代换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。
面向对象设计的基础3.替换原则:子类可以替换父类,但不能改变父类的行为4.依赖倒转原则:高层模块不应该依赖低层模块,它们都应该依赖抽象。
抽象不应该依赖于细节,细节应该依赖于抽象。
要针对接口编程,不要针对实现编程面向对象设计的主要手段5.单一职责原则:一个类应该有且仅有一个职责6.接口隔离原则:采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。
客户端不应该依赖那些它不需要的接口。
12.什么是开闭原则?为满足开闭原则,类结构有什么特点?开闭原则:一个软件实体应当对扩展开放,对修改关闭。
也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。
13.UML中有哪几图,它们的作用分别是什么?用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图1)用例图:用于描述一组用例、角色以及它们之间的关系。
基本元素:用例、角色和关系;用例是软件开发的核心元素2)活动图:描述从一个活动到另一个活动的流程,用于对系统的动态特性建模,反映控制流程。
一张活动图只能有一个开始状态(UML2.0可以有多个),但可以有多个结束状态。
3)状态图:用来描述一个对象在其生命周期中所表现出来的状态和行为。
主要是帮助理解较复杂对象的行为变化。
对象的各种状态;引起状态变化的事件;每个状态改变时所发生的动作。
4)交互图:根据获得的用例图、活动图和状态图来细化系统的需求,找出系统中对象和对象之间的关系,反映对象之间关系的工具。
一种是按时间顺序反映对象之间相互关系的顺序图;另一种是集中反映各个对象之间通讯关系的合作图。
5)顺序图:顺序图是按时间顺序反映对象之间传递的消息。
顺序图的顶部放置相关的对象,沿对象向下的虚线表示对象的生命线,两个对象生命线之间的横线表示对象之间传递消息,消息线的箭头形状表示消息的类型。
6)协作图:反映用例中各个对象之间消息传递,协作图强调参与交互的对象的组织关系。
7)类图:反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。
描述包括两个部分类和类间关系:关联(表示事物之间的一种固有联系,描述类的结构之间的关系)、聚集和组成(表示类之间一种松散的整体与部分的组成关系|表示类之间一种紧密的整体与部分的组成关系)、泛化(先从一个一个具体的对象分析出类,再把一个一个具体类的共性抽取出来得到更抽象的类的过程。
得到的更抽象的类称为泛化类,泛化类和具体类之间的关系称为泛化关系)、依赖(描述两个类或多个类之间的连接关系,其中一个类是独立的,另一个类是非独立的,依赖于独立的类)类图都是最核心技术✓边界类位于系统与外界的交界处,承担系统与外界的信息功能.✓实体类对应着现实中的客观实物,用来保存信息,一般对应着数据表、文件等。
✓控制类承担着事务处理,控制调控的控制作用。
8)配置图:反映了系统的物理模型,表示系统运行时的处理节点以及节点中组件的配置。
用来描述系统中计算结点的拓扑结构和通信路径与结点上运行的软件构件等。
一般一个系统仅有一个部署图9)组件图:描述组件以及它们之间的关系,用于表示系统的静态实现视图。
14.测试的目的是什么?测试的核心问题是什么?为什么?测试阶段的根本目的是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。
测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。
成功的测试在于发现了迄今尚未发现的缺陷。
所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。
15.什么是白盒测试?有哪些覆盖标准?它适应哪些测试?白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期答:白盒测试把测试对象看做一个透明的盒子,它允许测试人员依据详细设计说明书,利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。