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

合集下载

《系统集成项目管理工程师教材》第 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. 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.元素之间的联系有:关联、泛化、依赖、实现、聚集、组合。

相关文档
最新文档