《软件工程》教学课件CH3软件的系统设计--概要设计
合集下载
《软件工程》PPT课件

第四课时
第一章第四课时
喷泉模型 软件工程的任务与研究范围 软件开发的原则与开发方法
返回
喷泉模型
瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多 情况下往往是做不到的.螺旋模型试图克服瀑布模型的这一不足.SM 把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期, 系统就细化和完善一些.SM每—螺旋周期由六个步骤组成: <1> 确定任务目标: 根据初始需求分析项目计划,确定任务目标、可选 方案和限制.<2>选择对象:对各种软硬件设备、开发方法、技术、 开发工具、人员、开发管理等对象进行选择:并决定软件是进行研 制、购买还是利用现有的.<3>分析约束条件:软件开发的时间、经 费等限制条件.<4>风险分析:评估目标、对象、约束条件三者之间 的联系,列出可能出.现的问题及问题的严重程度等,把最重要的问 题作为尚未解决的关键问题的风险.<5>制定消除风险的方法:应有 详尽的说明和周密的计划,并估计可能产生的后果.依此来开发软件, 为制订下一周期的计划打下基础.<6>制定下一周期的工作计划:在 第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制 订消除风险的方法,初步开发原型1,制定系统生存周期计划.
软件工程的任务与研究范围
•软件产品的特点 •软件工程的研究内容与方法 •软件工具与软件支撑环境 •软件管理
软件开发的原则与方法
•软件开发的原则 • 自顶向下与模块结构 •软件开发的方法 •1.非自动形式的系统开发方法 •〔1〕系统流程图〔2〕结构分析法〔3〕结构化设计法 •〔4〕数据结构法〔5〕层次输入——处理——输出方法<HIPO法> • 2.半自动形式的系统开发方法 •〔1〕软件需求工程法〔2〕问题说明语言与分析法 • 3. 自动形式的系统开发方法 〔HOS方法〕:由计算机自动确定规 范、自动分析、自动编程、自动执行与模拟,以规范语言AXES、资 源分配工具RTA为工具.能自动进行分析、设计,工作量少、设计规范, 也能自动进行修改和维护.该方法适用于系统分析和设计.
第一章第四课时
喷泉模型 软件工程的任务与研究范围 软件开发的原则与开发方法
返回
喷泉模型
瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多 情况下往往是做不到的.螺旋模型试图克服瀑布模型的这一不足.SM 把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期, 系统就细化和完善一些.SM每—螺旋周期由六个步骤组成: <1> 确定任务目标: 根据初始需求分析项目计划,确定任务目标、可选 方案和限制.<2>选择对象:对各种软硬件设备、开发方法、技术、 开发工具、人员、开发管理等对象进行选择:并决定软件是进行研 制、购买还是利用现有的.<3>分析约束条件:软件开发的时间、经 费等限制条件.<4>风险分析:评估目标、对象、约束条件三者之间 的联系,列出可能出.现的问题及问题的严重程度等,把最重要的问 题作为尚未解决的关键问题的风险.<5>制定消除风险的方法:应有 详尽的说明和周密的计划,并估计可能产生的后果.依此来开发软件, 为制订下一周期的计划打下基础.<6>制定下一周期的工作计划:在 第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制 订消除风险的方法,初步开发原型1,制定系统生存周期计划.
软件工程的任务与研究范围
•软件产品的特点 •软件工程的研究内容与方法 •软件工具与软件支撑环境 •软件管理
软件开发的原则与方法
•软件开发的原则 • 自顶向下与模块结构 •软件开发的方法 •1.非自动形式的系统开发方法 •〔1〕系统流程图〔2〕结构分析法〔3〕结构化设计法 •〔4〕数据结构法〔5〕层次输入——处理——输出方法<HIPO法> • 2.半自动形式的系统开发方法 •〔1〕软件需求工程法〔2〕问题说明语言与分析法 • 3. 自动形式的系统开发方法 〔HOS方法〕:由计算机自动确定规 范、自动分析、自动编程、自动执行与模拟,以规范语言AXES、资 源分配工具RTA为工具.能自动进行分析、设计,工作量少、设计规范, 也能自动进行修改和维护.该方法适用于系统分析和设计.
软件工程教学课件第4章概要设计

(2)将数据流图映射成事务型的结构图
接收模块
主控模块
发送模块
动作路径1 控制模块
动作路径2 控制模块
…
动作路径n 控制模块
图4-20 事务型的结构图
(3)分解每条动作路径所对应的结构图
①接收模块的分解 ②动作路径控制模块的分解
4.分层数据流图的映射
对于分层数据流图,0层图常常反映了系统由哪 些子系统组成,此时可先将0层图映射成图4-21 的结构图。0层图每个加工的数据流图子图可映 射成以相应模块为根模块的结构子图。如果数据 流图子图中的加工还可分解成一张子图,则再将 其映射成以相应模块为根模块的结构子图,一次 一层一层分解下去,可得到最终的初始结构图。 如果初始结构图太大,也可以将它组织成分层的 结构图。
K
L
M
F
G
IБайду номын сангаас
H
N
O
P
Q
J 宽度
R
扇入
图4-11 结构图的相关概念
4.3 结构化设计方法概述
4.3.1 启发式设计策略 4.3.2 结构化设计的步骤 4.3.3 数据流图到软件体系结构的映 射
4.3.1 启发式设计策略
1.改造程序结构图,降低耦合度,提高内聚度 2.避免高扇出,并随着深度的增加,力求高扇入 3. 模块的影响范围应限制在该模块的控制范围内 4. 降低模块接口的复杂程度和冗余程度,提高一 致性 5. 模块的功能应是可预测的,避免对模块施加过 多的限制 6. 尽可能设计单入口和单出口的模块
弱
图4-3 耦合的种类
4.2 结构化分析方法
4.2.1 层次图 4.2.2 HIPO图 4.2.3 结构图
4.2.1 层次图
软件工程总体设计课件PPT学习教案

这个不等式导致“各个击破” 的结论—把复杂的问题分解成 许多容易解决的小问题,原来
的问题也就容易解决了。这就
是模块化的根据。
第10页/共72页
最小成本区
M
总成本 接口成本
模块成本 模块数
4.2.2 抽象
人类在认识复杂现象的过程中使用的最强有力的思维工具是 抽象。
-- 就是抽出事物的本质特性(共性),而暂时不考虑它们的细节。 处理复杂系统的惟一有效的方法是用层次的方式构造和分析
如两个模块通过传
计算电费
递数据结构(不是 住户情况
住户情况
简单数据,而是
记录、数组等)加 以联系,或都与
水费 电费
计算水费
计算水电费
一个数据结构有 关系, 则称这两个
“住户情况”是一个数据结构,图中 模块都与此数据结构有关.“计算水 费”和“计算电费”本无关,由于引
模块间存在标记
用了此数据结构产生依赖关系,它们 之间也是标记偶合.
第9页/共72页
问题:模块该如何划分?
设:C(x)为复杂程度函数
E(x)为决定解决问题x所需的
工作量(时间)函数
软
件
对于两个问题P1和P2,
开
如果 C(P1)>C(P2)
发 工
则: E(P1)>E(P2)
作
量
如果 C(P1+P2)>C(P1)+C(P2)
则: E(P1+P2)>E(P1)+E(P2)
如果在测试期间和以后的软件维护期间需要修改软件, 那么使用信息隐藏原理作为模块化系统设计的标准就会 带来极大好处。
第15页/共72页
4.2.5 模块独立
软件工程--总体设计PPT课件

内聚:一个模块内各个元素彼此结合的紧密程度。
低内聚
偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。 逻辑内聚:若干个逻辑功能类似的任务组成一个模块。
时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。
模块A 模块B 模块C
模块A
模块A 模块B 模块C
S1;
模块B
模块C
S2;
模块D
11
2021
模块化和软件成本的关系
最小成本区 M
软件总成本 接口成本
成本或工作量
模块数目
12
2021
5.2.2 抽象
我们在考虑问题时,集中考虑和当前问题有关的方 面,而忽略和当前问题无关的方面,这就是抽象。或 者说抽象就是抽出事物的本质特性而暂时不考虑它们 的细节。
5.2.3 逐步求精
逐步求精是人类解决复杂问题时采用的基本技 术,也是许多软件工程技术(例如,规格说明技术, 设计和实现技术、测试和集成技术)的基础。逐步 求精定义为:“为了能集中精力解决主要问题而尽
模块化:把程序划分成若干个模块,每个模块完成一 个子功能,把这些模块集成起来组成一个整体,可以 完成指定的功能,满足问题的功能。
过程、函数、子程序和宏等,都可作为模块。
面向对象范型中的对象是模块,对象内的方法也是
模块。模块是构成程序的基本构件。
10
2021
3、模块化原理
有两个函数:C(x)表示问题x的复杂程度;E(x)表示解决 问题x所需要的工作量(时间)。
编辑学生记录
学号
学生数据 无此学生
读学生记录
36
2021
结构图的三种基本结构
A
A
A
A
软件系统设计概述PPT课件

软件的开发阶段
第6页/共60页
软件设计的重要性
为什么软件设计很重要?
软件设计是开发阶段中最重要的步骤,它是软件开发过 程中质量得以保证的关键步骤。设计提供了软件的表示, 使得软件的质量评价成为可能。
同时,软件设计又是将用户要求准确地转化成为最终的 软件产品的唯一途径。另一方面,软件设计是后续开发步 骤及软件维护工作的基础。如果没有设计,只能建立一个 不稳定的系统。
第7页/共60页
软件设计的重要性
只要出现一些小小的变动,就会使得软件垮掉,而且难于测试。
第8页/共60页
软件设计方法 F 结构化设计方法(SD) F 面向数据结构的设计方法(JSD方法) F 面向对象的设计方法(OOD)
第9页/共60页
软件设计的阶段
第10页/共60页
软件设计的阶段
(1)概要设计(总体设计) 确定软件的结构以及各组成成分(子
• 模块的内部特性
完成其功能的程序代码和仅供该模块内
第33页/共60页
模块设计ห้องสมุดไป่ตู้础
二.模块独立性
模块独立性, 是指软件系统中每个模块 只涉及软件要求的具体的子功能, 而与 软件系统中其它的模块的接口是简单的. 例如, 若一个模块只具有单一的功能且 与其它模块没有太多的联系, 则称此模 块具有模块独立性 一般采用两个准则度量模块独立性。即 模块间耦合和模块内聚
第28页/共60页
软件设计基础 七. 信息隐蔽
由 parnas 方法提倡的信息隐蔽是指,每个 模块的实现细节对于其它模块来说是隐蔽的。 也就是说,模块中所包含的信息(包括数据 和过程)不允许其它不需要这些信息的模块 使用。独立的模块间仅仅交换为完成系统功 能而必须交换的信息。
《软件工程》教学CH3软件的系统设计详细设计PPT课件

详细设计的任务具体主要有如下五点。
(1) 确定每个模块的具体算法。
(2) 确定每个模块的内部数据结构及数据库的物理结构。
(3) 确定模块接口的具体细节。(即确定模块接口的详细 信息,包括模块之间的接口信息、模块与系统外部的接口信息 及用户界面等。)
(4) 为每个模块设计一组测试用例。
(5) 编写文档,参加复审。
由于N-S图中没有流程线,不可能随意转移控制,因而表 达出的程序结构必然符合结构化程序设计的思想,有利于培养 软件设计人员的良好设计风格。但当所描述的程序嵌套层次较 多时,不仅影响可读性而且不易修改。
IF条件
CASE条件
S1
T
F
值1 值2 … 值n
S2
S1
S2
CASE 1 CASE 2 部分 部分
这三种基本结构就可以实现任何单入口单出口的程序。但为了使用方便, 还允许有DO_UNTIL和DO_CASE两种控制结构。有时为了提前从循环 中跳出,还允许有BREAK结构。我们称只允许使用三种基本结构的为 经 典 的 结 构 化 程 序 设 计 ; 除 三 种 基 本 结 构 外 , 还 可 用 DO_UNTIL 和 DO_CASE的为扩展的结构程序设计;若再加上BREAK则称为修正的结
END FOR ② WHILE结构
WHILE 条件 循环体S
ENDWHILE
输入/输出语句 ① 输入语句:
GET(输入变量表) ② 输出语句:
PUT(输出变量表) 模块调用语句
CALL 模块名(参数)
5)判定表:当算法中包含多重嵌套的条件选择时使 用。表示复杂的条件组合与相应的动作适宜。
例3-1 行李问题。P55
(2) 程序流程图难以描述逐步求精的过程,容易导致程序员过早考 虑程序的控制流程,而忽略程序全局结构的设计。
(1) 确定每个模块的具体算法。
(2) 确定每个模块的内部数据结构及数据库的物理结构。
(3) 确定模块接口的具体细节。(即确定模块接口的详细 信息,包括模块之间的接口信息、模块与系统外部的接口信息 及用户界面等。)
(4) 为每个模块设计一组测试用例。
(5) 编写文档,参加复审。
由于N-S图中没有流程线,不可能随意转移控制,因而表 达出的程序结构必然符合结构化程序设计的思想,有利于培养 软件设计人员的良好设计风格。但当所描述的程序嵌套层次较 多时,不仅影响可读性而且不易修改。
IF条件
CASE条件
S1
T
F
值1 值2 … 值n
S2
S1
S2
CASE 1 CASE 2 部分 部分
这三种基本结构就可以实现任何单入口单出口的程序。但为了使用方便, 还允许有DO_UNTIL和DO_CASE两种控制结构。有时为了提前从循环 中跳出,还允许有BREAK结构。我们称只允许使用三种基本结构的为 经 典 的 结 构 化 程 序 设 计 ; 除 三 种 基 本 结 构 外 , 还 可 用 DO_UNTIL 和 DO_CASE的为扩展的结构程序设计;若再加上BREAK则称为修正的结
END FOR ② WHILE结构
WHILE 条件 循环体S
ENDWHILE
输入/输出语句 ① 输入语句:
GET(输入变量表) ② 输出语句:
PUT(输出变量表) 模块调用语句
CALL 模块名(参数)
5)判定表:当算法中包含多重嵌套的条件选择时使 用。表示复杂的条件组合与相应的动作适宜。
例3-1 行李问题。P55
(2) 程序流程图难以描述逐步求精的过程,容易导致程序员过早考 虑程序的控制流程,而忽略程序全局结构的设计。
软件工程概论PPT课件

集成测试
总结词
集成测试是在单元测试的基础上,将多个模块或组件组合在一起进行测试,以验证它们之间的集成是否正常工作。
详细描述
在软件开发过程中,当多个模块或组件完成单元测试后,需要进行集成测试来验证它们之间的交互和集成是否正 常。集成测试的目的是发现模块之间的接口问题和集成后的性能问题,以确保软件的整体功能和性能达到要求。
编码
选择编程语言
根据项目需求和团队技术能力,选择适合的 编程语言进行编码。
编码规范
制定编码规范,确保代码的可读性、可维护 性和可扩展性。
编码实现
按照设计文档和编码规范,编写代码实现各 个模块的功能。
代码审查
对编写的代码进行审查,确保其符合规范和 设计要求,并进行必要的重构和优化。
测试
单元测试
对每个模块进行单元测试,确保其功能正常、符合设计要求。
界面风格与一致性
界面设计应保持一致的风格,以提高用户对软件系统的认知和熟悉 度。
模块设计与划分
模块设计与划分概述
模块设计与划分是指将软件系统划分为一系列相互独立、可复用 的模块。
模块化设计的好处
模块化设计可以提高软件系统的可维护性、可扩展性和可重用性。
模块间的通信与协作
模块间的通信和协作是模块化设计的关键,应确保模块间的松耦 合和低耦合。
05 软件测试工程
单元测试
总结词
单元测试是对软件中的最小可测试单元进行检查和验证,通常以函数或方法为 单位进行测试。
详细描述
单元测试是软件开发过程中的一种测试方法,旨在验证软件的最小单元是否符 合设计要求和功能规范。它通常在编码阶段同步进行,以确保代码的正确性和 可靠性。单元测试的方法包括白盒测试和黑盒测试。
软件工程概要设计PPT课件

2.设计过程
信息描述
功能描述 行为描述
设计
数据设计
其他需求
过程设计
程序模块
编码
集成并确 认的软件
测试
3.设计原则
总体设计的总原则是:由宏观到微观、逐步求 精的原则,定性定量分析相结合、分解与协调 相结合和模型化方法,并要兼顾系统的一般性 、关联性、整体性和层次性。
根据系统的总体结构、功能、任务和目标的要 求分解系统,使各子系统之间互相协调配合, 实现系统的整体优化。
研究内容
数据结构与算法就如同人的血脉和神经,它让器官具有生 命并能发挥功能。数据结构与算法分布在体系结构和模块 中,它将协调系统的各个功能。
人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴 就只能发出“啊”“呜”的声音,等于丧失了说话的功能(所以聋 子天生就是哑巴),可人们却又能用手势代替说话。
研究内容
主要内容:体系结构设计、模块设计、数据结 构与算法设计、用户界面设计
体系结构就如同人的骨架。如果某个家伙的骨架是猴 子,那么无论怎样喂养和美容,这家伙始终都是猴子 ,不会成为人。
模块就如同人的器官,具有特定的功能。人体中最出 色的模块设计之一是手,手只有几种动作,却能做无 限多的事情。
据说上帝把所有的女士都设计成天使,可是天使们在下凡时 有些双脚先着地,有些脸先着地。上帝的这一疏忽让很多女 孩伤透了心。
我们在开发软件时,一定要吸取这个教训。
概要设计
概要设计的主要任务是把需求分析得到的模型 转换为软件结构和数据结构。
设计软件结构的具体任务是:将一个复杂系统 按功能进行模块划分、建立模块的层次结构及 调用关系、确定模块间的接口及人机界面等。
阅卷者
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 软件的系统设计
3.1概要设计 3.1概要设计
1.基本任务 1.基本任务 设计软件系统结构: 设计软件系统结构: 采用某种设计方法, 采用某种设计方法,将一个复杂的系统按功能划分成模 块. 确定每个模块的功能. 确定每个模块的功能. 确定模块之间的调用关系. 确定模块之间的调用关系. 确定模块之间的接口,即模块之间传递的信息. 确定模块之间的接口,即模块之间传递的信息. 评价模块结构的质量. 评价模块结构的质量. 数据结构设计: 采用"逐步细化"的方法, 数据结构设计: 采用"逐步细化"的方法,如采用数据字典 描述逐步细化.设计有效的数据结构(如队列,线性表, 描述逐步细化.设计有效的数据结构(如队列,线性表,链表 ),大大简化软件模块处理过程的设计 大大简化软件模块处理过程的设计. 等),大大简化软件模块处理过程的设计.
《软件工程》 软件工程》
软件的系统设计--概要设 软件的系统设计--概要设 计 陈巧丽
第三章 软件的系统设计
第三章 软件的系统设计
回顾引入:
Why to do? —可行性研究√ 可行性研究√ What to do?—需求分析√ do?—需求分析√ How to do? —系统设计
第三章 软件的系统设计
第三章 软件的系统设计
1.模型:是对问题做出的一种抽象,它由一组图示符号和组织这些符号 模型:是对问题做出的一种抽象, 的规则组成. 的规则组成. 建模是问题域中定义软件解的一种方法.建模的目的主要是为了减少问 建模是问题域中定义软件解的一种方法. 题的复杂性. 题的复杂性. 2. 工具 系统开发工具是一些帮助生成模型或其它组件的软件. 系统开发工具是一些帮助生成模型或其它组件的软件.系统开发人员常 用的是CASE工具 工具, Rose等 用的是CASE工具,如Microsoft Visio , Rational Rose等.用了 CASE工具,开发软件能更加规范,标准化, CASE工具,开发软件能更加规范,标准化,从而提高软件开发的效 工具 率. 3. 技术 技术就是帮助分析员完成系统开发活动或任务的一组方法.有时一种技 技术就是帮助分析员完成系统开发活动或任务的一组方法. 术适用于整个生命周期.常在开发过程中使用的技术有: 术适用于整个生命周期.常在开发过程中使用的技术有:项目管理 技术,用户面谈技术,数据建模技术,结构化分析技术, 技术,用户面谈技术,数据建模技术,结构化分析技术,软件测试 技术,面向对象分析与设计技术等. 技术,面向对象分析与设计技术等. 4. 系统开发方机"的最佳对策,面向对象(OO) 目前作为针对"软件危机"的最佳对策,面向对象(OO) 技术已经引起人们的普遍关注.而许多编程语言(C++, 技术已经引起人们的普遍关注.而许多编程语言(C++, VB,VF,PB,Delphi等)也都推出了支持面向对象的新版 VB,VF,PB,Delphi等 本. 面向对象方法的基本思想是 面向对象方法的基本思想是,从现实世界客观存在的事物 出发来构造软件系统, 出发来构造软件系统,并在系统构造中尽可能运用人类的自 然思维方式.开发一个软件是为了解决某些问题. 然思维方式.开发一个软件是为了解决某些问题.面向方法 强调直接以现实世界中的事物为中心来思考问题,认识问题, 强调直接以现实世界中的事物为中心来思考问题,认识问题, 并根据这些事物的本质特征, 并根据这些事物的本质特征,把它们抽象地表示为系统中的 对象,作为系统的基本构成单位. 对象,作为系统的基本构成单位.这可以使系统直接地映射 问题域,保持问题域中事物及其相互关系的本来面貌. 问题域,保持问题域中事物及其相互关系的本来面貌.
本章从三个阶段介绍了项目中期所要完成的工作,它们是项 本章从三个阶段介绍了项目中期所要完成的工作, 目的系统分析阶段,系统设计阶段和代码实现阶段. 目的系统分析阶段,系统设计阶段和代码实现阶段. 在系统分析阶段,可采用CASE(计算机辅助软件工程) CASE( 在系统分析阶段,可采用CASE 计算机辅助软件工程) 工具确定问题域,进行需求建模, 工具确定问题域,进行需求建模,利用数据流图可建立起分 析对象模型,然后进行系统的分析合并,再进行测试和验收. 析对象模型,然后进行系统的分析合并,再进行测试和验收. 本章以实例为驱动,在系统设计阶段进行界面的设计, 本章以实例为驱动,在系统设计阶段进行界面的设计, 建立出设计模型,结合第七章面向对象技术和第九章UML UML的 建立出设计模型,结合第七章面向对象技术和第九章UML的 初步知识进行详细设计. 初步知识进行详细设计.在代码实现方面根据具体的软件项 目分析软件的开发工具准备,利用中间件技术( 目分析软件的开发工具准备,利用中间件技术(中间件是一 种独立的系统软件或服务程序, 种独立的系统软件或服务程序,分布式应用软件借助这种软 件在不同的技术之间共享系统和网络资源, ODBC,JDBC, 件在不同的技术之间共享系统和网络资源,如ODBC,JDBC, OLE DB等)开发MIS(管理信息系统)等知识. DB等 开发MIS 管理信息系统)等知识. MIS(
第三章 软件的系统设计
编写概要设计文档: 编写概要设计文档:
①概要设计说明书. 概要设计说明书. DBMS简介 ②数据库设计说明书:主要给出所使用的DBMS简介,数据库的 数据库设计说明书:主要给出所使用的DBMS简介, 概要模型,逻辑设计,结果. 概要模型,逻辑设计,结果. ③用户手册:对需求分析阶段编写的用户手册进行补充. 用户手册:对需求分析阶段编写的用户手册进行补充. ④修订测试计划,对测试策略,方法,步骤提出明确要求. 修订测试计划,对测试策略,方法,步骤提出明确要求. 评审. 评审. 2,软件设计文档:包括"概要设计说明书","详细设计说 软件设计文档:包括"概要设计说明书" 明书" 数据库设计说明书" 明书" ,"数据库设计说明书". 3,软件设计的基本原理
第三章 软件的系统设计
2, 系统资源说明 对系统所需要的软件,硬件资源进行说明. 对系统所需要的软件,硬件资源进行说明. 描述系统所需要的所有的成本(包括人员,时间,设备, 描述系统所需要的所有的成本(包括人员,时间,设备,系 一次性投入资金,持续性投入资金这样的所有资源) 统,一次性投入资金,持续性投入资金这样的所有资源). 3, 系统可行性分析 对系统的实施中的资源进行分析,说明 对系统的实施中的资源进行分析, 投入的合理性和必然性, 投入的合理性和必然性,对其中的所有不可预见性的投入进 行合理的量化说明, 行合理的量化说明,来说明系统的实施的可行性 . 系统分析阶段就是要全面了解系统的商业需求和处理要求并 制作书面文件,详细地定义信息系统的功能. 制作书面文件,详细地定义信息系统的功能.这一阶段的最 根本的目的就是解决系统要做什么的问题--根本的目的就是解决系统要做什么的问题--- What to do? 系统分析准备 在进行详细的系统开发前,开发人员必须先理解一些概念,包 在进行详细的系统开发前,开发人员必须先理解一些概念,包 括方法,模型,工具和技术.
第三章 软件的系统设计
1.定义 1.定义
(一),模块的概念 ),模块的概念
所谓模块, 所谓模块,是指具有相对独立性的,由数据说明,执 行语句等程序对象构成的集合.程序中的每个模块都 行语句等程序对象构成的集合.程序中的每个模块都 需要单独命名,通过名字可实现对指定模块的访问. 需要单独命名,通过名字可实现对指定模块的访问. 在高级语言中,模块具体表现为函数,子程序,过程 在高级语言中,模块具体表现为函数,子程序,过程 等.一个模块具有输入/输出(接口) 等.一个模块具有输入/输出(接口),功能,内部数 据和程序代码四个特征. 据和程序代码四个特征. 模块化是指将整个程序划分为若干个模块,每个模块 模块化是指将整个程序划分为若干个模块,每个模块 用于实现一个特定的功能.划分模块对于解决大型复 用于实现一个特定的功能.划分模块对于解决大型复 杂的问题是非常必要的,可以大大降低解决问题的难 度.
第三章 软件的系统设计
系统分析阶段的任务主要解决了系统"做什么"的问题,系 系统分析阶段的任务主要解决了系统"做什么"的问题, 统设计阶段要解决的任务则是系统"怎么做"的问题. 统设计阶段要解决的任务则是系统"怎么做"的问题. 系统分析员审查可行性研究报告 软件项目开发计划, 系统分析员审查可行性研究报告,软件项目开发计划, 可行性研究报告, 软件需求规格说明书,提出候选的最佳推荐方案, 软件需求规格说明书,提出候选的最佳推荐方案,用系统流 程图(注意画法,见前面),组成系统物理元素清单, ),组成系统物理元素清单 程图(注意画法,见前面),组成系统物理元素清单,将成 本效益分析,系统的进度计划,供专家审定, 本效益分析,系统的进度计划,供专家审定,审定后即进入 软件设计阶段. 软件设计阶段的主要任务是要实现逻辑模 软件设计阶段. 软件设计阶段的主要任务是要实现逻辑模 DFD和DD等 向物理模型转换,即要解决" 型(DFD和DD等)向物理模型转换,即要解决"系统如何 实现"问题, 实现"问题,该阶段又可画分为概要设计和详细设计两个阶 段.
第三章 软件的系统设计
方法是一组完成系统开发生命周期每一阶段活动的技术, 方法是一组完成系统开发生命周期每一阶段活动的技术, 是一组完成系统开发生命周期每一阶段活动的技术 它提供了完成每一步的详细指导.常用的方法有结构化方 它提供了完成每一步的详细指导.常用的方法有结构化方 面向对象方法.本章主要以结构化方法为例. 法和面向对象方法.本章主要以结构化方法为例. 20世纪70年代出现了结构化的系统分析设计方法.结构化 20世纪 年代出现了结构化的系统分析设计方法 世纪70年代出现了结构化的系统分析设计方法. 系统分析( 简称SA) 系统分析(Structured Analysis ,简称SA),是一种简 单实用,使用很广的方法.它往往是将一个复杂的系统分 单实用,使用很广的方法. 抽象成为多个简单的子系统;使用" 解,抽象成为多个简单的子系统;使用"自顶向下逐层分 的方式,将一个复杂系统分解, 解"的方式,将一个复杂系统分解,抽象成为多个简单的 子系统,如果某个子系统仍然复杂,将其进一步分解. 子系统,如果某个子系统仍然复杂,将其进一步分解.