- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件总体设计
软件总体设计软件工程 -- 总体设计
目录
总体设计阶段两个阶段三层结构雪球理论总体设计阶段的工作步骤结构设计模块划分应该遵守原理耦合内聚软件结构设计的启发式规则设计优化
总体设计阶段两个阶段
1.系统设计阶段:确定系统的具体实现方案
划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等.
设计系统的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系
2.结构设计阶段:确定软件结构
三层结构
表达层: 控制怎样把数据通过用户界面显示给用户,同时接受用户的交互输入
业务层: 把跟这个应用相关的业务流程和业务规则集中在一起形成一个独立部分
数据层: 负责与数据库打交道,把数据库中的表,记录等细节隐藏起来,使业务层见到的是普通的函数或者数值对象
关系:表达层(表达逻辑)----业务层(业务逻辑)----数据层(数据存储)---数据库
雪球理论
从坚实的内核做起: 雪球起点不是一堆散雪而是捏了又捏的很紧密的雪核
从小到大慢慢来: 一点一点由小变大,而不是通过一次性组装变大
边滚边看边调整: 不能朝一个方向一直滚下去,往往是看着哪个缺了,重新换个方向继续滚
任何时候都接近圆: 任何时候滚出来的都是圆(及早集成,这样在开发中遇到的困难就越小)
总体设计阶段的工作步骤(七步)
提供多种可能实现的方案.
选取合理的方案.
推荐最佳的方案
对程序的结构设计:确定程序由那些模块组成,模块需要完成那些适当的子功能,以及模块之间的关系(至于过程设计属于详细设计阶段的任务.过程设计:确定每个模块的处理过程?)
设计数据库
制定测试计划
书写文档:计入总体设计的结果(文档总类:?1.系统说明 2.用户手册 3.测试计划 4.详细的实现计划 5.数据库设计结果)
结构设计
要求:
结构设计简单明确
体系结构:
在保证色戒能够完成系统目标的前提下,减少不必要的中间层次和模块,能够直接通话的尽量直接通话,除非非常有必要.别人的东西不要在重复一遍,吧系统的规模保持在最小的程度.同时注意除去多余的联系和耦合
类结构:
类结构的设计的继承关系应该经过仔细推敲,真正反映普遍和特殊的关系,同时在数量上是精简的,在继承结构上是扁平化的
数据结构:
数据结构做到精简成员变量意义明确,提高算法效率高减少功能作用类似的局部变量
概念的一致性:
在整个设计中使用统一,连贯的系统分析法,角度,和一致性的平衡尺度,直到在每个部分使用同样的类比和词汇
模块划分
--模块划分首先要有合理性,有助于对模块的认识和理解
1)种类:
基于逻辑关系(例:分层结构的层次间的依赖关系)
基于功能
2)判断划分的好坏:
看模块之间的耦合程度和方式,越少越好,越简单越好.有适当的依赖是件好事,证明模块之间有共享和复用,但不可取的是你中有我,我中有你,以致模块如一堆乱麻彼此分不开来.做到能不耦合在一起就尽量分开来,能不相互依赖就不要相互依赖
应该遵守原理
1.模块化:
把程序划分为若干个独立的访问且完成一个子功能的模块,且把这些模块集合起来变可以满足用户所需求的功能.
2.模块化好处:
使软件结构清晰,不仅容易设计也容易阅读和理解.
容易测试和调试,提高软件的可靠性.
提高软件的可修改性.
有助于软件开发工程的组织管理.
3.抽象:
把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象.或者说抽象就是考虑事物间被关注的特性而不考虑它们其他的细节.
4.逐步求精:
为了能集中精力解决主要问题而尽量推迟对问题细节的考虑.因为每次面临的因素太多,是不可能做出精确思维的.处理复杂系统的唯一有效的方法是用层次的方法构造和分析它,把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然必要的,然而目前还不需要的细节.每一步对软件解法的抽象层次的一次精化.
5.信息隐藏和局部化:
应该这样设计模块,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的.把一些关系密切的软件元素物理地放得彼此靠近.优点---如果在测试期间和以后的软件维护期间需要修改软件不会把影响扩散到别的模块.
6.为何软件设计中应该追求尽可能松散的系统?
这样的系统中可以研究、测试和维护任何个模块,不需要对系统的其他模块有很多了解.模块间的偶合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性.
耦合
定义:
是指不同模块彼此间互相依赖的紧密程度;
耦合的分类(五类):
数据耦合: 如果两个模块通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合就是数据耦合.
控制耦合:?如果两个模块通过参数交换信息,交换的信息有控制信息,那么这种耦合就是控制耦合.
特征耦合:?如果被调用的模块需要使用作为参数传递进来的数据结构中的所有数据时,那么把这
您可能关注的文档
- 计算方法上机实验报告高斯消元法.pdf
- 计算方法太牛了,留着以后教孙子.doc
- 计算方法考场.xls
- 计算机应用基础第三次作业答案.doc
- 计算机系统设计的定量原理.docx
- 计量经济模型的应用宏观经济模型.pdf
- 让每个学生的学习都有收获.doc
- 记数符号的演变进化历史.doc
- 论PE比率之实质及决定因素.doc
- 论华南孤峰组和大隆组硅质岩成因,分布规律及其构造机制.pdf
- 2025黑龙江富裕县城市管理综合行政执法大队招聘公益性岗位人员2人笔试模拟试题含答案详解(综合题).docx
- 2025黑龙江富裕县城市管理综合行政执法大队招聘公益性岗位人员2人笔试模拟试题含答案详解(研优卷).docx
- (最新)社区网格员招录考试考试库及答案.docx
- 2025黑龙江富裕县城市管理综合行政执法大队招聘公益性岗位人员2人笔试模拟试题含答案详解(模拟题).docx
- 2025届广州市白云区重点名校十校联考最后生物试题含解析.doc
- 2025黑龙江富裕县城市管理综合行政执法大队招聘公益性岗位人员2人笔试模拟试题含答案详解(新).docx
- 2025黑龙江富裕县城市管理综合行政执法大队招聘公益性岗位人员2人笔试模拟试题含答案详解(巩固).docx
- (最新)学前儿童意外事故预防与急救考试练习题及答案.docx
- 2025黑龙江富裕县城市管理综合行政执法大队招聘公益性岗位人员2人笔试模拟试题含答案详解(完整版).docx
- (最新)政工师考试题库含答案.docx
最近下载
- 露天矿采矿与剥离作业规程.pdf VIP
- 电大国家开放大学《政府经济学》(本)2025-2026期末试题及答案2025.pdf VIP
- 第27课 定速巡航的控制 教案 义务教育人教版信息科技六年级全一册.docx VIP
- 幼儿园美术教案《沙漠里的树》植树节主题活动PPT课件.doc VIP
- Java基础知识大全单选题100道及答案.docx VIP
- 工匠精神精品课件.pptx
- 25《带上她的眼睛》课件(共45张PPT).pptx
- 上海海事大学2021-2022年《货币银行学》期末考试试卷(A卷)含参考答案.docx
- 2024年福建省中考化学真题试卷(含答案).docx VIP
- 风电场并网测试方案.docx
文档评论(0)