第4章、软件设计.doc_第1页
第4章、软件设计.doc_第2页
第4章、软件设计.doc_第3页
第4章、软件设计.doc_第4页
第4章、软件设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章、软件设计一、 软件设计概述(教材4-1)1 软件设计的基本概念(教材4-1-1)依据软件需求规格说明方法结构化方法、面向对象方法任务本章所讲述的内容。 成果软件设计文档用途作为程序员编写程序的依据2 软件设计的内容与任务(教材4-1-4)2个阶段:概要设计/详细设计5(或者6)项内容:见下表阶段内容任务概要设计架构设计确定软件的基本架构数据设计设计系统的总体数据结构模块设计划分模块接口设计软件内部各模块之间的接口所开发软件与外部系统的接口详细设计过程设计明确每个模块内部的实现过程。界面设计上述内容与教材略有区别,将教材的“体系结构设计”细分为“架构设计”与“模块设计”等2项内容3 软件设计过程(教材4-1-4)完成上述各项设计,再加上“编写设计文档”与“设计评审”等2个步骤。4 软件设计原则(教材4-1-2,自行阅读)教材所列举一些普遍适用的原则,大致了解即可,关键是理解并且运用下面所讲述的基本概念。5 软件设计的评价标准(补充) 实现需求 体系结构与模块划分合理 容易编程、测试与维护 设计意图能够理解二、 某些重要概念(教材4-1-3、4-2-6与1-1-4-1)如下概念是软件设计应遵循的、最重要的技术原则。1 抽象(教材4-1-3-2) 定义:忽略细节,提取本质 包含:数据抽象,过程抽象 对上述概念的举例2 逐步求精(教材4-1-3-3) 对大的问题进行分解,直到最终解决。 3 模块化(教材4-1-3-1) 原理将软件划分成若干个较小、相互独立但又相互关联的部件。 模块的基本要素外部要素:名称、功能、接口内部要素:数据结构、程序代码 如何理解使用者只关心模块的外部特征,并不关心其内部如何实现。 模块化对软件开发的意义方便软件的编程、测试、组装、修改与维护。方便项目管理。 模块化与软件开发复杂度的关系C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2) 划分模块的原则模块独立性稍后讲述 小结模块化是软件结构设计的核心。模块设计必须遵循相关的技术原则4 信息隐藏(教材4-1-3-4) 原理共3条,见教材。 本质隐藏模块内部的细节,开放模块的接口。 意义有利于编程、测试与重用。将来修改软件时,避免错误的扩散。 思考面向对象与信息隐藏的关系5 模块独立性(教材4-2-6) 作用判断模块划分是否合理的衡量标准 内容藕合 / 内聚 关于藕合有7种等级,理想的标准应该是“低藕合”。 关于内聚同样也有7种等级,理想的标准应该是“高内聚”。 小结理想的模块划分功能单一,彼此通过接口交换数据。6 上述知识的核心用途如何合理地划分模块三、 关于软件体系结构设计(教材4-2)1 需要澄清的基本问题 什么是软件体系结构?(2个不同的理解角度) 软件体系结构设计到底做什么?2 关于软件架构(教材4-2-3/4-2-4)软件架构的演变趋势: 单主机结构 客户机/服务器结构(C/S结构,client/server) 浏览器/服务器结构(B/S结构,browser/server)当前主流的软件架构分层:客户层、应用层、中间层、数据层优势:方便部署、跨平台、负荷平衡、数据安全 分布式对象体系结构具体知识由专门的课程讲述。3 软件体系结构设计的内容 确定软件的层次架构 划分模块4 模块划分的方法结构化设计方法面向对象设计方法具体过程见教材第7/9章,结合案例讲述。基本知识参考4-1关于模块化的有关原理。四、 关于数据设计(教材4-3)1 基本意图说明只要求大致了解教材内容,具体内容由数据库、面向对象分析与设计等课程讲述。2 数据设计的层次(教材4-3-1)层次内容知识模块级模块内部的数据结构数据结构系统级数据库结构数据库后续应用数据仓库数据仓库/数据挖掘3 注意结构化/面向对象等2种方法对“数据设计”的差异4 对于软件开发,需要掌握哪些数据库的知识(提示) 关系模型与关系数据库的基本原理 SQL 概念设计、逻辑设计、物理设计的概念 逻辑独立性与物理独立性的概念 E-R方法与E-R图 关系范式 数据库的索引 数据库的查询优化技术 关系数据库与面向对象数据库之间的关系 存储过程与触发器 五、 用户界面设计(教材4-4)1 意图说明 界面设计并非软件工程所研究的主要内容,也并非软件项目成败的关键因素,但影响用户对软件的评价乃至软件的实用性。 计算机系统工程包含“人机工程”,相关知识有专门的课程讲述。 本课程不要求深入掌握此方面的内容,只要求大致了解软件界面设计的一些基本原则。2 “界面设计”的任务最高境界:给出软件每个界面的具体要求。一般情况:约定界面风格,给出典型界面的“原型”。3 界面类型与设计原则(参考教材4-4-3)教材给出一些原则性要求,简单阅读即可。4 补充:界面设计的一些原则要求 不同类型的软件,对界面有不同的要求 不同层次的用户,对界面有不同的要求 某些特定的岗位,对界面有特定的要求 整个软件的界面风格应该一致 通过原型有助于理解用户对界面的要求 应达到用户能够接受的响应速度 要有操作帮助、出错提示与中途退出的机制六、 过程设计(教材4-5)1 过程设计的任务给出每个模块的算法过程。2 对程序设计课程知识的回顾在编写程序前以“流程图”等方式描述算法,就是“过程设计”3 上述2种情况有什么区别背景特点目的学习程序设计求解过程要么题目已经明确给出,要么对程序员显然易见理清编程的思路软件开发求解过程基于需求分析所获知的特定业务逻辑,必须向程序员清楚约定 向程序员明确规定算法逻辑 为维护者理解程序提供依据4 过程设计的描述工具(教材4-5-2)流程图(或者NS图、PAD等类似图形工具)伪代码判定树、判定表.5 小结过程设计并非软件项目成败的关键因素但是,没有明确的过程设计,将使程序员在编写程序时不知所措,以后疲于修改。对于不同的模块,应根据实际情况使用不同的工具(甚至组合使用)描述过程对于功能简单的模块甚至可以直接用文字描述算法意图;关键是达到上面所提出的目的。如果软件需求文档对“行为”作出规范的描述,过程设计将比较简单。七、 软件重用技术(教材4-6,以后专门讲述)八、 软件设计模式(教材4-7,不要求掌握)核心意图是“按照既定的模式进行软件设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论