- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章、软件设计
第4章、软件设计
软件设计概述(教材4-1)
软件设计的基本概念(教材4-1-1)
依据——软件需求规格说明
方法——结构化方法、面向对象方法
任务——本章所讲述的内容。
成果——软件设计文档
用途——作为程序员编写程序的依据
软件设计的内容与任务(教材4-1-4)
2个阶段:概要设计/详细设计
5(或者6)项内容:见下表
阶段 内容 任务 概要设计 架构设计 确定软件的基本架构 数据设计 设计系统的总体数据结构 模块设计 划分模块 接口设计 软件内部各模块之间的接口
所开发软件与外部系统的接口 详细设计 过程设计 明确每个模块内部的实现过程。 界面设计 上述内容与教材略有区别,将教材的“体系结构设计”细分为“架构设计”与“模块设计”等2项内容
软件设计过程(教材4-1-4)
完成上述各项设计,再加上“编写设计文档”与“设计评审”等2个步骤。
软件设计原则(教材4-1-2,自行阅读)
教材所列举一些普遍适用的原则,大致了解即可,关键是理解并且运用下面所讲述的基本概念。
软件设计的评价标准(补充)
实现需求
体系结构与模块划分合理
容易编程、测试与维护
设计意图能够理解
某些重要概念(教材4-1-3、4-2-6与1-1-4-1)
如下概念是软件设计应遵循的、最重要的技术原则。
抽象(教材4-1-3-2)
定义:忽略细节,提取本质
包含:数据抽象,过程抽象
对上述概念的举例
逐步求精(教材4-1-3-3)
对大的问题进行分解,直到最终解决。
模块化(教材4-1-3-1)
原理
将软件划分成若干个较小、相互独立但又相互关联的部件。
模块的基本要素
外部要素:名称、功能、接口
内部要素:数据结构、程序代码
如何理解
使用者只关心模块的外部特征,并不关心其内部如何实现。
模块化对软件开发的意义
方便软件的编程、测试、组装、修改与维护。
方便项目管理。
模块化与软件开发复杂度的关系
C(P1+P2)C(P1)+C(P2)
E(P1+P2)E(P1)+E(P2)
划分模块的原则——模块独立性
稍后讲述
小结
模块化是软件结构设计的核心。
模块设计必须遵循相关的技术原则
信息隐藏(教材4-1-3-4)
原理
共3条,见教材。
本质
隐藏模块内部的细节,开放模块的接口。
意义
有利于编程、测试与重用。
将来修改软件时,避免错误的扩散。
思考
面向对象与信息隐藏的关系
模块独立性(教材4-2-6)
作用
判断模块划分是否合理的衡量标准
内容
藕合 / 内聚
关于藕合
有7种等级,理想的标准应该是“低藕合”。
关于内聚
同样也有7种等级,理想的标准应该是“高内聚”。
小结——理想的模块划分
功能单一,彼此通过接口交换数据。
上述知识的核心用途
如何合理地划分模块
关于软件体系结构设计(教材4-2)
需要澄清的基本问题
什么是软件体系结构?(2个不同的理解角度)
软件体系结构设计到底做什么?
关于软件架构(教材4-2-3/4-2-4)
软件架构的演变趋势:
单主机结构
客户机/服务器结构(C/S结构,client/server)
浏览器/服务器结构(B/S结构,browser/server)
当前主流的软件架构
分层:客户层、应用层、[中间层]、数据层
优势:方便部署、跨平台、负荷平衡、数据安全
分布式对象体系结构
具体知识由专门的课程讲述。
软件体系结构设计的内容
确定软件的层次架构
划分模块
模块划分的方法
结构化设计方法
面向对象设计方法
具体过程见教材第7/9章,结合案例讲述。
基本知识参考4-1关于模块化的有关原理。
关于数据设计(教材4-3)
基本意图说明
只要求大致了解教材内容,具体内容由《数据库》、《面向对象分析与设计》等课程讲述。
数据设计的层次(教材4-3-1)
层次 内容 知识 模块级 模块内部的数据结构 数据结构 系统级 数据库结构 数据库 后续应用 数据仓库 数据仓库/数据挖掘
注意
结构化/面向对象等2种方法对“数据设计”的差异
对于软件开发,需要掌握哪些数据库的知识(提示)
关系模型与关系数据库的基本原理
SQL
概念设计、逻辑设计、物理设计的概念
逻辑独立性与物理独立性的概念
E-R方法与E-R图
关系范式
数据库的索引
数据库的查询优化技术
关系数据库与面向对象数据库之间的关系
存储过程与触发器
………
用户界面设计(教材4-4)
意图说明
界面设计并非软件工程所研究的主要内容,也并非软件项目成败的关键因素,但影响用户对软件的评价乃至软件的实用性。
计算机系统工程包含“人机工程”,相关知识有专门的课程讲述。
本课程不要求深入掌握此方面的内容,只要求大致了解软件界面设计的一些基本原则。
“界面设计”的任务
最高境界:给出软件每个界面的具体要求。
一般情况:约定界面风格,给出典型界
文档评论(0)