软件工程-原理、方法与应用【第三版】复习总结

合集下载

《系统集成项目管理工程师教材》第 3 版第五章《软件工程》的知识点!

《系统集成项目管理工程师教材》第 3 版第五章《软件工程》的知识点!

《系统集成项目管理工程师教材》第 3 版第五章《软件工程》的详细知识点一:软件工程定义1:概念:软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产率、提高软件质量、降低软件成本:2:组成部分:由方法、工具和过程 3 个部分组成。

其中,方法是完成软件项目的技术手段,支持整个软件生命周期;工具是人们在开发软件活动中智力和体力的扩展与延伸,自动或半自动地支持软件的开发和管理以及各种软件文档的生成;过程贯穿于软件开发的各个环节,是指在软件工具的支持下,软件工程师完成的一系列软件工程活动,管理人员需对软件开发的质量、进度、成本进行评估、管理和控制。

·二:软件需求1:需求的层次①业务需求:反映组织机构或用户对系统、产品高层次的目标要求,从总体上描述为什么要达到某种效应,组织希望达到什么目标,通常来自项目投资人、客户、管理人员等,可确定项目视图和范围。

②用户需求:描述用户的具体目标,或用户要求系统必须能完成的任务和想要达到的结果,构成用户原始需求文档的内容,体现系统给用户带来的业务价值。

③系统需求:从系统的角度说明软件的需求,包括功能需求、非功能需求和约束等。

④功能需求:规定了开发人员必须在系统中实现的软件功能;⑤非功能需求:描述了系统展现给用户的行为和执行的操作等,可细分为软件质量属性和其他非功能需求;约束是对开发人员在软件产品设计和构造上的限制。

2:质量功能部署(QFD)是一种将用户要求转化成软件需求的技术,目的是提升用户满意度。

将软件需求分为常规需求、期望需求和意外需求。

①常规需求是用户认为系统应做到的功能或性能,实现越多用户越满意;②期望需求是用户想当然认为系统应具备的功能或性能,但不能正确描述,若未实现会让用户不满意;③意外需求是用户要求范围外的功能或性能,实现会让用户更高兴,不实现也不影响购买决策。

3:需求获取是开发者与用户之间为了定义新系统而进行的交流,是获得系统必要的特征或用户能接受的、系统必须满足的约束。

软件工程的原理与方法

软件工程的原理与方法

软件工程的原理与方法软件工程是一门关注软件开发全过程的学科,它涉及到软件需求分析、软件设计、软件测试、软件维护等方面。

软件工程的原理与方法是指在软件开发过程中,所使用的一系列科学准则和规范,以确保软件开发质量和效率。

本文将从软件工程的原理和方法两个方面来详细阐述。

一、软件工程的原理1. 开发生命周期原理软件工程强调将软件开发过程划分为不同的阶段,并在每个阶段采取相应的方法和技术。

典型的软件开发生命周期包括需求分析、系统设计、编码、测试和维护等阶段。

通过严格遵循开发生命周期原理,可以有效地组织和管理软件开发过程,提高开发效率和质量。

2. 模块化与抽象原理软件工程鼓励将复杂的系统划分为一系列相对独立的模块,通过模块化的方式降低系统的复杂性。

同时,还倡导使用抽象的方法来描述和设计软件系统,将系统的关键部分抽象成接口和类等概念,以便于系统的扩展和维护。

3. 面向对象原理面向对象是软件工程的一个重要思想和原则。

它强调将问题领域中的实体和相应的行为封装成对象,通过对象之间的交互来实现系统的功能。

面向对象的设计方法可以提高系统的可扩展性、复用性和可维护性,是现代软件工程中广泛采用的一种方法。

二、软件工程的方法1. 需求工程需求工程是软件开发过程中至关重要的一个阶段,它旨在收集和分析用户需求,明确系统的功能和性能要求。

在需求工程中,常用的方法包括用户访谈、用例建模、需求规格说明书等。

通过合理的需求工程方法,可以确保软件系统能够满足用户的需求和期望。

2. 结构化设计结构化设计是软件设计过程中的一种重要方法,它通过划分模块、定义接口和数据结构等手段,将软件系统划分为层次化的、功能独立的组件。

结构化设计能够提高软件系统的可维护性和易读性,降低系统的复杂性,从而更好地满足用户需求。

3. 面向对象设计面向对象设计是一种基于面向对象思想的设计方法,它将系统的功能和行为抽象为对象和类,通过对象之间的交互来实现系统的功能。

面向对象设计灵活、可扩展,适用于开发复杂的系统。

软件工程基础知识点总结(2023版)

软件工程基础知识点总结(2023版)

软件工程基础知识点总结软件工程基础知识点总结
1.软件工程概述
1.1 软件工程定义
1.2 软件工程的历史与发展
1.3 软件工程的特点和目标
1.4 软件工程的生命周期
2.软件需求工程
2.1 软件需求定义和分类
2.2 需求获取与分析
2.3 需求规格说明
2.4 需求验证和确认
3.软件设计
3.1 软件设计原则和概念
3.2 结构化设计方法
3.3 面向对象设计
3.4 软件设计工具和标记语言
4.软件开发
4.1 编码规范与规范检查
4.2 编程技术与方法
4.3 集成开发环境(IDE)和调试工具
4.4 软件测试和调试
5.软件项目管理
5.1 软件项目规划和组织
5.2 项目进度和资源管理
5.3 项目风险管理
5.4 质量管理与配置管理
6.软件工程度量与评估
6.1 软件度量概述
6.2 软件度量指标与度量方法
6.3 软件质量评估与改进
7.软件维护与演化
7.1 软件维护概述
7.2 维护过程与维护方法
7.3 软件重构与演化
8.软件工程的伦理和专业责任
8.1 软件工程的伦理问题
8.2 软件工程的专业责任
附件:
本文档涉及的法律名词及注释:
1.版权:一种法律保护措施,确保作品的原创性和独立性。

2.知识产权:指由人们的智能活动所创造的权利,包括专利权、著作权等。

3.商标:用以区别商品或服务来源的记号,被注册后获得权益
保护。

4.隐私保护:保护个人信息和隐私不被非法或未经授权的使用、泄漏、外传等。

现代软件工程第三版知识点总结

现代软件工程第三版知识点总结

现代软件工程第三版知识点总结计算机软件(software):是计算机系统中与硬件相互依存的另一部分,是包括程序、数据、相关文档的集合官方定义:软件:计算机系统的操作有关的计算机程序、规程及可能的相关文档的完整集合。

程序:计算机程序和数据定义的组合规程:执行给定任务应采取的一系列描述文档:程序开发、维护和使用有关的图文资料软件的特点:(1)一种逻辑实体,不是物理实体,具有抽象性(2)软件的生产与硬件不同,它没有明显的制作过程(3)软件在运行、使用期间不存在磨损、老化问题(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,导致软件移植问题(5)软件复杂性高,成本昂贵(6)软件开发涉及诸多社会因素软件危机泛指计算机软件的开发和维护过程中所遇到的一系列严重问题软件危机的主要表现:(1)软件需求的增长得不到满足(2)软件不可维护或维护程度非常低(3)软件的质量难以保证(4)软件的开发成本与进度无法控制(5)软件的成本不断提高(6)软件开发生产率的提高赶不上硬件发展和应用需求的增长可归结为成本、质量、生产率等问题软件工程:试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法软件工程学:应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或进行研究的学科都是在强调软件开发过程中需要应用工程化的原则软件工程的三要素:方法、工具、过程方法:完成软件工程项目的手段工具:支持软件的开发、管理、文档生成过程:支持软件开发的各个环节的控制、管理目的:研究软件的开发技术核心思想:把软件产品当做一个工程产品来处理软件过程是把输入转化为输出的一组彼此相关的资源和活动四种基本活动PDCA:(1)plan:软件规格说明。

规定软件的功能及其运行中的限制(2)do : 软件开发与软件设计与实现。

生产满足规格说明的软件(3)check:软件确认。

软件工程复习总结3.0

软件工程复习总结3.0

软件工程复习总结3.0第一章概论一、计算机软件:是指计算机系统中的程序及其文档。

二、程序:是计算任务的处理对象和处理规则的描述。

三、文档:是便于理解程序所需要的阐述性资料。

四、软件工程:是建立和使用一套合理的工程规则,以便获得经济的软件,这种软件是可靠的,可以在机器上高效运行的。

五、软件生命周期:是指软件产品或软件系统从产生,投入使用到被淘汰的全过程。

六、软件生命周期分为六个阶段:1计算机系统工程2需求分析3设计4编码5测试6运行7维护七、CMM的5个等级:1.初始级:软件过程的特点是无秩序的,甚至是混乱的。

2.可重复级:建立了基本的项目管理过程来跟踪成本、进度和功能特性。

3.已定义级:已将管理和工程活动两方面的软件过程文档化、标准化,并综合成该组织的标准软件过程。

4.已管理级:收集对软件过程和产品质量的详细度量值,对软件过程和产品都有定量的理解和控制。

5.优化级:过程的量化反馈和先进的新思想、新技术促使过程不断改进。

八、原型:为了减少因为对需求的了解不确切而给软件开发带来的风险,可以在获取一组基本的需求后,通过快速分析,构造出软件的一个初始的可运行的版本,通常称为原型。

九、软件危机的表现:软件的开发远远满足不了社会发展的需求,软件开发的经费超过预算,超出预期的交付时间,由于缺乏文档和缺乏开发的指导而导致不可维护。

1.对软件开发成本和进度的估计常常很不正确2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的5.软件通常没有适当的文档资料6.软件成本在计算机系统总成本中所占的比例逐渐上升7.软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势十、软件危机的原因:随着在计算机领域的广泛应用,软件的需求量越来越大,软件的复杂程度也越来越高。

1.软件是逻辑产品,开发进度、成本难以估计2.缺乏或不完整、不一致的文档给维护带来困难3.用户对软件需求的描述往往不够精确,有遗漏,有二义4.软件开发人员对需求的理解与用户的本来愿望有差异5.大型软件项目需多人协同完成,缺乏管理经验6.开发人员不能有效地、独立自主地处理大型软件的全部关系7.缺乏有力的方法学和工具的支持8.软件项目的特殊性和人类智力的局限性十一、克服软件危机的途径:1.消除错误的概念和做法2.推广使用成功的开发技术和方法3.使用软件工具和软件工程支持环境4.加强软件管理十二、软件的特点:1.软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以估算;2.软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但维护工作量大;3.软件的使用没有硬件那样的磨损老化问题。

软件工程复习知识要点

软件工程复习知识要点

1 软件与软件工程概念集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。

2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序与数据是分离的。

程序的最小单位是类。

3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。

4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。

5.什么是软件工程?(课后题)软件工程是指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

6.可以用功能性、可靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。

功能性是指软件所实现的功能达到它的设计规范和满足用户需求的程度。

可移植性是指软件从某一环境转移到另一环境时所作努力得程度。

7.软件生存期由软件定义、软件开发和运行维护三个时期组成。

开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。

开发过程中的典型文档包括:项目计划、软件测试计划、软件设计说明书、用户手册。

8.需求分析的基本任务?(1)建立分析模型,了解系统的各种需求细节。

(2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试计划和初步的系统用户手册,并提交管理机构进行分析评审。

2 软件工程方法与工具1.面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法与过程,从而使描述问题的问题空间与其解空间在结构上尽可能一致。

2.形式化方法的主要特点是:(课后题)(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。

通过一系列变换将形式的规格说明细化成为程序。

软件工程(史济民第三版)-原理、方法及应用课后习题

软件工程(史济民第三版)-原理、方法及应用课后习题

软件工程(史济民第三版)-原理、方法及应用课后习题软件工程(史济民第三版)-原理、方法及应用课后习题软件工程是一门涉及软件开发和维护的学科,具有原理、方法和应用三个方面的内容。

本章将探讨史济民第三版的软件工程课后习题,包括问题分析、需求规格说明、软件设计、软件测试等方面的内容。

1. 问题分析问题分析是软件工程中的第一步,它涉及对问题的背景、需求和目标进行分析。

在史济民第三版的课后习题中,有许多问题需要进行分析和解决。

例如,习题1要求分析一个给定的场景,找出需求和问题,进而提出解决方案。

对于这类问题,我们可以采用以下的分析步骤:1. 理解问题背景和需求:阅读习题中的场景,了解涉及的业务领域和需求。

2. 识别问题:找出场景中存在的问题和挑战,例如效率低下、错误率高等。

3. 提出解决方案:基于问题的分析,提出改进措施和解决方案,例如引入自动化工具、优化算法等。

2. 需求规格说明需求规格说明是软件工程中的重要环节,它涉及对软件系统需求进行详细描述和规定。

在史济民第三版的习题中,有许多涉及需求规格的问题。

例如,习题2要求对给定的场景进行需求分析,并书写需求规格说明。

在完成这类习题时,我们可以参考以下的格式:1. 概述:对软件系统的背景和目标进行简要描述。

2. 功能需求:详细列出系统需要实现的功能和特点。

3. 非功能需求:描述与系统性能、安全性等相关的需求。

4. 约束:列出系统开发过程中需要遵守的限制条件。

3. 软件设计软件设计是软件工程中的核心环节,它涉及软件系统的整体结构和模块设计。

在史济民第三版的习题中,有许多关于软件设计的问题。

例如,习题3要求设计一个给定场景下的软件系统。

在进行软件设计时,我们可以使用以下的设计方法:1. 模块化设计:将软件系统划分为不同的模块,并设计各个模块的功能和接口。

2. 流程图和数据流图:使用图形化的工具描述软件系统的流程和数据流动。

3. 面向对象设计:基于对象和类的概念进行系统设计,强调封装、继承和多态等特性。

软件工程的复习知识点总结

软件工程的复习知识点总结

软件工程复习题总结:◆结构化分析SA——分析模型数据模型:实体关系图ERD——概念模型方法:从人的角度理解系统得出概念模型工具:ERD组成要素:实体:矩形框联系:菱形属性:椭圆或圆角矩形分析建模——功能模型功能模型:数据流图DFD方法:自顶向下逐层分解工具:DFD组成要素:数据的源点或终点(数据源或潭):矩形框加工处理:圆角矩形或圆数据存储:开口矩形或短平行线数据流:箭头分析建模——行为模型行为模型:状态STD方法:外部事件驱动某事物状态的变化工具:STD组成要素:初态:实心圆终态:同心圆中间状态:圆角矩形(可分三部分)事件、变迁:箭头◆结构化设计SD——设计模型1、总体(概要)设计工具:软件结构图H图(HIPO图)SC图方法:面向数据流的分析设计方法(DFA) 变换型DFD事务型DFD初始SC初始SC 变换分析事务分析设计模型——详细设计详细设计工具:H图(或SC程序流程图(程序框图)N-S图(盒图)PAD图(问题分析图)判定表判定树PDL伪码方法:面向数据结构的方法——Jackson方法面向对象的分析:建模元素(用例图组成要素):参与者(执行者) 、用例、关联:参与者与用例的关系及用例间关系(使用和扩展) 、系统边界参与者(执行者)Actor:与系统交互的人或其他系统。

它代表外部实体,代表一种角色而不是某具体人或物。

用线条小人表示。

用例UseCase:可被参与者感受的一个典型完整的功能。

用椭圆表示用例。

矩形框边线:系统边界关联:直线表示参与者驱动某用例;箭头线表示用例间的关系1.扩展关系某用例中添加新动作构成另一用例(扩展用例)2.包含关系把若干用例中某些相同动作提取出来单独构成一个抽象用例UML中类/对象模型分别由类图和对象图表示。

类图技术是OO方法的核心。

类图(Class Diagram)描述类和类之间的静态关系。

UML 中类的符号为一个划分成三个格子的矩形类的名称操作属性UML 规定类的属性的语法格式为:可见性 属性名:类型=默认值{约束特性}操作的语法格式为:可见性 操作名(参数表):返回值类型{约束特性}类与类之间有关联、泛化(继承)、依赖和细化等四种关系。

软件工程原理、方法与应用【第三版】复习总结

软件工程原理、方法与应用【第三版】复习总结

软件⼯程原理、⽅法与应⽤【第三版】复习总结第⼀章绪论1.每18个⽉芯⽚的性能和速度均提⾼⼀倍,每隔12年软件⽣产⼤约提⾼⼀倍。

2.软件:是能够完成预定功能和性能的可执⾏的计算机诚信度。

包括使程序正常执⾏所需的数据,以及有关描述程序操作和使⽤的⽂档。

即:软件= 程序+ ⽂档3.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。

4.软件危机出现的原因:软件维护费⽤的急剧上升,直接威胁计算机应⽤的扩⼤;软件⽣产技术进步缓慢,是家居软件危机的重要原因。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5.软件⼯程学的范畴:软件开发技术(软件开发⽅法学、软件⼯具、软件⼯程环境)、软件⼯程管理(软件管理学、软件经济学、度量学)。

6.软件⼯程:是指导计算机软件开发和维护的⼯程学科。

它采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,⽬的是为了实现按照预期的进度和经费完成软件⽣产计划,同时提⾼软件的⽣产率和可靠性。

7.软件的发展:⼤体经历了程序、软件、软件产品3个阶段。

8.⼯具和⽅法是软件开发技术的2⼤⽀柱。

9.3种编程泛型:过程式编程泛型、⾯向对象编程泛型、基于构件技术的编程泛型10.⾯向对象程序设计中,数据和操作被封装在⼀个对象中,对象之间则是通过消息相互联系。

11.构件:标准化/规格化的对象类。

12.常⽤变成⼒度的⼤⼩来⽐较3种编程泛型的差异。

粒度由⼩到⼤依次是:过程式编程范式、⾯向对象编程范式、基于构件的编程泛型。

13.软件⼯程的分化:传统软件⼯程:结构化分析-》结构化设计-》⾯向过程编码-》软件测试⾯向对象软件⼯程:OO分析与对象抽取-》对象详细设计-》⾯向对象的编码与测试基于构件的软件⼯程(以可复⽤构件和测试⼯具为后盾):领域分析和测试计划定制-》领域设计-》建⽴可复⽤构件库-》按‘构件集成模型’查找与集成构件14.分析先于设计,设计先于编码,使程序(的结构)适合于问题(的结构)。

软件工程-原理、方法及应用(史济民第三版)(课后习题答

软件工程-原理、方法及应用(史济民第三版)(课后习题答

软件工程-原理、方法及应用(史济民第三版)(课后习题答案)绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。

(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。

采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。

当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。

新方法在推行初期,总有人不愿接受和采用。

若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。

所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C++开发一个软件,是校园一卡通的模块。

首先,要在编辑程序支持下在计算机中输入源程序。

然后编译程序,把源程序翻译成目标程序。

如果发现错误,就重新调入编辑程序对源程序进行修改。

编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。

编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。

离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。

软件工程知识点归纳

软件工程知识点归纳

软件工程知识点归纳第1章软件工程学概述 (3)1.1 软件危机 (3)1.2 软件工程 (3)1.3 软件生命周期 (3)1.4 软件过程 (3)第2章可行性研究 (4)2.1 可行性研究的任务 (4)2.2 可行性研究过程 (4)2.3 系统流程图 (4)2.4 数据流图 (4)2.5 数据字典 (5)2.6 成本/效益分析 (5)第3章需求分析 (5)3.1 需求分析的任务 (5)3.2 与用户沟通获取需求的方法 (5)3.3 分析建模与规格说明 (5)3.4 实体-联系图 (5)3.5 数据规范化 (5)3.6 状态转换图 (6)3.7 其他图形工具 (6)3.8 验证软件需求 (6)第4章形式化说明技术 (6)第5章总体设计 (6)5.1 设计过程 (6)5.2 设计原理 (7)5.3 启发规则 (7)5.4 描绘软件结构的图形工具 (7)5.5 面向数据流的设计方法 (8)第6章详细设计 (8)6.1 结构程序设计 (8)6.2 人机界面设计 (8)6.3 过程设计的工具 (8)6.4 面向数据结构的设计方法 (8)6.5 程序复杂程度的定量度量 (8)第7章实现 (9)7.1 编码 (9)7.2 软件测试基础 (9)7.3 单元测试(模块测试) (10)7.4 集成测试(子系统测试和系统测试) (10)7.5 确认测试(验收测试) (10)7.6 白盒测试技术 (10)7.7 黑盒测试技术 (11)7.8 调试(修改测试发现的错误) (11)7.9 软件可靠性 (11)第8章维护 (11)8.1 软件维护的定义 (11)8.2 软件维护的特点 (11)8.3 软件维护过程 (12)8.4 软件的可维护性 (12)8.5 预防性维护 (12)8.6 软件再工程过程 (12)参考书目 (12)第1章软件工程学概述1.1 软件危机1. 软件危机的定义、表现、产生原因2. 消除软件危机的途径3. 软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。

软件工程——原理、方法与应用复习总结

软件工程——原理、方法与应用复习总结

1.软件的定义软件是能够完成预定功能和性能的可执行的计算机程序,包括是程序正常执行所需的数据,以及有关描述程序操作和使用的文档。

简言之,软件=程序+文档程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。

文档是软件活动开发的记录。

2.软件的特征(1)软件是一种逻辑实体,不是具体的物理实体(2)软件产品的生产主要是研制(3)软件具有复杂性其开发和运行常受到计算机系统的限制,有些软件甚至依赖于硬件的配置(4)软件成本昂贵,其开发方式目前尚未摆脱手工生产方式(5)软件不存在磨损和老化问题,但存在退化问题(6)软件通常针对特定的应用而设计,需要大量的时间精力3.软件危机软件危机的定义:计算机软件的开发和维护过程中所遇到的一系列严重问题软件危机的表现:(1)对软件开发成本和进度的估算很不准确(2)用户很不满意(3)质量不靠谱(4)没有适当的文档(5)软件成本比重上升(6)供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势软件危机产生的原因:客观原因:软件本身的特点:逻辑部件,规模庞大,维护费用急剧上升,生产技术进步缓慢软件维护费用急剧上升,直接威胁计算机应用的扩大①.软件生产技术进步缓慢,是加剧软件危机的重要原因②. 主观原因:不正确的开发方式:忽视需求分析,错误认为软件开发=程序编写,轻视软件维护1.1 绪论2014年3月25日21:311.2 软件工程学的范畴2014年3月25日21:57中心思想是把软件当作是一种工业产品,要求“要求工程化的原理和方法对软件进行计划、开发和维护”软件工具:帮助开发软件的软件方法与工具相结合,再加上配套的软、硬件支持就形成环境3种编程范式1.遵循“程序=数据结构+算法”的思路,把程序理解为由一组被动的数据和一组能动的过程所构成。

(1)过程式编程范型(2)面向对象编程范型程序=对象+消息(3)基于构件技术的编程范型构件可以理解为标准化(或者规范化)的对象类(4) 3种编程范式的比较过程式编程范型:着眼于程序的过程和基本的控制结构,粒度最小面向对象编程范型:着眼于程序中的对象,粒度比较大基于构件的编程范型:着眼于适合整个领域的类对象,粒度更大1.3 软件工程的发展2014年3月25日22:01一个软件从开始立项起,到废弃不用为止,统称为软件生存周期(life cycle )。

软件工程复习重点总结

软件工程复习重点总结

软件工程复习重点总结第一篇:软件工程复习重点总结第一章软件过程:需求设计实现发布软件过程三要素: 过程+方法+工具瀑布rup scrum IconixScrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。

Product Owner、Scrum Master、Team Product Backlog、SprintBacklog、Burndown Chart、Sprint、Sprint Planning Meeting、Daily Standup Meeting、Review Meeting、Retrospective Meeting ICONIX软件开发过程愿景、业务建模、需求分析、健壮性分析、系统设计……思想是重点;过程是方式;方法和工具是载体第二章敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。

敏捷是一种思想•Scrum是一个框架敏捷开发过程知多少?•Scrum、•极限编程(XP)、•Crystal Methods(水晶方法族)•特性驱动开发(FDD)•动态系统开发(DSDM)•轻量型统一过程(RUP)调查结果:敏捷开发方法—Scrum最流行!Scrum的适用场景•7人,+or-2•偏小一些会更适合•最好能坐在一起•客户参不度高•快速移动互联网项目•自主性研发的产品第三章软件项目是为了改善某个组织的某些方面–老大就是要改善的组织中最有权力的干系人。

用户建模四步曲列出尽可能多的用户识别关键用户(购买决策者/主要使用者)分类,合并次要用户4添加虚拟和极端用户第四章•产品backlog是Scrum的核心产品功能列表格式•ID(标示符)–统一标识符•Name(标题)–简短的、描述性的故事名•Story(故事)–故事内容描述•Priority(重要性)–产品负责人评出一个数值,指示这个故事有多重要•Initial estimate(初始估计)–团队的初步估算,表示不其他故事相比,完成该故事所需的工作量•How to demo(如何做演示)–它大略描述了这个故事应该如何在sprint 演示上进行示范•Notes(注解)–相关信息、解释说明和对其它资料的引用等等产品功能列表由谁来写?•思考:由谁来写?–主要是Product Owner–Team也有权利,但最终由PO进行取舍。

软件工程——原理、方法与应用(第3版本)史济民-顾春华-版知识点整理(完整版)410

软件工程——原理、方法与应用(第3版本)史济民-顾春华-版知识点整理(完整版)410
29. 软件测试
黑盒测试
定义:是根据被测试程序的功能来进行测试,也称为功能性测试 方法:
i. 等价分类法 ii. 边界值分析法 iii. 错误猜测发 iv. 因果图法
白盒测试
定义:以程序的结构为依据,又称结构测试 常用方法:
i. 逻辑覆盖法 ii. 路径测试法
30. 软件的维护
定义:在一个软件产品交付使用后对其进行修改,以纠正故障、改进其性能和其 他
27. 软件设计一般包括
1) 数据设计(DD、E-R) 2) 体系结构设计(DFD)
3) 接口设计(DFD) 4) 过程设计(STD,控制规格说明、加工规格说明)
28. 传统的软件设计
1) 概要设计 i. 结构设计 ii. 接口设计
iii. 编写概要设计文档 2) 详细设计
i. 确定各个软件部件的数据结构和操作,产生描述各软件部件的详细设计文档
26. 试比较 3 种不同的设计思想
a) 面向过程的思想: i. 各模块功能可能相互交叉或重叠,模块间常常存在数据的共享或数据结构的 共享
b) 面向功能的思想: i. 各模块的功能单一,如能将它们与其他模块的数据共享降到最低限度,就可 以在某些应用中重用
c) 面向对象的思想: i. 各模块是一个个独立的单位,不仅重用性较好,而且易于测试,联调和维护
14. 传统软件工程方法与面向对象的区别、各自的优缺 点
区别: 前者是面向过程的语言,一切以算法为核心 后者是面向对象的语言,构成类的封装机制,跟好的实现了代码的服用性能,依 据
高内聚、低耦合的思想核心
传统的软件工程主要指结构化软件工程方法
优点: 1) 整体思路清楚,目标明确 2) 设计工作中阶段性非常强,有利于系统开发的总体管理和控制 3) 在系统分析时可以诊断出原系统中存在的问题和结构上的缺陷

软件工程 期末考试复习总结知识点 必考题型

软件工程 期末考试复习总结知识点 必考题型

软件工程复习资料1.软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。

在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。

很难检验开发的正确性且软件开发的质量也较难评价。

因此控制软件开发过程相当困难。

此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。

这样维护的费用十分惊人,客观上使得软件较难维护。

(2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。

但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。

在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。

这是造成软件危机的主要原因。

(3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。

对用户的要求没有完整准确的认识就急于编写程序。

这是许多软件开发失败的另一主要原因。

事实上,许多用户在开始时并不能准确具体地叙述他们的需要。

软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。

(4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。

首先是文档缺乏一致性和完整性,从而失去管理的依据。

因为程序只是完整软件产品的一个组成部分。

一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。

其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。

(5) 在软件的开发和维护关系问题上存在错误的观念。

软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。

所以做好软件的定义工作是降低软件成本,提高软件质量的关键。

如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。

软件工程复习总结

软件工程复习总结

1、软件=程序+数据+文档;2、软件工程是研究软件开发方法和软件管理方法的一门工程科学。

3、软件工程三要素是软件工程的方法、工具和过程。

4、软件工程的基本原理是:用分阶段的生存周期计划严格管理软件开发,分为计划、分析、设计、编程、测试和运行维护6个阶段。

坚持进行阶段评审,上一阶段评审不通过,就不能进入下一阶段开发。

实行严格的产品版本控制。

采用现代程序设计技术。

结果应能清楚地审查。

开发小组的成员要少而精。

要不断地改进软件工程实践的经验和技术,要与时俱进。

二八定律。

5、软件工程中常用的开发方法主要有3种:面向过程的方法,面向对象的方法和面向数据的方法。

6、软件工程的五个面向理论:面向流程分析就是面向流程进行需求分析;面向数据设计,就是面向元数据进行概要设计;面向对象实现,就是面向对象进行详细设计和编程实现;面向功能测试就是面向功能进行单元测试、集成测试、Alpha测试和Beta测试;面向过程管理就是面向过程软件生存周期各个阶段进行管理和控制。

7、瀑布模型的特点:里程碑或基线驱动,或者说文档驱动;过程逆转性很差或者说不可逆转,因为根据上流的错误会在下流进行发散性传播的原理,所以逆转将会延误工期,增加成本,造成重大失误。

优点:开发阶段清晰,便于评审、审计、跟踪、管理和控制。

缺点:传统的项目组织方法按顺序完成每个工作流程。

8、增量模型的优点:将一个打系统分解为多个小系统,这就等于将一个大风险分解为多个小风险,从而降低了开发难度。

缺点:如果软件系统的组装和拆卸性不强,或者开发人员全局把握水平不高,或者客户不同意分阶段提交产品,或者开发人员过剩,则不宜采用这种模式。

9、迭代模式的优点:在迭代之初,它不要求有一个相近的原型,而且适用范围广,几乎适用于所有的项目开发。

缺点:传统的项目组织方法按顺序完成每个工作流程,即瀑布式生存周期。

10、原型模型的优点:开发速度快,用户意见反馈实时,有利于开发商在短时间内推广并实施多个用户。

软件工程导论最全复习总结

软件工程导论最全复习总结

1、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的严重问题。

2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。

3、软件工程学包含3个要素:方法、工具、过程。

4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。

5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。

6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。

7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。

8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。

9、数据流图(DFD)是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中所经受的变化。

10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义的集合。

11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确的描述软件需求。

13、9、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。

14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩形表示属性,用直线把实体和其属性连接。

15、验证软件需求的正确性:一致性、完整性、现实性、有效性。

16、总体设计的基本目的是回答“概括地说,系统应该如何实现?”,总体设计又称为概要设或初步设计。

17、模块的独立程度可以有两个定性标量度量:内聚和耦合。

18、软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现可至今为止尚未发现的错误的测试。

19、软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运行。

【免费下载】软件工程 原理方法及应用史济民第三版答案

【免费下载】软件工程 原理方法及应用史济民第三版答案

软件工程-原理、方法及应用(史济民第三版)答案绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。

(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。

采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。

当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。

新方法在推行初期,总有人不愿接受和采用。

若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。

所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C++开发一个软件,是校园一卡通的模块。

首先,要在编辑程序支持下在计算机中输入源程序。

然后编译程序,把源程序翻译成目标程序。

如果发现错误,就重新调入编辑程序对源程序进行修改。

编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。

编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。

离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。

软件工程复习总结_2

软件工程复习总结_2

软件工程复习总结1:软件工程:软件工程是计算机科学与技术专业的一门专业核心课程。

软件是计算机系统中与硬件相互依存的另一部分。

它包括程序、数据及其相关文档的完整集合。

2:软件:软件是计算机系统中与硬件相互依存的另一部分。

它包括程序、数据及其相关文档的完整集合。

软件特点:(1)软件是一种逻辑实体,而不是具体的物理实体。

(2)软件的生产与硬件不同。

(3)在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。

软件分类:按软件的功能进行划分:系统软件、应用软件、支撑软件。

按软件的规模进行划分:按开发软件所需的人力、时间以及完成的源代码行数。

(微型、小型、中型、大型、甚大型、极大型)按软件开发划分:软件项目开发、软件产品开发。

3:软件工程学:是把软件当作一种工业产品,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。

软件工程学软件开发技术软件工程管理软件开发方法学软件工具软件工程环境软件工程管理学软件经济学4:软件生存周期:把软件从产生、发展到成熟、直至衰亡为止软件生存周期模型(瀑布模型Waterfall Model)计划时期:问题定义→可行性研究开发时期:需求分析→概要设计→详细设计→编码→测试运行时期:运行与维护5:现状调查和问题的定义:目的:弄清楚用户要求计算机解决什么问题。

任务:编写系统目标与规范说明书。

6:可行性研究与论证:其论证的焦点是:围绕着对系统开发的价值进行论证。

经济可行性:进行成本效益分析,评估项目的开发成本。

技术可行性:对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。

可行性论证报告包括:系统概述、可行性分析、拟订开发计划、结论意见。

7:系统流程图:是用来描述系统物理模型的一种传统工具。

系统结构图:系统工程师用结构摸板开发的系统模型。

8:需求分析的任务:一、确定目标系统的具体要求:(1)确定系统的运行环境要求:硬件环境和软件环境。

(可和用户单位其他系统使用相同的计算机硬件设备、相同的操作系统和相同的关系数据库管理系统)(2)系统的性能要求(数据不能随意更改,保证数据的准确性)(3)系统功能:确定目标系统具备的所有功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章绪论1.每18个月芯片的性能和速度均提高一倍,每隔12年软件生产大约提高一倍。

2.软件:是能够完成预定功能和性能的可执行的计算机诚信度。

包括使程序正常执行所需的数据,以及有关描述程序操作和使用的文档。

即:软件= 程序+ 文档3.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。

4.软件危机出现的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;软件生产技术进步缓慢,是家居软件危机的重要原因。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5.软件工程学的范畴:软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。

6.软件工程:是指导计算机软件开发和维护的工程学科。

它采用工程的概念、原理、技术和方法来开发与维护软件,目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。

7.软件的发展:大体经历了程序、软件、软件产品3个阶段。

8.工具和方法是软件开发技术的2大支柱。

9.3种编程泛型:过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型10.面向对象程序设计中,数据和操作被封装在一个对象中,对象之间则是通过消息相互联系。

11.构件:标准化/规格化的对象类。

12.常用变成力度的大小来比较3种编程泛型的差异。

粒度由小到大依次是:过程式编程范式、面向对象编程范式、基于构件的编程泛型。

13.软件工程的分化:传统软件工程:结构化分析-》结构化设计-》面向过程编码-》软件测试面向对象软件工程:OO分析与对象抽取-》对象详细设计-》面向对象的编码与测试基于构件的软件工程(以可复用构件和测试工具为后盾):领域分析和测试计划定制-》领域设计-》建立可复用构件库-》按‘构件集成模型’查找与集成构件14.分析先于设计,设计先于编码,使程序(的结构)适合于问题(的结构)。

第二章软件生存周期与软件过程1.软件生存周期:计划、开发、运行3个时期。

需求分析-》软件分析-》软件设计-》编码测试-》软件测试-》运行维护2.需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。

3.软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。

4.软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。

5.单元测试通常与编码同时进行。

6.软件测试:单元测试、集成测试、系统测试。

7.Boehm软件生存周期的划分:系统需求、软件需求、概要设计、详细设计、编码纠错、测试和预运行、系统维护。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------8.瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。

9.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。

快速原型模型:原型系统只包括对未来系统的主要功能以及系统的重要接口。

特点:快速开发工具、循环、低成本。

种类:渐进型、抛弃型。

10.常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。

11.增量模型:结合瀑布模型的顺序特征与快速原型法的迭代特征。

增量:小而可用的软件一般情况下,第一个增量是软件的核心部分。

如(增量一:需求-设计-实现和集成-交付客户)12.螺旋模型(目前最常用):当项目按照顺时针方向沿螺旋线移动时,每轮螺旋包含:计划、风险分析、建立原型、用户评审4种活动。

(高风险的大型软件采用此方法)13.构件集成模型:适应于面向对象的软件开发。

利用预先封装好的构件来构造应用软件系统。

14.软件开发方法可区分:形式化方法、非形式化方法。

15.形式化开发模型:转换模型、净室模型16.转换模型:是将形式化软件开发和程序自动生成技术相结合的一种软件开发模型。

转换模型的开发过程:确定性实话的需求规格说明书、进行自动化的程序变换、对形式化开发记录进行测试。

转换模型的常用技术:基于模型的需求规格说明书及其变换技术;基于代数结构的需求规格说明书及其变换技术;基于时序逻辑的需求规格说明书及其验证技术以及基于可视化的技术。

17.净室模型:是一种形式化的增量开发模型。

力求在分析和设计阶段消除错误。

18.统一过程RUP 包括4 个阶段:初始、细化、构造、迁移。

以用例为驱动, 以系统架构为中心的迭代与增量过程。

每个阶段又分为若干次迭代,每次迭代都有一个核心工作流,有5 个活动(需求、分析、设计、实现、测试)。

19.敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。

20.敏捷开发的价值观:个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划。

21.软件可行性研究:经济可行性、技术可行性、运行可行性、法律可行性。

22.可行性研究的步骤:对当前系统进行调查研究、导出新系统的解决方案、提出推荐方案、编写可行性论证报告。

23.可行性论证报告的内容:系统概述、可行性分析、结论意见。

24.软件风险分析包括:风险识别(项目风险、技术风险、商业风险)、风险预测、风险的驾驭和监控。

25.软件计划的7种类型:项目实施计划、质量保证计划、软件测试计划、文档编制计划、用户培训计划、综合支持计划、软件分发计划。

第三章结构化分析与设计1.结构化设计SD ;结构化分析SA ;软件需求规格说明书SAS ;结构图SC ;数据字典DD ;状态转换图STD ;数据流图DFD2.瀑布模型的生命周期:需求定义与分析-》总体设计-》详细设计-》编码-》测试-》维护3.系统的开发流程(SA和SD流程):结构化分析(工具:DFD,PSPEC)------》分析模型(分层DFD图)+SRS结构化设计(工具:SC图)(映射)------》初始设计模型(初始SC图)初始设计模型(初始SC图)(优化)------》最终设计模型(最终SC图)4.结构化分析的基本步骤:自顶向下,功能分解(分层DFD)、由后向前,定义数据和加工(DD, PSPEC)、根据需要,分析复杂数据和动态模型(E-R图,CFD,CSPEC,STD)、编写软件需求规格说明书SRS。

5.SA需求分析的两项基本任务:建立系统分析模型、编写SRS。

6.分析模型组成:功能模型、数据模型、行为模型3种。

7.抽象和分解是结构化分析的主要指导思想,细化的实质是分解。

分解和细化是软件设计的策略。

8.SD阶段把分析模型中的DFD图转换为最终SC图。

9.传统软件的开发技术:结构化设计、模块设计。

10.软件设计:总体设计/概要设计(初始SC图、最终SC图)、详细设计(用逐步细化的方法,完成模块的说明)。

11.需求分析的步骤:需求获取、需求提炼、需求描述、需求验证。

12.SA模型的组成13.SA模型同时覆盖了信息模型、功能模型、行为模型3种模型。

14.DFD图不能表示程序的控制结构(如选择、循环结构)。

15.加工规格说明通常用结构化语言、判定表、判定树作为描述工具。

16.软件中的数据分为3类:数据项(数据元素)、数据流(多个相关数据项)、数据文件和数据库。

17.数据字典的组成:数据项、数据流、数据存储(文件或数据库)、加工(处理逻辑)、外部项(人、物或其它软件系统)。

18.SD模型是由SA模型映射而来的。

SA模型的数据字典可转换为待开发系统的数据设计数据流图可转换为体系结构设计(SC图)与接口设计加工规格说明可转换为模块内部的详细过程设计19.SD模型的组成:从上到下依次是:过程设计、接口设计、体系结构设计、数据设计。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 20.结构化分析的基本步骤:自顶向下对系统进行功能分解,画出DFD图;由后向前定义系统的数据和加工;编制DD和PEPES;写出SRS。

21.把不需要分解的加工成为基本加工。

把逐步分解成为“自顶向下,逐步细化”。

22.DFD的优点:便于实现,便于使用。

23.传统的软件设计可细分为:面向数据流设计(SD方法)、面向数据结构设计(Jackson方法)。

24.用数据流图表示逻辑模型,在设计阶段,按照数据流图的不同类型(变换型、事务型)转换为相应的软件结构。

25.结构化设计通常从DFD图到SC图的映射开始。

26.面向数据流的设计方法:从DFD图到SC图的映射的4个步骤:复审DFD图,必要时可再次进行修改或细化;鉴别DFD图的结构特征:事务?变换?;按照规则,把DFD图为初始的SC图;改进初始的SC图。

27.变换型结构:由输入、变换中心和输出三部分组成。

事务型结构:具有在多种事务中选择执行某类事物的能力。

28.变换映射的步骤:划分DFD图的边界、建立初始SC图的框架、分解SC图的各个分支。

事务映射的步骤:在DFD图上确定边界、画出SC图框架、分解和细化接受分支和发送分支。

29.优化结构设计的指导规则:对模块分割、合并和变动调用关系的指导规则、保持高扇入/低扇出的原则、作用域/控制域规则。

30.模块设计(详细设计)的主要任务是编写软件的模块设计说明书。

目的是确定模块采用的算法和块内数据结构。

31.模块设计的原则:清晰第一的设计风格、结构化的控制结构、逐步细化的实现方法。

32.“结构化”保证程序的清晰、易读,“逐步细化”实现程序的正确、可靠。

33.结构化程序设计原理和逐步细化的实现方法是完成模块设计的基础。

第四章面向对象和UML1.面向对象的基本特征:抽象、封装、集成、多态。

2.面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------3.元素之间的联系有:关联、泛化、依赖、实现、聚集、组合。

相关文档
最新文档