软件工程期末.docx
- 文档编号:11594964
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:10
- 大小:31.66KB
软件工程期末.docx
《软件工程期末.docx》由会员分享,可在线阅读,更多相关《软件工程期末.docx(10页珍藏版)》请在冰豆网上搜索。
软件工程期末
软件工程期末复习题
GIS软件的主要特点:
1.在存储技术上,传统的GIS采用两库结构,即空间数据库和属性数据库的分离。
2.在数据组织与处理模式反面,传统的GIS仍然按照Tomlinson的思想,沿袭地图处理的模式
3.在网络和分布式环境下系统组成方面,传统的GIS支持树型的系统结构和主-从工作模式,上下级的数据交换基本上以图层为单位进行。
GIS软件开发过程有许多需要解决的棘手问题,如软件费用、用户需求、软件可维护性、软件可靠性、数据库、软件生产率和软件重用等。
GIS软件开发存在问题的原因分析:
1.软件的规模越来越大,结构越来越复杂2.软件开发的管理困难3.软件开发费用不断增加4.软件开发技术落后5.生产方式落后6.开发工具落后,生产率提高缓慢7.通用GIS软件处在快速上升分化发展过程中,更新变化很快,不可避免存在不少发展过程中的衔接问题
软件工程
定义:
GIS软件工程就是在GIS软件的开发整个过程中,遵循一般软件开发的工程化原理和方法,并照顾到GIS软件开发的特殊规律和要求,对GIS软件从可行性研究、需求分析、总体分析、详细分析、软件编制、软件测试,直到软件维护的各个阶段进行工程化规范的一门技术。
性质:
GIS软件工程涉及的学科门类包括地理学、测量学、地图制图学、摄影测量与遥感学、计算机科学、数学、统计学以及一切与处理和分析空间数据有关的学科。
目标:
付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高
内容:
软件工程研究的主要内容是指软件开发技术和软件开发管理两个方面。
包括三个要素:
方法、工具和过程
GIS软件工程的特色:
1.系统复杂度大:
(1)交付的文档的质量和数量
(2)软件的微观复杂度(3)软件的宏观复杂性
2.数据在系统中具有特别地位
(1)数据的质量
(2)数据的现势性(3)合理的数据组织结构
3.系统表达方式复杂
(1)表达的内容复杂
(2)表达的对象具有时空特性4.系统更新速度快5.系统维护工作量大6.易操作性要求高
GIS软件工程生存周期:
是指一个GIS软件从提出开发要求开始直到该软件报废为止的整个时期,包括四个阶段:
系统分析、系统设计、系统实施、系统评价及维护。
按照过程化的思想进行划分,GIS软件工程生存周期包括:
前期工程、设计工程、数据工程、工程实施、维护工程等五个阶段.。
GIS软件前期工程阶段,包括工程调研、可行性研究、制定项目计划、需求分析等子阶段
GIS软件工程需求分析过程:
对问题的识别、分析与综合、制定规格说明和评审
GIS软件工程系统设计的主要内容包括数据设计、系统结构设计和过程设计
结构化设计方法是基于模块化、自顶向下逐层变化、结构化程序设计等程序设计技术基础上发展起来的
软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
可行性研究的任务:
1技术可行性,对开发项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目能否实现;
2经济可行性,进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发;
3社会可行性,研究要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行;4抉择,对系统开发的不同方案进行比较评估。
工程项目开发计划:
制定开发计划指分局系统目标和任务,把在开发过程中各项工作的负责人员、开发进度、所需经费预算所需软、硬件条件等问题做出的安排等记载下来,以便根据本计划开展和检查本项目的开发工作。
开发计划是项目管理人员对项目进行管理的依据,并据此对项目的费用、进度和资源进行控制和管理。
优秀的DIS系统分析必须具有如下要素:
1系统分析人员既要具备;良好GIS开发知识,也要了解用户业务知识;
2用户与系统分析员具有良好的沟通能力和合作精神;
3确立总体规划、分阶段进行的思路,即采用螺旋模型开展GIS建设。
系统分析的过程:
1问题识别;2分析与综合;3编制需求分析的文档;4需求分析票评审。
系统需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法的组成。
它定义了表示系统逻辑视图和物理视图的方式。
数据域具有三种属性:
数据流、数据内容和数据结构。
通常,一种需求分析方法总要利用其中的一种或几种属性。
需求工程中涉及的角色主要有需求者、分析员和实现者。
需求分析的必要性:
1问题的复杂性。
这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等;
2交流障碍。
需求分析涉及不同的背景知识的人员较多,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。
3不完备性和不一致性。
由于各种原因,用户对问题的陈述往往是不完备的,七个方面的需求还可能存在着矛盾,需求分析要消除其矛盾形成完备及一致的定义;
4需求易变性。
用户需求的变动是一个极为普遍的问题,导致不一致性和不完备性。
在GIS工程中,常用的需求分析方法有面向数据流的结构化分析方法和面向对象的分析方法、以用户为中心的需求分析方法。
数据流图的画法:
1先找系统的数据源点与汇点,它们是外部实体,有它们确定系统与外界的接口;
2找出外部实体的输出数据流与输入数据流;
3在图的边上画出系统的外部实体;
4从外部实体的输出数据流(源点)出发,按照系统的逻辑需求,逐步画出一系列逻辑加工,直到找到外部实体所需的输入数据流(汇点),形成数据流的封闭;
5按照所给的原则进行检查和修改;
6按照上述步骤,再从各加工出发,画出所需的子图。
需求分析中所使用的数据字典,主要用来描述数据流程图中的数据流、数据存储,处理过程和外部实体。
属性数据字典条目:
数据元素、数据结构、数据流、数据存储、处理过程、外部实体。
空间数据字典条目:
名称、层名、层元素性质、拓扑关系、属性表、关联属性段/关联字段、文件位置、操作限制、元数据文件或表名、备注。
结构化系统分析方法、数据流程图、数据字典等工具是克服困难的有力武器。
系统分析的难点:
1)对数据的理解。
由于系统分析员缺乏足够的对象系统的业务知识,在系统调查中往往感到无从下手,不知道该问用户一些什么问题,或者被各种具体数字、大量的资料、庞杂的业务流程搞得眼花缭乱。
2)人与人之间的沟通。
系统分析员与用户的知识构成不同,经历不同,是的双方的交流十分困难。
3)环境的不断变化。
系统分析阶段要通过调查分析,抽象出新的概念模型,但是信息系统生存在不断变化的环境中,环境对它不断提出新的要求。
系统分析的要求:
1)系统分析人员既要具备连号的GIS开发知识,也要了解用户业务的知识。
2)用户与系统分析员具有良好沟通能力和合作精神。
3)确立总体规划、分阶段进行的思路,即采用螺旋模型开展GIS建设。
系统分析的过程:
1)问题识别2)分析与综合。
3)编制需求分析的文档。
4)需求分析评审
系统分析的方法:
系统需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成。
它定义了表示系统逻辑视图和物理视图的方式。
需求分析方法:
结构化分析方法和以用户为中心的需求分析方法。
结构化分析方法基本思想及特点:
指导思想:
自顶向下,逐步求精,基本原则是抽象与分解。
特点:
1是使用最早的开发方法,使用时间最长。
2应用最广,特别适合于数据处理3相应的支持工具多,发展较为成熟。
优点和存在问题:
优点:
1.简单、实用;2.适合于瀑布模型,易为开发者掌握;3.成功率较高;4.特别适合于数据处理领域中的应用,对其他领域的应用也基本适用。
问题:
1对于规模大的项目,特别复杂的应用不太适应2难于解决软件重要的问题3难于适应需求的变化4难于彻底解决维护问题。
面向对象的基本概念:
1、对象:
是人们要进行研究的任何事物
2、对象的状态和行为:
对象具有状态,一个对象用数据值来描述它的状态,对象具有操作,用于改变对象的状态,对象及其操作就是对象的行为
3、类:
具有相同或相似性质对象的抽象就是类
4、类的关系:
在客观世界中有若干类,这些类直接由一定的结构关系,主要有一般具体结构关系及整体成员结构关系
5、消息和方法:
对象之间进行通信的一种构造叫消息。
类中操作的实现过程叫方法,一个方法有方法名、参数及方法体
面向对象的特征:
1、惟一性:
每个对象都有自身惟一的标识,通过这种标识,可找到相应的对象。
2、分类性:
指将具有一致的数据结构和行为的对象抽象成类。
3、继承性:
是父类与子类之间共享数据结构和方法的机制,这是类之间的一种关系。
4、多态性:
指相同的操作或函数、过程作用于多种类型的对象上并获得不同结果
面向对象的要素:
1、抽象:
指强调实体的本质、内在的属性,而忽略一些无关紧要的属性
2、封装性:
是保证软件部件具有优良的模块性的基础
3、共享性:
同一个类中对象的共享、同个应用中的共享、不同应用中的共享
4、强调对象结构而不是程序结构
面向对象的开发方法:
Booch法、Coad法、OTM法
OOA的步骤:
1找到类和对象:
指定应该怎样找到类和对象的方法:
可从应用领域开始,确定形成整个应用的基础的类和对象
2确定结构:
第一种结构是通用--特定结构,代表了确定的类中的继承等级,另一种整体--部分结构,表示一个对象怎样作为别的对象的一部分和怎样组成更大的对象
3定义主题:
确定主题通过将类和对象模型划分成更大的单元来完成。
4定义属性:
通过确认信息和关系来完成,它们和每个实例有关
5定义服务:
意味着通过确定对象状态和定义服务定义类的操作
OTM方法:
对象模型代表系统中的静态的、结构方面的特性相关关系、包容关系、继承关系);动态模型代表了系统对象之间的时间的、行为的、“控制”面的特性;功能模型:
主要描述值与值之间的函数关系,由多个数据流图(DFD)组成,它们表示从外部输入,通过操作和内部数据存储,到外部输出这样一个流。
对象模型中类之间的三种基本关系以OTM符号表示:
1.相关关系2、包容关系3、继承关系
功能模型表示怎样从输入值得到输出值,包括函数、映射、约束和功能性依赖。
功能模型描述了系统做什么,而对如何做和何时做不感兴趣
系统设计是一个把系统需求变换成软件表示的过程。
其满足三个基本条件,即加强系统的实用性、降低系统开发和应用的成本、提高系统的生命周期
总体设计目标:
一个优化的GIS必须具有运行效率高、可变性强、控制性能好等特点
总体设计需完成的工作:
1、制定规范:
在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内个成员工作
2、软件结构设计:
在需求分析阶段,已经从系统开发的角度出发,使系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。
3、数据库设计:
确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计
4、编写总体设计阶段的文档:
总体设计说明书、数据库设计说明书、用户手册、制定初步的测试计划
5、总体设计评审:
在完成以上几项工作后,应当组织对总体设计工作的评审
总体设计的步骤:
1、根据用户需要,确定系统要做哪些工作,形成系统的逻辑模型
2、将系统分解为一组模块,各个模块分别满足所提出的要求
3、将分解出来的模块,按照是否能满足正常的需求进行分类
4、制定工作计划,开发有关的模块,并对各个模块进行一致性的测试以及系统最后的运行
总体设计的基本任务:
1、设计软件结构:
为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库,软件结构的设计是以模块为基础,软件结构的设计是总体设计的关键一步
2、数据结构及数据库设计
3、编写总体设计的文档:
总体设计说明书、数据库设计说明书、用户手册、修订测试计划
4、评审:
对设计部分规定的功能、性能等要求,设计方案的可行性、关键的处理及内外部接口定义的正确性、有效性进行评审
结构化设计的优点:
1、减少设计复杂性;2、结构独立;3、单一的功能模块,可以使得软件设计获得最大的益处;4、易于进行软件的修改;5、易于开发和维护6、加强了可重用代码的能力
软件结构设计准则:
1、模块独立性原则
2、控制范围与影响范围之间的准则
3、软件结构的形态特征准则
4、模块的大小准则
5、模块的接口准则
结构设计的基本概念:
1、模块化2、抽象3、信息隐蔽
模块的独立性:
1、耦合度
(1)联系方式的类型
(2)接口的复杂性(3)联系的作用(4)耦连时间2、内聚度
(1)偶然性内聚
(2)逻辑性内聚(3)时间性内聚(4)过程性内聚(5)通信性内聚(6)顺序性内聚(7)功能性内聚
系统结构图的基本组成:
1、传入模块:
从下属模块取得数据,经过模块处理再给上级模块。
2、传出模块:
从上级模块获得数据,经过模块处理再传给下属模块。
3、变换模块:
从数据模块获得数据,经过模块的特定处理,转换成其他它形式在传送上级模块。
4、协调模块:
对所有下属模块进行协调和管理的模块,这种模块一般在系统结图中较高层出现。
(结合课件)数据流图变换为系统结构图的方法:
1、变换分析设计方法:
1)重画数据流图;2)确定系统的逻辑输入、逻辑输出和中心变换部分;3)进行一级分解,涉及系统模块结构的顶层和第一层;4)进行二级分解,设计输入、中心变换、输出部分的中、下层模块。
2、事务分析设计方法:
1)识别事务源;2)确定适当的事务型结构;3)识别各种事务和它们定义的操作。
OMT设计方法的缺点:
1、记法复杂反而难以理解;2、它缺乏对大型程序设计的系统分解的方法;3、OMT设计方法过分地受信息模型技术和数据库技术的影响,其开发方法还是数据驱动的。
UML的特点:
1、统一了面向对象方法的基本概念;2、建模能力更强;3、独立于开发过程;4、UML提出来许多新概念。
(填空)用例图的元素有:
用例、执行者和连接。
画用例图:
1获取执行者;2获取用例;3用例的数量。
(填空)包与包之间的关系:
1依赖关系、2泛化关系
状态图中定义的状态有初态、终态、中间状态和复合状态。
时间的种类:
1变化事件:
当某个条件成立时该事件才出现;2信号事件:
指一个对象接收到另一个对象的明显信号:
3调用事件:
只接收到另一个对象的操作调用;4时间时间:
指某个时刻的出现。
活动图的模型元素有活动、转移、对象、泳道和信号等。
(填空)
对象生命线表示对象在某段时间内是存在的,每个对象图符下面的垂直虚线表示对象的生命线,每条对象生命线上的细长矩形框表示该对象的生命周期。
配置图:
是描述任何基于计算机的应用系统的物理配置或逻辑配置的有力工具,配置图的元素有节点和连接。
详细设计是软件设计的重要阶段,主要确定每个模块具体执行过程,故也称“过程设计”
(填、选)表达过程规格说明的工具叫做详细设计工具,它分为三类:
1.图形工具;2.表格工具;3.语言工具
详细设计的基本任务:
1.处理方式设计;2.物理设计;3.可靠性设计4.其他设计;5.编写详细设计说明书及进行详细设计的评审
(简单)结构化程序设计方法有以下几个基本要点:
1.采用自顶向下、逐步求精的程序设计方法
2.使用三种基本控制结构构造程序
3.主程序员的组织形式
(填p186)为使用流程图描述结构化程序,必须限制流程图知恩那个使用五种基本控制结构:
1.顺序型;2.选择型;3.先判定型循环(DO-WHILE);4.后判定型循环(DO-UNTIL);5.多情况选择型
(P189-195)N-S图:
五中基本控制结构画法,PAD基本控制结构,PDL语言(结合课件)
(问答)用户界面应具备的特性:
1.可使用性:
1)使用的简单性;2)用户界面中的术语标准化和一致性;3)拥有HELP帮助功能;4)快速的系统响应和低的系统成本;5)用户界面应具有容错能力、错误诊断功能
2.灵活性:
1)算法的可隐可现性;2)用户可以根据需要制定和修改界面方式;3)系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息;4)与其他软件系统应有标准的界面
3.复杂性和可靠性:
1)用户界面的复杂性2)用户界面的可靠性
(选、填)GIS软件的基本界面样式:
1.基于命令行的GIS界面;2.基于窗口的界面;3.菜单驱动的GIS界面;4.基于对话框的界面;5.采用数据流图的GIS图形用户界面
(问答)程序编制的一般要求:
1.尽量使用GIS基础软件的编程资源;2.注意系统配置的要求;3.良好的程序设计风格;4.程序容错性强;5.采用版本控制管理程序编码
(问答)编程语言的特性:
1.心理特性:
1)歧义性2)简洁性;3)局部性和顺序性4)传统性;
2.工程特性(问答):
从软件工程的观点,编程语言的特性着重考虑软件开发项目的需要,因此对程序编制有如下要求:
1)可移植性;2)开发工具的可利用性;3)软件的可重用性;4)可维护性;
3.技术特性
(问答)程序设计风格:
1.源程序文档化:
1)标识符应按意取名2)程序应加注释;2.数据说明;3.语句构造:
简单直接,不能为了追求效率而使代码复杂化;4.输入和输出;5.效率:
处理机时间和存储空间的使用
(问答)软件测试的目的:
测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。
如果成功地实施了测试,就能够发现软件中的错误。
测试的附带收货是,它能够证明软件的功能和性能与需求说明相符。
此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。
(问答)软件测试的原则:
1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭;
2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;
3)程序员应避免检查自己的程序;
4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件;5)充分注意测试中的群集现象;
6)严格执行测试计划,排除测试的随意性
7)应当对每一个测试结果做全面检查
8)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便
(填)软件测试的对象:
需求分析、总体设计、详细设计以及程序编码各阶段所得到的文档,包括需求规格说明、总体设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。
(填)软件测试的步骤及个开发阶段的关系:
软件产品在交付使用之间一般要经过单元测试、集成测试、确认测试和系统测试。
(填)单元测试:
1.测试的内容:
1)模块接口;2)局部数据结构;3)重要的执行路径;4)错误处理;5)边界条件
2.测试的方法:
由于被测试的模块往往不是独立的程序,它处于整个软件结构的某一层位置上,被其他模块调用或调用其他模块,其本身不能进行单独运行,因此在单元测试时,需要为被测模块设计驱动模块和桩模块。
(填)集成测试的方法:
1)非渐增式测试;2)渐增式测试;3)渐增式与非渐增式测试的区别
测试的目的:
是发现错误,调试(也称排错)的目的是确定错误的原因和准确位置,并加以纠正
(填)调试方法:
1)简单的调试方法;2)归纳法调试;3)演绎法调试;4)回溯法调试
软件试运行:
1)软件试运行;2)系统正确性完善;3)应用系统适应性完善;4)用户使用
(填、问答)影响维护工作的因素:
1系统大小:
系统越大,了理解掌握起来越困难,所执行功能越复杂;2程序设计语言:
使用强功能的程序设计语言可以控制程序的规模。
3系统年龄:
老系统比新系统需要更多的维护工作量。
4数据库技术的应用:
使用数据库,可以简单而有效的管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量;6其他:
例如,应用的类型、数学模型、任务的难度、开关与标记、IF嵌套深度、索引或下标数等,对维护工作都用影响。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 期末