1.什么是软件工程?它的目标和内容是什么?
软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:
a.付出较低的开发成本; b.面到要求的软件功能; c.取得较好的软件性能; d.开发的软件易于移植; e.软件测试的方法有哪些需要较低的维护费用; f.能按时完成开发任务,及时交付使用; g.开发的软件可靠性高;
软件工程的内容: 1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。 2) 软件开发管理:软件管理学、软件经济学、软件心理学。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:
a.付出较低的开发成本; b.面到要求的软件功能; c.取得较好的软件性能; d.开发的软件易于移植; e.软件测试的方法有哪些需要较低的维护费用; f.能按时完成开发任务,及时交付使用; g.开发的软件可靠性高;
软件工程的内容: 1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。 2) 软件开发管理:软件管理学、软件经济学、软件心理学。
2.什么是软件生存周期模型?有哪些主要模型?
软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。) 软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等
3.可行性研究的任务是什么?
a.技术可行性: 考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。 b.经济可行性。 c.社会可行性。
4.可行性研究有哪些步骤?
a.确定项目规模和目标 b.研究正在运行的系统 c.建立新系统的高层逻辑模型
d.导出和评价各种方案 e.推荐可行的方案 f.编写可行性研究报告
a.确定项目规模和目标 b.研究正在运行的系统 c.建立新系统的高层逻辑模型
d.导出和评价各种方案 e.推荐可行的方案 f.编写可行性研究报告
5.软件设计的基本原理包括哪些内容?
软件设计的基本原理: (1)模块化(四个属性:接口、功能、逻辑、状态) (2)抽象
(3)信息隐蔽 (4)模块独立性(两个定性的度量标准:耦合性与内聚性)
软件设计的基本原理: (1)模块化(四个属性:接口、功能、逻辑、状态) (2)抽象
(3)信息隐蔽 (4)模块独立性(两个定性的度量标准:耦合性与内聚性)
6..衡量模块独立性的两个标准是什么?它们各表示什么含义?
两个定性的度量标准:耦合与内聚性
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。
7.在项目开发时选择程序设计语言通常考虑哪些因素?
答:通常要考虑的因素有: 项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。
8.举例说明各种程序设计语言的特点及适用范围?
答:以常见的一些编程语言为例: ①FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算 ②Pascal语言,具有很强的数据和过程结构化能力,它 语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写 。
③C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。
④Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。
⑤SQL:结构化查询语言,用于对数据库进行存取管理。
汇编语言和Ada语言,主要用于实时处理和编写系统软件。
⑥Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。
⑦C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。
⑤SQL:结构化查询语言,用于对数据库进行存取管理。
汇编语言和Ada语言,主要用于实时处理和编写系统软件。
⑥Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。
⑦C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。
9.什么是软件开发方法?有哪些主要方法?
答:使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。通过使用成功的软件开发方法,在规定的投资和时间内,开发出符合用户需求的高质量的软件。软件开发方法是克服软件危机的重要方面之一,对软件工程及软件包产业的发展起了不可估量的作用。
主要有:结构化方法,JACKSON方法,维也纳开发方法﹙VDM﹚,面向对象开发方法。
10.快速原型模型有几种,各有什么特点?
答:快速原形模型根据原型的不同作用,有三类原型模型:
① 探索型原型:把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。
②实验型原型:主要用于设计阶段,考核实现方安是否合适,能否实现。对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型的开发来证实设计方案的正确性。
③演化型原型:它将原型思想扩展到软件开发的全过程,就是及早向用户提交一个原型系统,在得到用户认可后,将原型系统不断扩充演化为最终的软件系统。
11.可行性研究报告有哪些主要内容?
⑴引言:编写本文档的目的;项目名称﹑背景;本文档用到的专门术语和参考资料。
⑵可行性研究前提:说明开发项目的功能﹑性能和基本要求;达到的目标;各种限制条件;
可行性研究方法和决定可行性的主要因素。
⑶对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需各类专业技术人吧和数量;所需各种设备;向有系统存在什么问题。
⑷所建议的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有系统比较的优越性;采用所建议系统对用户的影响;对各种设备﹑现有软件﹑开发环境﹑运行环境的影响;对经费支出的影响;对技术可行性的评价。⑸所建议系统的经济可行性分析:说明建议系统的确良各种支出,各种效益;收益投资比;投资顺收周期。
⑹社会因素可行性分析:说明法律因素,对合同责任﹑侵犯专利权﹑侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理﹑工作制度﹑人吧素质的要求。
⑺其它可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。⑻结论意见:说明项目是否能开发;还需什么条件才能开发;对项目目标有何变动等。
12. 成本--效益分析可用哪些指标进行度量?
⑴投资回收率:通常把建立系统若干年后能取得的收益折算成现在的价值和开发系统所需的费用进行比较得出投资回收率。
⑵投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。
⑶纯收入:整个生存周期之内的累计经济效益(折成现在值)与投资之差。
13.什么是结构分析方法?该方法使用什么描述工具?
答:结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
14.什么是数据字典?其作用是什么?共有哪些条目?
答:数据字典(DD)用来定义数据库流图中的各个成分的具体含义。
有以下四类条目:数据流,数据项,数据存储,基本加工。
15.试述"变换分析"﹑"事务分析"设计步骤。
答:变换分析设计步骤:⑴确定变换中心,逻辑输入和输出。⑵设计软件结构的顶层和第一层--变换结构:顶层的功能是完成所有模块的控制(名称应是系统名,以体现完成整个系统功能)第一层至少有三种功能模块:输入﹑输出和变换模块⑶设计中﹑下层模块,对第一层的模块自顶向下分解。输入模块由两部分组成:接收数据﹑转换成调用模块所需信息。输出模块由两部分组成:将数据转换成下属模块所需的形式﹑ 发送数据 变换模块:对每个基本加工建立一功能模块、⑷设计的优化 :输入部分求精,每个物理输入设置专门模块,以体现系统的外部接口。其它输入模块与转换数据模块都很简单时,可将它们合并。输出部分求精:每个物理输出设置专门模块,其它也可适当合并。变换部分求精:根据设计准则,对模块适当合并。
事务分析的设计步骤:⑴确定事务中心和加工路径⑵设计顶层(事务机构)和第一层 顶层模块有两个功能:接收数据和根据事务类型调动相应处理模块。⑶中下层模块的设计﹑优化工作与变换结构相同。事务型软件结构包括两部分: 接收分支 发送分支出 通常包括一调度模块,当事务类型不多时,可与主模块合并 。
16.结构化程序设计的基本要点是什么?
答:主要有三个:(1)采用自顶向下、逐步求精的程序设计方法 (2)使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。 (3)主程序员组的组织形式。、
17. 什么是白盒测试法?有哪些覆盖标准?试对他们的检错能力进行说明
答:白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
白盒法有下列几种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准。在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例来达到路径覆盖的测试标准。
18..软件测试的目的是什么?软件测试中,应注意哪些原则?
答:软件测试的目的是为了发现软件的错误。软件测试中应注意的原则有:
测试用例应由输入数据和预期的输出数据两部分组成。这样便 于对照检查,做到有的放矢。 测试且例不仅选用合理输入数据,还要选择不合理的输入数据。这样能更多地发现错误,提高程序的可靠性。对于不合理的输入数据,程序应拒绝接受,并给出相应的提示。
除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。应制定测试计划并严格执行,排除随意性。 长期保留测试用例。
对发现错误较多的程序段,应进行更深入的测试。程序员应避免测试自己的程序。测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。
19..软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?
答:软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论