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;u1非功能性需求:用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望,包括:(1)性能需求:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。(2)可靠性需求:用户在软件失效的频率、严重程度、易恢复性,以及故障可预测性等方面的要求。(3)易用性需求:用户在界面的易用性、美观性,以及对面向用户的文档和培训资料等方面的要求。(4)安全性需求:用户在身份认证、授权控制、私密性等方面的要求。(4)运行环境约束:用户对软件系统运行环境的要求。(5)外部接口:用户对待开发软件系统与其他软件系统或硬件设备之间的接口的要求。(6)可保障性(supportable)需求:用户在软件可配置性、可扩展性、可维护性、可移植性等方面的要求。软件设计的目标是,获取能够满足软件需求的、明确的、可行的、高质量的软件解决方案。“明确”是指,软件设计模型易于理解,软件构造者在设计方案的实现过程中,勿需再面对影响软件功能和质量的技术抉择或权衡。“可行”是指,在可用的技术平台和软件项目的可用资源条件下,采用预定的程序设计语言可以完整地实现该设计模型。“高质量”是指,设计模型不仅要给出功能需求的实现方案,而且要使该方案适应非功能需求的约束;设计模型要尽量优化,以确保依照设计模型构造出来的目标软件产品(在排除软件构造阶段引入的影响因素后)能够表现出良好的软件质量属性,尤其是正确性、有效性、可靠性和可修改性。常见的软件研发流程:瀑布模型,螺旋模型,RUP流程,IPD流程瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;(3)实施工程:实施软件开发和验证;(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。RUP(RationalUnifiedProcess,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。根据Rational(RationalRose和统一建模语言的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。RUP和类似的产品–例如面向对象的软件过程(OOSP),以及OPENProcess都是理解性的软件工程工具–把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。集成产品开发(IntegratedProductDevelopment,简称IPD)是一套产品开发的模式、理念与方法。IPD的思想来源于美国PRTM公司出版的《产品及生命周期优化法》(简称PACE——ProductAndCycle-timeExcellence)一书,该书中详细描述了这种新的产品开发模式所包含的各个方面。Q.什么是计算机软件?A.计算机软件是一个完整的方案,其中包括软件程序,如何使用该软件的文档和用户手册.Q.您能不能区分计算机软件和计算机程序?A.计算机程序是一段程序代码,执行一个定义良好的任务,其中软件包括程序代码并它的文档和用户指南.Q.什么是软件工程?A.软件工程与软件系统开发相关工程分支.Q.如你知道编程,什么是需要学习软件工程的概念?A.一个人谁知道如何建立一个墙不是善于建设一个完整的家。同样,谁可以写程序的人可能没有对软件工程的其他概念的知识。软件工程的概念,引导程序员如何评估最终用户的需求,实际的编码开始之前设计的算法,创建了编码,测试代码和文档的程序.Q.什么是软件过程和软件开发生命周期(SDLC)?A.软件开发生命周期,或软件过程是软件在开发过程中,即要求收集,系统分析,设计,编码,测试,维护和文档的顺序以下各阶段的系统化发展.Q.有几个SDLC模型?A.有几个可用的SDLC的模型,如瀑布模型,迭代模型,螺旋模型,V模型和大爆炸模型等等。.Q.什么是SDLC的各个阶段?A.SDLC的一般阶段是:理解客户需求,系统分析与设计,编码,测试和实施。该阶段取决于我们选择的软件开发模型时.Q.那一种SDLC模式是最好的?A.SDLC模式采用按开发过程中的需求。它很可能软件到软件,以确保该模型是合适的.我们可以选择最佳的SDLC模式,如果以下答案感到满意-是否SDLC适合选择技术实现的软件?是否SDLC适合客户的需求和优先事项?是否SDLC模型适合于该软件的规模和复杂性?是否SDLC模式适用于项目和工程,我们做的类型?是否SDLC适当的地域共同定位或分散开发?Q.什么是软件项目管理?A.软件项目管理是管理就像从事软件开发时间,成本和质量管理的所有活动的过程.Q.谁是软件项目经理吗?A.软件项目经理承诺进行软件项目的责任.Q.什么是软件项目经理角色与责任?A.软件项目经理是从事与软件管理的活动。他负责的项目规划,监测进展情况,利益相关者之间的沟通,风险管理和资源开发的顺利实施,并在时间,成本和质量的约束上交付项目.Q.什么是软件的范围?A.软件的范围是一个明确的界限把它包含了所有完成开发和提供软件产品的活动.该软件适用范围明确规定的所有功能和文物交付的软件的一部分。范围确定什么样的产品会做,什么也不会做,什么终端产品将包含哪些它将不包含.Q.什么是项目估算?A.它是一个过程来估计,以计算在努力,时间和资源方面的开发成本的软件产品的各个方面。这种估计可以从过去的经验中得到,通过咨询专家或通过使用预先定义的公式.Q.我们如何才能得到软件产品的规模?A.软件产品的大小可以用以下两种方法之一进行计算-计数的交付的代码行计数交付功能点Q.什么是功能点?A.作用点是由该软件产品提供的各种功能。它被认为是测量软件大小的单元.Q.什么是软件项目估算技术可用?A.有许多估计技术.最广泛使用的是-分解技术(计数代码行和功能点)实证方法(普特南和COCOMO)Q什么是底线?A.基线是测量,定义了一个阶段的完整性。经过与特定阶段相关联的所有活动都完成,这个阶段就完成,并作为下一阶段的基准.Q.什么是软件配置管理?A.软件配置管理是跟踪和控制的要求,设计,功能和产品的开发方面的变化,软件的处理。.Q.什么是变更控制?A.变更控制的配置管理从而确保软件系统进行的所有更改都一致并按照组织的规章制度的作用。.Q.你如何衡量项目的执行?A.们可以测量执行项目活动监视,状态报告和里程碑清单的方式.Q.说一些项目管理工具.A.T有作为每个软件项目和组织政策要求的各种项目管理工具。它们包括甘特图,PERT图,资源直方图,关键路径分析,状态报告,里程碑清单等.Q.什么是软件需求?A.软件的要求,提出软件系统的功能描述。要求被假定为目标的系统,其功能和特征的描述。要求传送用户从系统的期望.Q.什么是可行性研究?A.这是评估如何实践和有益的软件项目开发将是一个组织的一项措施。该软件分析仪进行了深入的研究,以了解该项目的经济,技术和操作可行性。.经济-资源运输成本的培训,更多的实用程序和工具以及成本和项目的收益整体估算成本.技术-是否有可能开发这个系统?评估机(S)和操作系统(S)上的软件将执行,现有的开发人员的知识和技能,培训,实用程序或工具对项目的适用性。.操作-可以顺利完成的每个项目的需求变化组织调整?就是这个问题值得解决?Q.你怎么能收集需求?A.要求从用户通过访谈,调查,任务分析,集思广益,域分析,原型收集,学习软件现有的可用版本,并观察.Q.什么是SRS?A.SRS系统或软件需求规格说明是需求收集过程时产生的文件。它也可以被看作炼要求和记录它们的处理.Q.什么是功能性的要求?A.功能要求是预计从提出软件产品的用户功能特性和规格.Q.什么是非功能性需求?A.非功能性需求是隐含的,涉及到安全性,性能,外观和感觉的用户界面,互操作性,成本等。.Q.什么是软件方面的措施?A.件的措施,可以理解为量化和象征的各种属性以及软件方面的过程.Q.什么是软件度量?A.软件度量提供措施,软件过程和软件产品的各个方面。它们被分成–要求指标:长度要求,完整产品指标:代码行数,面向对象度量,设计和测试指标工艺指标:评估和跟踪预算,进度,人力资源Q.什么是模块化?A.模块化是一种技术,将一个软件系统划分为多个离散的模块,预计进行的工作(S)独立。.Q.什么是并发性以及它是如何在软件中实现的?A.并发是事件或动作的倾向同时发生。在软件中,当两个或多个过程同时执行的,它们被称为并发进程.示例当您启动打印命令,打印机开始打印,你可以打开一个新的应用程序.并发,被分裂成软件即执行进程和线程的多个独立单位,并执行它们并行执行.Q.什么是凝聚力?A.凝聚力是定义模块的元件之间的内部可靠性的程度的量度.Q.什么是偶合?A.耦合是定义一个程序模块之间的相互可靠性水平的措施.Q.提到一些软件分析和设计工具?A.这可能是:DFD的(数据流图),结构图,结构化英语,数据字典,黑豹(分层输入过程输出)图,ER(实体关系)图和决策表。Q.什么是0级的DFD?A.最高抽象层次的DFD被称为0级DFD也称为上下文级别的DFD,它描绘了整个信息系统的一个图表隐藏所有的底层细节.Q.什么是结构化的英语和伪码的区别?A.结构化英语是用编程语言的关键字来写一个程序模块的结构,然而,伪码更接近的编程语言,并使用母语的英语单词或句子来写的代码部分英语为母语.Q.什么是数据字典?A.数据字典被称为元数据。这意味着,它是关于数据的数据仓库。数据字典用于组织在系统中使用诸如对象和文件以及它们的命名约定的名称和它们的引用。.Q.什么是结构化设计?A.结构化设计是一个概念化的问题到解决方案的几个组织良好的元素。这是值得关注与解决方案的设计和基于“分而治之”的策略.Q.:什么是功能导向,面向对象的设计之