软件工程导论简答题整理版
软件工程导论简答题整理版

第一章4.什么是软件工程?它与软件工程方法学有何关系?软件过程是为了开发高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程定义了运用技术方法的顺序,应该交付的文档资料,为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
软件过程是软件工程方法学的3个重要组成部分之一。
7.假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。
一旦实现并测试完之后,该产品将被抛弃。
你打算选用哪种软件生命周期模型?请说明你作出选择的理由。
答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。
此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
第三章一列火车最多有两个火车头。
只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。
火车头既可能是内燃机车也可能是电器机车。
车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。
硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部分。
此外,在硬卧车厢和软卧车厢之间还有一节餐车。
答:jackson图善于描绘复杂事物的组成。
用jackson图描绘一列火车的构成的方法至少有两种,一种方法是把火车分为一个车头和两个车头两类,另一种方法是把后车头作为可选的。
图3.29给出了描绘一列火车的构成的jackson图。
用Jackson 图描绘一列火车的构成第四章3.假设有一个由5000行FORTRAN语句构成的程序(经编译后大约有25000条机器指令),你估计在对它进行测试期间将发生多少个错误?为什么?答:经验表明,在类似的程序中,单位长度里的错误数Er/Ir近似为常数。
美国的一些统计数字告诉我们,通常0.5ⅹ10-2 <= Er/Ir <= 2ⅹ10-2也就是说,在测试之前每1000条指令中大约有5-20个错误.假设在该程序的每1000条指令中大约有10个错误,则估计在对它进行测试期间将发现的错误数为25000ⅹ10/1000=250第五章3、某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。
(完整word版)软件工程简答题必考

1、什么是软件工程?它目标和内容是什么?软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科.软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高.软件工程内容:包括开发技术和开发管理两个方面。
2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发?软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。
其中喷泉模型、统一软件过程适用于面向对象的软件开发.3、什么是结构分析方法?该方法使用什么描述工具?结构化分析:简称SA,面向数据流进行数据分析的方法.采用自顶向下逐层分解的分析策略.顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑.4、什么是软件概要设计?该阶段的基本任务是什么?把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。
称为概要设计或结构设计。
基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审5、软件维护有哪些内容?(1)校正性维护。
在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.(2)适应性维护。
为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。
(3)完善性维护。
为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
(4)预防性维护。
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试.单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
(完整版)软件工程导论试题(整理)

单项选择题(每小题1分,共10分)1、在结构性的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A )(A)需求分析阶段(B)详细设计阶段(C)概要设计阶段(D)可行性2、研究阶段软件工程方法中普遍定义的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征( C )A 严格定义需求B 划分开发阶段C 规范文档格式D 分析控制流程3、软件结构中两个模块之间有调用关系,传递简单数据值,相当于高级语言中的值传递,这两个模块之间的耦合是( D )(A)公共耦合(B)控制耦合(C)标记耦合(D)数据耦合4、软件维护的四类维护活动是( A )(A)改正性维护,适应性维护,完善性维护和预防性维护。
(B)适应性维护,完善性维护,抢救性维护和辅助性维护。
(C)改正性维护,适应性维护,完善性维护和辅助性维护。
(D)适应性维护,完善性维护,抢救性维护和预防性维护。
5、主要从( A )几个方面进行系统可行性研究。
(A)技术可行性,经济可行性,操作可行性。
(B)技术可行性,经济可行性,系统可行性。
(C)经济可行性,系统可行性,操作可行性。
(D)经济可行性,系统可行性,时间可行性。
6、进行需求分析可使用多种工具,但( C )是不适用的。
(A)数据流图(B)判定表(C)PAD图(D)数据字典7、软件需求分析阶段的工作,可以分为四个方面:对问题的识别、分析与综合、编写需求分析文档以及( B )(A)软件的总结(B)需求分析评审(C)阶段性报告(D)以上答案都不对8、OMT(Object Modelling Technique)方法的第一步是从问题的陈述入手,构造系统模型。
系统模型由对象模型、( C )组成。
A静态模型和功能模型 B动态模型和过程模型C动态模型和功能模型 D静态模型和操作模型9、为了表示项目管理功能工作中各项任务之间的进度衔接关系,常用的计划管理工具是( D )(A)程序结构图(B)数据流图(C) E-R图(D)甘特(Gantt)图①软件生命周期中所花费用最多的阶段是(D)A.详细设计B.软件编码C.软件测试D.软件维护②可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。
2023软件工程导论期末考试题库及参考答案

2023软件工程导论期末考试题库及参考答案一、选择题(每题2分,共20分)1. 以下哪个不是软件工程的三个基本目标?A. 可维护性B. 可用性C. 可靠性D. 高效性参考答案:D2. 软件生命周期中,以下哪个阶段是软件开发过程的核心阶段?A. 需求分析B. 设计C. 编码D. 测试参考答案:C3. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程参考答案:A4. 在软件工程中,以下哪个方法用于估算软件项目的成本和进度?A. COCOMOB. WBSC. SDLCD. CASE参考答案:A5. 以下哪个是软件工程中的一个重要原则?A. 分而治之B. 一次性编写C. 重用D. 模块化参考答案:D6. 以下哪个不是软件工程的基本活动?A. 软件规格B. 软件开发C. 软件验证D. 软件测试参考答案:C7. 以下哪个是软件工程中用于提高软件质量的技术?A. 设计模式B. 重构C. 代码审查D. 单元测试参考答案:C8. 以下哪个不是软件工程的五大基本过程?A. 软件规格B. 软件开发C. 软件维护D. 软件项目管理参考答案:D9. 以下哪个是软件工程中的一个重要概念,用于描述软件系统中的各个组件之间的关系?A. 耦合B. 内聚C. 模块化D. 重用参考答案:A10. 以下哪个是软件工程中的一个重要原则,用于指导软件开发过程?A. 迭代B. 增量C.螺旋D. 模型驱动参考答案:A二、填空题(每题2分,共20分)11. 软件工程的三要素是:方法、工具和______。
参考答案:过程12. 软件生命周期包括:需求分析、设计、编码、______和软件维护。
参考答案:测试13. 软件工程中的面向对象方法包括:封装、继承和______。
参考答案:多态14. 软件工程中的 CASE 工具主要用于支持______。
参考答案:软件设计和开发15. 软件工程中的敏捷开发方法强调______、可维护性和可扩展性。
软件工程导论复习题及答案详解

、名称解释1.软件2. 文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1._________________________________________ 构成一个完整计算机系统的两部分是硬件与。
2._____________________________ 程序设计时代的生产方式是。
3._________________________________ 软件工程涉及到几个学科,它是一门学科。
4.____________________________________________________________ 软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能 ____________________________________________________ 。
5.______________________________________________________________ 将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是 ___________________________________________________ 模型。
6._____________________________________ 喷泉模型是一种以用户需求为动力,以为驱动的模型。
7._____________________________________________________ 结构化方法是一种面向数据流的开发方法。
由结构化分析、 ____________________________________________________________ 、结构化程序设计构成。
8._________________________________________ 软件工程研究的主要内容是软件开发管理和两个方面。
《软件工程导论》期末考试试题和答案(整理)

得分评卷人一、填空题1.软件生计周期一般可分为 __问题定义 __、可行性研究、 _需求剖析 _____、设计编码、 __ 测试 ________、运转与保护阶段。
2.按软件的功能进行区分,软件能够区分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和决断。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常有的软件纲要设计方法有 3 大类:以数据流图为基础结构模块结构的___结构化设计方法 _________,以数据结构为基础结构模块的__jackson 方法 __________ ,以对象、类、继承和通讯为基础的 __面向对象设计方法 __________。
6.__数据流图 ________和 __数据词典 ___共同组成系统的逻辑模型。
7.软件测试的方法有 __剖析方法 ________和 ___非剖析方法 _______(即黑盒法)。
8.单元测试一般以 ___白盒 _____________测试为主, ___黑盒 ______测试为辅。
9.成本预计方法主要有 __自底向上预计 ________、_自顶向下预计 _________和算法模型预计三种种类。
得分评卷人二、单项选择题1.以下哪个阶段不属于软件生计周期的三大阶段(C)。
A 、计划阶段B 、开发阶段C、编码阶段 D 、保护阶段2.需求剖析是( A)。
A、软件开发工作的基础B、软件生计周期的开始C、由系统剖析员独自达成的D、由用户自己独自达成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法对比较,更需要( B)。
A、明确的需求定义B、完好的生命周期C、较长的开发时间D、娴熟的开发人员4.软件保护时,对测试阶段未发现的错误进行测试、诊疗、定位、纠错,直至改正的回归测试过程称为(A)。
A 、更正性保护B、适应性保护C、完美性保护D、预防性保护5. 一般说来,投入运转的软件系统中有错误(A)。
软件工程导论知识点总结(整理)

软件危机是指在计算机软件的开辟和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开辟出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)普通软件很难维护。
(4)软件生产效率很低。
(5)软件开辟成本越来越大。
(6)软件成本与开辟进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
(1) 开辟人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开辟中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开辟过程没有统一的、公认的方法论和规范指导,造成软件维护艰难。
(3) 特别是随着软件规模越来越大,复杂程度越来越高,原有软件开辟方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护艰难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特殊是吸取几十年来人类从事计算机硬件研究和开辟的经验教训。
在开辟软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开辟软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开辟更好的软件工具并使用这些工具。
将软件开辟各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开辟支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
应用程序、系统程序、面向用户的文档资料和面向开辟者的文档资料。
软件生存周期是指从软件定义、开辟、使用、维护到淘汰的全过程。
(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开辟工作的艰难程度。
(2) 可以降低每一个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
《软件工程导论》试题及答案

《软件工程导论》试题及答案软件工程导论试题及答案一、选择题1. 软件工程是一门多学科交叉的学科,其中包括以下哪些学科?A. 计算机科学B. 电子工程C. 数学D. 管理学E. 心理学答案:A、B、C、D2. 软件工程的目标是什么?A. 提高软件开发效率B. 提高软件质量C. 提高软件可靠性D. 提高软件维护性E. 提高软件安全性答案:A、B、C、D、E3. 软件过程模型是指软件开发过程中的一种抽象表示方法,常用的软件过程模型有哪些?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型E. 喷泉模型答案:A、B、C、D4. 以下哪个开发方式可以在软件开发过程中提供更多的灵活性和快速反馈?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型答案:D5. 软件需求分析的主要任务是什么?A. 确定软件的功能和性能需求B. 定义软件系统的架构C. 设计软件的用户界面D. 实施软件测试答案:A二、填空题1. 软件工程的核心目标是提高软件的 ______ 和 ______ 。
答案:质量、可靠性2. 软件工程中的四个基本活动是需求分析、设计、 ______ 和______ 。
答案:实现、维护3. 瀑布模型的五个阶段依次是:需求分析、设计、编码、 ______ 和 ______ 。
答案:测试、维护4. “快速原型”开发模型注重 ______ 。
答案:用户参与5. 敏捷开发模型的核心原则是 ______ 。
答案:迭代开发三、简答题1. 请简要说明为什么软件工程是一门多学科交叉的学科?答:软件工程在开发软件的过程中需要结合计算机科学的知识来实现软件的功能,同时也需要借鉴电子工程的设计思想来构建软件系统的架构。
此外,软件工程还应用了数学方法来进行软件需求分析和软件质量保证,同时也需要管理学的知识来进行项目管理和团队协作。
2. 请简述螺旋模型在软件开发过程中的应用场景。
答:螺旋模型适用于大型复杂项目或对安全性要求较高的项目。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章4.什么是软件工程?它与软件工程方法学有何关系?软件过程是为了开发高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程定义了运用技术方法的顺序,应该交付的文档资料,为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
软件过程是软件工程方法学的3个重要组成部分之一。
7.假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。
一旦实现并测试完之后,该产品将被抛弃。
你打算选用哪种软件生命周期模型?请说明你作出选择的理由。
答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。
此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
第三章一列火车最多有两个火车头。
只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。
火车头既可能是内燃机车也可能是电器机车。
车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。
硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部分。
此外,在硬卧车厢和软卧车厢之间还有一节餐车。
答:jackson图善于描绘复杂事物的组成。
用jackson图描绘一列火车的构成的方法至少有两种,一种方法是把火车分为一个车头和两个车头两类,另一种方法是把后车头作为可选的。
图3.29给出了描绘一列火车的构成的jackson图。
用Jackson 图描绘一列火车的构成第四章3.假设有一个由5000行FORTRAN语句构成的程序(经编译后大约有25000条机器指令),你估计在对它进行测试期间将发生多少个错误?为什么?答:经验表明,在类似的程序中,单位长度里的错误数Er/Ir近似为常数。
美国的一些统计数字告诉我们,通常0.5ⅹ10-2 <= Er/Ir <= 2ⅹ10-2也就是说,在测试之前每1000条指令中大约有5-20个错误.假设在该程序的每1000条指令中大约有10个错误,则估计在对它进行测试期间将发现的错误数为25000ⅹ10/1000=250第五章3、某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。
请判断那些措施是正确的,那些措施不正确。
(1)在分析用户需求时同时考虑维护的问题。
正确。
在分析用户需求的同时考虑维护问题,列出将来可能变更或增加的需求,就可以在设计时为将来可能做的修改预先做一些准备,使得在用户确实提出这些维护要求时,实现起来比较容易一些。
(2)测试完程序后,删去程序中的注解以缩短源程序的长度。
不正确。
程序中的注解是提高程序可理解性的关键的内部文档,删去程序中的注解必然会降低程序的可读性和可理解性,从而降低软件的可维护性。
(3)在软件开发过程中尽量保证各阶段文档的正确性。
正确。
完整准确的文档对提高软件的可理解性有重要贡献,保证文档的正确性是提高软件可维护性的关键。
(4)编码时尽量多用全局变量。
不正确。
程序中使用的全局变量多,不仅违背局部化原理而且会使得具有公共环境耦合的模块数量增多,从而降低程序的可理解性,可修改性和可测试性,因此,这样的软件可维护性较差。
(5)选用时间效率和空间效率尽可能高的算法。
不正确。
一般说来,效率高的算法的可理解性较差,选用效率尽可能高的算法将降低软件的可维护性。
事实上,程序的效率能够满足用户的需求就可以了,没有必要盲目地追求尽可能高的效率。
(6)尽可能利用硬件特点以提高程序效率。
不正确。
程序对硬件特点依赖越多,运行程序的硬件变更适应性维护的工作量也就越大。
(7)尽可能使用高级语言编写程序。
正确。
用高级语言编程时,用户可以给程序变量和程序模块赋予含义鲜明的名字,通过名字能够比较容易的把程序对象和它们所代表的实体联系起来。
此外,高级语言使用的概念和符号更符合人的习惯。
上述事实都使得用高级语言编写的程序更容易阅读,因此也就更容易维护。
(8)进行总体设计时加强模块间的联系。
不正确。
模块间耦合越紧密,程序就越难理解和修改,修改后测试也比较困难。
因此,加强模块间的联系将降低软件的可维护性。
(9)尽量减少程序模块的规模。
不正确。
程序模块的规模很小,就会使程序中包含的模块很多,这将使模块间的接口数量大大增加,从而增加了理解,修改和测试程序的难度,降低了软件的可维护性。
(10)用数据库系统代替文件系统来存储需要长期保存的信息。
正确。
书籍库系统比文件系统使用起来更方便,更安全,用数据库系统代替文件系统来存储需要长期保存的信息,可减少差错,降低改正性维护需求的数量。
此外,使用数据库系统的程序比使用文件系统的程序更容易修改。
上述事实表明,用数据库系统代替文件系统来存储需要长期保存的信息,将提高软件的可维护性。
(11)用CASE环境或程序自动生成工具来自动生成一部分程序。
正确。
自动生成的程序段没有差错,对软件的改正性维护需求自然将减少。
当因用户的需求变更而需要修改程序时,可以先修改相应部分的规格说明,然后用CASE环境或程序自动生成工具自动生成需改动的程序,显然,这样做可以降低维护的工作量。
(12)尽量用可重用的软件构成来组装程序。
正确。
可重用的软件构件基本上没有错误,用这样的构件组装成的程序可靠性高,改正性维护需求自然就比较少。
此外,可重用的软件构件适应性强,应用范围广,容易使它适应新需求,因此,用这样的构建组装的程序比较容易实现适应性或完善性维护。
(13)使用先进的软件开发技术。
正确。
用先进的软件技术开发出来的软件容易理解容易修改容易重用,因此,可维护性较好。
(14)采用防错程序设计技术,在程序中引入自检能力。
正确。
在程序中引入自检能力可以显著提高软件的可靠性,因此将明显减少改正性维护需求的数量。
(15)把与硬件及操作系统有关的代码放到某些特定程序模块中。
正确。
把和硬件及操作系统有关的代码放到某些特定的程序模块中,可以把因环境变化而必须修改的程序代码局限在少数模块内,从而更容易修改和测试。
6.代码重构与正向工程有何相同之处?有何不同之处?答:代码重构和正向工程都需要重新设计数据结构和算法,并且需要重新编写程序代码,这些是代码重构和正向工程的相同的地方。
通常代码重构并不修改程序的体系结构,它只修改某些模块的设计细节和模块中使用的局部数据结构,并重新编写这些模块的代码。
如果修改的范围扩展到模块边界之外并涉及到程序的体系结构,则代码重构变成了正向工程。
第六章习题3.为什么说夏利牌汽车是小汽车类的特化,而发动机不是小汽车类的特化?答:夏利牌汽车具有小汽车的全部属性和行为,它只不过是一种特定品牌的小汽车,因此,夏利牌汽车可以从基类“小汽车”派生出来,也就是说,夏利牌汽车是小汽车类的特化。
发动机是组成小汽车的一种零件,小汽车还有车身、车灯、轮子等许多种其他零件,小汽车所具有的许多属性和行为发动机都不具有,因此,发动机不能从小汽车类派生出来,它不是小汽车类的特化。
9.试简历下述订货系统的用例模型。
假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。
对于每个需要再次订货的零件应该列出下述数据:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。
零件入库或出库称为事务,通过放在仓库中的终端把事务报告给订货系统。
当某种零件库存数量少于库存量临界值时就应该再次订货。
答:从对这个订货系统的需求可以知道,仓库管理员通过放在仓库中的终端把零件入库、出库事务报告给订货系统,系统接收到事务信息之后应该处理事务;采购员需要使用订货系统提供的产生报表功能,以获取订货报表。
综上所述,可以画出下图所示的用例图。
订货系统用例图第七章习题2.应该依据什么准则来评价脚本?答:脚本必须从用户的观点来描述每个重要的功能序列,因此,脚本应该能够说明系统的一类重要功能或具体的使用方法。
3.应该依据什么准则来评价状态图?答:状态图应该描述所有可能的状态转换。
图中每条弧都要有一个引起状态转换的事件。
从开始结点(初态)到每个结点(中间状态),以及从每个结点到最终结点(终态),都必须有一条路径。
第八章3、在面向对象设计过程中为什么会调整对目标系统的需求?怎样调整需求?答:有两种情况会会导致修改由面向对象分析确定下来的系统需求:一是客户需求或系统外部环境发生了变化;二是分析员对问题域理解不透彻或缺乏领域专家帮助,以致面向对象分析模型不能完整、准确地反映客户的真实需求。
为了调整对目标系统的需求,通常只需简单地修改面向对象分析的结果(例如,增添或删掉一些类,从已有类派生出新类派,调整某些类之间的关系),然后把这些修改反映到问题域子系统中。
6、从面向对象分析阶段到面向对象设计阶段,对象模型有何变化?答:在面向对象分析阶段建立的对象模型中,对象是对问题空间中实体的抽象。
随着软件开发过程进入面向对象设计阶段,这些对象逐渐变成了解空间的实体。
第九章2.为什么是强类型语言?这类语言有哪些优点?答:按照编译时对程序中使用的数据进行类型检查的严格程度,可以把程序设计语言划分成两类。
如果语言仅要求每个变量或属性隶属于一个对象,则是弱类型的;如果语法规定每个变量或属性必须准确地属于某个特定的类,则这样的语言是强类型的。
强类型的语言主要有两个优点:一是有利于在编译时发现程序错误,二是增加了优化的可能性。
因此,强类型语言有助于提高程序的可靠性和运行效率。
4.为什么说参数化类有助于提高可重用性?答:在实际的应用程序中,往往有这样一些软件元素(即函数、类等软件成分),从它们的逻辑功能看,彼此是相同的,所不同的主要是处理的对象类型不同。
所谓参数化类,就是使用一个或多个类型去参数化一个类的机制,有了这种机制,程序员就可以先定义一个参数化的类模板(即在类定义中包含以参数形式出现的一个或多个类型),然后在使用时把数据类型作为参数传递进来,从而把这个类模板在不同的应用程序中重复使用,或在同一程序的不同部分重复使用。