南京晓庄学院-软件工程期末考试提纲
一、选择 1. 下面不属于软件工程的3个要素是( D) A).工具 B).过程 C).方法 D).环境 2. 检查软件产品是否符合需求定义的过程称为( A) A).确认测试 B).集成测试 C).验证测试 D).模块测试 3.数据存储和数据流都是(D ),仅仅是所处的状态不同. A).分析结果 B).事件 C).动作 D).数据 4.数据流图和( C)共同组成系统的逻辑模型. A).HIPO图 B).PDL C).数据字典 D).层次图 5.数据元素组成数据的方式的基本类型(D ) A).顺序 B).选择 C).循环 D).以上全部 6.结构化分析方法就是面向(B )的自顶向下逐步求精进行需求分析的方法. A).目标 B).数据流 C).功能 D).对象 7.( C)是指让一些关系密切的软件元素在物理上彼此靠近. A).信息隐蔽 B).内聚 C).局部化 D).模块独立 8.在进行软件结构设计时应该遵循的最主要的原理是(C ) A).抽象 B).模块化 C).模块独立 D).信息隐蔽 9.在测试中,下列说法错误的是( B) A).测试是为了发现程序中的错误而执行程序的过程 B).测试是为了表明程序的正确性 C).好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案 D).成功的测试是发现了至今为止尚未发现的错误的测试 10.软件详细设计主要采用的方法是( A). A).结构化程序设计 B).模型设计 C).结构化设计 D).流程图设计 11.模块本身的内聚是模块独立性的重要性度量因素之一.在7类内聚中,具有最强内聚的一类是( D). A).顺序性内聚 B).过程性内聚 C).逻辑性内聚 D).功能性内聚 12.数据字典是对数据定义信息的集合,它所定义的对象都包含在(A ). A).数据流图 B).程序框图 C).软件结构 D).方框图 13.软件开发的结构化分析方法,常用的描述软件功能需求的工具是( C). A).业务流程图、处理说明 B).程序流程图、模块说明 C).数据流图、数据字典 D).系统流程图、程序编码 14.软件开发的结构化设计方法,全面指导模块划分的最重要的原则应该是(C ). A).模块高内聚 B).模块低耦合 C).模块独立性 D).程序模块化 15.面向数据流的软件设计方法,一般是把数据流图中得数据流化分为( B)两种流,再将数据流图映射为软件结构. A).数据流与事务流 B).变换流和事务流 C).信息流与控制流 D).交换流和数据流 16.软件设计中,可应用于详细设计的工具有( A). A).程序流程图、PAD、盒图和伪码 B).数据流程图、PAD、结构图和伪码 C).业务流程图、N-S图和伪码 D).数据流程图、PAD、N-S图和伪码 17.结构化方法将软件生命周期分为软件定义、软件开发和运行维护3个时期,下列任务中(AB )属于软件定义时期的任务. A).需求分析 B).问题定义 C).总体设计 D).编码 18.耦合是软件各个模块间连接程度的一种度量.一个模块直接访问了另一个模块的内部数据应属于( A)方式. A).内容耦合 B).公共耦合 C).外部耦合 D).控制耦合 19.提高软件的可维护性可采取很多措施,下列( A)不在措施之列. A).提供没有错误的程序 B).建立质量保证制度 C).改进程序文档质量 D).明确软件质量标准 20.数据字典是用来定义( D )中的各个成份的具体含义的。 A.流程图 B.功能结构图 C.系统结构图 D.数据流图
二.填空题 1瀑布模型把软件生命周期划分为软件定义、 软件开发 和运行与维护3个阶段,而每个阶段又可分为若干个小更小的阶段. 2 文档 是软件工程实施中的重要成分,它不仅是软件开发的各阶段的重要依据,而且也是影响软件的可维护性. 3软件生命周期中 可行性研究 阶段是决定软件项目是否继续开发的关键, 4.从可行性研究从技术可行性、 操作可行性/经济可行性 和社会可行性3各方面进行论证. 5.在可行性研究中, 数据流图 描述系统的基本功能和处理流程. 6.结构化分析方法是 面向数据流自顶向下逐步求精进行需求分析 的方法. 7.在软件开发的结构化方法中,构成系统逻辑模型的是 数据流图 和 数据字典 . 8.面向数据流的软件设计中,一般是把数据流图的数据流划分为 变换流 和 事务流 9.PAD是一种 详细设计/过程设计 工具. 10.软件模块独立性的两个定性度量标准是 内聚 和 耦合 . 11.在白盒法测试中,逻辑覆盖技术中发现错误能力最强的技术是 路径覆盖 技术. 12.若有一个计算类型程序,它的输入量只有一个X,其范围是[-1.0,1.0].现在输入的 角度考虑设计一组测试该程序的测试用例为-1.001,-1.0,1.0,1.001,设计这组测 试的方法是 边界值分析 . 13.软件危机通常是指在计算机软件 开发 和 维护 中所产生的一系列严重的问题。 14 软件结构图的宽度是指一层中______最大____________的模块个数。 15 在面向对象方法中,对象实现了数据和操作的结合,使数据和操作_______封装_________于对象的统一体中。 16 软件结构是以 模块 为基础而组成的一种控制层次结构。 17 如果知道软件的规格说明书描述的程序功能,那么就可以采用_____黑盒测试/功能测试___________ 进行测试。 18 划分模块时尽量做到___高内聚,低耦合_____,保持模块的独立性。 19在需求分析时,常采用 状态转换图 来描绘系统的行为。 20 软件需求分析时,应建立数据模型、功能模型和___行为模型_____。
选择题 1 ( A)的目的在于用最小的代价确定在问题定义阶段所确定的系统的目标和规模是否实现, 所确定的问题是否可以解决,系统方案是否可以接受. A)可行性研究 B)需求分析 C)总统设计 D)软件计划 2软件按照设计的要求,在规定时间和条件下不出故障、持续运行的要求的质量特性 称为( A). A)可靠性 B)可用性 C)正确性 D)完整性 3软件需求阶段要解决的问题是(A ). A)软件做什么 B)软件提供哪些信息 C)软件采用什么结构 D)软件怎样做 4软件结构图能描述软件系统的总体结构,它应在软件开发的(B )阶段提出. A)需求分析 B)总体设计 C)详细设计 D)代码编写 5.软件开发的生命周期方法中,对模块的具体功能进行描述得是(C ) A)需求分析 B)概要设计 C)详细设计 D)编码设计 6.PAD(problem Analysis Diagram )图是一种( B)工具. A)系统描述 B)详细设计 C) 测试 D)编程辅助 7.Jackson设计方法是由Jackson所提出的,它是一种面向(C)的软件设计方法. A) 对象 B) 数据流 C) 数据结构 D) 控制结构 8.结构化程序设计思想的核心是要求程序只有顺序,循环和(A)三种结构组成. A) 分支 B) 单入口 C) 单出口 D) 有规则GOTO 9.使用表示结构化的问题分析图(PAD)符号所设计出来的程序(A) A) 必然是结构化程序 B) 一般不是结构化程序 C) 一般是结构化程序 D) 绝对不是结构化程序 10.结构化程序流程图中一般包括3种基本结构,下述结构中(D)不属于其基本结构. A) 顺序结构 B) 条件结构 C) 选择结构 D) 嵌套结构 11.模块的独立性是软件模块化设计的关键之一,一般用内聚和(D)两个定性标准来度量模块的独立性. A) 软件的质量 B) 一致性 C) 可重用 D) 耦合 12.耦合是软件中各种模块间相互联系的一种度量,耦合的强弱取决于模块间的复杂程度,在耦合的若干种类中,耦合度最高的是(A) A) 内容耦合 B) 非直接耦合 C) 数据耦合 D) 控制耦合 13.一个模块把数据作为参数传送给另一个模块,这种耦合方式称为(A) A) 数据耦合 B) 公共耦合 C) 控制耦合 D) 标记耦合 14.模块设计的原则是(A) A) 低耦合,高内聚 B) 高耦合,高内聚 C) 高耦合,低内聚 D) 低耦合,低内聚 15.内聚性是对模块功能强度的衡量,下列选项中,内聚性最弱(C) A) 逻辑内聚 B) 顺序内聚 C) 偶然内聚 D) 时间内聚 16.内聚性是对模块功能的衡量,下列选项中,内聚性最强的是(D) A). 逻辑内聚 B) 顺序内聚 C) 偶然内聚 D) 功能内聚 17.模块间的耦合性越强,说明模块之间的联系越密切,耦合性最弱的是(A) A) 非直接耦合 B) 控制耦合 C) 内容耦合 D) 公共耦合 18.软件测试方法中,黑盒测试法和白盒测试法是常用的方法,其中黑盒测试法主要用于测试(B) A) 结构合理性 B) 软件的功能 C) 程序正确性 D) 程序内部逻辑 19.在软件测试中设计测试用例主要由输入输出数据和(C)两部分组成. A) 测试规则 B) 测试计划 C) 预期输出结果 D) 以往测试记录分析 20.在软件工程中,软件测试的目的是(B) A) 试验性运行软件 B) 发现软件错误 C) 证明软件是正确的 D) 找出软件中的全部错误 21.对软件是否能达到用户所期望的要求的测试称为(D) A) 集成测试 B) 系统测试 C) 单元测试 D) 验收测试 22.以下(B)不属于白盒测试技术 A) 基本路径测试 B) 边界值分析
软件工程复习提纲
软件工程复习提纲1.软件危机、软件工程;比较瀑布模型、快速原形模型、螺旋模型、增量模型 2.软件周期各阶段主要任务3.黑盒测试方法、白盒测试包括那些测试?调试,软件维护内容、软件配置管理 4.ISO9000-3,CMM 等级特征、甘特图、工程网络图主题层类与对象层 结构层 属性层服务层5.类、封装、继承6.程序流程图、PAD图,PDL语言7.数据流图→软件结构图某培训中心要研制一个计算机管理系统。
它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。
1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件.课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。
2)如果是想注销原来已选修的课程,则由注销人员在课程文件.学生文件和账目文件上做相应的修改,并给学生注销单。
3)如果是付款的,则由财务人员在账目文件上登记,也给学生一张收费收据。
要求:1. 对以上问题画出数据流程图。
2. 画出该培训管理的软件结构图的主图。
用SA方法画出下列问题的顶层和0层数据流图。
某运动会管理系统接受来自运动员的报名单.裁判的比赛项目及项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次.团体名次发送给发布台。
该系统有两部分功能:(1)登记报名单:接受报名单.比赛项目,产生运动员号码单.项目参加者,形成运动员名单及团体成绩表两种数据存储。
(2)统计成绩:接受项目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体名次。
某图书馆借阅系统有以下功能:(1)借书:根据读者的借书证查询读者档案,若借书数目未超过规定数量,则办理借阅手续(修改库存记录及读者档案),超过规定数量者不予借阅。
对于第一次借阅者则直接办理借阅手续。
(2)还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限则罚款。
请对以上问题,画出分层数据流图。
本科软件工程期末考试各章复习要点整理
软件工程期末考试各章复习要点整理第一章软件工程概论本章以常见于简答题、选择题、填空题和判断题,主要内容包括下面几点:•什么是软件•软件的性质•什么是工程化•软件工程研究的内容•软件危机的表现题型举例:例1. 什么是软件,软件的本质是什么?或软件性质、软硬件最大区别(简答、填空或判断)答:是完成某类问题求解的程序和数据以及为维护程序必须提供的一系列文档组成的集合。
软件的内在性质是:软件具有高度的抽象性和严密的逻辑性。
软件的外在性质是:软件是一种逻辑信息产品,是用文字、符号表达的智力产物。
例2. 什么是软件开发的工程化?工程化的软件开发方法与早期的程序设计方法的不同点在哪里?(记住关键字)答:将成熟工程领域的方法应用于软件开发。
工程化的方法包括如下四个方面:⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境⑶.具备统一的工程规范⑷.管理和控制例3. 简答题:简述软件工程学科研究的内容。
答:软件工程的知识体系包括如下内容过程:软件开发的步骤方法:软件开发各步骤所用到的技术管理:控制软件开发按照过程和方法顺利完成的技术和措施工具:辅助人们贯彻过程和方法,并实施管理相关例题:什么是软件危机?危机的主要表现是什么?(只记表现,前3点)答:软件危机就是软件在开发过程中存在的一系列严重问题的总称。
危机的主要表现:(1)软件的复杂性不断提高,对软件开发的成本和进度难于估计(2)软件质量不高,潜在差错的危害。
(3)缺乏完整、正确的文档,维护极困难,难于移植以至于不得不重复开发类似的软件。
(4)软件成本在计算机系统中总成本所占的比例逐年增高。
(5)软件生产率的提高远跟不上需求的增长。
第二章软件开发过程本章的主要内容有以下几点:•软件过程模型•传统过程模型(瀑布模型、螺旋模型、增量模型、原型模型)•统一过程模型(RUP)•敏捷过程模型(极限编程)•了解统一过程模型RUP的核心工作流例如RUP是一种软件开发方法(错误)RUP是软件开发过程模型。
软件工程期末考试主要知识点电子版
4.七条基本原理:(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性。
10、RUP是Rational软件公司进过多年的商业化经验的六条最有效的软件按开发经验:迭代式开发、管理需求、使用基本构件的体系结构、可视化建模、验证软件质量、控制软件变更11、.微软过程生命周期的阶段以及各阶段的里程碑:(1)规划阶段(项目目标得到认可);(2)设计阶段(完成产品设计);(3)开发阶段(完成开发工作);(4)稳定阶段(准备好可发布版本);(5)发布阶段(完成产品发布)13、可行性研究的目的是用最小的成本在较短的时间内确定问题是否能够解决。
14. 对问题的每一种解法一般需要进行1.技术可行性2.经济可行性3.操作可行性4.法律可行性15. 在可行性研究阶段使用的描述工具有哪些?系统流程图,数据流图,数据字典。
16. 系统流程图:是概括地描述物理系统的传统工具表达的是数据在系统各部件之间的、流动的情况。
其基本思想是用图形符号从黑盒子描绘组成系统的各个部件(程序、文档、数据库、人工过程等)数据流图:是一个图形化技术,它描述信息流和数据从输入一点到输出的过程中所经受的变换。
数据字典:关于数据的信息的集合,即对数据流图中包含的所有元素的定义的集合17. 数据流图仅反映系统必须完成的逻辑功能,所以只是描绘数据在软件中流动和被处理的逻辑过程18. 数据字典的基本元素:数据流、数据元素、数据存储、处理21. 在进行成本/效益分析时首先需要估计成本。
成本估计可以使用那些技术?代码行技术、任务分解技术、自动估计成本技术22. 需求分析阶段的具体任务是什么?确定对系统的综合要求、分析系统的数据要求;导出系统的逻辑模型;修正系统开发计划23. 需求分析最终结果是什么体现的?分析模型、软件需求规格说明书24. 需求分析阶段完成的文档有哪些?分析模型、软件需求规格说明书25. 需求分析阶段使用的图形工具有哪些?数据流图、E-R图、状态转换图、层次方框图、watnier图、IPO图26. 在大型数据处理系统的功能分析与设计中,数据库的概念设计对应于系统开发的哪个阶段?对应需求分析阶段27. 最常用的表示概念性数据模型的方法是什么?E-R图28. 一般说来,应该从哪几个方面来验证需求分析的正确性?一致性、完整性、现实行、有效性29. 什么有穷状态机?有穷状态机有何作用?有穷状态机又哪几部分组成?有穷状态机:一个5元组(JKTSF)J有穷非空状态集K有穷的非空输入集T是一个从(J-F)*K到J 的转换函数、S属于J,初始状态。
软件工程期末考试复习总结知识点+必考题型,推荐文档
软件工程复习资料1.软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。
在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。
很难检验开发的正确性且软件开发的质量也较难评价。
因此控制软件开发过程相当困难。
此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。
这样维护的费用十分惊人,客观上使得软件较难维护。
(2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。
但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。
在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。
这是造成软件危机的主要原因。
(3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。
对用户的要求没有完整准确的认识就急于编写程序。
这是许多软件开发失败的另一主要原因。
事实上,许多用户在开始时并不能准确具体地叙述他们的需要。
软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。
(4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。
首先是文档缺乏一致性和完整性,从而失去管理的依据。
因为程序只是完整软件产品的一个组成部分。
一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。
其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。
(5) 在软件的开发和维护关系问题上存在错误的观念。
软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。
所以做好软件的定义工作是降低软件成本,提高软件质量的关键。
如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。
《软件工程与及软件测试》课程期末复习资料
《软件工程与软件测试》课程期末复习资料《软件工程与软件测试》课程讲稿章节目录及知识点:第1章概述(1)了解软件的定义(2)了解软件危机的产生(3)了解软件工程的定义第2章软件过程(1)掌握软件过程的定义(2)掌握软件生命周期的几个阶段(3)掌握瀑布模型、快速原型模型、软件开发模型的基本过程,了解其优缺点(4)掌握增量模型、螺旋模型、喷泉模型的基本过程,了解其优缺点第3章可行性研究(1)了解可行性研究的目的与任务(2)掌握系统流程图(3)掌握数据流图(4)掌握数据字典(5)了解成本-效益分析的方法第4章软件需求分析(1)了解需求分析的任务(2)掌握需求获取的常用方法(3)掌握结构化分析方法(4)熟练使用需求分析图形工具第5章软件总体设计(1)了解软件设计和总体设计的定义(2)掌握模块化、抽象和信息隐蔽和局部化的原理(3)掌握模型快独立性和衡量标准(4)掌握软件结构设计准则(5)熟练使用软件结构设计图形工具(6)掌握结构化设计方法第6章软件详细设计(1)了解详细设计的目标和任务(2)掌握程序流程图、盒图等程序设计工具的使用(3)掌握程序判定表、判定树等程序设计工具的使用(4)掌握人机界面设计的原则和方法第7章软件编码(1)掌握程序设计语言的选择准则(2)掌握程序设计风格要点第8章软件测试(1)掌握软件测试的目标和原则(2)掌握几种软件测试方法的定义(3)掌握语句覆盖、判定覆盖等逻辑覆盖方法(4)掌握条件覆盖、条件组合覆盖等逻辑覆盖方法(5)掌握循环测试和基本路径测试基本方法(6)掌握等价类划分的方法(7)掌握边界值分析、错误推测和因果图的原理和方法(8)掌握单元测试方法(9)掌握集成测试方法(10)掌握确认测试和系统测试方法(11)掌握软件调试的方式第9章软件维护(1)了解软件维护定义(2)掌握软件维护过程(3)掌握软件可维护定义和方法(4)了解软件维护中存在的问题第10章面向对象方法学(1)了解面向对象方法定义(2)掌握面向对象的基本概念(3)掌握对象、类及类之间关系(4)掌握统一建模语言UML第11章面向对象的分析(1)掌握面向对象的分析过程(2)掌握建立用例模型方法(3)掌握建立对象模型方法(4)掌握建立顺序图和通信图方法(5)掌握建立状态图和活动图方法(6)掌握建立物理实现模型方法第12章面向对象的设计与实现(1)掌握面向对象的设计准则和启发式规则(2)掌握问题与子系统和人机监护子系统(3)掌握任务管理子系统和数据管理子系统(4)掌握服务设计方法(5)掌握关联设计方法(6)掌握面向对象设计优化方法(7)掌握面向对象系统实现方法一、客观部分:(单项选择、多项选择)(一)、单项选择1模块独立性是由内聚性耦合性来度量的,其中内聚性是()A. 模块间的联系程度B. 模块的功能强度C. 信息隐藏程度D. 接口的复杂程度★考核知识点:模块独立性参见讲稿章节:5.3附1.1.1:(考核知识点解释)模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。
2022年南京晓庄学院软件工程专业《计算机系统结构》科目期末试卷A(有答案)
2022年南京晓庄学院软件工程专业《计算机系统结构》科目期末试卷A(有答案)一、选择题1、IBM360/91属于()A.向量流水机B.标量流水机C.阵列流水机D.并行流水机2、属计算机系统结构考虑的是()A.主存采用MOS还是TTLB.主存采用多体交叉还是单体C.主存容量和编址方式D.主存频宽的确定3、不同系列的机器之间,实现软件移植的途径不包括( )A.用统一的高级语言B.用统一的汇编语言C.模拟D.仿真4、与全相联映象相比,组相联映象的优点是( )A.目录表小B.块冲突概率低C.命中率高D.主存利用率高5、推出系列机的新机器,不能更改的是( )A.原有指令的寻址方式和操作码B.系统总线的组成C.数据通路宽度D.存贮芯片的集成度6、高级语言程序经()的()成汇编语言程序。
A.编译程序,翻译B.汇编程序,翻译C.汇编程序,解释D.编译程序,解释7、计算机系统结构不包括()A.主存速度B.机器工作状态C.信息保护D.数据表示8、下列说法中不正确的是( )A.软件设计费用比软件重复生产费用高B.硬件功能只需实现一次,而软件功能可能要多次重复实现C.硬件的生产费用比软件的生产费用高D.硬件的设计费用比软件的设计费用低9、传统机器语言机器级,是用()来()机器指令。
A.硬件,翻译B.编译程序,翻译C.微指令程序,解释D.微指令程序,翻译10、组相联映象、LRU替换的Cache存贮器,不影响Cache命中率的是( )A.增加Cache中的块数B.增大组的大小C.增大主存容量D.增大块的大小二、填空题11、开发并行性是为了并行处理,并行性又包括有________和________二重含义。
12、Huffman编码,长操作码的使用频度较________,而短操作码的使用频度较________13、系列机软件兼容必须做到向________兼容,尽可能争取向________兼容。
14、程序在时间上的局部性表现在,最近未来要用的信息可能就是现在正在使用的信息,这是因为程序中有________循环15、直接网络可分为3类:________和________、超立方体网络。
软件工程期末考试复习重点
第一章软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
软件危机的主要表现:1、对软件开发成本和进度的估计常常很不准确。
2、用户对“已完成的”软件系统不满意的现象经常发生。
3、软件产品的质量往往靠不住。
4、软件常常是不可维护的5、软件通常没有适当的文档资料6、软件成本在计算机系统总成本中所占的比例逐年上升7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势软件工程:定义一:是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
定义二:1.把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2.研究1.中提到的途径。
软件工程方法学的三个要素:方法、工具和过程。
目前使用的最广泛的软件工程方法学:传统方法学、面向对象方法学。
软件的生命周期:软件生命周期有软件定义、软件开发和运行维护3个时期组成;定义时期分为:问题定义、可行性研究和需求分析阶段;开发时期分为:总体设计、详细设计、编码和单元测试、综合测试;维护时期的任务:是软件持久的满足用户的需求;瀑布模型:最广泛的过程模型;瀑布模型的特点:1、阶段间具有顺序性和依耐性;2、推迟实现的观点;3、质量保证的观点;Rational统一过程(RUP)四个阶段的工作目标:初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围;精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求;构建阶段:开发出所有构件和应用程序,把他们集成为客户需要的产品,并且详尽地测试所有功能;移交阶段:把开发出的产品提交给用户使用;第二章可行性研究的目的是确定问题是否值得去解决;可行性研究的方面:技术可行性、经济可行性、操作可行性;系统流程图描述物理模型;P39(要求会做)数据流图描述逻辑模型;P40(要求会做)数据流图(DFD)描绘信息流和数据从移动到输出的过程中所经受的变换;数据字典有以下4类元素的定义组成:数据流、数据流分量(数据元素)、数据存储、处理;由数据元素组成的数据的方式三种基本类型:顺序、选择、重复;“=”是等价于(或者定义为),“+”是和(用来连接分量),“[ ]”是或(从其中选一),“{ }”是重复,“()”是可选;第三章:需求分析任务:功能需求是指定系统必须提供的服务,通过该分析划出该系统必须完成的所有功能。
软件工程期末考试要点
一、大作业(20分)计划与管理(5 分)需求分析建模(5分)设计建模(5分)最终完成的作品(5分)二、报告(16分)三、课堂互动(4分)四、期中考试(20 分)五、期末考试(40 分)软件工程期末考试要点一、怎么理解个体和交互胜过工具和过程?产品胜过文档?(敏捷开发)人是获得成功的最为重要的因素。
合作、沟通以及交互能力要比单纯的编程能更为重要。
没有文档的软件是一种灾难。
过多的文档比过少的文档更糟。
二、RUP阶段,含义,理解。
Rational Unified Process 有四个阶段:–先启–定义整个项目的范围–精化–制定项目计划、描述功能、建立体系架构框架和可执行的“体系结构基线”–构建–构造软件产品–产品化–将软件产品移交到最终用户手中三、敏捷开发出发点?敏捷宣言?XP第一条原则的含义?通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。
个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划虽然右项也有价值,但我们认为左项具有更大的价值完整团队XP项目的所有参与者(开发人员、业务分析师、测试人员等等)一起工作在一个开放的场所中,他们是同一个团队的成员。
这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。
计划游戏XP习惯把一次迭代发布的内容称之为“planningg ame”,在迭代之处确认阶段称为“IterationP lanningG ame”迭代计划游戏,而确认可发布内容范围称为“Release Planning Game”发布计划游戏;计划是持续的、循序渐进的。
每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。
四、需求分析阶段的产品?主要工作产品:需求定义文档(客户角度)需求规格说明(技术人员角度)配置管理文档(支持两个文档间直接对应)五、为甚要进行WBS(目的、意义、内容)?怎样进行WBS分解?项目分解目的——明确项目所包含的各项工作;项目分解的结果就是WBS(Work Breakdown Structure 任务分解结构)图•项目分解意义——WBS 图是实施项目、创造最终产品或服务所必须进行的全部活动的一张清单,也是进度计划、人员分配、预算计划的基础•项目分解内容——项目分解就是先把复杂的项目逐步分解成一层一层的要素(工作),直到具体明确为止WBS 分解方法●基于可交付成果的划分–上层一般为可交付成果为导向–下层一般为可交付成果的工作内容●基于工作过程的划分–上层按照工作的流程分解–下层按照工作的内容划分六、EO、EQ的区别?EO有数据演化、对ILF的修改七、开展一个项目最先要做的事情?理解客户需要什么,分析要求,评估可行性,协商合理的方案,无歧义地详细说明方案,确认规格说明,管理需求以至将这些需求转化为可运行的系统八、LOC、FP各自的优缺点。
《软件工程与项目管理》期末复习提要
《软件工程与项目管理》期末复习提要第一部分考核内容和要求一.软件工程概述1.重点掌握的内容:软件和软件工程的基本概念2.一般掌握内容:软件生存周期及软件开发的各种模型。
3.考核知识点:软件:软件定义由以下三部分组成:(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。
软件是一种产品,同时又是开发和运行产品的载体。
作为一种产品,它表达了由计算机硬件体现的计算潜能。
作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。
软件的特点:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
⑤软件的开发至今尚未完全摆脱手工的开发方式。
⑥软件的开发费用越来越高,成本相当昂贵。
软件的分类:软件依据不同的标准,可划分为不同的分类。
软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程准则可以概括为六条基本原理:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)应能清楚地审查结果;(6)合理安排软件开发小组的人员。
软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。
软件工程的基本内容:软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。
(完整版)软件工程期末考试复习总结知识点+必考题型(最新整理)
软件工程复习资料1.软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。
在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。
很难检验开发的正确性且软件开发的质量也较难评价。
因此控制软件开发过程相当困难。
此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。
这样维护的费用十分惊人,客观上使得软件较难维护。
(2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。
但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。
在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。
这是造成软件危机的主要原因。
(3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。
对用户的要求没有完整准确的认识就急于编写程序。
这是许多软件开发失败的另一主要原因。
事实上,许多用户在开始时并不能准确具体地叙述他们的需要。
软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。
(4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。
首先是文档缺乏一致性和完整性,从而失去管理的依据。
因为程序只是完整软件产品的一个组成部分。
一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。
其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。
(5) 在软件的开发和维护关系问题上存在错误的观念。
软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。
所以做好软件的定义工作是降低软件成本,提高软件质量的关键。
如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。
