软件设计思路ppt课件

合集下载

软件体系结构设计方法ppt课件

软件体系结构设计方法ppt课件

*
者)与系统的其它的 管理员
构件是如何联系的。管
管理端子系统 *
理端的主用例图如右图:
管理员用例图
18
3. 系统的管理端业务处理模块
系统的管理端子系统主要包括:导师管理”、“部 门
管理”、“科目管理”、“学期管理”、“学年管 理”、“专
业学期激活”等六大功能。
19
管理员
添加导师信息 修改导师信息 删除导师信息
5
2.软件体系结构设计方法的分析
2.1.1 工作驱动的方法
工件驱动的体系结构设计方法从方法的工件描述中 提取体系结构描述。工件驱动的体系结构设计方法 的例子包括广为流行的面向对象分析和设计方法 OMT。 如下图是该方法的概念模型。
6
2.软件体系结构设计方法的分析
客户
1:描述 需求规Leabharlann 说明书通用知识 2:查找
导师管理部20导师管理部门管理院系管理专业管理学年管理学期管理专业学期激活管理员课程管理小颗粒度的管理端includeinclude添加导师信息添加课程信息uses修改导师信息删除导师信息21登录页面课程激活页面管理员主页院系管理主页教师管理主页课程管理主页学期管理主页部门管理主页添加导师添加学期院系选择添加院系添加课程选择院系添加专业专业管理主页院系管理主页选择专业学期学年激活添加院系管理端的页面流程耦合和内聚原理的应用耦合和内聚是作为结构化设计方法的部分原理而提出的
程中的一个明确阶段,而是设计阶段的一个
隐含部分。
8
2.软件体系结构设计方法的分析
OMT方法主要由一下阶段组成:分析、系统设计、 对象设计。 箭头线“1:描述”表示需求规格说明书的描述; 箭头线“2:查找”表示对工件的查找,如系统分析

第7章软件设计

第7章软件设计
23

体系结构设计为什么重要? 关心的是为系统建立一个基本架构。包括要识别 出系统的主要构件以及这些构件之间的通信。好处: • 体系结构是系统的高层表示,有利于项目人员之间 沟通。 • 体系结构的设计决策对系统能否满足关键性需求 如系统的性能、可靠性、可维护性等属性的评估有极 深的影响。 • 体系结构能在具有相似需求的系统之间复用。 软件体系结构不仅指出了系统的组织结构和拓扑 结构,并显示了系统需求和构成系统元素之间的对应 关系,提供了软件如何设计的重要决策。
18
还有: • 包含或导入耦合 • 类型使用耦合 • 例程调用耦合
一个操作调用另一个 操作时发生此种耦合。
• 外部耦合:
一个构件和基础实施 构件(如操作系统功能、 数据库功能)进行协作 和通信发生此种耦合。 应限制在少量构件或类 范围中。
尽量降低耦合性!
Demeter定律不太严谨的一种解释: “每个单元应 该只和它的朋友交谈,而不要和陌生对象交谈。”
构件级元素
过程纬度(过程模型的演化)
2、设计目标和指导原则(参考教材1) 设计目标: • 设计必须实现所有包含在分析模型中的需求。 • 设计必须是可读、可理解的,便于实现和维护。 • 设计应该提供软件的完整面貌,包括从不同角度看到 的数据、功能、行为域。 常用的设计指导原则: (1)设计应该展示这样一种结构: • 已经使用可识别的体系结构风格或模式创建; • 由展示出良好设计特征的构件组成; • 能够以演化的方式实现,从而便于实现与测试。 (2)设计应该模块化。即软件应按逻辑划分为元素或子 系统。 (3)设计应该包括数据、体系结构、接口和模块的清楚 表示。
22

7.4 软件体系结构及其设计
(参考第11章)
1、软件体系结构相关概念

软件设计与开发PPT课件

软件设计与开发PPT课件
• 前端使用Qt开发GUI界 面。
• 后台使用MySQL数据库 系统进行支持。
• 开发语言采用C++。
五、数据库设计方案
• 实体类包括:仓库、货架、货物、货单。 • 而货单是个临时工作实体,所以不必保存。 • 按照需求设计可得:
六、关键算法
• 最优捡货路线的设计 • 核心要求: • 1、检查是否货单满足。 • 2、更具货单和实际存货给出需要达到的地点。 • 3、设计出一个覆盖所需到达地点的算法。 • 难点: • 1、需达到地点间的互不可达——多给出货架的四
• 二、对货物进行查询。 1、按货架查询。 2、按关键词进行索引查询。
• 三、货物的出库入库 1、给出货物入库功能。 2、给出货物出库功能。 3、按出库货单设计最优捡货路径。
二、用例模型、分析模型和领域类模型
• 用例模型:
二、用例模型、分析模型和领域类模型
• 分析模型:
二、用例模型、分析模型和领域类模型
• 领域类图:
三、类的设计方案与思路
• 核心思路: • 界面类——控制类——实体类 • 界面类:用于提供用于与用户进行直接交互的功
能。 • 控制类:通过使用实体的信息,来支持界面类的
各项功能。 • 实体类:用以保存实际仓库的各类实体和它们之
间的相互关联关系。
三、类的设计方案与思路
• 设计方法: • 1、界面类:按用户需求进行设计,贴近用户功能,
目录一览
• 一、系统需求概述 • 二、用例模型、分析模型与领域模型 • 三、类的设计方案与思路 • 四、系统架构,与所用开发技术 • 五、数据库设计方案 • 六、关键算法 • 七、功能结构图 • 八、小组内各成员的分工与合作 • 九、收获与感悟
一、系统需求概述

软件工程结构化软件设计(共98张PPT)

软件工程结构化软件设计(共98张PPT)
➢ 传出模块 :从上级模块获得数据,进行某些处理,再将 其传送给下属模块。
➢ 变换模块 :即加工模块。它从上级模块取得数据,进 行处理,转换成其它形式,再传送回上级模块。
➢ 协调模块 :对所有下属模块进行协调和管理的模块。
第五页,共98页。
7.1.1 系统结构图中的模块
在系统结构图中不能再分解的底层模块为原 子模块。
模块 软件包应满足设计约束和可移植性
第二十六页,共98页。
7.5.1 模块功能的完善化
一个完整的功能模块,不仅应能完成指定的 功能,而且还应当能够告诉使用者完成任务 的状态,以及不能完成的原因。
➢ 规定的功能部分。 ➢ 出错处理部分。当模块不能完成规定的功能时
,必须返回出错信息和标志,向它的调用者报 告出现这种例外情况的原因。 ➢ 给调用者返回一个该模块执行是否正确结束的 “标志”。
第十页,共98页。
7.2 变换映射
变换映射是一组设计步骤,将具有变换流特征的数据流图 映射为一个预定义的程序结构模版。
运用变换映射方法建立初始的系统结构图,然后进行多 次改进,得到系统的最终结构图。
➢ (1)复审并评估分析模型; ➢ (2)复审并重画数据流图; ➢ (3)确定数据流图中的变换和事务特征; ➢ (4)区分输入流、输出流和中心变换部分,即标明数据
在具体的应用中一般以变换型为主,事务型 为辅的方式进行软件结构设计。
第二十三页,共98页。
7.4 变换-事务混合型的系统结构图
第二十四页,共98页。
课堂作业
在医院就诊系统中,挂号子系统的数据流图 如下图所示:
挂号请求
科室信息
查询科室 排队信息
科室排队 信息
确 科定 室挂 医号 生挂医号生的信科息室确费定用挂号

软件工程--软件详细设计 ppt课件

软件工程--软件详细设计  ppt课件

3
PPT课件
2.物理设计 对数据库进行物理设计,即确定数据库的 物理结构。物理结构主要指数据库的存储记录 格式、存储记录安排和存储方法,这些都依赖 于具体所使用的数据库系统。
4
PPT课件
3.算法设计 在总体设计的结构完成后,结构各个环节 的实现是多解的。着就需要用系统设计与分析 的技术来描述。可以用某种图形、表格、语言 等工具将每个模块处理过程的详细算法描述出 来。
24
PPT课件
3、汇点 如果一个结点有两个和一个出口线,而且它不执 行任何运算,那么称为汇点, 图6--5( a)所示。由多 个入口线汇集到一点的情形可以用多个汇点的联结表 示。
25
图6--5 流程图中汇点表示
PPT课件

6.3.2三种基本控制结构 流程图在描述程序控制结构时的优点是直 观清晰、易于使用。 图6--6为流程图的三种基本控制结构。
20
PPT课件

上述三种描述加工逻辑的工具各有优缺点,对 于顺序执行和循环执行的动作,用结构化语言 描述;对于存在多个条件复杂组合的判断问题, 用判定表和判定树。
21
PPT课件
6.3结构化程序设计

6.3.1 结点

在软件工程中,用流程图程序描述客观存在的事物 特性。体现为描述程序控制结构和和指令执行情况, 这种对程序结构的控制的流程图程序是一个有向图。 图的基本元素是函数结点、谓词结点和汇点三种结 点。
[定理4] :若允许增加辅助变量、或增加额外计算、 或改变程序的执行顺序,问题解的任何算法都可以 表示为结构化构造。 图6—14(a)所示的结构化流程图中有10个元 素。是一个非结构化流程图程序。因为,它的两个 选择结构出现重合,造成了程序段D有两个入口, 一个出口,破坏了单入口单出口这项结构化原则。

软件设计PPT课件

软件设计PPT课件

软件测试的目标
确保软件质量
通过测试发现软件中存在的缺陷和错误,提 高软件的质量和稳定性。
验证软件功能
验证软件是否符合需求规格,是否能够完成 预定的功能和任务。
提高软件可靠性
通过不断测试和修复,提高软件的可靠性和 可用性,降低故障率。
优化性能
通过测试发现软件的性能瓶颈,优化软件性 能,提高运行效率。
社交网络设计案例,以微信为例,介 绍其功能、特点、技术实现和用户体 验等方面的设计。
用户体验
微信注重用户体验,通过不断优化界 面设计和交互细节,提升了用户的使 用感受。
01
02
功能设计
微信作为一款社交应用,其功能设计 主要包括聊天、朋友圈、公众号等, 满足了用户社交需求。
03
特点
微信具有简洁、易用、安全等特点, 用户可以快速上手并享受优质的社交 体验。
页面布局
淘宝采用清晰的页面布局,将商品信 息、搜索框、导航栏等元素合理排布, 方便用户浏览和查找。
购物流程
淘宝的购物流程设计简洁明了,用户 可以轻松完成注册、登录、浏览、购 买等操作。
案例三:移动应用的设计
抖音的界面设计简洁大方,色彩搭配 合理,图标和按钮符合用户习惯,提 升了用户体验。
抖音在性能优化方面做得很好,无论 是启动速度还是运行流畅度都得到了 保障。
提高数据完整性
保证数据的准确性和可靠性,确保 数据的正确性和一致性。
04
数据库设计的基本步骤
概念设计
根据需求分析结果,设计出符 合业务需求的数据库概念模型。
物理设计
根据逻辑模型,设计出数据库 的物理结构,包括存储结构、 索引、分区等。
需求分析
了解用户需求,收集相关数据, 分析业务流程和数据流程。

软件设计(详细设计)PPT课件

软件设计(详细设计)PPT课件

Case条件
Case1 Case2 … Casen
AB
N
c.多分支结构
循环条件 Do-While
部分
d.当型循环结构
Do-Until 部分
循环条件
e.直到型循环结构
A f.调用子程序A
图3.4 盒图的基本符号
F A
盒图例子
T B C D
A:
Case 1234 E FGH
(3) PAD图
PAD(Problem Analysis Diagram)是问题分析图。 日立公司发明和推广(1973)。
实用软件工程
第三章 软件设计 (详细设计)
第3章 软 件 设 计 软件设计通常分为两个阶段:总体设计阶段和详
细设计阶段。 总体设计
详细设计
详细3设.1计软的件基设本计任的务基本任务
详细设计是总体设计的进一步的具体化,主 要确定每个模块的具体执行过程,故也称为过程 设计。其基本任务有: (1).为每个模块进行详细的算法设计。 (2).为模块内的数据结构进行设计。 (3).对数据库进行物理设计 。 (4).界面设计。 (5).编写文档 (6).评审
打开数据库 SQL查询语句赋值 通过记录集对象打开SQL语句设定的记录
Y 记录集末端?
N 记数变量加1,输出记录字段值及图像
转跳下一记录 关闭数据库链接对象、记录集对象,并释放资源
输出记录数和提示 结束
程序流程图的缺点: 1)程序流程图本质上不是逐步求精的好工具,它诱
使程序员过早地考虑程序的控制流程,而不去考 虑程序的全局结构。
5)可用于表示程序逻辑,也可用于描绘数据结构; 6)PAD图的符号支持自顶向下、逐步求精的方法。
2)程序流程图中用箭头代表控制流,因此程序员不 受任何约束,可以完全不顾结构程序设计的精神, 随பைடு நூலகம்转移控制。

《软件工程》课件第3章 软件设计

《软件工程》课件第3章 软件设计
第3章 软件设计
第3章 软件设计
3.1 软件概要设计概述 3.2 软件设计的基本原理 3.3 软件结构准则 3.4 基于IDEF0图的设计方法 3.5 软件详细设计 3.6 软件详细设计表示法 3.7 小结 习题
第3章 软件设计
3.1 软件概要设计概述
3.1.1 概要设计基本任务 1.设计软件系统结构(简称软件结构) 为了实现目标系统,最终必须设计出组成这个系
4.评审 在该阶段,对设计部分是否完整地实现了需求中 规定的功能、性能等要求,设计方案的可行性、关键 的处理和内外部接口定义正确性、有效性以及各部分 之间的一致性等,都一一进行评审。
第3章 软件设计
3.1.2 软件概要设计文档 概要设计说明书是概要设计阶段结束时提交的技
术文档。按国标GB8576—88的《计算机软件产品开发文 件编制指南》规定,软件设计文档可分为“概要设计 说明书”、“详细设计说明书”和“数据库设计说明 书”。
在大多数情况下,模块间的控制耦合并不是必需的, 可以将被调模块内的判定上移到调用模块中去,同时将 被调模块按其功能分解为若干单一功能的模块,将控制 耦合改变为数据耦合。
第3章 软件设计
(5) 公共耦合:指通过一个公共数据环境相互作 用的那些模块间的耦合。公共数据环境可以是全程变 量或数据结构、共享的通信区、内存的公共覆盖区及 任何存储介质上的文件和物理设备等(也有将共享外部 设备分类为外部耦合的)。
概要设计说明书的主要内容如下: (1) 引言:编写目的,背景,定义,参考资料。 (2) 总体设计:需求规定,运行环境,基本设计 概念和处理流程,结构。
第3章 软件设计
(3) 接口设计:用户接口,外部接口,内部接口。 (4) 运行设计:运行模块组合,运行控制,运行时 间。 (5) 系统数据结构设计:逻辑结构设计,物理结构 设计,数据结构与程序的关系。 (6) 系统出错处理设计:出错信息,补救措施,系 统恢复设计。

cai软件设计-PPT课件

cai软件设计-PPT课件

为CAI软件设计提供的原则(1)

1.引起注意

这是用以唤起和控制学生注意的活动。其基本方法是, 在 CAI课件的开始。利用能体现课件内容且具有强烈 感染力的图形序列(或图像),或者利用智能性的询 问,如询问学习者的名字,当学习者回答他们的名字 后,计算机显示:“×××同学,我很高兴和你一起 学习××××课程!”,以此来激发学习者的学习兴趣, 博得学习者的注意。
支架式教学的几个基本环节



搭脚手架。围绕当前学习主题,建立概念框架。 进入情境。将学生引入一定的问题情境(概念框架中的某个节点)。 独立探索。让学生独立探索。探索内容包括:确定与给定概念有关 的各种属性,并将各种属性按其重要性大小顺序排列。开始时要先 由教师启发引导,然后让学生自己去分析;探索过程中教师要适时 提示,帮助学生沿概念框架逐步攀升。 协作学习。进行小组协商、讨论。在共享集体思维成果的基础上达 到对当前所学概念比较全面、正确的理解,即最终完成对所学知识 的意义建构。 效果评价。对学习效果的评价包括学生个人的自我评价和学习小组 对个人的学习评价,评价内容包括:①自主学习能力;②对小组协 作学习所作出的贡献:③是否完成对所学知识的意义建构。
三、 建构主义学习理论与CAI软件设计

(一) 建构主义对学习的基本解释

建构主义是认知主义的进一步发展,该学习理论认为, 学习是学习者主动地建构内部心理表征的过程,加州 大学的维特罗克(M. C. Wittrock, 1983)提出的学生 学习的生成过程(Generative Process)模式较好地 说明了这种建构过程。
3. 随机进入教学


随机进入教学的基本思想源于建构主义学习理论的一个 新分支一“弹性认知理论”。这种理论的宗旨是要提高 学习者的理解能力和他们的知识迁移能力。 由于事物的复杂性和问题的多面性,要做到对事物内在 性质和事物之间相互联系的全面了解和掌握,即真正达 到对所学知识的全面而深刻的意义建构是很困难的。往 往从不同的角度考虑可以得出不同的理解。为克服这方 面的弊病,在教学中就要注意对同一教学内容,要在不 同的时间、不同的情境下、为不同的教学目的、用不同 的方式加以呈现。即让学习者随意通过不同途径、不同 方式进入同样教学内容的学习,从而获得对同一事物或 同一问题的多方面的认识与理解,这就是所谓“随机进 入教学”。

程序设计思想与方法ppt课件(2024)

程序设计思想与方法ppt课件(2024)

泛型程序设计思想
允许在定义类、接口和方法 时使用类型参数;
支持多种类型参数的约束和 通配符,增加程序的灵活性 ;
提供编译时类型检查,提高 程序的安全性;
减少类型转换和代码重复, 提高程序的可读性和可维护 性。
03
程序设计方法
迭代式开发方法
01
迭代式开发方法是一种不断反 馈、逐步求精的软件开发方法 。
支持多态性,提高程序的 灵活性和可扩展性;
通过类和对象实现代码的 重用和继承;
采用消息传递机制,实现 对象之间的通信和协作。
函数式程序设计思想
将计算过程看作是数学 上的函数求值;
01
02
支持高阶函数和 lambda表达式,实现 代码的模块化;
03
04
避免使用状态和可变数 据,提高程序的可靠性 ;
强调函数的副作用最小 化,简化程序的设计和 调试。
智能调试与测试
利用人工智能技术自动检测和修复程 序中的错误和缺陷,提高程序的稳定 性和可靠性。
THANKS FOR WATCHING
感谢您的观看
02
它将软件开发过程划分为一系 列短小的、固定长度的迭代周 期,每个周期都包括需求分析 、设计、编码和测试等阶段。
03
通过不断迭代,逐步完善软件 功能,最终得到满足用户需求 的软件产品。
敏捷开发方法
01
敏捷开发方法是一种以用户需求为导向、快速响应 变化的软件开发方法。
02
它强调团队合作、持续集成和交付,以及不断反馈 和调整的开发过程。
程序设计的发展历程
早期程序设计
01
以机器语言和汇编语言为主,程序直接与硬件相关,可移植性
差。
结构化程序设计

《软件设计模式》课件

《软件设计模式》课件

优点: 降低耦合度、提高可维护性和可扩展性、支持多种数据库访问技术。
应用场景: 适用于需要管理对象生命周期的系统,如数据库访问、对象池管理等。
事件处理与通知
设计模式的总结与展望
提高软件设计质量
设计模式是经过实践验证的最佳实践,可以提高软件设计的质量和稳定性。
要点一
要点二
减少代码冗余
设计模式有助于减少重复的代码,提高代码复用性,降低维护成本。
适用场景
当需要创建多个相似或相关的对象时,或者当对象的创建与使用耦合度较高时。
实现方式
定义一个抽象工厂接口和多个具体工厂实现类,每个具体工厂实现类负责创建特定类型的对象。
总结词:定义对象之间的依赖关系,当一个对象改变状态时,其相关依赖对象都会收到通知并自动更新。
设计模式的最佳实践
单一职责原则
提高开发效率:使用设计模式可以加速软件设计和开发过程,提高开发效率。
学习曲线陡峭
设计模式需要深入理解,学习曲线较陡峭,需要投入大量时间和精力。
不适用于小型项目
对于小型项目,过度使用设计模式可能导致过度设计和代码复杂化。
难以适应需求变化
设计模式往往针对特定问题设计,难以适应不断变化的需求。
微服务架构的兴起
总结词
单例模式是一种创建型模式,它提供了一种创建对象的最佳方式。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在单例模式中,一个类只有一个实例,并提供一个全局访问点。这种设计模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
详细描述
当需要频繁创建和销毁同一对象时,或者当一个类只能有一个实例时。
随着微服务架构的兴起,设计模式在服务间通信、服务治理等方面将发挥更大作用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
总体设计的必要性
可以站在全局高度上,花较少成本,从较抽象的层次上分析 对比多种可能的系统实现方案和软件结构,从中选出最佳方 案和最合理的软件结构,从而用较低成本开发出较高质量的 软件系统。
6
总体设计过程由两个主要阶段(包括9个步骤)组成:
(1)系统设计阶段,确定系统的具体实现方案; (2)结构设计阶段,确定软件结构。
14
7. 制定测试计划
在软件开发的早期阶段考虑测试问题,能促使软 件设计人员在设计时注意提高软件的可测试性。本书 供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构
6. 设计数据库 7. 制定测试计划
8. 书写文档
9. 审查和复审
8
1. 设想供选择的方案
在总体设计阶段分析员应该考虑各种可能的实现方案, 并且力求从中选出最佳方案。在总体设计阶段开始时只有 系统的逻辑模型,分析员有充分的自由分析比较不同的物 理实现方案,一旦选出了最佳的方案,将能大大提高系统 的性能/价格比。
如果数据流图已经细化到适当的层次,则可以 直接从数据流图映射出软件结构,这就是第5.5节中 将要讲述的面向数据流的设计方法。
13
6. 设计数据库
对于需要使用数据库的那些应用系统,软件工程师应该 在需求分析阶段所确定的系统数据需求的基础上,进一步设 计数据库。
在数据库课中已经详细讲述了设计数据库的方法,本书 不再赘述。
11
4. 功能分解
为了最终实现目标系统,必须设计出组成这个系统的所有 程序和文件(或数据库)。对程序(特别是复杂的大型程序)的设计, 通常分为两个阶段完成:首先进行结构设计,然后进行过程设 计。结构设计确定程序由哪些模块组成,以及这些模块之间的 关系;过程设计确定每个模块的处理过程。结构设计是总体设 计阶段的任务,过程设计是详细设计阶段的任务。
10
3. 推荐最佳方案
分析员应该综合分析对比各种合理方案的利弊,推荐一 个最佳的方案,并且为推荐的方案制定详细的实现计划。制 定详细实现计划的关键技术是本书第13章中将要介绍的工程 网络。
用户和有关的技术专家应该认真审查分析员所推荐的最 佳系统,如果该系统确实符合用户的需要,并且是在现有条 件下完全能够实现的,则应该提请使用部门负责人进一步审 批。在使用部门的负责人也接受了分析员所推荐的方案之后, 将进入总体设计过程的下一个重要阶段——结构设计。
需求分析阶段得出的数据流图是总体设计的极好的出 发点。设想供选择的方案的一种常用的方法是,设想把数 据流图中的处理分组的各种可能的方法,抛弃在技术上行 不通的分组方法(例如,组内不同处理的执行时间不相容), 余下的分组方法代表可能的实现策略,并且可以启示供选 择的物理系统。
9
2. 选取合理的方案
应该从前一步得到的一系列供选择的方案中选取若干 个合理的方案,通常至少选取低成本、中等成本和高成本 的三种方案。在判断哪些方案合理时应该考虑在问题定义 和可行性研究阶段确定的工程规模和目标,有时可能还需 要进一步征求用户的意见。 对每个合理的方案分析员都应该准备下列4份资料: (1) 系统流程图; (2) 组成系统的物理元素清单; (3) 成本/效益分析; (4) 实现这个系统的进度计划。
第5章 总体设计
5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 描绘软件结构的图形工具 5.5 面向数据流的设计方法 5.6 小结 习题
1
软件设计
需求分析:软件系统必须“做什么” ; 软件设计:“如何做”才可以满足需求规格说明中 规定的各项需求。 从工程管理的角度来看,软件设计通常分为两步, 即概要设计和详细设计。
2
软件设计( 续)
概要设计的基本目的是回答“概括地说,软件系统应 如何实现”这一问题。因此,概要设计有时称为初步 设计或总体设计。 这个阶段的工作将划分出组成系统的物理元素——程 序、文件、数据库、人工过程和文档等,每个物理元 素仍处在黑盒子级,具体内容将在以后仔细设计。 概要设计的关键是确定软件的总体结构,即确定软件 系统的组成成份(子系统或模块)以及各组成成份之 间的相互关系。
3
软件设计( 续)
详细设计是对概要设计结果的进一步细化,其主要任 务是确定软件系统各组成成份内部的数据结构和算法 过程 方法:结构化方法、面向对象方法
4
总体设计过程
首先寻找实现目标系统的各种不同的方案(需求分析阶段 得到的数据流图是设想各种可能方案的基础)。 然后分析员从这些供选择的方案中选取若干个合理的方案, 为每个合理的方案都准备一份系统流程图,列出组成系统的 所有物理元素,进行成本效益/分析,并且制定实现出一个最 佳方案的进度计划。 系统分析员推荐最佳方案,用户接受后,为这个最佳方案 设计软件结构。进行必要的数据库设计,确定测试要求并制 定测试计划。
12
5. 设计软件结构
通常程序中的一个模块完成一个适当的子功能。 应该把模块组织成良好的层次系统,顶层模块调用 它的下层模块以实现程序的完整功能,每个下层模 块再调用更下层的模块,从而完成程序的一个子功 能,最下层的模块完成最具体的功能。软件结构(即 由模块组成的层次系统)可以用层次图或结构图来描 绘,第5.4节将介绍这些图形工具。
设计原理:模块化、抽象、信息隐藏和局部化、模块独立 模块的独立程度度量:内聚和耦合,在软件设计中应该追
求尽可能松耦合、高内聚的系统。
启发规则:7条规则 描绘软件结构的图形工具:层次图、HIPO图、结构图 面向数据流的设计方法:变换流分析、事务流分析
7
5.1 设计过程
总体设计过程通常由两个主要阶段组成: (1)系统设计阶段,确定系统的具体实现方案; (2)结构设计阶段,确定软件结构。 典型的总体设计过程包括下述9个步骤:
为确定软件结构,首先需要从实现角度把复杂的功能进一 步分解。分析员结合算法描述仔细分析数据流图中的每个处理, 如果一个处理的功能过分复杂,必须把它的功能适当地分解成 一系列比较简单的功能。一般说来,经过分解之后应该使每个 功能对大多数程序员而言都是明显易懂的。功能分解导致数据 流图的进一步细化,同时还应该用IPO图或其他适当的工具简 要描述细化后每个处理的算法。
相关文档
最新文档