1、简述软件工程的7条基本原理
1)用分阶段的生命周期计划严格管理;2)坚持进行阶段评审;3)实行严格的产品控制;4)采用现代程度设计技术;5)结果应能清楚地审查;6)开发小组的人员应该少而精;7)承认不断改进软件实践的必要性
2、软件工程的研究内容和软件工程的目标
软件工程研究的主要内容有以下两个方面:
1)软件开发技术。
软件开发方法学:基于瀑布模型的结构化生命周期方法,基于动态需求的快速原型法,基于结构的面向对象的软件开发方法;软
件工具:用来开发软件的软件;软件工程环境:支持软件开发的环境,
软件工具及其相互间关系的总和。
2)软件工程管理。
软件管理:人力管理,进度安排,质量保证,资源管理;
软件工程经济学:以经济学的观点研究开发过程中的经济效益,即进行
成本估算,效益分析的方法和技术。
3、什么是软件的生存周期各阶段的任务是什么
软件生存周期又称软件生命周期,是指一个软件系统从目标提出到最后丢弃的整个过程。
大致分为如下四个阶段:
1)软件分析时期,包含问题定义,可行性研究和需求分析三个部分。
问题定义阶段必须要回答的关键问题是“要解决的问题是什么”;可行性研
究阶段的任务是研究问题的范围,探索这个问题是否值得去解决,是否
有可行的解决方法;需求分析阶段的任务是确定目标系统必须具备哪些
功能。
2)软件设计时期,包含概要设计和详细设计。
概要设计阶段必须要解决的问题是“应该如何解决这个问题”;详细设计阶段的任务是把解法具体
化,设计出程序的详细规格说明,包括必要的细节,程序员可以根据它
们写出实际的程序代码。
3)编码和单元测试时期。
编码和单元测试:这个阶段的任务是程序员根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要
时包括汇编语言),把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块;综合测试:此阶段的任务是通过各
种类型的测试使软件达到预定的要求。
4)运行和维护时期。
维护阶段的任务是通过各种必要的维护活动使系统持久地满足用户的需要。
4、什么是瀑布模型它有哪些优缺点
瀑布模型(Waterfall Model),它将软件生存期划分为计划、开发和运行三个时期,每个时期又划分为若干阶段。
瀑布模型的优点:
1)可强迫开发人员采用规范的方法
2)严格地规定每个阶段必须提交的文档
3)要求每个阶段的所有产品都必须经过质量保证小组的仔细检查
瀑布模型的缺点:
1)各个阶段的划分完全固定,阶段之间产生大量的文档,增加工作量
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发陈果,从而增加了开发的风险
3)早期的错误可能要等到开发后期的测试阶段才能发现,进而造成严重的后果
5、什么是软件的生存周期模型常用的模型有哪些
软件生存周期模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发,运行维护所实施的全部过程,活动和任务的结构框架。
常用的模型有:瀑布模型,原型模型,增量模型,螺旋模型,喷泉模型,变换模型和基于知识的模型。
6、什么是螺旋模型简述按照螺旋模型进行软件开发的步骤
螺旋模型是一种风险驱动的模型。
这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。
软件开发过程每迭代一次,软件开发又前进一个层次。
螺旋模型进行软件开发的步骤:
(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3)实施工程:实施软件开发和验证;
(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。
7、可行性研究的任务有哪些可行性研究包括那些步骤
可行性研究的任务:通过对被开发系统的可行性研究,能够实现用最小的代价在尽可能短的时间内确定问题是否可以解决。
也就是说,可行性研究的目的不是解决问题,而是确定问题是否能获得解决,研究在当前的具体条件下,开发新系统是否具备必要的资源和其他条件。
可行性研究是进行一次压缩简化了的系统分析和设计的过程,也就是在较高的层次上以较抽象的方式进行设计的过程。
可行性研究的步骤:
1)确定系统的规模和目标;2)分析现有系统;3)建立新系统的高层次逻辑模型;4)设计和评价新系统的实现方案;5)制定行动方案;6)书写
计划任务书;7)提交审查。
8、简述软件模块设计的一般准则
1)降低模块的耦合性,提高模块的内聚性;2)保持适中的模块规模;3)模块应具有高扇入和适当的扇出;4)软件结构中的深度和宽度不宜过大;5)尽量降低模块的接口复杂度;6)设计单入口单出口的模块。
9、软件设计中变换分析设计的一般步骤
1)确定输入,输出,变换的加工集合;2)确定顶层模块和第一层模块(建立映射);3)执行二级分解;4)设计的优化:输入部分的求精,输出部分的求精,变换部分的求精
10、软件结构优化的一般准则
1)模块独立性准则;2)改造程序结构使任一模块的作用域在其控制域之内;3)软件结构的形态特征准则;4)改造程序结构,降低界面的复杂性和冗余程度,提高协调性;5)模块功能应可预言,避免对模块施加过多限制;6)改造程序结构,追求单入口单出口的模块;7)为满足设计或可移植性的要求,把某些软件用包的形式封装起来。
11、简述面向对象设计的五个层次和四个设计部分
OOA模型可以划分为五个层次:类及对象层次、属性层、服务层、结构层、主题层,分别对应着五个活动:设立类和对象、定义属性、定义服务、确立结构、
识别主题。
四个设计部分:问题域部分,人机交互部分,任务管理部分,数据管理部分;针对OOD模型中的四个部分在OOD中进行四个相应的活动:设计问题域部分,设计人机交互部分,设计任务管理部分,设计数据管理部分。
12、软件测试包括哪些步骤这些测试与软件开发各阶段之间有什么关系
软件产品一般经过以下四步测试:单元测试,集成测试,确认测试和系统测试。
单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确的实现了规定的功能。
然后进行集成测试,根据设计规定的软件体系结构,把已测试过的模块组装起来。
在组装过程中,检查程序结构组装的正确性。
确认测试则是要检查已实现的软件是否满足了需求规格说明中的各种需求,以及软件配置是否完全,正确。
最后是系统测试,把已经经过确认的软件纳入实际运行环境中,与其他系统成分组合在一起进行测试。
13、简述软件维护的工作流程
为了有效地进行软件维护,应事先就开始做组织工作。
首先需要建立维护的机构,声明提出了维护申请报告的过程及评价的过程;为每一个维护申请规定标准的处理步骤;必须建立维护活动的登记制度以及规定评价和评审的标准。
14、影响软件质量的要素有哪些
由于软件开发人员,管理人员,维护人员和用户在软件开发,维护和使用过程中所处的地位不同,它们对软件质量的理解和要求也不同。
如:管理人员十分关心软件开发采用的标准,在经费和时间允许的情况下,如何实现软件需求规格说明书中定义的功能;维护人员特别注重软件的正确性,可理解性和可修改性;用户更关心软件的性能和可靠性等。
因此,应该对软件质量给出一个客观的,科学的定义,这对统一人们对软件产品的认识,在软件开发与维护的过程中评价和控制软件质量都是十分必要的。
软件质量依赖于软件的各种属性的复杂组合,它随着应用的不同而不同,随着用户提出的质量要求不同而不同。
15、UML统一建模语言五种视图的作用
1)用例视图描述了系统应该具备的功能;2)逻辑视图描述了用例视图中提出的系统功能的实现;3)并发视图主要考虑资源的有效利用,代码的并行执行以及系统环境中异步事件的处理;4)组件视图描述系统的实现模块以及它们之
间的依赖关系;5)配置视图显示系统的物理部署,它描述位于节点上的运行实例的部署情况。
配置视图还允许评估分配结果和资源分配。