软件工程基础(胡思康)第3章课件
第3章软件工程基础
第3章软件工程基础【考点精讲】1.软件定义与软件特点软件指的是运算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。
程序是软件开发人员依照用户需求开发的、用程序设计语言描述的、适合运算机执行的指令序列。
数据是使程序能正常操纵信息的数据结构。
文档是与程序的开发、爱护和使用有关的图文资料。
可见,软件由两部分组成:(1)机器可执行的程序和数据;(2)机器不可执行的,与软件开发、运行、爱护、使用等有关的文档。
依照顾用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。
名称描述应用软件为解决特定领域的应用而开发的软件系统软件运算机治理自身资源,提高运算机使用效率并为运算机用户提供各种服务的软件支撑软件(或工具软件)支撑软件是介于两者之间,协助用户开发软件的工具性软件2.软件工程为了摆脱软件危机,提出了软件工程的概念。
软件工程学是研究软件开发和爱护的普遍原理与技术的一门工程学科。
所谓软件工程是指,采纳工程的概念、原理、技术和方法指导软件的开发与爱护。
软件工程学的要紧研究对象包括软件开发与爱护的技术、方法、工具和治理等方面。
软件工程包括3个要素:方法、工具和过程。
名称描述方法方法是完成软件工程项目的技术手段工具工具支持软件的开发、治理、文档生成过程过程支持软件开发的各个环节的操纵、治理考点2 软件生命周期【考点精讲】1.软件生命周期概念软件产品从提出、实现、使用爱护到停止使用退役的过程称为软件生命周期。
一样包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及爱护等活动,如图3-1所示。
软件生命周期分为3个时期共8个时期,(1)软件定义期:包括问题定义、可行性研究和需求分析3个时期;(2)软件开发期:包括概要设计、详细设计、实现和测试4个时期;(3)运行爱护期:即运行爱护时期。
软件生命周期各个时期的活动能够有重复,执行时也能够有迭代,如图3-1所示。
2.软件生命周期各时期的要紧任务图3-1 软件生命周期在图3-1中的软件生命周期各时期的要紧任务是:考点3 软件设计差不多概念【考点精讲】从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
第3章_公共基础软件工程基础
• 软件需求规格说明书是需求分析阶段的最后成果, 通过建立完整的信息描述、详细的功能和行为描述、 性能需求和设计约束的说明、合适的验收标准,给 出对目标软件的各种需求。
PPT文档演模板
第3章_公共基础软件工程基础
•例题
3.3 结构化设计方法
• 1、软件设计的基础 • 从技术观点来看,软件设计包括软件结构设计、
完善求精。
PPT文档演模板
第3章_公共基础软件工程基础
• 数据字典:对所有与系统相关的数据元素的一个有 组织的列表,以及精确的、严格的定义,使得用户 和系统分析员对于输入、输出、存储成分和中间计 算结果有共同的理解。
• *:数据字典的作用是对数据流图中出现的被命名 的图形元素的确切解释。 *:数据字典是结构化分析方法的核心。
• 软件测试方法:静态测试和动态测试。
• 静态测试:包括代码检查、静态结构分析、 代码质量度量。不实际运行软件,主要通 过人工进行。
• 动态测试:是基于计算机的测试,主要包 括白盒测试方法和黑盒测试方法。
PPT文档演模板
第3章_公共基础软件工程基础
• 3 白盒测试
•例题
– 结构测试
– 将软件看成透明的白盒,根据程序的内部结构和逻辑结 构来设计测试例子,对程序的路径和过程进行测试,检
第3章_公共基础软件工程基础
• 7. 软件工具和软件开发环境
– 软件工具(CASE):用来辅助软件开、运行、 维护、管理、支持等过程中的活动的软件
– 软件开发环境:支持软件产品开发的软件系统, 它由软件工具集和环境集成机制构成
PPT文档演模板
第3章_公共基础软件工程基础
3.2 结构化分析方法
软件工程课件 第三章
结构化分析方法特别适合数据处理类型软件的需求分析。 利用图形来表达需求,显得清晰简明,易于学习和掌握。
使用的工具有:数据流图、数据字典。
06.04.2021
Software Enginerring
13
1 处理 事务
2
定货 信息
产生 报表
定货
信息
D2 定货信息
定货报表 采购员
06.04.2021
Software Enginerring
21
应用实例(续2)
“事务处理”既要接受输入、又要更新库存记录,还要确定 产生订货信息,显得过于复杂,可以对其进行分解。重画原 图:细化加工“事务处理”
D1 库存清单
数据流的方向:从加工→加工 加工→数据存储 数据存储→加工 源点→加工 加工→终点 数据流图的基本要点是描述“做什么”,而不考虑“怎么 做”。
06.04.2021
Software Enginerring
15
数据流图绘制
基本思想:
自外向内,自顶向下,逐层求精
即从抽象到具体的过程。开始画出的数据流图 中的加工比较抽象,只大概知道“做什么”,具 体应该“做什么”还比较模糊,还必须进一步描 述(细化),直到每个数据流和数据存储包含的 具体内容是什么,每个加工应该怎样实现,都基 本清楚为止。
————————————————————————————————— —————————————————————————————————
数据流名称:定货报表 描述:每天一次送给采购员的需要定货的零件表 定义:订货报表=零件编号+零件名称+定货数量+目前定价+主要供应
软件工程基础胡思康第3章课件图文.pptx
S
1 2 3 4 5
软件设计概述 软件体系结构设计
模块化设计 界面设计
软件设计评审
➢软件体系结构为系统设计提供了一套关于数据、行为、结 构的指导性框架,该框架提供了描述系统数据、数据间关系 的静态特征,也对数据的操作、系统控制和通信等活动提供 了具有动态特征的描述过程。 ➢系统的静态特征体现了系统的组织结构,系统的动态特征 体现系统操作流程的拓扑结构,共同构成设计决策的基本指 导方针。
设
计 内
界面设计
容
数据设计
过程设计
➢概要设计也称总体设计,主要任务是基于数据流 图和数据字典,确定系统整体软件结构,划分软件 体系结构的各子系统或模块,确定它们之间的关系。
➢体系结构设计:确定各子系统模块间的数据传递、 调用关系。在结构化设计中,体现为模块划分,并 通过数据流图和数据字典进行转换。在面向对象设 计中,体现为主题划分,主要确定类及类间关系。
➢详细设计是在概要设计的基础上,具体实现各部分的细节, 直至系统的所有内容都有足够详细的过程描述。 ➢过程设计包括确定软件各模块的具体实现过程及局部数据 结构。在结构化设计中,模块独立性约束了数据结构与算法 相分离的情况,使得两者在设计时务必有局部性,减少外部 对两者的影响。在面向对象设计中,类的封装较好地体现了 算法和数据结构的内部性。类的继承性提供了多个类(类家 族)共同实现过程设计的机制。
➢缺点: 随着网络技术的发展,数据共享带来的访问控制的复杂性、
安全性、效率、备份、存储、恢复策略等一系列问题,影响 了仓库模型的有效利用。
➢集中式数据仓库模型在带来数据一致性访问优势 的同时,也造成网络环境下难以分布应用的缺陷。 ➢分布式结构模型是充分利用、整合网络中计算机 各自的计算能力,从而提高整个网络系统运行的能 力和效率。
软件工程课件 第三章
软件工程课件第三章在软件工程的领域中,第三章通常聚焦于软件设计的核心概念与方法。
软件设计是软件开发过程中的关键环节,它将需求分析阶段所确定的功能和性能要求转化为具体的软件架构和模块结构,为后续的编码和测试工作奠定坚实的基础。
软件设计的目标是创建一个高效、可靠、可维护且易于理解的软件系统。
这需要综合考虑诸多因素,如系统的功能需求、性能要求、安全性要求、用户体验等。
同时,还要考虑软件的可扩展性,以适应未来可能的变化和升级。
在软件设计中,架构设计是至关重要的一环。
架构设计就像是为一座大楼绘制蓝图,它决定了软件系统的整体结构和组织方式。
一个良好的软件架构应该具有清晰的层次结构,各个模块之间的职责明确,并且能够有效地支持系统的功能和性能需求。
例如,常见的分层架构将软件系统分为表示层、业务逻辑层和数据访问层。
表示层负责与用户进行交互,业务逻辑层处理核心的业务逻辑,数据访问层则负责与数据库进行交互。
这种分层架构使得各个层次之间的职责清晰,便于开发和维护。
模块设计也是软件设计的重要组成部分。
模块是软件系统中的基本单元,具有相对独立的功能。
在进行模块设计时,需要遵循高内聚、低耦合的原则。
高内聚意味着模块内部的各个元素紧密相关,共同完成一个特定的功能;低耦合则表示模块之间的依赖关系尽量少,使得一个模块的修改对其他模块的影响最小化。
例如,一个负责用户登录的模块,应该只专注于处理登录相关的功能,而不涉及其他诸如用户信息管理等功能。
接口设计在软件设计中也不容忽视。
接口是模块之间进行交互的桥梁,定义了模块之间的通信方式和数据格式。
良好的接口设计能够提高模块之间的协作效率,降低系统的复杂性。
例如,在设计一个数据存储接口时,需要明确规定数据的读写方法、参数类型和返回值类型等。
数据结构的选择也是软件设计中的一个关键决策。
不同的数据结构适用于不同的场景,选择合适的数据结构能够提高软件的性能和效率。
例如,对于频繁插入和删除操作的场景,链表可能是一个更好的选择;而对于快速查找操作,二叉搜索树或者哈希表可能更为合适。
软件工程第03章
【例3.1】 • “家庭保安系统”的软件允许用户在安装时进行系统
配置,实施对传感器的监控并通过控制面板与户主进 行信息交互。 • 系统开机后,软件系统负责显示系统当前的工作状态, 接收并处理户主的命令。 • 当系统处于配置状态,软件系统允许户主进行配置操 作。配置操作包括:
① 指定每一传感器的种类和编号; ② 设置开、关机密码; ③ 指定报警电话号码; ④ 指定报警延迟和电话重拨延迟时间(以秒为单位)。
在分析阶段构筑的模型不应涉及软件实现的细节,以 免分散分析人员的注意力、限制软件设计人员为提高 软件质量和效率而选择实现方法的自由度。
需求分析结束时确立的软件模型是生成需求规格说明 的依据,也是软件设计和实现的基础。
3.2.3 快速原型技术
如果按照传统的软件开发方法,需要经过漫长的开 发时间之后用户才能看到目标软件的最初版本。此 时用户常常会提出许多修改意见,有时甚至全盘否 定,导致开发失败。为了降低开发风险,在需求分 析阶段常常采用快速原型技术。
该模型是形成需求规格说明、进行软件设计的 基础。
2.需求描述
该步骤的主要任务是以需求模型为基础,生成 需求规格说明和初步的用户手册,并制定软件 产品验收测试计划。 需求规格说明是软件项目的一个关键性文档。 其中应包含对目标软件系统的功能、外部行为、 性能、质量、可靠性、可维护性、约束条件和 需求验证标准等的完整的描述。 初步用户手册应包括目标软件系统的用户界面 的描述和使用方法的初步构想。 验收测试计划是进行软件产品验收测试的依据。
3.2 需求分析的一般性技术
为了克服困难,更有效地开展需求分析工作, 软件系统分析人员必须掌握一些基本的需求分 析技术,主要包括:
初步需求获取技术; 需求建模技术; 快速原型技术; 问题的分解与抽象; 多视点分析技术等。
二级-公共基础知识-第3章-软件工程基础ppt课件
本章考纲中要求的考试内容
1. 软件工程基本概念,软件生命周期概念,软件 工具与软件开发环境。
2. 结构化分析方法,数据流图,数据字典,软件 需求规格说明书。
3. 结构化设计方法,总体设计与详细设计。 4. 软件测试的方法,白盒测试与黑盒测试,测试 用例设计,软件测试的实施,单元测试、集成测试和 系统测试。 5. 程序的调试,静态调试与动态调试。
3
软件指的是计算机系统中与硬件相互依 存的另一部分,包括程序、数据和相关文档 的完整集合。
程序是软件开发人员根据用户需求开发 的、用程序设计语言描述的、适合计算机执 行的指令序列。数据是使程序能正常操纵信 息的数据结构。文档是与程序的开发、维护 和使用有关的图文资料。
4
可见,软件由两部分组成: 机器可执行的程序和数据; 机器不可执行的,与软件开发、运行、
8
1.3.2 软件危机与软件工程 软件危机:是泛指在计算机软件的开发和
维护过程中所遇到的一系列严重问题。 可以将软件危机归结为成本、质量、生产
率等问题。 软件工程概念的出现源自软件危机。 软件工程:就是试图用工程、科学和数学
的原理与方法研制、维护计算机软件的有关技 术及管理方法。
9
软件工程的主要思想就是强调在软件开发过 程中需要应用工程化原则。 软件工程包括3个要素,即方法、工具和过程。
19
定义阶段(或称分析阶段)是保证软件质量 的第一步,它的任务是复杂的,如何分析用户 要求,软件需求规格说明书用什么形式表示等 都需要有一定的技术来指导。由于在分析阶段 软件人员需要同用户进行讨论,这个阶段的方 法、模型、语言和工具都必须考虑到用户的特 点,既能完整精确地描述用户要求,又简单易 懂可以被广大用户接受。
软件工程基础第3章
第2章 需求分析
2.判定表 在某些数据处理中,某数据流图的加工需要依 赖于多个逻辑条件的取值,就是说完成这一加工 的一组动作是由于某一组条件取值的组合而引发 的。这时使用判定表来描述比较合适。 一张判定表通常由四部分组成,左上部列出的 是所有的条件,左下部为所有可能的操作,右上 部分表示各种条件组合的一个矩阵,右下部分是 对应于每种条件组合应有的操作。
(7)原型细部的说明 对于所有那些不能通过原型说明的项目,仍 需通过文件加以说明。严格说明的成份要作为原 型化方法的模型编入字典,以得到—个统一、连 贯的规格说明。
第2章 需求分析
(8)判定原型效果 考察用户新加入的需求信息和细部说明信息, 看其对模型效果有什么影响?是否会影响模块的 有效性?如果使模型效果受到影响,甚至导致模 型失效,则要进行修正和改进。 (9)整理原型和提供文档 整理原型的目的是为进一步开发提供依据。 原型的初期需求模型是一个自动的文档。
第2章 需求分析
(3) 书写需求分析的文档
把分析的结果用正式的文档记录下来,作 为最终软件配置的一个组成成分。应该完成下 述四份文档资料:系统规格说明 、数据需求 、 用户系统描述 、修正的开发计划 。 (4) 需求分析评审 作为需求分析阶段的复查手段,在需求分析 的最后一步,应该对功能的正确性、完整性和 清晰性,以及其他需求给予评价。
(5)判定原型完成 经过修改或改进的原型,如果获得参与者一 致认可,则原型开发的迭代过程可以结束。为此, 应判断有关应用的实质是否已经掌握,迭代周期 是否可以结束等。
第2章 需求分析
(6)判断原型细部是否说明
判断组成原型的细部是否需要严格地加以说 明。原型化方法允许对系统必要成份进行严格的 详细的说明,例如将需求转化为报表、给出统计 数字等。对于这些不能通过模型进行说明的成份, 如果必要,需提供说明,并利用屏幕等工具进行 讨论和确定。
软件工程第03章
湖北大学
基于计算机的系统的要素及其间的关系
基于计算机的系统
人
硬件
文档
输
输
入
系统
出
软件
数据库
过程
数计
3.1 计算机系统工程的概念
湖北大学
❖ 计算机系统工程是用工程、科学和数学的原则与方法研制基 于计算机的系统的有关技术、方法和过程。
❖ 计算机系统工程是一种从系统层面上的问题求解活动。在开 始构造一个新的基于计算机的系统时:
论证阶段:系统工程师应确定系统对软件的功能和性能的要 求,这将成为软件需求分析的基础。
功能和性能进行详细的需求分析,进行软件总体结构设计。 在此基础上应尽力寻求可重用软部件来支持软件的详细设计 和编码。
按照功能,软部件可划分为 系统软件:实现系统各要素的控制、交互和通用信息处理等功
能; 应用软件:实现专用信息处理等功能。
①计算机系统工程师(系统分析人员和系统开发人员)首先根 据用户定义的系统目标和约束条件进行系统可行性研究和系 统需求分析。
②系统工程师将系统功能和性能分配到系统各要素之中。
应提出多种预选的方案
数计
3.1.1 硬件工程
湖北大学
硬件工程师根据系统硬件需求设计、制造或选择主 机、外部设备、网络设备等硬部件或设备。硬件工 程师可通过硬件工程来实现硬件系统。
数计
湖北大学
画系统流程图时,首先要搞清业务处理过程以及处理中的 各个元素,同时选择相应的符号来代表系统中的各个元素。所 画的系统流程图要反映出系统的处理流程。
在进行可行性研究过程中,要以概括的形式描述现有系统 的高层逻辑模型,并通过概要的设计变成所建议系统的物理模 型, 可以用系统流程图来描述所建议系统的物理模型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用层协议
表示层协议 会晤层协议 传输层协议 中继系统 中继系统 网络层 网络层 数据链路层 数据链路层
主机系统 应用层 表示层 会晤层 传输层 网络层 数据链路层 物理层
物理层 物
物理层 理 介 质
优点:支持增量式开发。 缺点:系统构成,性能保证较困难。
S
1
2 3 4
软件设计概述
软件体系结构设计 模块化设计 界面设计 软件设计评审
体系结构设计:确定各子系统模块间的数据传递、 调用关系。在结构化设计中,体现为模块划分,并 通过数据流图和数据字典进行转换。在面向对象设 计中,体现为主题划分,主要确定类及类间关系。
界面设计:包括与系统交互的人机界面设计,以
及模块间、系统与外部系统的接口关系。在结构化
设计中,根据数据流条目,定义模块接口、全局的
设计具有易修改性。发生修改的原因:用户需求发生变 更;设计存在缺陷;设计需要进行优化;设计利用重用 。软件设计灵活性主要通过系统描述问题的抽象来体现 。
界面视图的一致性保证了用户 体验了对系统的忠诚度
S
1
2 3 4
软件设计概述
软件体系结构设计 模块化设计 界面设计 软件设计评审
5
软件体系结构为系统设计提供了一套关于数据、行为、结 构的指导性框架,该框架提供了描述系统数据、数据间关系
独立性是良好设计的关键,是衡量软件质量的重
要指标之一。
模块独立性由内聚性和耦合性两个指标来评价。 它们分别描述模块内部和模块间的紧密程度。木块 内关联度越高,模块间的相关性越低,模块独立性 就越强
低 偶 然 内 聚 逻 辑 内 聚
内聚性 时 间 内 聚 过 程 内 聚 通 信 内 聚
高
顺 序 内 聚
计的早期抉择。
数据仓库模型是一种集中式模型。数据仓库模型
是能独立提供数据服务的封闭式数据环境。它不单
独集成到某一应用系统中,而是为具体的应用系统
提供服务。这些服务既有通用的公共服务,也有专
门设计的领域服务。
优点: 数据统一存储和管理,确保了数据的实时性。
数据仓库对数据复杂性的统一封装,有利于数据共享。
修改涉及的是模块内部,避免与外部的交互,这样
使得修改的影响局限于一个较小的范围之内。
例:C语言与C++语言编写的关于栈的定义
P73—P74
模块独立性是指软件系统中划分的模块完成一个
相对独立的功能,而与其它模块的关联尽量只发生
在接口上。模块独立性是由模块化、分解与抽象、
信息隐藏等要素共同构成。
重用是指同一事物不做修改或稍作修改就能多次使用的机制。 在软件设计阶段,重用的内容是软件设计模式。通过重用设计 模式,不仅使得软件设计质量得到保证,而且把资源集中于设 计的新流程、新方法中,并在设计时更进一步考虑新流程、新 方法在将来的重用。
确定软件各部分间的关系,各模块间的相互调用或控制关系, 以便在需要修改模块时能掌握与修改模块有关的其他部分,并 正确追溯问题根源。
功 能 内 聚 高
低
模块独立性
低
内聚性 数 据 耦 合 特 征 耦 合 控 制 耦 合 公 共 耦 合
高 内 容 耦 合
非 直 接 耦 合 低
模块独立性
高
模块化设计的指导思想是分解、抽象、求精、信
息隐藏和模块独立性。
设计人员根据长期的实践经验,提出了一些软件
模块化设计的启发式规则。在多数场合下,启发式
分布的不同,各部分具有较强独立性,易于系统的
修改和维护。
透明性:分布式结构中仅需要知道服务器的服务
位置,而对后端的逻辑实现、数据存储、数据访问
等不必清楚其架构和访问方式。
复杂性:面对网络通信、服务器端分层等问题的管理,控制
结构复杂。
安全性:身份验证困难。客户端的访问是问答模式,对客户 端的响应由服务器提供服务,因而难以验证客户端真是身份。 给病毒、流氓软件等不良软件带来了可乘之机。 运行状态难以确定:特别是网络通信出现故障时,提交的信
规则能给软件工程师有益的启示,帮助他们找到改
进软件设计、提高软件质量途径。
通过对软件整体结构模块进行划分后,进行分解
5
模块是程序语句的集合,它拥有独立的命名, 明确的输入、输出和范围。程序设计中的函数、 过程、类、库等都可作为模块。
对于整个软件系统来说,设计人员不是把它作为
一个问题来整体解决,而是把它的全部功能按照
一定的原则规划分成若干个模块,如果某个模块
仍难以理解或实现,则把它再进行划分,得到更
小、功能更简单的模块,如此往复,直至所有模
数据结构。在面向对象设计中,定义关联类、接口
类、边界类等,既满足人机交互界面数据的统一,
也完成类间数据的传递。
数据设计:包括数据库、数据文件和全局数据结
构的定义。在结构化设计中,通过需求阶段的实体
关系图、数据字典建立数据模型。在面向对象设计
中,通过类的抽象与实例化,以及类的永久存储设
计,完成数据设计过程。
息是否有效,是否得到正确相应,都困扰着分布式模型的发展
和应用。
层次模型——又称为分层模型,通常用于建立子
系统的接口模型。
层次模型将系统划分为若干层次,每层提供一组
服务,每层定义一个抽象机,每个层次提供单向服
务,如底层向顶层提供服务。
主机系统 应用层 表示层 会晤层 传输层 网络层 数据链路层 物理层
表述,抽象则忽略问题的细节,抓住问题的本质。
分为:“实体对象抽象”、“接口抽象”和
“设计模式抽象”三类。
实体对象抽象也称为数据抽象,它是对需求陈述中实体的
归纳。
归纳包括两种形式,一种是对陈述中实体的抽象。如“简 历自动获取和查询系统”中,有pdf、doc、txt等不同格式的 文件,这时抽。象出“简历文件”来统一简历文本的描述; 另一种形式是分析总结出陈述中的新实体。如当从简历文件
缺点: 为了对数据仓库数据进行操作,不同应用系统的数据视图必 须统一,否则难易达到数据共享的目的,但这不可避免的会
降低各应用系统的效率。
如果应用系统的数据结构发生改变,就需要单独设计数据适 配器,以实现新的结构与数据仓库在数据上的匹配。这不仅
增加应用系统设计的复杂度,而且有时甚至是难以完成这样
网页请求
网页请求
网页请求
客户端 网络
数据操 纵请求 第三层
逻辑服 务请求 第二层
服务器端
第三层
共享:实现了数据共享,云计算的提出还能进一 步实现计算共享。 异构型:客户端/服务器允许软硬件配置不同。 开放性:只要符合互联网协议,任何计算机、局 域网、智能设备和物品等都可连入互联网。
易修改性:由于用户界面、系统逻辑和数据访问
算法和数据结构的内部性。类的继承性提供了多个类(类家
族)共同实现过程设计的机制。
修改 需求规 格说明 概要 设计 体系结构 数据设计、界面设计 详细 设计 过程
设计
复 审
设计规格说明
模块化是在软件设计上实现分而治之思想的技术手段。 在结构化设计中,模块可以是函数、过程、甚至是代码 片段。在面向对象设计中,类是模块的主要形式。
它根据描述的信息域需求,包括功能需求、性能需
求、领域需求、数据需求等的定义,进行数据设计、
体系结构设计、界面设计和过程设计,并通过这四
个层面的设计,将现实世界的具体问题(需求)转
换为信息设计的逻辑问题(设计方案)。
过程设计 数据 实体关 流图 系模型 数据字典
界面设计
体系结构设计
状态转换图 控制规格说明 数据设计
的数据匹配。
缺点: 随着网络技术的发展,数据共享带来的访问控制的复杂性、
安全性、效率、备份、存储、恢复策略等一系列问题,影响
了仓库模型的有效利用。
集中式数据仓库模型在带来数据一致性访问优势 的同时,也造成网络环境下难以分布应用的缺陷。 分布式结构模型是充分利用、整合网络中计算机 各自的计算能力,从而提高整个网络系统运行的能 力和效率。
允许客户端与服
务器端的软硬件
配置不同,体现
数据访问
了分布式模型的
灵活性。
目前应用比较多的C/S模式的分布式结构: “三层网络设计模式”,用两层分布式设计映射三层逻辑。
用户界面 逻辑应用
用户界面
客户端逻辑应用 网络
用户界面
数据访问
服务器端逻辑应用 数据访问
逻辑应用 数据访问
针对多层逻辑应用提出了多层分布式设计模型 第一层
详细设计是在概要设计的基础上,具体实现各部分的细节,
直至系统的所有内容都有足够详细的过程描述。
过程设计包括确定软件各模块的具体实现过程及局部数据 结构。在结构化设计中,模块独立性约束了数据结构与算法 相分离的情况,使得两者在设计时务必有局部性,减少外部 对两者的影响。在面向对象设计中,类的封装较好地体现了
采用黑板模型,与某类数据有关的应用系统能及时获取数据。 采用数据订阅推送模型,应用系统在有数据更新时,能动获
得数据,而不用采取询问方式,这就提高了数据管理效率。
各应用系统间仅通过数据仓库完成数据交换,在功能上没有 关联,增加、删除应用系统及其部分功能,将不会影响其它 应用系统的正确运行。
S
软件设计基础
S
1
2 3 4
软件设计概述
软件体系结构设计 模块化设计 界面设计 软件设计评审
5
需求工程阶段,回答“软件必须做什么”这个问
题。
软件设计阶段,回答“软件怎么实现”的问题
软件设计的目标就是要构造一个高内聚、高可靠
性、高维护性和高效的软件模型,为提高软件质
量提供坚实的基础。
软件设计的依据是需求规格说明和数据规格说明。
的静态特征,也对数据的操作、系统控制和通信等活动提供