软件工程知识及题目

上传人:qt****68 文档编号:43774424 上传时间:2018-06-07 格式:DOC 页数:32 大小:102.50KB
返回 下载 相关 举报
软件工程知识及题目_第1页
第1页 / 共32页
软件工程知识及题目_第2页
第2页 / 共32页
软件工程知识及题目_第3页
第3页 / 共32页
软件工程知识及题目_第4页
第4页 / 共32页
软件工程知识及题目_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《软件工程知识及题目》由会员分享,可在线阅读,更多相关《软件工程知识及题目(32页珍藏版)》请在金锄头文库上搜索。

1、软件工程基础1.软件工程的基本概念(1)定义:软件是程序、数据与相关文档的集合。软件包括系统软件和应用软件(2)软件工程的基本思想是软件开发中,应用工程化原则进行软件开发,并将这个思想贯穿在软件开发的整个过程中。软件工程的 3 要素:方法、工具和过程(3)软件的生命周期:从软件定义、开发、使用、维护到报废为止的整个过程。分三阶段:设计阶段、开发阶段、维护阶段包括:问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试和维护问题定义:确定开发的任务可行性分析:确定问题的可行性需求分析:对用户要求进行分析,明确目标系统要做什么总体设计:把软件功能转化为所需要的体系结构,即如何解决问题。详细

2、设计:怎样具体的解决问题2.结构化分析方法(1)结构化分析(SA)是面向数据流进行需求分析的方法SA 方法的基本思想正是运用了分解和抽象两个基本手段,采用:自顶向下,逐步分解的分析思路。(2)数据流图基本图形符号:在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是:需求分析(3)数据字典在结构化分析的数据流图中,利用数据字典对其中的图形元素进行确切解释。3.软件设计(1)概要设计(总体设计)包括两个主要阶段:系统设计(确定具体的实现方案)和结构设计(确定每个系统的模块组成及模块间的关系)模块之间联系越紧密,其耦合性就越强,模块的独立性就越差;一个模块内个要素联系越紧密,则它的内

3、聚性就越高。模块划分原则:高内聚低耦合(2)详细设计结构化程序设计的要点:采用自顶向下、逐步求精的程序设计方法,一个程序只有一个入口和一个出口。详细设计的常用工具:程序流程图、盒图、PAD 和 PDL(3)软件测试目的软件测试的目的是尽可能多的发现程序中的错误。软件测试方法:静态测试和动态测试(黑盒测试法和白盒测试法)黑盒测试包括:等价分析法、边值分析法、因果图法和错误推测法白盒测试法测试的原则之一就是保证所测模块中的每一个独立的路径至少执行一次。(4)程序调试分为静态调试和动态调试调试的目的:改正错误经调试后还必须进行再测试(5)软件维护软件维护就是在软件已经交付使用以后,为改正错误或满足新

4、的需求而修改软件的过程。例题精选:1 分析的结果是产生需求规格说明书。2 软件详细设计的主要任务是确定每一个模块的算法和使用的数据结构。3 进行单元测试时,常用的方法时采用白盒测试,辅以黑盒测试。4 软件工程的出现是由于软件危机的出现,人们提出了软件工程学的原理设计软件。5 数据字典是各类数据描述的集合,通常包括 4 个部分:数据项、数据流、数据存储和数据加工。软件工程基础知识 2.4.1 主要知识点软件工程是计算机软件的一个重要分支,主要应掌握软件工程的基本原理以及 软件设计与测试方法。2.4.1.1 软件生存周期各阶段的任务 软件生存周期指出由软件定义、软件开发和软件维护等阶段组成的全过程

5、。(1)软件定义阶段软件定义阶段主要解决软件要“做什么“的问题,也就是要确定软件的处理对象、 软件与外界的接口、软件的功能、软件的性能、软件的界面以及有关的约束和 限制。软件定义阶段通常可分成系统分析、软件项目计划和需求分析等阶段。 系统分阶析的任务是确定待开发软件的总体要求和适用范围,以及与之有关的 硬件和支撑软件的要求,该阶段所生产的文档可合并在软件项目计划阶段的文 档(项目计划书)中。软件项目计划的任务是确定待开发软件的目标,对其进 行可行性分析,并对资源分配、进度安排等做出合理的计划,该阶段所产生的 文档有可行性分析报告和项目计划书。需求分析的任务是确定待开发软件的功 能、性能、数据和

6、界面等要求,从而确定系统的逻辑模型。该阶段产生的文档 是需求规格说明书。(2)软件开发阶段软件开发阶段主要解决软件“怎么做“的问题,包括数据结构和软件结构的设计、 算法设计、编写程序和测试,最后得到可交付使用的软件。软件开发阶段通常 可分成软件设计、编码、软件测试等阶段。软件设计通常还可分成概要设计和 详细设计。概要设计的任务是模块分解,确定软件结构、模块的功能和模块的 接口,以全国数据结构的设计。详细设计的任务是设计每个模块的实现细节和 局部数据结构。设计阶段产生的文档有设计说明书,它也可分为概要设计说明 书和详细设计说明书。编码的任务是用某种程序语言为每个模块编写程序,产 生的文档有程序清

7、单。软件测试的任务是发现软件中的错误,并加以纠正,产 生的文档有软件测试计划和软件测试报告。(3)软件维护软件维护任务就是为使软件适应外界环境的变化,进一步实现软件功能的扩充 和质量的改善而修改软件。该阶段产生的文档有维护计划和维护报告。2.4.1.2 软件开发模型用不同的方式将软件生存周期中所有开发活动组织起来,形成不同的软件开发 模型。常见的软件开发模型有瀑布模型、螺旋模型和喷泉模型等。瀑布模型给 出了软件生存周期各阶段的固定顺序,上一阶段完成后才能进入到下一阶段。 各阶段结束后,都要进行严格的评审。2.4.1.3 结构化分析和设计方法(1)结构化分析(SA)方法结构化分析(SA)方法是一

8、种面向数据流的需求分析方法,它适用于分析大型 数据处理系统。结构化分析方法的基本思想是自顶向下逐层分解,把一个问题 分解成若干个小问题,每个小问题再分解成若干个更小的问题,经过多次逐层 分解,每个最低层的问题都是足够简单、容易解决的,这个过程就是分解的过 程。SA 方法的分析结果由数据流图 DFD、数据词典和加工逻辑说明几个部分组 成。(2)结构化设计(SD)方法结构化设计(SD)方法是一各面向数据流的软件设计方法,它可以与 SA 方法衔 接,SD 方法采用结构图(SC)来描述程序的结构。结构图的基本成分由模块、 调用和输入/输出数据组成。在需求分析阶段,用 SA 方法产生了数据流图。面 向数

9、据流的设计能方便地将 DFD 转换成程序结构图,DFD 中从系统的输入数据 到系统的输出数据流的一连串连续变换将形成一条信息流。DFD 的信息流大体 可分为两种类型,一种是变换流,另一种是事务流。SD 方法的设计步骤有:复查并精化数据流图;确定 DFD 的信息流类型; 根据信息流类型分别将变换流或事务流转换成程序结构图;根据软件设计的 原则对程序结构图作为改进。(3)结构化程序设计(SP)结构化程序设计(SP)采用自顶向下逐步求精的设计方法和单入口单出口的控 制结构。自顶向下逐步求精的设计方法符合抽象和分解的原则, 人们解决复杂 问题时常用的方法。SA 方法和 SD 方法也采用了自顶向下逐步求

10、精的方法,在 详细设计时也同样如此。在设计一个模块的实现算法时,先考虑整体后考虑局 部,先抽象后具体,通地逐步细化,最后得到详细的实现算法。单入口单出口 的控制结构,使程序的静态和动态结构执行过程一致,使程序具有良好的结构。2.4.1.4 面向数据结构的设计方法这类方法以数据结构作为设计基础,根据输入/输出数据结构导出程序的结构。 Jackson 方法是一种典型的面向数据结构的设计方法。尽管程序中实际使用中 的数据结构有许多种,但这些数据结构中数据元素间的逻辑关系只有顺序、选 择和重复 3 类。Jackson 方法的设计步骤为:(1)分析并确定输入和输出数据的逻辑结构,并用 Jackson 图

11、表示;(2)找出输入数据结构与输出数据结构间有对应关系的数据单元;(3)从描述数据结构的 Jackson 图导出描述程序结构的 Jackson 图。2.4.1.5 软件设计的原则(1)抽象的原则软件工程中从软件定义到软件开发要发经历多个阶段,在这个过程中每前进一 步都可看作是对软件设计的抽象层次的一次细化。抽象的最低层次就是实现该 软件的源程序代码。在进行曲模块化设计时也可以有多个抽象层次,最高抽象 层次的模块用概括的方式叙述题的解法,较低抽象层次的模块是对较高抽象层 次模块问题解法描述的细化。过程抽象和数据抽象是常用的两种主要抽象手段。(2)模块化的原则模块化是指将一个待开发的软件分解或成若

12、干个小的简单的部分模块,每个模 块可独立地开发、测试,最后组装成完整的软件。(3)信息隐蔽的原则信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装 在一个单一的设计模块中,定义每一人模块时尽可能少地显露其内部的处理。 信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。(4)模块独立的原则模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间 的联系比较简单。衡量模块独立程度标准有两个:耦合和内聚,耦合是指模块 之间联系的紧密程度,耦合度越高,则模块的独立性越差。内聚是指模块内部 各元素之间联系的紧密程度,内聚度越低,模块的独立性越差。模块独立要

13、求 每个模块都是高内聚低耦合的。2.4.16 编码编码阶段的任务就是根据详细的设计说明书编写程序。要编写高质量的程序, 应注意选择合适的程序设计语言,明确源程序的质量要求,养成良好的程序设 计格。2.4.1.7 软件测试软件测试的工作量约占软件开发总工作量的 40%以上,其目的是尽可能多地发 现软件产品(主要是指程序)中的错误和缺陷。测试的关键是测试用例的设计,设计方法可分成两类:白盒测试和黑盒测试。 白盒测试把程序看成是装在一只透明的盒子里,测试者完全了解程序的结构和 处理过程。白盒测试根据程序的内部逻辑来设计测试用例,检查程序中的逻辑 通路是否都按预定的要求正确地工作。黑盒测试把程序看成是

14、装在一只不透明 的盒子里,测试者完全不了解(或不考虑)程序的结构和处理过程。黑盒测试 根据规格说明书规定的功能来设计测试用例,检查程序的功能是否符合规格说 明的要求。软件测试的主要步骤有单元测试、集成测试和确认测试。单元测试也称模块测 试,通常单元测试可放在编码阶段,主要用来发现编码和详细设计中产生的错 误,一般采用白盒测试。集成测试也租组装测试,它是对由各模块组装而成的 模块进行测试,主要检查模块间的接口和通信。集成测试主要用来发现设计阶 段产生的错误,通常采用黑盒测试。确认测试的任务是检查软件的功能、性能 和其他特征是否与用户的需求一致,它是以需求规格说明书作为依据的测试, 通常采用黑盒测

15、度。大多数软件生产者使用一种 Alpha 测试和 Beta 测试的过程,来揭露仅由最终 用户才能发现的错误。 Alpha 测试是在开发者的现场由客户来实施的,被测试 的软件是在开发者从用户的角度进行常规设置的环境下运行的。Beta 测试是在 一个或多个客户的现场由该软件的最终用户实施的。与 Alpaha 测试不同的是, 进行 Beta 测试时开发者通常是不在场的。2.4.1. 8 面向对象方法的基本概念面向对象(OO)方法成为软件开发的一种主要方法。它有几个基本概念。(1)对象在计算机系统中,对象是指一组属性以及这组属性上的专用操作的封装体。属 性可以是一些数据,也可以是另一个对象。每个对象都

16、有它自己的属性值,表 示该对象的状态,用户只能看见对象封装界面上的信息,对象的内部实现对用 户是隐蔽的。封装目的是使对象的使用者和生产者分离,使对象的定义和实现 分开。一个对象通常可由对象名、属性和操作这 3 个部分组成。(2)类类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这 个类的一个实例(Instance )。在分析和设计时,我们通常把注意力集中在类 上,而不是具体的对象上。通常把一个类和这个类的所有对象称为类及对象或 对象类。(3)继承继承是在某个类的层次关联中不同的类共享属性和操作的一种机制。一个父类 可以有多个子类,这些子类都是父类的特例。父类描述了这些子类的公共属性 的操作,子类中还可以定义它自己的属性和操作。一个子类只有唯一的一个父 类,这种继承称为单一继承。一个了类有多个父类,可以从多个父类中继承特 性,这种继承称为重多继承。(4)消息消息的对象间通信的手段、一个对象通过向另一对象发送消息来请求其服务。 一个消息通常包括接收对象名、调用的操作名和适当的参数(如有必要)。消 息只告诉接收对象需要完成什么操作,但并不能指示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号