软件工程考研复试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、说出软件工程的四项基本原则?
选取适合的开发范型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。
2、请列出软件工程的生命周期的6个阶段?
问题的定义及规划,需求分析,软件设计,程序编码,软件测试和运行维护。
瀑布模型有以下优点:
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
2、瀑布模型有以下缺点:
1)在项目各个阶段之间极少有反馈。
2)只有在项目生命周期的后期才能看到结果。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
1. Strings=newString(‘xyz’);请问产生几个StringObject?
2. 软件工程可以分为几个阶段?请问各个阶段的作用是什么?
3. 值类型与引用类型的区别?用C#事例说明?
4. 编写一个冒泡排序的程序。6 举例说明你所熟悉几种设计模式,说明各种模式在何种情况下使用?7 你如何理解委托,一般在什么情况下用?8 你做过的C/S结构程序中你用的是几层架构,为什么要用,各层间的关系是什么?9:请问此程序的输出结果:usingSystem;u
1 非功能性需求:用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望,包括:
(1) 性能需求:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。
(2) 可靠性需求:用户在软件失效的频率、严重程度、易恢复性,以及故障可预测性等方面的要求。
(3) 易用性需求:用户在界面的易用性、美观性,以及对面向用户的文档和培训资料等方面的要求。
(4) 安全性需求:用户在身份认证、授权控制、私密性等方面的要求。
(4) 运行环境约束:用户对软件系统运行环境的要求。
(5) 外部接口:用户对待开发软件系统与其他软件系统或硬件设备之间的接口的要求。
(6) 可保障性(supportable)需求:用户在软件可配置性、可扩展性、可维护性、可移植性等方面的要求。
软件设计的目标是,获取能够满足软件需求的、明确的、可行的、高质量的软件解决方案。“明确”是指,软件设计模型易于理解,软件构造者在设计方案的实现过程中,勿需再面对影响软件功能和质量的技术抉择或权衡。“可行”是指,在可用的技术平台和软件项目的可用资源条件下,采用预定的程序设计语言可以完整地实现该设计模型。“高质量”是指,设计模型不仅要给出功能需求的实现方案,而且要使该方案适应非功能需求的约束;设计模型要尽量优化,以确保依照设计模型构造出来的目标软件产品(在排除软件构造阶段引入的影响因素后)能够表现出良好的软件质量属性,尤其是正确性、有效性、可靠性和可修改性。
常见的软件研发流程:瀑布模型,螺旋模型,RUP流程,IPD流程
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。
螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3)实施工程:实施软件开发和验证;
(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。根据Rational(Rational Rose和统一建模语言的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。RUP和类似的产品–例如面向对象的软件过程(OOSP),以及OPEN Process都是理解性的软件工程工具–把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。
集成产品开发(Integrated Product Development,简称IPD)是一套产品开发的模式、理念与方法。IPD的思想来源于美国PRTM公司出版的《产品及生命周期优化法》(简称PACE——Product And Cycle-time Excellence)一书,该书中详细描述了这种新的产品开发模式所包含的各个方面。
Q.什么是计算机软件?
A.计算机软件是一个完整的方案,其中包括软件程序,如何使用该软件的文档和用户手册.
Q.您能不能区分计算机软件和计算机程序?
A.计算机程序是一段程序代码,执行一个定义良好的任务,其中软件包括程序代码并它的文档和用户指南.
Q.什么是软件工程?
A.软件工程与软件系统开发相关工程分支.
Q.如你知道编程,什么是需要学习软件工程的概念?
A.一个人谁知道如何建立一个墙不是善于建设一个完整的家。同样,谁可以写程序的人可能没有对软件工程的其他概念的知识。软件工程的概念,引导程序员如何评估最终用户的需求,实际的编码开始之前设计的算法,创建了编码,测试代码和文档的程序.
Q.什么是软件过程和软件开发生命周期(SDLC)?
A.软件开发生命周期,或软件过程是软件在开发过程中,即要求收集,系统分析,设计,编码,测试,维护和文档的顺序以下各阶段的系统化发展.
Q.有几个 SDLC模型?
A.有几个可用的SDLC的模型,如瀑布模型,迭代模型,螺旋模型,V模型和大爆炸模型等等。.
Q.什么是SDLC的各个阶段?
A. SDLC的一般阶段是:理解客户需求,系统分析与设计,编码,测试和实施。该阶段取决于我们选择的软件开发模型时.