《软件工程导论》考试夹带
2023软件工程导论期末考试题库及参考答案

2.判断题1.向滞后的项目中增加人手会使得项目更加滞后。
(T)2.过程描述语言可以用于描述软件的系统结构。
(F)3.按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。
(F)5.只有质量差的软件产品才需要维护。
(F)6.层次图用来描述软件的层次结构。
层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。
在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。
(F)7.建立动态模型的第一步,是编写典型交互行为的脚本。
(T)8.软件错误可能出现在开发过程的早期,越早修改越好。
(T)9.软件模块的耦合是越低越好。
(T)10.一个好的测试用例在于能发现至今未发现的错误。
(T)11.面向对象设计的结果只能采用面向对象语言来实现(F)12.一个成功的项目唯一提交的就是运行程序。
(F)13.用例之间的关系有3种。
(T)14.面向对象设计准则也要遵循弱耦合的原则,但是继承耦合则应该提高,紧密地继承耦合与高度的一般-特殊内聚是一致的。
(T)15.软件工作的考虑范围主要是程序设计和实现。
(F)16.环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:流图G的环形复杂度V(G)=N-E+2o(改成E-N+2)(F)17.等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
(T)18.在进行总体(改成概要)设计时应加强模块间的联系。
(F)19.系统结构图是精确表达程序结构的图形表示法。
因此,有时也可以将系统结构图当作系统流程图使用。
(T)20.建立动态模型的第一步,是编写典型交互行为的脚本。
(T)21.在程序调试时,找出错误的位置和性质比改正该错误更难。
(F)22.如果通过软件测试没有发现错误,则说明软件是正确的。
(F)23.快速原型模型可以有效地适应用户需求的动态变化。
(T)24.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产2023软件工程导论期末考试题库及参考答案1 .填空题1.一般来说,可以从一致性、完整性、现实性和有效性四个方面验证软件需求的正确性。
《软件工程导论》期末复习材料

《软件工程导论》期末复习材料1、什么是软件危机?产生的主要原因有哪些?(1页)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要原因:1)用户对软件需求的描述不精确。
2)软件开发人员对用户需求的理解有偏差。
3)缺乏处理大型软件项目的经验。
4)开发大型软件易产生疏漏和错误。
5)缺乏有力的方法学的指导和有效的开发工具的支持。
6)面对日益增长的软件需求,人们显得力不从心。
2、什么是瀑布模型,瀑布模型的缺点主要有哪些?(15页)瀑布模型将软件开发分成:需求分析、规格说明、设计、编码、综合测试和维护阶段,每个阶段必须完成规定的文档,必须等前一个阶段完成之后才开始下一个阶段的工作,前一个阶段输出的文档是下一个阶段的输入文档。
缺点主要包括:1)在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2)在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3)不支持产品的演化,缺乏灵活性,使软件产品难以维护。
3、什么是数据流图,数据流图由哪些基本符号组成?(40页)数据流图:简称DFD, ,主要用于SA(结构化分析)方法,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,是一种功能模型. 基本符号有四种: ->,箭头,表示数据流; =,开口矩形或者两条平行线,表示数据存储; 正方形或者立方形,表示数据的源点或终点,圆角矩形或圆形,表示加工,也就是数据的处理;数据流图中每一个加工至少有一个输入流和一个输出流。
4、数据字典有哪几种元素组成?(47页)1)数据流,2)数据元素,3)数据存储,4)处理或者加工5、需求分析阶段的基本任务是什么(56页)1).问题识别,确定系统的综合需求和数据需求,包括a.功能需求b.性能需求c.环境需求d.用户界面需求e.出错处理的需求f.接口需求2).分析与综合,导出软件的逻辑模型.3).修正开发计划4).编写文档6、模块的内聚有哪几种?(99页)功能内聚(模块就是一个单一功能)、顺序内聚(模块中的处理必须顺序执行)、通信内聚(模块中所有任务都是对同一批数据操作)、过程内聚(模块中的处理必须按特定次序执行)、时间内聚(模块的任务要在同一时间段完成)、逻辑内聚(模块的任务在逻辑上属于一类)、偶然内聚(模块中的任务有很松散的关系)。
《软件工程导论》考试复习资料

2016-2017年第一学期《软件工程》期末复习答疑一、怎样进行课程的总复习?将在16周最后的课程总复习课(串讲):第一、各章的复习重点;第二、适当讲解期末考试复习题。
下面给同学们提几点建议,供大家参考:(1)在进行课程的总复习前,应该完成课程的上机练习作业;(2)要进行全面地系统的复习,决不能靠猜题和押题等侥幸心理进行复习,因为结业考试的题量很大,内容覆盖非常广,所以必须进行全面地系统的复习;(3)在全面地系统复习基础上,掌握的课堂讲授的知识点。
尤其要抓住各章的重点和难点问题深入复习(我将会在最后一次复习课中强调的)。
(4)在全面复习的基础上,认真练习或阅读期末考试复习题(与考试题型一致)。
(5)所给的复习资料上未提到内容,只要求作一般性的掌握,可以不必去深究,但不代表一点不考,因为需要掌握《软件工程》中的一些常识。
二、课程理论考试试卷题型本课程理论考试是闭卷考试,题型包括:名词解释5题15分;单项选择题15题15分,填空题10题20分,判断题20题10分,问答与简述题5题20分。
综合题两题20分。
一、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2、需求分析答:需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
3、Alpha测试答:用户在开发者的场所进行测试,并且在开发者的指导下进行,测试在受控环境中进行,开发者记录发现的错误和问题4、Beta测试答:用户在一个或多个客户场所进行测试,不受开发者控制,测试者记录发现的问题和错误,定期将问题报告发送给开发者。
(完整)《软件工程导论》试题及答案,推荐文档

一, 判断题(正确的在括号内打上"√",错误的打上"×".每题1.5分,共15分)Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格.(×)PAD图在设置了五种基本控制结构后,还允许递归调用. (×)为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(×)当验收测试通过,软件开发就完成了.(×)完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×)在进行总体设计时应加强模块间的联系.(×)系统结构图是精确表达程序结构的图形表示法.因此,有时也可以将系统结构图当作系统流程图使用.(×)用黑盒法测试时,测试用例是根据程序内部逻辑设计的.(×)在程序调试时,找出错误的位置和性质比改正该错误更难.(√)以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一.(√)二,单项选择题(每小题2分,共10分)试判断下列叙述中,哪个(些)是正确的(D)a,软件系统中所有的信息流都可以认为是事务流b,软件系统中所有的信息流都可以认为是变换流c,事务分析和变换分析的设计步骤是基本相似的A,a B,b C,c D,b和c进行需求分析可使用多种工具,但(B)是不适用的.A,数据流图B,PAD图C,判定表D,数据词典在详细设计阶段,经常采用的工具有(A).A,PAD B,SA C,SC D,DFD详细设计的结果基本决定了最终程序的(C)A,代码的规模B,运行速度C,质量D,可维护性使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准.A,程序的内部逻辑B,程序的复杂程度C,该软件的编辑人员D,程序的功能三,多项选择题(每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分.) (ABCD)可以作为模块.A,子程序B,函数C,过程D,编译文件下面哪些测试属于黑盒测试(BCD).A,路径测试B,等价类划分C,边界值分析D,错误推测E,循环测试下列属于度量效益方法的是(ABCD).A,货币的时间价值B,投资回收期C,收入D,投资回报率软件维护的策略包括(BCD).A,定期检测维护B,改正性维护C,适应性维护D,完善性维护下列属于软件测试过程的是(ABE).A,单元测试B,组装测试C,内核测试D,法律验证E,确认测试四,简答题(每题6分,共24分)耦合性和内聚性有几种类型其耦合度,内聚强度的顺序如何答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高强:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚:弱请举例说明什么是多态,什么是重载答案:多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象.也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为.当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法.重载是指一个类中有多个同名的方法,但在操作数个数或类型上有区别.例: public class A{int age;String name;public void setValue(int i) {age=i; }public void setValue(String s) {name=s; }什么是数据字典简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分)简述编码风格的重要性.答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量. 面向对象的测试和传统开发方法的测试有什么不同答案:(1)二者都可以分成四个阶段进行.但传统测试最小单元是模块,而在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块.(2)因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的组装策略意义不大. 每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,因为在构成类的各个部件之间存在各种直接的和非直接的交互.对于面向对象系统的组装测试,存在两种不同的测试策略.五,分析应用题(20分)求一组数组中的最大数, 数组表示为A(n) ,n=1,2……n的自然数.(10分)请画出程序流程图(4分)请画出该算法的N-S图(3分)请用PAD图来表示该算法(3分)答案:2. 下面是某程序的流程图:(10分)计算它的环路复杂性.(3分) 答案:7为了完成基本路径测试,求它的一组独立的路径.(7分)答案:路径1: (0)—①—(13)—(19)路径2: (0)—②—③—(14)—(19)路径3: (0)—②—④—⑤—(15)—(19)路径4: (0)—②—④—⑥—⑦—(16)—(19)路径5: (0)—②—④—⑥—⑧—⑨—(17)—(19)路径6: (0)—②—④—⑥—⑧—⑩—(11)—(18)—(19)路径7: (0)—②—④—⑥—⑧—⑩—(12)—(19)六,阅读下列说明和数据流图,回答问题1至问题4,将解答填入答题纸的对应栏内.(12分) [说明]某基于微处理器的住宅安全系统,使用传感器(如红外探头,摄像头等)来检测各种意外情况,如非法进入, 火警,水灾等.房主可以在安装该系统时配置安全监控设备(如传感器,显示器,报警器等),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互.在安装过程中,系统给每个传感器赋予一个编号(即id)和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应自动拨出的电话号码.当系统检测到一个传感器事件时,就激活警报,拨出预置的电话号码,并报告关于位置和检测到的事件的性质等信息.加工4的细化图[问题1](3分)数据流图1(住宅安全系统顶层图)中的A和B分别是什么答案:A:传感器: B:报警器[问题2](3分)数据流图2(住宅安全系统第0层DFD图)中的数据存储"配置信息"会影响图中的哪些加工答案:监控传感器,显示信息和状态[问题3](6分)将数据流图3(加工4的细化图)中的数据流补充完整,并指明加工名称,数据流的方向(输入/输出)和数据流名称.答案: 4.4"读传感器"添加输入数据流"传感器状态"4.1"显示格式"添加输出数据流"传感器数据"4.5"拨号"添加输出数据流"电话拨号"七,请以自己的实际体会说明项目管理的意义和作用.(8分)答案:(要点)软件项目管理就是对软件工程项目开发过程的管理.具体地说,就是对整个软件生存期的一切活动进行管理,以达到提高生产率,改善产品质量的目的.软件项目管理的职能:(1)制定计划:规定待完成的任务,要求,资源,人力和进度等.(2)建立项目组织:为实施计划,保证任务的完成,需要建立分工明确的责任机构.(3)配备人员:任用各种层次的技术人员和管理人员.(4)指导:鼓励和动员软件人员完成所分配的任务.(5)检验:对照计划或标准监督检查实施的情况.。
软件工程导论知识点总结(整理)

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

张海藩《软件工程导论》配套题库本书是详解研究生入学考试指定考研参考书目为张海藩《软件工程导论》(第6版)的专业课复习题库,具体来说包括以下四部分:第一部分为名校考研真题。
精选部分名校考研真题及相关教辅典型习题,并提供详尽答案解析。
学员可以熟悉考试真题的特点,并测试自己的水平。
第二部分为课后习题。
本部分内容选用张海藩《软件工程导论》(第6版)的课后习题,并提供详细答案和解析,由于张海藩《软件工程导论》知识点涵盖广,因此考生可在第一轮复习中通过此部分内容的练习,打好专业课基础。
第三部分为章节题库。
遵循张海藩《软件工程导论》(第6版)的章目编排,精选详析了部分名校近年的考研真题,同时针对该教材的重难点相应整理了典型题,并对题库中的试题进行详细解析。
第四部分为模拟试题。
根据历年考研真题的命题规律及热门考点进行押题,其试题数量、试题难度、试题风格与研究生入学考试真题几乎一样。
通过模拟试题的练习,学员既可以用来检测学习该考试科目的效果,又可以用来评估对自己的应试能力。
本书提供电子书及打印版,方便对照复习。
目录第一部分 名校考研真题 一、选择题 二、填空题 三、判断题 四、名词解释 五、简答题 六、综合应用题第二部分 课后习题 第1章 软件工程学概述 第2章 可行性研究 第3章 需求分析 第4章 形式化说明技术 第5章 总体设计 第6章 详细设计 第7章 实 现 第8章 维 护 第9章 面向对象方法学引论 第10章 面向对象分析 第11章 面向对象设计 第12章 面向对象实现 第13章 软件项目管理第三部分 章节题库 第1章 软件工程学概述 第2章 可行性研究 第3章 需求分析 第4章 形式化说明技术 第5章 总体设计 第6章 详细设计 第7章 实 现 第8章 维 护 第9章 面向对象方法学引论 第10章 面向对象分析 第11章 面向对象设计 第12章 面向对象实现 第13章 软件项目管理第四部分 模拟试题 张海藩《软件工程导论》(第6版)模拟试题及详解(一) 张海藩《软件工程导论》(第6版)模拟试题及详解(二)。
864软件工程导论考试大纲

江西师范大学硕士研究生入学考试初试科目考试大纲科目代码、名称: 864 软件工程导论适用专业: 083500 软件工程一、考试形式与试卷结构(一)试卷满分及考试时间本试卷满分为150分,考试时间为180分钟。
(二)答题方式答题方式为闭卷、笔试。
试卷由试题和答题纸组成;答案必须写在答题纸相应的位置上。
(三)试卷内容结构单项选择题:10小题,每小题3分,共30分简答题: 5小题,每小题8分,共40分分析设计题:5小题,共80分二、考查目标(复习要求)软件工程专业学术型研究生入学考试科目为《软件工程导论》,该科目要求考生系统掌握本课程的基本知识、基础理论和基本方法,并能运用相关理论和方法分析、解决软件工程中的实际问题。
三、考查范围或考试内容概要第1章软件工程学概述1.软件危机2.软件工程3.软件生命周期4.软件过程第2章可行性研究1.可行性研究的任务2.可行性研究过程3.系统流程图4.数据流图5.数据字典6.成本/效益分析第3章需求分析1.需求分析的任务2.与用户沟通获取需求的方法3.分析建模与规格说明4.状态转换图5.验证软件需求第4章总体设计1.设计过程2.设计原理3.启发规则4.描绘软件结构的图形工具5.面向数据流的设计方法第5章详细设计1.结构程序设计2.人机界面设计3.过程设计的工具4.面向数据结构的设计方法5.程序复杂程度的定量计算第6章实现1.编码2.软件测试基础3.软件测试过程单元测试,集成测试,确认测试3.软件测试技术白盒测试技术,黑盒测试技术4.调试第7章维护1.软件维护的定义2.软件维护的特点3.软件维护的过程4.软件的可维护性第8章面向对象方法学1.面向对象建模对象模型,动态模型,功能模型2.面向对象分析面向对象分析的基本过程,建立对象模型,建立动态模型,建立功能模型3.面向对象设计面向对象设计的准则,启发规则,软件重用,设计与优化4.面向对象实现程序设计语言,程序设计风格,测试策略第9章软件项目管理1.估算软件规模2.工作量估算3.进度计划4.人员组织5.质量保证6.软件配置管理7.能力成熟度模型参考教材或主要参考书:张海藩.软件工程导论(第五版).北京:清华大学出版社,2008四、样卷一.单项选择题(本大题共10小题,每小题3分,共30分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
《软件工程导论》期末考试试题与答案

《软件工程导论》期末考试■试题与答案一、填空題I. _________________________________________________ 软件工程中的结构化分析$人是_种面向的分析方法。
2 •软件模块独立性的两个定性度虽标准是 ________________________________ o3 •软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个 _________ 的过程。
4. _____ 和数据字典共同构成了系统的逻辑模型5._________ 是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。
二单选 题1 .在软件危机中表现出来的软件质虽差的问题,其原因是_________ o A.软件研发人员素质太差B.用户经常干预软件系统的研发工作 C.没有软件质虽标准D.软件开发人员不遵守软件质量标准 2 •在软件质虽因素中,软件在异常条件下仍能运行的能力成为软件的 _________ o A.安全性B.健壮性C.可用性D.可靠性3 .在下列测试技术中, _____________ 不属于黑盒测试技术。
A.等价划分B.边界值分析C.错误推测D.逻辑覆盖4•软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法主要是指______ o A.原型化方法B.结构化方法C.功能化方法D.面向对象方法5・ _____ 是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A •多态7 •软件测试时为了 ___________ 而执行程序的过程。
A.纠正错误B.发现错误C. 避免错误D.证明错误8 •在软件系统中,一个模块应具有什么样的功能,这是由_____ 决定的。
A.总体设计B.需求分析C.详细设计D •程序设计9 •面向对象分析是对系统进行 __________________ 的一种方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
2.产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
3.软件工程的定义:是指导计算机软件开发和维护的一门工程学科。
具体如下:开发进度难以估计,开发质量难以衡量设计中的错误很难维护规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
4.怎样解决软件危机?(1)对软件要有正确的认识(2)软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
(3)应该推广使用在实践中总结出来的开发软件的成功的技术和方法。
(4). 应该开发和使用更好的软件工具。
5.可行性研究的任务?(1)需要进一步分析和澄清问题定义。
(2)导出系统的逻辑模型。
(3)最根本的任务是对以后的行动方针提出建议。
6.需求分析1. 功能需求这方面的需求指定系统必须提供的服务。
通过需求分析应该划分出系统必须完成的所有功能。
2. 性能需求软件开发的技术性指标。
例如:存储容量限制执行速度、响应时间吞吐量7.形式化说明技术Z语言:形式化的规格说明语言中,较典型的一种语言。
用Z语言描述的,最简单的形式化规格说明含有四个部分:(1)给定的集合,数据类型及常数;(2)状态定义;(3)初始状态;(4)操作;8.总体设计模块化:采用模块化原理可以使软件结构清晰,容易设计也容易阅读和理解、测试。
抽象:抽象就是抽出事物的本质特性而暂时不考虑它们的细节。
逐步求精:逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
信息隐蔽和局部化:该原理有利于提高模块的内聚性。
模块独立:模块独立重要性理由:第一,有效的模块化的软件比较容易开发出来。
第二,独立的模块比较容易测试和维护。
9.详细设计第一章1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
2.产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
//3.软件配置的主要包括程序、文文件和数据等成分。
4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
//5.所谓基准配置又称基线配置。
6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型7.软件工程方法学包含三个要素:方法、工具和过程。
8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学9.传统方法学也称为生命周期方法学或结构化范型10.面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类 3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
4.对象彼此间仅能通过发送消息互相联系。
11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)12.最基本的测试是集成测试和验收测试。
13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。
14.所谓构件就是功能清晰的模块或子系统15.RUP(Rational统一过程)软件开发的生命周期是一个二维的生命周期模型16.”极限”二字的含义是指把好的开发实践运用到极致17.微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。
18.面向对象方法=对象+类+继承+用消息通信第二章可行性研究19.可行性研究的目的就是用最小的代价在尽可能多的时间内确定问题能否能够解决。
20.可行性包括:技术可行性,经济可行性,操作可行性。
21.系统流程图是概括地描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文文件,数据库,人工过程等)。
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流程图而不是程序流程图。
22.书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
在数据流程图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。
数据流程图是系统逻辑功能的图形表示。
23.用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。
24.有数据元素组成的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。
选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次。
第三章25.访谈有两种基本形式,分别是正式的和非正式的访谈26.所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析27.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
28.使用简易的应用规格说明技术分析需求的典型过程:(总结出来)29.快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。
30.所谓模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
31.需求分析过程应该建立3种模型,它们分别是数据模型,功能模型,行为模型.32.概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型33.数据对象是对软件必须理解的符合信息的抽象。
34.数据对象彼此之间相互连接的方式称为联系,也称为关系。
联系可分为3种类型:一对一联系,一对多联系,多对多联系。
35.状态时任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。
36.事件就是引起系统做动作或(和)转换状态的控制信息。
37.IPO图是输入,处理,输出图的简称。
38.软件的验证:一致性,完整性,现实性,有效性第五章42.总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。
43.模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列。
44.抽象就是抽出事物的本质特性而暂时不考虑它们的细节。
45.逐步求精定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
46.抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。
47.信息隐藏,信息隐藏的原理,48.局部化就是把一些关系密切的软件元素物理的放得彼此靠近。
49.耦合是对一个软件结构内不同模块之间互连程度的度量。
50.数据耦合是低耦合,控制耦合式中等程度的耦合,最高程度的耦合式内容耦合。
51.如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。
52.中内聚主要有两类:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。
53.高内聚也有两类:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序内聚。
深度表示软件结构中控制的层数,它往往能粗略的标志一个系统的大小和复杂程度。
54.宽度是软件结构内同一个层次上的模块总数的最大值。
55.扇出事一个模块直接控制(调用)的模块数目。
56.一个模块的扇入表明有多少个上级模块直接调用它。
57.设计的很好的软件结构通常顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇出)58.模块的作用域应该在控制域之内(2种方法)?????59.面向数据流的设计方法把信息流映像成软件成结构,信息流的类型决定了映射的方法。
信息流有两种类型:变换流,事务流。
60.总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案。
并且进而确定组成系统的每个程序的结构。
61.在进行软件结构设计时应该遵循的最主要的原理是模块独立原理。
62.第六章63.结构程序设计的经典定义:如果一个程序的代码仅仅通过顺序,选择和循环这3种基本结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
64.系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标),到软件给出预期的响应(输出信息或动作)之间的这段时间。
65.系统响应时间有两个重要的属性:长度和易变性。
66.易变性指系统响应时间相对于平均响应时间的偏差。
67.一般交互指南涉及信息显示,数据输入和系统整体控制。
68.过程涉及的工具:程序流程图,盒图,PAD图,判定表,判定树69.PDL作为一种设计工具有如下一些特点(要求看懂伪码)第七章70.通常把编码和测试统称为实现。
71.编码和单元测试属于软件生命周期的同一个阶段。
72.编码的标准:1.系统用户的要求2.可以使用的编译程序3.可以得到的软件工具4.工程规模5.程序员的知识6.软件可移植性要求7.软件的应用领域73.所谓程序内部的文文件包括恰当的标识符、适当的注释和程序的视觉组织等。
74.当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。
75.效率主要指处理机时间和内存容量两个方面。
76.在大型计算机中必须考虑操作系统页式调度的特点,一般说来,使用能保持功能域的结构化控制结构,是提高效率的好方法。
77.二级内存的输入输出应该以信息组为单位进行。
78.测试阶段的根本目标是尽可能地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。
79.软件测试的目标:1.测试是为了发现程序中的错误而执行程序的过程2.好的测试方案是发现了至今为止发现的错误的测试 3.成功的测试是发现了至今为止尚未发现的错误的测试。
80.测试的正确定义是“为了发现程序中的错误而执行程序的过程”。
第八章81.软件工程的主要目标就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。
82.所谓软件维护就是在软件应经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
83.四种维护的定义:1.改正性维护2.适应性维护3.完善性维护4.预防性维护。
P18984.用于维护工作的劳动可以分成生产性活动和非生产性活动。