软件工程答案

合集下载

计算机二级考试软件工程题库及答案

计算机二级考试软件工程题库及答案

计算机二级考试软件工程题库及答案一、选择题1. 下列哪个不是软件工程的基本特征?A. 可靠性B. 可维护性C. 可重复性D. 可移植性答案:C2. 软件需求分析的目的是什么?A. 建立软件体系结构B. 确定软件需求C. 设计软件模块D. 编写软件代码答案:B3. 下列哪个不是软件开发生命周期的阶段?A. 需求分析B. 设计C. 测试D. 销售答案:D二、填空题1. 软件工程的目标是提高软件的_________。

答案:质量2. 软件需求分析阶段的主要任务是对用户的需求进行_________。

答案:分析3. 软件测试的目的是为了发现软件中的_________。

答案:缺陷三、简答题1. 什么是软件开发生命周期?请简要描述各个阶段的主要任务。

答案:软件开发生命周期指的是软件从开始开发到结束的整个过程。

主要阶段包括需求分析、设计、编码、测试和维护。

需求分析阶段的主要任务是确定用户的需求;设计阶段的主要任务是根据需求设计软件的结构和模块;编码阶段的主要任务是根据设计编写软件代码;测试阶段的主要任务是发现并修复软件中的缺陷;维护阶段的主要任务是对软件进行更新和修复。

2. 请简要说明软件工程的重要性。

答案:软件工程的重要性体现在以下几个方面。

首先,软件工程可以提高软件的质量,确保软件能够满足用户的需求。

其次,软件工程可以提高软件的可维护性,使得软件可以持续更新和修复。

最后,软件工程可以提高软件的开发效率,节省时间和资源。

以上是计算机二级考试软件工程题库及答案的内容。

希望对您有所帮助!。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、选择题1. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。

答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。

答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。

答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。

它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。

2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。

通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。

3. 请简述软件开发生命周期中的各个阶段。

答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。

- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。

- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。

- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。

- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。

- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。

软件工程学试题及答案

软件工程学试题及答案

软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。

A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。

A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。

A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。

A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。

A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。

A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。

A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。

A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。

A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。

A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。

答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。

2. 描述软件需求分析的重要性。

答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案1.简述软件开发的本质。

答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答:实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答:模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1)必要的,该需求是用户所要求的。

2)无歧义的,该需求只能用一种方式解释。

3)可测的,该需求是可进行测试的。

4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5)可测量的,该需求是可测量的。

需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。

2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、设计约束和质量属性需求。

P237、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求38、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

软件工程答案

软件工程答案

软件工程第一章作业1.1什么是计算机软件?软件的特点是什么?答:计算机软件指计算机系统中的程序及其文档。

软件的特点是:A 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以精确得估算;B 软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;C 软件的运用没有硬件那样的机械磨损和老化问题。

1.2 简述软件的分类,并举例说明。

答:在《计算机科学技术百科全书》中,将软件分为系统软件、支撑软件和应用软件3类。

A 系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。

系统软件和详细的应用领域无关。

例如:编译程序、操作系统等。

B 支撑软件:支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境等。

C 应用软件:应用软件是特定应用领域专用的软件。

例如:工程/科学计算软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.4 什么是软件工程?答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

1.5 简述软件工程的基本原则。

答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则:第一条:围绕适宜的开发模型;其次条:接受合适的设计方法;第三条:供应高质量的工程支撑;第四条:重视软件工程的管理。

1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。

答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

A计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件和其他计算机系统元素之间的关系,进行成本估算,做出进度支配,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。

B需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

软件工程答案

软件工程答案

1. “软件危机”是指( )A. 计算机病毒的浮现B. 利用计算机进行经济犯罪活动C. 软件开辟和维护中浮现的一系列问题D. 人们过分迷恋计算机系统2. DFD 中的每一个加工至少需要( )A. 一个输入流B. 一个输出流C. 一个输入或者输出流D. 一个输入流和一个输出流3. 为了提高模块的独立性,模块之间最好是( )A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合4. 下面关于 PDL 语言不正确的说法是( )A. PDL 是描述处理过程怎么做B. PDL 是只描述加工做什么C. PDL 也称为伪码D. PDL 的外层语法应符合普通程序设计语言常用的语法规则5. 详细设计与概要设计衔接的图形工具是( )A. DFD 图B. 程序图C. PAD 图D. SC 图6. 不适合作为数据处理与数据库应用的语言是( )A. SQLB. CobolC. 4GLD. Lisp7. 下列关于功能性注释不正确的说法是( )A. 功能性注释嵌在源程序中,用于说明程序段或者语句的功能以及数据的状态B. 注释用来说明程序段,需要在每一行都要加注释C. 可使用空行或者缩进,以便很容易区分注释和程序D. 修改程序也应修改注释8. 下列关于效率的说法不正确的是( )A. 效率是一个性能要求,其目标应该在需求分析时给出B. 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法C. 效率主要指处理机时间和存储器容量两个方面D. 程序的效率与程序的简单性无关9. 测试的关键问题是( )A. 如何组织对软件的评审B. 如何验证程序的正确性C. 如何采用综合策略D. 如何选择测试用例10. 结构化维护与非结构化维护的主要区别在于( )A. 软件是否结构化B. 软件配置是否完整C. 程序的完整性D. 文档的完整性11. 软件维护艰难的主要原因是( )A. 费用低B. 人员少C. 开辟方法的缺陷D. 得不到用户支持12. 可维护性的特性中,相互矛盾的是( )A. 可理解性与可测试B. 效率与可修改性C. 可修改性和可理解性D. 可理解性与可读性13. 快速原型是利用原型辅助软件开辟的一种新思想,它是在研究( )的方法和技术中产生的。

软件工程教材习题答案

软件工程教材习题答案习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。

A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。

A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。

A) 螺旋模型B) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。

A) Booch B) UML C)Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。

A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。

A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。

(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。

(×)4. 结构化方法和OO方法都是一种面向过程的软件开发方法。

(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。

(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件工具的作用是为了延长软件产品的寿命。

软件工程答案

第3章软件项目管理(习题与参考答案)[选择题]1. 软件项目管理的“4P”是()。

(C)A. people,performance,payoff,productB. people,product,performance,processC. people,product,process,projectD. people,process,payoff,product2. ()项目管理在现代软件开发中是不太重要的,因为大多数项目能够及时完成并成功交付。

(B)A. 真B. 假3. 在软件开发的各种资源中,()是最重要的资源。

(C)A. 开发工具B. 方法C. 硬件环境D. 人员4. 软件项目规划的第一步是()。

(D)A. 确定项目预算B. 选择团队的组织模型C. 确定项目的约束D. 建立项目的目标和范围5. 下面的()方法最不适合你向团队成员解释他或她为什么表现不合格。

(B)A. 个人谈话B. 项目团队会议C. 正式报告D. 电子邮件6. 功能点估算技术需要以()为基础进行问题分解。

(A)A. 信息域B. 项目进度C. 软件功能D. 过程活动7. 软件开发团队的每一个成员都应该参与计划活动,以便()。

(C)A. 降低计划的粒度B. 深入地分析需求C. 所有成员同意该计划D. 开始设计8. 在攻克技术难题时,最佳的开发团队组织模型是()。

(A)A. 民主式结构B. 主程序员式结构C. 技术管理混合式结构D. 以上所有选项都不是9. 在选择开发团队组织结构时应考虑()因素。

(E)A. 沟通的复杂程度B. 最终程序的规模大小C. 发布日期的严格程度D. 项目预算的多少E. 选项A,B和C10. 在软件开发过程中避免受挫的最佳方法之一是()。

(A)A. 给予团队成员对于过程和技术决策的更多控制权B. 给予团队成员对于过程和技术决策的更少控制权C. 向团队成员隐瞒坏消息直到事情有所改善D. 根据生产效率奖励团队成员11. 下面的()软件特性不是引起项目协调困难的一个因素。

软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。

一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。

2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。

方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。

3、软件可行性研究实质上是要进行一次()需求分析和设计过程。

A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。

4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。

5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。

二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。

软件工程习题答案

软件⼯程习题答案第1章软件⼯程概述参考答案⼀. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D⼆. 填空题1. 设计编码测试2. 软件费⽤可靠性可维护性可重⽤性及⽣产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽⼀致性确定性5. 软件的总⽬标待开发软件的需求6. ⼆三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施⽤户评估三. 名词解释1. 软件的定义如下:在运⾏中能提供所希望的功能和性能的指令集,使程序能正确运⾏的数据结构,描述程序研制过程和⽅法所⽤的⽂档。

2. 软件⼯程是指导计算机软件开发和维护的⼀门学科。

3. 软件危机指的是软件开发和维护过程中遇到的⼀系列严重问题。

4. 就是从提出软件产品开始,直到该软件产品被淘汰的全过程。

5. 瀑布模型⼜称⽣存周期模型,由B.M.Boehm提出,是软件⼯程的基础模型。

其核⼼思想是按⼯序将问题化简,将功能的实现与设计分开,便于分⼯协作。

6. 螺旋模型将瀑布模型与演化模型结合起来,并且加⼊两种模型均忽略了的风险分析,弥补了两者的不⾜。

四. 简答题1. 软件既是知识产品,⼜是与汽车,建筑物⼀样的⼯业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,软件的特点如下:软件是⼀种逻辑实体,⽽不是具体的物理实体,因⽽它具有抽象性;软件是通过⼈们的智⼒活动,把知识与技术转化成信息的⼀种产品,是在研制、开发中被创造出来的;在软件的运⾏和使⽤期间,没有硬件那样的机械磨损、⽼化问题;软件的开发和运⾏经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱⼿⼯的开发⽅式;软件的开发费⽤越来越⾼,成本相当昂贵;软件的开发是⼀个复杂的过程,因⽽管理是软件开发过程中必不可少的內容。

2. 软件危机主要表现如下:产品不符合⽤户的实际需要;软件开发⽣产率提⾼的速度远远不能满⾜客观需要,软件的⽣产率远远低于硬件⽣产率和计算机应⽤的增长速度,使⼈们不能充分利⽤现代计算机硬件提供的巨⼤潜⼒;软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件⽂档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的⽐例逐年上升。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程答案1、简述软件的定义与特点?软件是完成某类问题求解的程序和数据以及维护程序必须提供的一系列文档组成的集合。

特点:从内部特性讲,软件是大量逻辑元素的复杂集合,这些逻辑元素可以是变量、数组、记录、文件、标号、常数等数据结构,也可以使循环、转移、条件、顺序、推理、赋值等控制机制,甚至还可以是环境、人、其他软件、硬件等外部因素。

从外部特性讲,软件是一种逻辑的信息产品,是用文字、符号表达的智力产物。

1)软件是逻辑的而不是物理的产品2)软件是由开发或工程化形成的,没有明显的制造过程3)软件在运行和使用期间,不存在硬件那样的磨损和老化问题,但存在退化问题,开发人员必须维护软件4)大多数软件是自定义的,而不是通过已有构建组装而成的5)软件成本相当昂贵6)软件本身是复杂的2、什么是软件工程?软件工程的诞生是否从根本是那个消除了软件危机?为什么?1)软件工程是一门研究如何使用系统化、规范化、数量化等工程原则和方法去进行软件开发和维护的学科。

可定义为:软件工程是一类设计软件的工程。

2)不能,软件危机是客观存在的,它既是软件本身的特殊性质造成的结果,也是人们对它认识不足,还缺少有效的理论核技术驾驭或控制它导致的必然结果。

软件危机不会在短时间内消除,而人类除了解决软件危机这条路之外别无他途。

3、什么是软件生存周期?各个阶段任务是什么?a软件生存周期又称软件生命周期,是指一个软件系统从目标提出到最后丢弃的整个过程。

b各个阶段的任务:可行性研究,此阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得解决,是否有可行的就解决方法。

需求分析,此阶段的任务主要是确定目标系统必须具备哪些功能。

详细设计阶段的任务就是把解法具体化,设计出程序的详细规格说明,包括必要的细节,程序员可以根据他们写出实际的程序代码。

编码和单元测试,此阶段的任务是程序员根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言,把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。

综合测试,这个阶段的任务是通过各种类型的测试,使软件达到预定的要求。

维护阶段的任务是通过各种必要的维护活动是系统持久地满足用户的需要。

4、什么是软件危机?软件危机有哪几种表现?为什么会产生软件危机?怎样克服软件危机?a.软件危机就是软件在开发过程中存在的一系列严重的问题的总称。

b.表现:一方面由于软件危机的爆发,引发了软件行业的一场灾难,许多软件无法正常运行,甚至失败,带来了经济上、技术上、心理上的损失;另一方面,软件危机也促使人们从层次上反思软件的本质及开发技术、方法上存在的严重缺陷,促使计算机领域发展新技术,寻找解决软件危机的途径。

c.产生软件危机的原因是多方面的,有观念上。

技术上、环境上及认为方面的因素。

技术上原因有:1)软件设计方法存在致命的缺陷2)软件逻辑的而不是物理的,一次软件的质量无法根据各组成部件的质量来衡量。

3)软件的逻辑本性以及其构成的庞大复杂的逻辑体系使开发人员感到束手无策,难以驾驭。

4)实现软件的工具——程序设计语言本身存在严重的缺陷。

d.(1)研制新一代体系结构的智能型计算机,改变软件实现的方式,以此降低软件的复杂性。

(2)软件工程的解决途径(3)采用面向对象的软件设计方法,使解决问题的方法空间同客观世界的问题空间完全一致,降低或化解软件设计的复杂性。

5、软件生存周期模型有哪些主要模型?a瀑布模型b原型模型c增量模型d 螺旋模型e 喷泉模型6、可行性研究的任务是什么?可行性研究是要进行一次压缩简化了的系统分析和设计过程,也就是说在较高层次上以较抽象的方式进行设计的过程。

7、可行性研究有哪些步骤?(1)确定系统的规模和目标(2)分析现有系统(3)建立新系统的高层逻辑模型(4)设计和评价新系统的实现方案(5)指定行动方案(6)书写计划任务书(7)提交审查8、可行性研究的目的是什么?通过对被开发系统的可行性研究,能够实现用最小的代价在尽可能短的时间内确定问题是否可以解决9、什么是需求分析?该阶段的基本任务是什么?需求分析方法包括对软件的数据域和功能域的系统分析过程及其表示方法,并定义了系统逻辑视图和物理视图的表示方法。

任务:a 确定系统的综合要求 b 分析系统的数据要求c建立目标系统的逻辑模型d修正系统开发计划e建立原型模型f编写软件需求规格说明书及评审10、数据流图与数据字典的作用是什么?画数据流图应注意什么?数据流图是用来描绘软件系统逻辑模型的图形工具,用于描绘信息在系统中的流动和处理情况。

数据字典:1作为分析阶段的工具2每个数据元素的控制信息对所有程序或模块产生影响3开发数据库的基础。

注意事项:1命名2画数据流而不是控制流3一般不画物质流4每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。

5编号 6 父图与子图的平衡7局部数据存储8提高数据流图的易懂性12、软件设计三个模型和设计关系?13、软件设计的主要任务和步骤是什么?软件设计是软件工程的重要阶段,是对程序结构、数据结构和过程细节逐步求精、复审并编制文档的过程。

步骤:1总体结构设计。

2数据设计。

3过程设计14、模块独立性的重要性是什么?模块的独立性是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他模块的借口是简单的。

模块的独立程度可以由模块见的耦合和模块的内聚两个定型标准度量。

15、什么是模块的作用范围?什么是模块的控制范围?模块的作用域是该模块的内部判断影响的多有模块的集合。

模块的控制域是该模块本身以及所有直接或间接从属于它的模块的集合。

控制域是从结构方面考虑的,而作用域是从功能方面上来考虑的。

16、简述软件结构优化准则?1模块独立性准则。

2 改造程序结构,使任一模块的作用域在其控制域之内。

3软件结构的形态特征准则。

4改造程序结构,降低界面的复杂性和冗余程度,提高协调性。

5模块功能应可预言,避免对模块施加过多限制。

6改造程序结构,追求单入口单出口的模块。

7为满足设计或可移植性的要求,把某些软件用包的形式封装起来。

17、结构化程序设计方法的基本要点是什么?结构化程序设计是一种程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。

18、简述软件体系结构的扇出、扇入、深度、宽度与软件复杂性的关系?一个系统的大小和系统的复杂程度在一定程度上可以用深度和宽度表示。

系统越大越复杂,其深度和宽度显然也越大。

如果模块的扇出过大,则使它们的上级模块需要过多地控制这些从属模块而增加复杂性,而且也增加了软件设计的难度。

19、模块设计一般准则?1降低模块的耦合性,提高模块的内聚性。

2保持适中的模块规模。

3模块应具有高扇入和适当的扇出。

4软件结构中的深度和宽度不宜过大。

5尽量降低模块借口复杂度。

6设计单入口单出口的模块。

20、面向对象方法学的定义以及四个要素?面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界、解决问题的方法和过程,也就是使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。

四个要素:1认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成的。

2把所有对象划分成各种对象类,每个对象类都定义了一组数据和一组方法。

3按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。

4对象彼此之间仅能通过传递消息互相联系。

21、传统方法和面向对象方法区别和联系?22、OOA三个模型和五个层次?对象模型、动态模型、功能模型。

五个层次:类及对象层、属性层、服务层、结构层、主题层。

23、建立面向对象五个活动?分析7个?设立类与对象、定义属性、定义服务、确立结构、识别主题。

分析:1针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。

2状态转换驱使行为发生,这些行为在数据流图中被映射成处理,他们同时与对象模型中的服务相对应。

3功能模型中的处理,对应于对象模型中的类与对象所提供的服务。

4功能模型中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。

5功能模型中的数据流,往往是对象模型中的属性值,也可能是整个对象。

6功能模型中的处理可能产生动态模型中的事件。

7对象模型描述了功能模型中的动作对象、数据存储以及数据流的结构。

24、怎样建立对象模型?1对象的发现与标识,标出来自问题域的相关对象类2发现对象的方法,在对象识别中最关键的是正确地运用抽象原则。

3定义属性和服务。

4定义结构25、面向对象设计中四个部分和五个层次?问题域部分、人机交互部分、任务管理部分、数据管理部分。

对象层、结构层、主题层、属性层、服务层26、人为因素三层含义:1人对感知过程的认识,包括视觉、阅读是的认知心理、记忆、归纳与演绎推理等。

2用户已有的技能和行为方式。

3用户所要求完成的整个任务以及用户对人机交互部分的特殊要求。

27、人机界面的设计过程可分为下面几个步骤:1创建系统功能的外部模型。

2确定为完成此系统功能的人和计算机应分别完成的任务。

3考虑界面设计的典型问题。

4借助CASE工具构造界面原型。

5真正实现设计模型。

6评估界面质量28、程序设计语言分类以及特性?(一)面向机器结构的低级语言(二)面向对象的高级语言&高级语言从应用角度分1基础语言2结构话语言3专用语言&高级语言从内在特点分1系统实现语言2静态高级语言3块结构高级语言4动态高级语言特性:(一)心里特性:1歧义性2简洁性3局部性和顺序性4传统型(二)工程特性:1可移植性2开发工具的可利用性3软件的可重用性4可维护性(三)技术特性29、程序设计语言的准则及风格?准则:1项目管理2软件开发的方法3软件开发的环境4算法和数据结构的复杂性5软件开发人员的知识30、冗余编程的目的:冷热备用31、软件容错技术的定义以及一般方法?定义:1规定功能的软件,如果在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。

2规定功能的软件,如果在一定程度上对自身错误的作用具有屏蔽能力,即容错软件3规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。

4规定功能的软件,如果在一定程度上具有容错能力,则称之为容错软件方法:结构冗余、信息冗余、时间冗余、冗余附加技术32、软件测试方法一般分为动态测试方法和静态测试方法两大类。

动态测试又分为黑盒测试和白盒测试。

33、软件测试的目的及原则?目的:1测试是程序的执行过程,目的在于发现错误。

2好的测试方案是极可能发现迄今为止尚未发现错误的测试方案。

3成功的测试是发现了至今为止尚未发现的错误的测试。

原则:1测试用例应由输入数据和预期的输出数据两部分组成。

相关文档
最新文档