软件系统设计概述概要共60页

合集下载

软件工程之系统设计概述

软件工程之系统设计概述

软件工程之系统设计概述第五章系统设计系统设计是把需求转化为软件系统的最重要的环节。

系统设计的优劣在根本上决定了软件系统的质量。

就象”一切帝国主义都是纸老虎”那样能够断定”差的系统设计必定产生差的软件系统。

”因此我们要努力保证系统设计”根正苗红”,把一切左倾、右倾的设计思潮消灭在萌芽状态。

Windows NT的一位系统设计师拥有8辆法拉利跑车,让Microsoft公司的一些程序员十分眼红。

但你只能羡慕而不能愤恨,因为并不是每个程序员都有本事成为复杂软件系统的设计师。

系统设计要比纯粹的编程困难得多。

即便你清楚客户的需求,却未必知道应该设计什么样的软件系统——既能挣最多的钱又能让客户满意。

”天下西湖三十六,最美是杭州”,千年前苏东坡大学士对西湖精采绝伦的系统设计,使杭州荣升为”天堂”,让后人只剩下赞叹和破坏的份了。

本章讲述系统设计的四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。

如果将软件系统比喻为人体,那么:(1)体系结构就如同人的骨架。

如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。

(2)模块就如同人的器官,具有特定的功能。

人体中最出众的模块设计之一是手,手只有几种动作,却能做无限多的事情。

人体中最糟糕的模块设计之一是嘴巴,嘴巴将最有价值但毫无相干的几种功能如吃饭、说话、亲吻混为一体,使之无法并行处理,真乃人类之不幸。

(3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。

数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。

人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出”啊””呜”的声音,等于丧失了说话的功能(因此聋子天生就是哑巴),可人们却又能用手势代替说话。

人体的数据结构与算法设计真是十分神奇而且十分可笑。

(4)用户界面就如同人的外表,最容易让人一见钟情或一见恶心。

象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。

软件工程之系统设计概述

软件工程之系统设计概述

软件工程之系统设计概述1. 引言系统设计是软件工程的重要阶段之一,它是在需求分析的基础上,对软件系统进行总体架构设计和详细设计的过程。

系统设计的目标是定义系统的功能、性能、安全性、可靠性、可维护性等方面的要求,确定系统的组成部分和模块间的接口,为软件的实现和测试提供指导。

2. 系统设计流程系统设计通常包括以下几个阶段:2.1 需求分析和需求规格说明书在系统设计开始之前,需要进行详细的需求分析工作。

需求分析的目标是理解用户的需求,并将其转化为可操作的需求规格说明书。

需求规格说明书包括功能需求、性能需求、界面需求等方面的要求。

2.2 总体架构设计总体架构设计是系统设计的第一步,它确定系统的整体结构和模块间的关系。

在总体架构设计阶段,需要定义系统的各个子系统和模块,并确定它们之间的接口和通信方式。

2.3 详细设计详细设计是系统设计的核心部分,它针对总体架构设计给出的模块和接口进行详细的设计。

在详细设计阶段,需要定义每个模块的功能、数据结构、算法、接口等细节,以及模块间的通信和数据流程。

2.4 用户界面设计用户界面设计是系统设计的重要组成部分,它关注用户与系统之间的交互方式。

在用户界面设计阶段,需要考虑用户的使用习惯和心理需求,设计出符合用户期望的界面布局、操作流程和交互方式。

2.5 数据库设计如果系统需要使用数据库来存储和管理数据,那么在系统设计阶段还需要进行数据库设计。

数据库设计包括确定数据模型、数据表结构、数据关系等方面的内容。

3. 系统设计原则和方法在进行系统设计时,需要遵循一些原则和方法,以确保设计的质量和可行性。

3.1 模块化设计模块化设计是将系统划分为相互独立、具有明确功能的模块的过程。

模块化设计可以降低系统的复杂性,提高系统的可维护性和扩展性。

在模块化设计中,需要考虑模块的耦合度和内聚度,使得模块之间的耦合度尽量低,模块内部的内聚度尽量高。

3.2 面向对象设计面向对象设计是一种以对象为中心的设计方法。

系统设计-第4章软件概要设计

系统设计-第4章软件概要设计
27
标记耦合举例
住户情况
计算水电费 水费
电费
住户情况
计算水费
计算电费
“住户情况”是一个数据结构,图中模块都与此数 据结构有关. “计算水费”和“计算电费”本无关,由于引用了 此数据结构产生依赖关系,它们之间也是标记偶合.
28
将标记耦合修改为数据 耦合举例
计算水电费
本月 用水量
水费 电费
本月 用电量
内聚是模块功能强度的度量,它标志一个模块内 部各个元素彼此结合的紧密程度。
46
2.耦合性(coupling) 耦合性是软件结构内不同模块之间相互关联程
度的度量。耦合的强弱取决于模块之间接口的复 杂程度、模块的调用方式以及通过接口的数据。
47
试判断下列叙述是哪一种内聚?
1)一组语句在程序中多处出现,为了节
50
4.3 软件模块化的优化原则
1.改进软件的结构,提高模块独立性 2.模块大小应该适中 3.软件的层次结构要合理 4.模块的作用领域应该在控制领域之内 5.力争降低模块接口的复杂程度 6.设计单入单出的模块 7.模块的内部功能应该可以预测
返回51 节目录
设计出软件的初步结构以后,应该审查分 析这个结构,通过对模块的分解或合并,力求 降低耦合提高内聚。
一组模块引用同一个公用数据区(也 称全局数据区、公共数据环境)。 公共数据区指:
全局数据结构 共享通讯区 内存公共覆盖区等
35
公共耦合举例

B
C
公共数据区 模块A、B、C间存在错综复杂的联系
36
公共耦合存在的问题
(1)软件可理解性降低 (2)诊断错误困难 (3)软件可维护性差, (4)软件可靠性差 (公共数据区及全程变量无保护措施) 慎用公共数据区和全程变量!!!

软件概要设计

软件概要设计

目 录 Table of Contents1 总体设计 ........................................................1.1 系统描述 .....................................................1.1.1需求规格概述 ...............................................1.1.2运行环境规定 ...............................................1.2 总体设计说明 .................................................1.2.1设计思想 ..................................................1.3 系统结构 .....................................................错误!未定义书签。

1.3.1系统结构 ...........................................2 接口设计 ........................................................2.1 外部接口 .....................................................2.1.1用户接口 ..................................................2.1.2内部接口 ..................................................2.1.3硬件接口 ..................................................3 属性设计 ........................................................3.1 可靠性 ........................................................3.2 安全性 ........................................................3.3 可移植性 .....................................................3.4 可测试性 .....................................................4 系统数据结构 ....................................................4.1 逻辑结构设计要点 ..............................................4.2 数据结构与模块的关系 ........................................5 运行设计 ........................................................6 系统出错处理 ....................................................7 系统调试与测试方法 ..............................................7.1 调试方法 .....................................................7.2 测试方法 .....................................................1 总体设计1.1 系统描述1.1.1 需求规格概述课程交流学习平台包括多种系统。

软件系统开发概要设计-详细案例

软件系统开发概要设计-详细案例

软件系统开发概要设计-详细案例【XXXXX应用项目】概要设计说明书报告人:报告时间:目录1.引言 (3)1.1 编写目的 (3)1.2 背影 (3)1.3 定义 (4)1.4 参考资料 (4)2.总体设计 (4)2.1 需求规定 (4)2.2 运行环境 (5)2.3 基本设计概念和处理过程 (5)2.4 结构 (16)2.5 模块图 (16)3.接口设计 (17)3.1用户接口 (17)3.2 外部接口 (18)3.3 内部接口 (18)4.运行设计 (18)4.1运行模块组合 (18)4.2运行控制 (18)4.3运行时间 (18)5.系统数据结构设计 (18)5.1逻辑结构设计要点 (18)5.2物理结构设计要点 (19)5.3 数据结构与程序的关系 (19)旅客信息表 (19)团体信息表 (19)房间信息表 (20)菜单信息表 (20)餐桌信息表 (21)6. 系统出错处理设计 (21)6.1 出错信息 (21)6.2 补救措施 (21)6.3 系统维护设计 (21)1.引言1.1 编写目的编写本说明书的目的是说明对程序系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、功能分配、模块化粉、接口设计、运行设计、数据结构设计和出错设计等,为程序的详细设计打下基础。

预期读者为:软件开发的人员,项目评审人员,及软件测试人员。

1.2 背影说明:①待开发的软件系统的名称:酒店管理系统;②本项目的任务提出者:酒店管理人员;③本项目的任务开发者:酒店管理系统软件开发小组;④用户及实现该软件的计算中心:酒店计算机;1.3 定义顾客就餐管理:对就餐的顾客进行管理,并存储顾客消费记录。

顾客住宿管理:对就餐的住宿进行管理,并存储顾客住宿记录。

顾客信息:存放顾客的姓名,证件类型,证件号,性别,年龄,籍贯,工作单位等各项基本信息,还有就餐住宿信息,管理员负责管理顾客基本信息。

房间信息:包括房间编号,房间等级,房间价格,房间类型等信息菜肴信息:包括菜肴编号,菜肴名称,菜肴价格,菜肴类型等信息1.4 参考资料①《现代软件工程》北京希望电子出版社孙涌等编著②概要设计说明书(GB8567——88).doc2.总体设计2.1 需求规定⑴顾客就餐管理①顾客就餐管理由合法用户进行操作,首先用户应先登录该系统,经系统检查合法并具有相应权限后方能使用;②输入顾客姓名,(证件号)等。

软件设计概述

软件设计概述

模块的独立性

模块(Module)
“模块”,又称“组件”。它一般 具有如下三个基本属性: 功能:描述该模块实现什么功能 逻辑:描述模块内部怎么做 状态:该模块使用时的环境和条 件



在描述一个模块时,还必须按模块 的外部特性与内部特性分别描述 模块的外部特性 模块的模块名、参数表、其中的 输入参数和输出参数,以及给程序 以至整个系统造成的影响 模块的内部特性 完成其功能的程序代码和仅供该 模块内部使用的数据
详细设计

在详细设计过程中,需要完成的 工作是: 1.确定软件各个组成部分内的 算法以及各部分的内部数据组织 2.选定某种过程的表达形式来 描述各种算法。 3.进行详细设计的评审
模块化设计
分解: 最小成本区 信息隐藏, 模块独立性:
内聚, 耦合(数据耦合与特征耦合)
C(P1+P2) >C(P1)+C(P2) E(P1+P2) >E(P1)+E(P2) P1,P2 问题 C 问题复杂度 E 工作量
设计表达工具
目的:是为了把设计师的思想告诉其它有关人员 。可读性,便于维护,方便他人阅读。概要设 计表达工具:用于表达软件结构;详细设计表 达工具:用于表达软件过程。
1. 图形表达工具:如流程图,N-S图,PAD图, HIPO图,SC图等; 2. 文字表达工具:如伪代码,PDL等;
3. 表格表达工具:如判定表等。
设 计 的 后 处 理






为每一个模块写一份处理说明 为每一个模块提供一份接口说明 确定全局数据结构和局部数据结构 指出所有的设计约束和限制 进行概要设计的评审 进行设计的优化(如果需要和可能 的话)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档