软件工程期末考试复习资料1
软件工程期末考试复习资料1

软件工程期末考试复习资料1版权声明:本文版权归05112114、05112125 所有,未经许可,任何任何媒体均不得改变其形式,进行转载或摘录,违者必究!软件工程期末考试复习资料一(仅参考)拟订人:超越吉他手、朱古力、哖_少オ輕狂第一章:软件工程的产生和发展有关复习资料一、软件工程的定义:1、软件危机的产生:软件危机的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
2、软件危机主要表现:两个方面:①软件产品质量低劣,甚至开发过程就夭折②软件生产率低,不能满足需要3、软件工程的三要素:①方法:完成软件开发各项任务的技术方法②工具:研究支撑软件开发方法的工具③过程:为开发高质量软件所规定的各项任务的工作步骤4、软件工程研究的标准及目标:标准:分为4个层次,国际标准、行业标准、企业规划、项目规划目标:以较少的投资获取高质量的软件。
有易于维护、低的开发成本、高性能、缩短开发期5、软件工程研究的主要内容:以下两个方面:①软件开发方法、技术;软件开发工具及环境②软件管理技术、软件规范(国际规范)7、软件工程学的目的:①以较少的投资获取高质量的软件②运用科学的方法和工程化的规范管理来指导软件开发③克服软件危机8、软件工程的基本原则:如下4条基本原则①必须认识软件需求的变动性,采取适当措施来保证结果产品能忠实地满足用户需求②稳妥的设计方法大大地方便了软件开发,以达到软件工程的目标③软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用④有效的软件工程只有在对软件过程进行有效管理的情况下才能实现9、软件工程过程及特性:是指在软件工具的支持下,所进行的一系列软件工程活动包括4类基本过程:1)软件规格说明书2)软件开发3)软件确认4)软件演进特性:可理解性、可见性、可靠性、可支持性、可维护性、可接受性、开发效率和健壮性等。
二、软件与软件生存周期1、软件的概念和特点1)概念:软件是程序以及开发使用维护程序所需的所有文档2)软件的构成:由应用程序、系统程序、面向用户的文档及面向开发者的文档4部分构成即:软件=程序+文档3)特点:①软件是一种逻辑实体,不是具体的物理实体②软件产品的生产主要是研制③软件具有复杂性,开发和运行常受到计算机系统的限制、④软件成本昂贵,开发方式还没完全摆脱手工生产方式⑤软件不存在老化和磨损,存在在退化问题2、软件的分类1)按照软件功能划分①系统软件②支撑软件③应用软件2)按照软件规模划分微型、小型、中型、大型、甚大型、极大型3)按照软件工作方式划分实时处理软件、交互式软件、批处理软件4)按照软件服务对象的范围划分项目软件、产品软件3、软件结构及结构图衡量软件结构的有关指标:1)深度2)宽度3)扇出数扇入数软件结构的形态准则:顶部宽度小,中部宽度大,底部宽度次之;在顶部有较高的扇出数底部有较高的扇入数软件结构:1)模块(构成软件系统结构的基本元素)2)模块化3)软件的层次结构4)树状结构:特点是是程序的主模块、整个结构只有一个顶层模块、也只有一个上级模块、同一层模块之间没有横向联系5)网状结构:特点是任何两个模块之间有双向的关系、都是平等的结构图的构成:主要有模块、调用、数据4、软件生存期有关资料1)定义:是指从软件开始开发到报废的全过程,亦称软件生存期(l i f e c y c l e)。
软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。
这个时期的工作通常又称为系统分析,由系统分析员负责完成。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
7.维护时期的主要任务是使软件持久地满足用户的需要。
8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。
9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。
a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。
①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。
c)质量保证的观点:软件工程的基本目标是优质、高产。
为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。
每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。
软件工程期末复习资料

软件工程复习资料一、选择题,请从四个可选项中选择正确答案。
1. 软件工程学科出现的主要原因是()。
A. 计算机的发展B. 其他工程科学的影响C. 软件危机的出现D. 程序设计方法学的影响2. ()是职业软件工程师的必要条件。
A•自律、善于沟通、具有一定的软件技能 B.编程速度快C.熟悉众多的软件环境D.语言天赋3. 在E-R模型中,包含以下基本成分()。
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.类有3种类型,即()°A.边界类、实体类、控制类B.实体类、控制类、界面类C.控制类、实体类、虚类D.界面类、控制类、公共类10. ()是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。
A. 消息连接B.参数传递C.方法重写D. 继承11、软件工程的研究容具有层次化结构,最底层是质量保证层,中间层是(),最上层是工具层。
A. 过程层B.方法层C.过程层和方法层D.系统层12、可行性研究的四大要素是()。
A. 经济、技术、法律和社会环境B. 经济、技术、开发组织能力和领导者水平C. 经济、技术、计算机硬件环境和网络带宽D. 经济、技术、软件开发工具和人员的稳定性13、针对需求不确定的软件开发,比较好的模型是()。
软件工程期末考试重点

《软件工程》期末复习重点第一章软件工程1.什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。
如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型特点:可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证(评审)的。
缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格与用户需求之间有差异,就会发生这种情况。
只适用于项目开始时需求已确定的情况。
B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。
降低了规格说明文档变化的可能性。
减少了后续阶段错误的可能性。
c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
增量能够有计划地管理技术风险。
缺点:要求构件具备开放式的体系结构。
易退化为边做边改模型,从而使软件过程的控制失去整体性。
软件工程期末考试资料

软件工程第一章:1.软件的组成不仅是程序、数据和文档,而且还有完成一定功能和性能所蕴含的知识和经验。
2.领域知识是基于计算机的系统的设计、软件需求获取和系统测试不可或缺的。
3.软件发展的历史给我们的启发是社会需求和硬件进步是软件技术发展的基础。
4.软件的进步和成就促进了信息社会和知识经济的发展。
5.按照应用领域、基本属性和特点研究软件有助于对软件的理解,提高了软件开发、使用和维护的针对性。
6.软件工程学科具有鲜明的工程特性。
第二章:1.面向对象方法是现代软件工程技术体系的基石,它以分类、继承、聚合、封装、多态和消息传递等贴近人类思维习惯的概念。
2.因面向对象与生俱来的自然性、直观性,以及支持软件复用、改善软件结构等许多优势,面向对象方法后来居上,迅速取代结构化方法而成为当前主流的软件开发方法学。
3.UML通过图形化的表示机制从多个侧面表示软件系统的分析和设计模型。
4.UML定义了5类图形机制:用例视图,包括用例描述和用例图;结构视图,包括视图,包括包图、类图和对象图;行为视图,包括交互图、状态图与活动图;构件视图和部署视图。
5.RUP将软件生存周期(即软件制品的进化状态)划分为初始、细化、构造、移交、生产5个阶段。
6.RUP将软件开发过程分解为业务建模、需求、设计、实现、V&V、部署、配置和变更管理、项目管理、环境9个工作流。
7.软件项目团队可利用5个阶段、9个工作流组织管理软件项目的开发活动。
RUP 过程中生成的各类制品通常以UML表示。
8.软件开发过程是基于面向对象方法学的,包括需求获取、需求分析、体系结构设计、人机交互设计、详细设计、实现、测试、维护与进化等重要的软件开发阶段。
第三章:1.软件需求是指利益相关方对目标软件系统在功能、性能和质量等方面的期望,以及对目标软件系统在运行环境、资源消耗等方面的约束。
2.软件需求可划分为功能需求、质量需求和约束性需求3种类型,其中质量需求和约束性需求统称为非功能需求。
软件工程复习资料整理

《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
2、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。
0802A.判定表和判定树C.流程图3、以下不属于逻辑覆盖的是(D)。
1402A.语句覆盖C.条件覆盖B.盒图D 关系图B.判定覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为( B)。
1501A.纠错性维护B.适应性维护C.改善性维护 D 预防性维护二、填空题(每空2分,共18分)1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。
01012. 高级语言:独立于机器,面向过程或面向(对象)01013. 软件项目管理的范围主要集中于 3 个P 上,即:People 人员、Problem 问题和(过程)。
02014. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。
15045. 在公式V(G) = E – N + 2 中: E 为程序图G 中边的总数;N 为程序图中结点的总数。
V(G)又称为图 G 的环形(复杂度)0204。
6. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。
03037. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。
12048. 文档是一种数据媒体和其上所记录的(数据)。
0101三、判断题(每小题2分,共24分,错误打X、正确打√)1. 用户对软件需求的描述不准确,往往是产生软件危机的原因之一。
(√)01022. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)02063. 目前的绝大多数软件都不适合于快速原型技术。
[理学]软件工程复习资料1
![[理学]软件工程复习资料1](https://img.taocdn.com/s3/m/a897e1ad8762caaedd33d44e.png)
一、单选题1.可行性分析研究的目的是()A.争取项目B.项目值得开发否C.开发项目D.规划项目2.具有风险分析的软件生存周期模型是()A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型3.需求分析阶段的任务是确定()A.软件开发方法 B.软件开发工具 C.软件开发D.软件系统的功能4.数据字典是用来定义()中的各个成份的具体含义的。
A.流程图 B.功能结构图 C.系统结构图D.数据流图5.程序的三种基本控制结构的共同特点是()A.只能用来描述简单程序 B.不能嵌套使用C.单入口,单出口 D.仅用于自动控制系统6.软件设计的方法有多种,()方法不属于面向数据流的设计方法。
A.基于Jackson图的设计 B.基于IDEF0图的设计-结构化方法-数据流C.交换分析设计 D.事务分析设计7.为高质量地开发软件项目,在软件结构设计时,必须遵循()原则。
A.信息隐蔽 B.质量控制 C.程序优化 D.数据共享8.软件复杂性主要体现在()A.数据的复杂性B.程序的复杂性C.控制的复杂性D.问题的复杂性9.为了提高软件的可维护性,在编码阶段应注意()A.保存测试用例和数据B.提高模块的独立性C.文档的副作用D.养成好的程序设计风格10.面向对象的特征之一是()A.对象的唯一性B.抽象C.封装性D.共享性11.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()A.数据耦合 B.公共耦合 C.标记耦合D.内容耦合12.需求规格说明书的作用不包括()A.软件验收的依据 B.用户与开发人员对软件要做什么的共同理解C.软件可行性研究的依据 D.软件设计的依据13.为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以()的编制是很重要的。
A、需求说明 B概要说明C软件文档D测试计划14.软件部件的内部实现与外部可访问性的分离,是指软件的()。
A、继承性B、共享性C、封装性D、抽象性15.单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现()的错误。
软件工程期末复习

软件工程期末复习一、填空题1. 软件是计算机系统中与硬件互相依存的另一部分,它是涉及(程序)、(数据)及其(相关文档)完整集合。
其中,(程序)是按事先设汁的功能和性能规定执行的指令序列,(数据)是使程序可以对的操纵信息的数据结构,(相关文档)是与程序开发、维护和使用有关的图文资料.2. 软件危机是指计算机软件的(开发)和(维护)过程中所碰到的一系列严重问题。
3. 软件工程是指导计算机软件(开发)和(维护)的一门工程学科,采用工程的概念、原理、技术和方法来开发和维护软件,把通过时间考验而证明对的的管理技术和当前可以得到的最佳技术方法结合起来,以经济地开发出高质量的软件并有效地(维护)它,这就是软件工程。
4. 常见的软件开发模型有(瀑布模型)、(快速原型模型)、(增量模型)和(螺旋模型)等;5. 软件工程学方法的三要素是:(方法)、(工具)和(过程)。
6. 瀑布模型是一个(文档)驱动模型。
7. 可行性研究一般可以从(经济)可行性、(技术)可行性、法律可行性和法律可行性等方面来研究。
8. 数据流图从数据传输和(数据加工)角度,以(图形)的方式描述数据流从输入到输出的传输变换过程。
9. 数据流图的四个基本符号分别表达(数据的源点或终点)、(数据的加工)、(数据存储)和数据流;10. 实体-联系图中,数据对象之间的关系有(一对一)、(一对多)和(多对多关系)。
11. 需求分析阶段应当建立三种模,即:(数据模型)、(功能模型)和(行为模型)。
12. 一般从(一致性)、(完整性)、(现实性)和(有效性)四个方面验证软件需求的对的性。
13. HIPO 图是由一组(层次图)图加上一张(IPO)图组成。
14. 模块独立性的两个度量标准为:(耦合)和(内聚)。
15. 一般说来,模块之间的耦合限度(低),则单个模块的内聚限度(高)。
16. 经验表白,设计好的软件结构,通常顶层模块的扇出(比较高),中层模块扇出(较少),底层模块(高)扇入17. 三种基本的程序控制结果是(顺序结果)、(选择(分支)结构)和(循环结构)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
版权声明:本文版权归05112114、05112125 所有,未经许可,任何任何媒体均不得改变其形式,进行转载或摘录,违者必究!软件工程期末考试复习资料一(仅参考)拟订人:超越吉他手、朱古力、哖_少オ輕狂第一章:软件工程的产生和发展有关复习资料一、软件工程的定义:1、软件危机的产生:软件危机的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
2、软件危机主要表现:两个方面:①软件产品质量低劣,甚至开发过程就夭折②软件生产率低,不能满足需要3、软件工程的三要素:①方法:完成软件开发各项任务的技术方法②工具:研究支撑软件开发方法的工具③过程:为开发高质量软件所规定的各项任务的工作步骤4、软件工程研究的标准及目标:标准:分为4个层次,国际标准、行业标准、企业规划、项目规划目标:以较少的投资获取高质量的软件。
有易于维护、低的开发成本、高性能、缩短开发期5、软件工程研究的主要内容:以下两个方面:①软件开发方法、技术;软件开发工具及环境②软件管理技术、软件规范(国际规范)7、软件工程学的目的:①以较少的投资获取高质量的软件②运用科学的方法和工程化的规范管理来指导软件开发③克服软件危机8、软件工程的基本原则:如下4条基本原则①必须认识软件需求的变动性,采取适当措施来保证结果产品能忠实地满足用户需求②稳妥的设计方法大大地方便了软件开发,以达到软件工程的目标③软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用④有效的软件工程只有在对软件过程进行有效管理的情况下才能实现9、软件工程过程及特性:是指在软件工具的支持下,所进行的一系列软件工程活动包括4类基本过程:1)软件规格说明书2)软件开发3)软件确认4)软件演进特性:可理解性、可见性、可靠性、可支持性、可维护性、可接受性、开发效率和健壮性等。
二、软件与软件生存周期1、软件的概念和特点1)概念:软件是程序以及开发使用维护程序所需的所有文档2)软件的构成:由应用程序、系统程序、面向用户的文档及面向开发者的文档4部分构成即:软件=程序+文档3)特点:①软件是一种逻辑实体,不是具体的物理实体②软件产品的生产主要是研制③软件具有复杂性,开发和运行常受到计算机系统的限制、④软件成本昂贵,开发方式还没完全摆脱手工生产方式⑤软件不存在老化和磨损,存在在退化问题2、软件的分类1)按照软件功能划分①系统软件②支撑软件③应用软件2)按照软件规模划分微型、小型、中型、大型、甚大型、极大型3)按照软件工作方式划分实时处理软件、交互式软件、批处理软件4)按照软件服务对象的范围划分项目软件、产品软件3、软件结构及结构图衡量软件结构的有关指标:1)深度2)宽度3)扇出数扇入数软件结构的形态准则:顶部宽度小,中部宽度大,底部宽度次之;在顶部有较高的扇出数底部有较高的扇入数软件结构:1)模块(构成软件系统结构的基本元素)2)模块化3)软件的层次结构4)树状结构:特点是是程序的主模块、整个结构只有一个顶层模块、也只有一个上级模块、同一层模块之间没有横向联系5)网状结构:特点是任何两个模块之间有双向的关系、都是平等的结构图的构成:主要有模块、调用、数据4、软件生存期有关资料1)定义:是指从软件开始开发到报废的全过程,亦称软件生存期(l i f e c y c l e)。
一般用经典的瀑布模型来描述。
2)软件生存周期的阶段:分为7个阶段①可行性研究和项目开发计划②需求分析③概要设计④详细设计⑤编码⑥测试⑦维护3)生存周期模型瀑布模型(计划时期、开发时期、运行时期)、循环模型、增量模型、螺旋模型(4个工作步骤:制定计划、风险计划、实施工程、客户评估)、喷泉模型、智能模型第二章:软件需求分析有关复习资料一、软件需求分析有关资料1、需求分析的任务:1)基本任务:是准确地定义新系统的目标,获得需求规格说明书2)具体任务:①确定系统的综合要求②分析系统的数据要求③导出系统的逻辑模型④修正系统的开发计划2、需求分析的过程:1)问题识别2)分析与综合3)编写文档4)分析评审3、需求分析的原则:1)能够表达和理解问题的信息域和功能域2)能够对问题进行分解和不断细化,建立问题的层次结构3)需要给出系统的逻辑视图和物理视图4、需求分析的方法:1)功能分析方法2)结构化分析方法3)信息建模法4)面向对象分析方法(OOA法)5、需求分析的目的:1)进一步确定用户的需求2)解决系统是做什么的问题6、需求分析中存在的问题:1)明确问题域和系统责任2)充分交流的问题3)需求的不断变化4)考虑复用要求二、软件的开发方法有关资料1、软件的开发方法有关资料1)软件开发方法可分为两大类:面向过程的开发方法、面向对象的开发方法2)面向过程的开发方法分为:①JACKSON方法:由JSP(主要体现程序结构的设计)和JSD(解决I/O结构冲突的问题)方法构成;JACKSON有三种典型动作(顺序、选择、循环);JACKSON设计过程包括建立数据库、建立相应的程序结构图;JACKSON方法的优点是结构清晰、易理解、易修改;缺点是当系统规模及复杂度大时,确定数据库有点困难。
②结构化开发方法:1)是一种面向数据流的开发方法2)基本原则是功能的分解与抽象3)主要特点是快速、自然、方便4)指导思想是自顶向下、逐步求精5)由结构化程序设计方法SP法、结构化设计方法SD法(设计准则是模块内聚性强、模块之间耦合性低)、结构化分析方法SA法构成(其步骤为:建立当前系统的具体模型、抽象出当前系统的逻辑模型、建立目标系统的逻辑模型、设计人机界面问题),其描述的工具有数据流图、数据词典、结构化语言、判定表和判定树③原型化方法:1)又称速成原型法2)又可以分为快速建立需求规格原型和快速建立渐进原型3)基本思想是花费少量代价建立一个可运行的系统4)主要优点在于是一种支持用户的方法,使得用户在系统生存周期的设计阶段起到积极的作用,能减少系统的开发风险5)速成原型法适合于开发大型科学计算、探索型系统、实验型系统信息管理系统、进化型系统、CAI系统、软件系统等6)软件原型可分为:废气型、追加型7)工作模型的步骤有:①快速分析②构造分析③运行和评价模型④修正与改进还分为HIPO、IDEF法3)面向对象的开发方法分为:OOSD法:由OOA法(要建立三种模型:对象模型、状态模型、处理模型)、OOD法、OOP法三部分组成2、数据流图有关资料1)四种基本图形符号:①数据流②加工③数据存储④数据源点或终点2)画DFD图的四步骤:1)确定外部实体2)确定分解顶层的加工3)确定使用的文件4)用数据流将各部分连接起来,形成数据封闭3)画分层DFD图的基本原则:①数据守恒和数据封闭②加工分解的原则③子图与父图的平衡4)数据词典的条目:数据流条目、文件条目、数据项条目、加工条目5)加工逻辑说明的三种描述方式:①结构化语言:特点:简单,易学,少二义性②判定表:特点:可处理较复杂的组合条件,但不易理解.不易输入计算机③判定树:特点:描述一般组合条件较清晰,易理解。
不易输入计算机6)DFD图分类:中心变换型、事物处理型第三章:软件设计及编码有关复习资料一、软件设计有关资料1、软件设计的任务和目标1)任务:将分析阶段获得的需求说明转换为计算机中可实现的系统,完成系统的结构设计,包括数据结构和程序结构,最后得到软件设计说明书。
2)任务分为三部分:①划分模块,确定软件结构②确定系统的数据结构③设计用户界面3)设计的目标:①软件实体有明显的层次结构,利于软件元素间控制②软件实体应该是模块化的,模块具有独立功能③软件实体与环境的界面清晰④设计规格说明清晰、简洁、完整和无二义性2、软件设计:分两步,总体设计和详细设计3、详细设计有关资料1)任务:详细设计阶段的任务是开发一个可以直接转换为程序的软件表示,即对系统中每个模块的内部过程进行设计和描述2)常用的描述方法工具:流程图、结构化流程图(N-S图)、PAD图—问题分析图、PDL 语言二、模块有关资料1、模块的基本属性:有三个基本属性:功能、逻辑、状态2、模块的独立性:1)定义:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的2)模块的基本特征:①内部特征(局部数据、代码)②外部特征(输入/输出、功能)3)度量标准:①耦合性:用于描述模块之间联系的紧密程度②内聚性:用于描述模块内部联系的紧密程度4)耦合性的类型:内容耦合、公共耦合、控制耦合、复合耦合、数据耦合5)内聚性的类型:偶然型、逻辑型、瞬时型、通信型、顺序型、功能型6)模块结构图的改进:①尽可能建立功能模块②消除重复功能③模块的作用范围与控制范围④模块的大小适当⑤模块的扇入扇出数不宜太多三、用户界面设计和程序编码有关资料1、用户界面的特性:1)可使用性2)灵活性3)界面的复杂性与可靠性2、用户界面设计的任务:1)用户特性分析(建立用户模型)2)用户界面任务分析(建立任务模型)3)确定用户界面模型3、用户界面的基本类型:问题描述语言、数据表格、图形与图表、菜单’对话框、窗口等4、数据输出界面设计:1)显示内容选择的原则2)安排显示结构的规则5、提高输入效率的方法:1)尽量减少输入工作量2)输入屏幕与输入格式匹配3)遵循数据输入的一般原则(确定输入、交互动作、确定删除、提供反馈数据6、编码阶段的任务:是为每个模块编写程序。
即是将详细设计的结果转换为用某种计算机语言写的程序7、选择程序设计语言的一般准则:1)项目的应用领域:应尽量选取适合某个应用领域的语言2)算法和计算复杂性:要根据不同语言的特点,选取能够适应软件项目算法和计算复杂性的语言3)软件的执行环境:要选取机器上能运行且具有相应支持软件的语言4)性能因素:应结合工程具体性能来考虑,例如实时系统要求速度,就应选择汇编语言5)数据结构的复杂性:要根据不同语言构造数据结构类型的能力选取合适的语言6)软件开发人员的知识水平以及心理因素知识水平包括: 专业知识,程序设计能力。
心理因素如对某种语言或工具的熟悉程度,受外界的影响8、设计语言的特性:具有很强的过程功能和数据结构功能,并提供结构化的逻辑构造9、程序设计风格:从以下几个方面来考虑设计风格1)源程序文件:⑴符号名的命名⑵源程序中的注释⑶注意源程序的书写格式2)语句构造方法3)数据说明方法4)输入/输出技术10、程序效率:包括代码效率、存储效率、I/O效率第四章:面向对象技术有关复习资料一、面向对象方法概述有关资料1、面向对象:面向对象=对象+类+继承+通信2、面向对象方法的主要特点:1)按照人类习惯的思维方法,对软件开发过程所有阶段进行综合考虑2)软件生存期各阶段所使用的方法、技术具有高度的连续性3)软件开发各个阶段有机集成,有利于系统的稳定性4)具有良好的重用性3、面向对象的基本概念:1)对象:①对象通过其运算所展示的特定行为称为对象行为②对象本身的性质称为属性③对象将它自身的属性及运算“包装起来”,称为“封装”④对象是面向对象的最基本的元素,是分析问题、解决问题的核心⑤对象的基本特征是封装2)类:①类又称对象类是指一组具有相同属性和运算的对象的抽象,一组具有相同数据结构和相同操作的对象的集合②类具有属性,用数据结构来描述类的属性,类具有操作,它是对象的行为的抽象③类具有独立性,是一个独立的封装体3)继承:①是父类和子类之间共享数据结构和方法的机制,这是类之间的关系②子类的公共属性和操作归属于基类,并为每个子类共享③子类继承了基类的特征④继承又分为:单重继承、多重继承4)多态性:①指相同的操作、函数或过程作用于多种类型的对象上并获得不同的结果②多态性允许每个对象以适合自身的方式去响应共同的消息5)消息:①指对象之间在交互中所传送的通信信息②一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识、消息和方法、输入信息、回答信息6)方法:①类中的操作实现的过程称为方法②方法描述了类与对象的行为二、面向对象的分析与设计有关资料1、面向对象分析的特点及构成:特点:1)有利于对问题及系统责任的理解2)有利于对人员之间的交流3)对需求变化有较强的适应性4)支持软件复用构成:由对象、分类、继承性和消息的通信构成2、分析的基本任务及分析过程:1)基本任务:是完成对所求解问题的分析,确定系统作什么,并建立系统的模型2)分析过程:①论域分析:抽取和整理用户需求并建立问题域精确模型的过程。