您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 二级c公共基础 - 软件工程基础
软件工程基础大纲1、软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2、结构化分析方法,数据流图,数据字典,软件需求规格说明书。3、结构化程序设计方法,总体设计与详细设计。4、软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试,集成测试和系统测试。5、程序的调试,静态调试与动态调试。软件工程基础一、软件工程基本概念1、计算机软件是包括程序、数据及相关文档的完整集合。2、软件的特点包括:(1)软件是一种逻辑实体;(2)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。3、软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。4、软件危机主要表现在成本、质量、生产率等问题。5、软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。6、软件工程包括3个要素:方法、工具和过程。7、软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:(1)P——软件规格说明;(2)D——软件开发;(3)C——软件确认;(4)A——软件演进。8、软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。9、软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:(1)可行性研究与计划制定;(2)需求分析;(3)软件设计;(4)软件实现;(5)软件测试;(6)运行和维护。10、软件工程的目标和与原则:(1)目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。(2)基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件易于移植;需要较低的费用;能按时完成开发,及时交付使用。(3)基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。11、软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。12、软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境。13、软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。14、软件管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等。15、软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。二、结构化分析方法1、结构化方法的核心和基础是结构化程序设计理论。2、需求分析方法有(1)结构化需求分析方法;(2)面向对象的分析的方法。3、从需求分析建立的模型的特性来分:静态分析和动态分析。4、结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。5、结构化分析的常用工具(1)数据流图:描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能建模。(2)数据字典:对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。(3)判定树:从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。(4)判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。6、数据字典是结构化分析的核心。7、软件需求规格说明书的特点:(1)正确性;(2)无岐义性;(3)完整性;(4)可验证性;(5)一致性;(6)可理解性;(7)可追踪性。三、结构化设计方法1、软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。2、软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软件产品或系统的唯一途径。3、从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。(1)结构设计:定义软件系统各主要部件之间的关系。(2)数据设计:将分析时创建的模型转化为数据结构的定义。(3)接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。(4)过程设计:把系统结构部件转换成软件的过程描述。4、从工程管理角度来看:概要设计和详细设计。5、软件设计的一般过程:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。6、衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准。在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。7、软件概要设计的基本任务是:(1)设计软件系统结构;(2)数据结构及数据库设计;(3)编写概要设计文档;(4)概要设计文档评审。8、模块用一个矩形表示,箭头表示模块间的调用关系。9、在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据。10、结构图的基本形式:基本形式、顺序形式、重复形式、选择形式。11、结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。12、典型的数据流类型有两种:变换型和事务型。(1)变换型系统结构图由输入、中心变换、输出三部分组成。(2)事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。13、详细设计:是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。14、常见的过程设计工具有:图形工具(程序流程图)、表格工具(判定表)、语言工具(PDL)。四、软件测试1、软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。2、软件测试的目的:发现错误而执行程序的过程。3、软件测试方法:静态测试和动态测试。4、静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。5、动态测试:是基本计算机的测试,主要包括白盒测试方法和黑盒测试方法。(1)白盒测试:在程序内部进行,主要用于完成软件内部操作的验证。主要方法有逻辑覆盖、基本基路径测试。(2)黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错,用于软件确认。主要方法有等价类划分法、边界值分析法、错误推测法、因果图等。6、软件测试过程一般按4个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。五、程序的调试1、程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。2、程序调试的基本步骤:(1)错误定位;(2)修改设计和代码,以排除错误;(3)进行回归测试,防止引进新的错误。3、软件调试可分表静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的设计手段,而动态调试是辅助静态调试。主要调试方法有:(1)强行排错法;(2)回溯法;(3)原因排除法。习题一、选择题1、下面描述中,符合结构化程序设计风格的是______。(A)A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B.模块只有一个入口,可以有多个出口C.注重提高程序的执行效率D.不使用goto语句2、下面概念中,不属于面向对象方法的是______。(D)A.对象B.继承C.类D.过程调用3、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。(B)A.可行性分析B.需求分析C.详细设计D.程序编码4、在软件开发中,下面任务不属于设计阶段的是______。(D)A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型5、结构化程序设计主要强调的是______。(B)A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性6、在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。(D)A.概要设计B.详细设计C.可行性分析D.需求分析7、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。(A)A.控制流B.加工C.数据存储D.源和潭8、软件需求分析阶段的工作可以分四个方面:需求获取、需求分析、编写需求规格说明书以及___。(B)A.阶段性报告B.需求评审C.总结D.都不正确9、对建立良好的程序设计风格,下面描述正确的是______。(A)A.程序应简单、清晰、可读性好B.符号名的命名要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无10、下面对对象概念描述错误的是______。(A)A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态性属性11、下面不属于软件工程的3个要素的是______。(D)A.工具B.过程C.方法D.环境12、程序流程图(PFD)中的箭头代表的是______。(B)A.数据流B.控制流C.调用关系D.组成关系13、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。(D)A.调用语句B.命令C.口令D.消息14、检查软件产品是否符合需求定义的过程称为______。(A)A.确认测试B.集成测试C.验证测试D.验收测试15、下列工具中属于需求分析常用工具的是______。(D)A.PADB.PFDC.N-SD.DFD16、下面不属于软件设计原则的是______。(C)A.抽象B.模块化C.自底向上D.信息隐蔽17、信息隐蔽的概念与下述哪一种概念直接相关______。(B)A.软件结构定义B.模块独立性C.模块类型划分D.模拟耦合度18、面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。(C)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考19、在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。(C)A.详细设计B.需求分析C.总体设计D.编程调试20、软件调试的目的是______。(B)A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能21、在设计程序时,应采纳的原则之一是______。(A)A.程序结构应有助于读者理解B.不限制goto语句的使用C.减少或取消注解行D.程序越短越好22、下列不属于软件调试技术的是______。(B)A.强行排错法B.集成测试法C.回溯法D.原因排除法23、下列叙述中,不属于软件需求规格说明书的作用的是______。(D)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析24、在数据流图(DFD)中,带有名字的箭头表示______。(C)A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分25、软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。(B)A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程26、为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。(B)A.PAD图B.N-S图C.结构图D.数据流图27、需求分析阶段的任务是确定______。(D)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能28、下列不属于结构化分析的常用工具的是____
本文标题:二级c公共基础 - 软件工程基础
链接地址:https://www.777doc.com/doc-169308 .html