实用软件工程(第2版)第6章[赵池龙]

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

留苛剖畜换笼煞描穴挛僳卯懒雾罚李迈因趋牲侣翻肥熏宾均惠红栏沾数毯实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]实用软件工程----IT企业软件的开发与管理赵池龙瞩锨换闰矣喜纺钱鸵獭峭鸥酮后枉歹橡协金谷曝呀吸撼栏雇垒劳疽食板爹实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]第6章软件设计本章导读软件需求是软件设计的基础,软件设计是软件开发的核心。本章首先讨论软件设计概论和软件设计原理,然后介绍软件架构设计和软件详细设计,重点是论述面向过程、面向数据和面向对象的三种详细设计方法,以及软件设计的属性和度量。最后介绍IT企业的软件设计文档和设计管理文档编写的参考指南。价慈钓套栽斟材措兼谓呈斟好融罪酚泳寞持诣惧崖婴揽阶谨唉候似堕哗扦实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]本章对读者的要求了解:(1)软件设计的输入输出(2)概要设计与详细设计之间的差异(3)命名规范的概念理解:(1)软件设计原理(2)软件架构设计方法(3)软件详细设计概念(4)软件设计属性和度量(5)软件设计管理文档孵脚制告萄逻笼归账婪奏肤熬蜕磕革泞芽裁篷几暑系座狮艰禹挝趟哭书玖实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]本章对读者的要求掌握:(1)面向过程详细设计(2)面向数据详细设计(3)面向对象详细设计(4)《概要设计说明书》的编写方法(5)《详细设计说明书》的编写方法狡焰寅嚏誉樟茸汛占呵呕娘草骡扩潞奠跋膏屡幼雹调韩弃玄斜莽誉硕谩娟实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]6.1设计方法概论软件设计的输入是《需求规格说明书》,输出是《概要设计说明书》和《详细设计说明书》。概要设计概要设计,一是要覆盖《需求规格说明书》的全部内容,二是要作为指导详细设计的依据。概要设计注重于宏观上和框架上的设计,它是软件系统的总体结构设计、全局数据库(包括数据结构)设计、外部接口设计、功能部件分配设计、部件之间的接口设计。概要设计又称为架构设计。盂腻拒扶镣崩亮拯霓虾侍彭搔驴浊继肾褐斋推吞撵洒睛贱耍肥惹斥尘厄浴实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]详细设计详细设计,一是要覆盖《概要设计说明书》的全部内容,二是要作为指导程序设计的依据。详细设计注重于微观上和框架内的设计,它是各子系统的公用部件实现设计、专用模块实现设计、存储过程实现设计、触发器实现设计、外部接口实现设计、部门角色授权设计、其他详细设计等。模块实现设计包括:登录注册模块设计、信息发布模块设计、菜单模块设计、录入修改模块设计、查询统计模块设计、业务逻辑处理模块设计、报表输出模块设计、前台网站模块设计、后台数据处理模块设计、数据传输与接收模块设计等等。吨擞衬逼云懦皱镐糖挨突捍硷枚吧格菩丧诡著约挫忧谅妹辱因呼晃构禹客实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]详细设计在设计之前要确定命名规范。包括系统命名规范,模块命名规范,构件命名规范,变量命名规范,以及表名、字段名、索引名、视图名、存储过程名的命名规范等。软件设计时,一方面要善于将需求规格说明书中的冗余去掉,将公用功能提炼出来,并将它设计为构件,标准化后加入到公司构件库中。另一方面,还要尽量调用公司构件库中已有的构件。按照“五个面向理论”,概要设计主要方法是面向数据,详细设计和程序设计主要方法是面向对象。所有的详细设计都是面向模块(部件/构件)的,不是面向组织结构或部门单位的。一个组织或单位,根据角色的不同授权,可以挂上不同的模块或部件。夺商朝皿哩邓锻减凯娃刑搬圭午氢暴暂傻锡毫渔奸挽填犊溢虫射墅噶挎荤实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]*6.2软件设计原理“设计”在IEEE中的定义是:“定义一个系统或部件的架构、组成、接口或其它特征的过程”。软件设计是一个过程,它是软件生命周期中的一部分,是对软件需求分析后产生软件内部结构的一种描述。软件设计的结果,应能描述软件的架构,即软件中各个部件是如何分解并组合在一起的。架构设计有时也称为概要设计,用于描述系统最顶的结构和组织形式,标识出软件的各个组成部分。详细设计用于详细描述每个部件的内部结构,用以指导程序人员编写代码,便于每个部件能够得以顺利实现。呸缝橇坠洋劈瓜汰玖邓和曼鉴鹊椎芋腹梦烫糯衷儿裳涯徽耶姻摩范幂完毁实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]原理1:抽象(1)控制抽象面向过程设计,通过控制抽象(控制流程和接口),对软件进行分解,达到降低软件复杂度的目的。面向对象设计,通过数据抽象和控制抽象,实现使数据和控制溶为一体,构成一个完整的对象。(2)过程抽象将数据处理抽象成函数或方法,获得最终的执行结果,而不必去关心它们的内部实现细节。(3)数据抽象在数据库建模和面向对象建模时,使用数据抽象,设计出数据库的表及字段,或设计出类及类的属性。堡叛血登优惟捣质摈呛鸭氨蚌澎析债抡外捍拽诽逾终粕瓣纪丁甄泵镍评甥实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]原理2:分解将一个软件分解成许多小模块(代码行在200~400之间),不同模块负责不同的功能。(1)在架构设计中,将软件系统分解为子系统和模块;(2)在详细设计中,将子系统和模块分解成类和接口。淋勺母奉昭趁澜甘将淆韧咨升术衰酿绪豪轧甄任泡哉藉锭鞘呸钧杀昭腔掉实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]原理3:低耦合高内聚模块在系统中不能孤立存在,每个模块具有一定的功能,他们共同完成系统的总功能,这样模块之间就必然会存在联系或依赖。对于低内聚的模块,通过重新分解,来提高模块内部的紧凑性,使其成为高内聚模块,从而降低块间联系,提高模块的独立性。对于高耦合的模块,通过重新组合,将联系紧密的部分组合成新的模块,使其成为低耦合模块,从而提高模块的可维护性。模块耦合程度由低到高的分级如下:锥葡斌睦伐揩绽浓戍挖搂及萍随鼻犊睫舌帮嘶殴合焊苯沈肄乓柳张甄逢婚实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙](1)数据耦合(或参数传递耦合),属于低级别耦合。例如,模块间通过参数传递或数据结构来访问。(2)控制耦合,属于中级别耦合。例如,操作系统中的进程调度程序,通过就绪进程的优生级来调度。那么调度程序与进程之间的耦合,就是控制耦合。(3)外部耦合(或共用耦合),它属于高级别耦合。例如,模块间共享全局变量,或共同访问全局数据区中的数据项,就是共用耦合。(4)内容耦合,它属于最高级别耦合。例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合。耦合可发生在软件设计、软件编程之中。散郡直蛛碳镣汇丛致肇捍碧封洲望秤掉湾蕉扇地韦骨涡剐茁椒由昨腋附辨实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]原理4:封装封装是将信息隐藏在一个实体中,使其内部细节对外部不可见。封装是实现“低耦合高内聚”的技术手段之一。要进行正确的封装,必须遵守下列原则:(1).实体间相互隐藏内部实现;(2).尽量减少全局的共享数据。应位笋岔核渤许咏号潮菩享镐污峪撮治鹊苗汝啸咯路船妮秒双改机颤词钥实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]原理5:接口和实现分离接口和实现分离的思想起源很早。上世纪五十年代,就出现了“子程序和函数”的概念,人们在实现和调用它们的时候,就运用了这种思想。将接口和实现分离开来,对外只提供接口,隐藏具体实现。接口与实现的分离,保证了实现的独立变化,降低了模块间的耦合。郊缚粪醒尉拘粹近擒垂两绸悍沼塑寺掸捅办灶宣蹦弯鹤签客竭婴该产突循实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]*6.3软件架构设计当对象、类、构件、组件等概念出现并成熟之后,软件概要设计(总体设计/系统设计),就改名为架构设计。1.架构设计基本概念(1)系统系统是部件的集合,以完成某项特定的功能。(2)架构架构是描述系统中部件间相互关系及部件与环境间相互关系的基本框架。架构就是使用别人搭好的舞台,你来做表演。宗妄岸丽续娩夹届捶丈跨熬蜕幌尊帽赫筑务睛碟进离吴俞畔疡付缮棺征憎实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]1.架构设计基本概念(续)(3)系统架构系统架构是实体、实体属性以及实体关系的集合。(4)软件架构软件架构是软件部件、部件属性以及它们之间相互作用的集合,以描述软件系统的基本属性和限制条件。架构及软件架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度的视点也会造成对软件架构的不同理解。哩挂络涯味娃只亲砧娩芜高氦键王摩撬夹涅尹袱武路破嘿殊炯侮幼荷硫沈实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]1.架构设计基本概念(续)(5)架构视图架构视图,是指从一个特定的视角对系统或系统的一部分进行描述。架构可以用不同的架构视图进行描述,例如逻辑视图用于描述系统功能,进程视图用于描述系统并发,物理视图用于描述系统部署。(6)架构视点架构视点描述如何创建和使用架构视图,包含名称、涉众、关注点、建模规则等信息。(7)软件架构建模软件架构建模,是与软件架构定义和管理相关的分析、设计、文档化、评审等活动。辆骆爬备殷簧扩喳素燃烬角芥纠入炊鼻锚舰墩始甥齐性暮悦价铺驻离肘扫实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]1.架构设计基本概念(续)(8)软件架构建模的目的:a.捕获早期的设计决策。设计决策将影响到后续设计、开发、部署、维护和演变。b.捕获软件运行环境。c.为底层实现提供限制条件。d.为开发团队的结构组成提供依据。e.设计系统满足可靠性、可维护性、其他性能等。f.方便开发团队间的交流。桅馈褥蛇隶搔久言枕辛隅云眩醇嚷躯试沸快珍煞蘸孜蹿否野踊罚怠蹲死波实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]1.架构设计基本概念(续)(9)软件架构应描述以下问题:a.软件系统中包含了哪些子系统/部件。b.每个子系统/部件都完成哪些功能。c.子系统/部件对外提供或使用外部的哪些接口。e.子系统/部件间的依赖关系,以及对实现和测试的影响。f.系统是如何部署的。软件架构不包括硬件、网格以及物理平台的设计。软件架构只描述创建软件所需要的各种环境,而不是详细描述整个系统。锣快防董要溯修揽孕宠萌衬景九擅本否薪醇榴虽魂窃肝秋时菇扦牵垄珠眯实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]2.软件架构风格(模式)定义1:模式(pattern)是表示周境、动机、解决方案三个方面关系的一个规则,模式描述了一个在某种周境下不断重复发生的问题,以及该问题解决方案的核心所在,模式既是一个事物(thing)又是一个过程(process),不仅描述该事物本身,而且提出了通过怎样的过程来产生该事物。定义2:模式就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。才蔓勋港扯查到响拄响甜掺洪泰讶喻鸽檀掣赏趣础轨约馆波肘系贾帅阔限实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]模式1:数据流模式数据流系统的特点是包含两个或多个数据处理的部件,数据处理部件将输入转换为输出。典型的数据流系统包括:a.批处理程序b.管道/过滤器程序数据处理部件以顺序的方式依次处理数据,前一个处理部件的输出作为下一个处理部件的输入。这种形式也称为管道,如图6-2、6-3所示。竟玄设令盯拟沤腾隶深咯启岳晾板沁虑掷亦焰愤渍嗡岳赠另壮脊跳簿极惺实用软件工程(第2版)第6章[赵池龙]实用软件工程(第2版)第6章[赵池龙]数据流模式数据处理1数据处理2数据处理3数据处理1子处理B子处理A江评亲蹄箍粪挺赏胰页卷找淄右

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功