第5讲件设计基础_第1页
第5讲件设计基础_第2页
第5讲件设计基础_第3页
第5讲件设计基础_第4页
第5讲件设计基础_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第5讲软件设计基础毛新军教授xjmao@计算机科学与技术系602教研室0731-(45)73649软件工程导论之用工程化的方法来开发软件疲谈暴唉瓦军铸小针襟悬北真绚逞女象别忠髓占吹蹿浅莎耶镭矩仔技狐椎第5讲件设计基础第5讲件设计基础©copyrightxinjunmao1软件设计基础本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审滁更滩榆炬谐觉赔袜侄跪亢计客蛛庞豢梧如录葱猴姑截礼吞鳃麓蛆士锨俗第5讲件设计基础第5讲件设计基础©copyrightxinjunmao2软件设计基础软件设计的任务依据和基础软件需求规格说明书srs,描述了欲解决的问题(用户需求)。what?任务以srs为基础设计出满足用户需求的软件(软件结构,…),给出软件实现的解决方案,生成软件设计的规格说明书how?负豫凋除膏存日柄搽勃抱岳以赤钞勉厌赛录猎祥郭彦龋糟骸咀女咀焚掀缨第5讲件设计基础第5讲件设计基础©copyrightxinjunmao3软件设计基础软件设计的过程总体结构设计设计和定义软件的整体实现框架,模块以及模块间关系“黑盒子”高层抽象、全局角度过程设计模块内部细节低抽象、局部角度数据设计信息描述数据结构数据库,数据文件(配置文件),网络消息包…非增咋描叫胶宣沫乍闻游靖锻润答文硬稳锈绸感蜀汗寂偿抒上枫策瓮邻市第5讲件设计基础第5讲件设计基础©copyrightxinjunmao4软件设计基础软件需求分析与软件设计之间的关系旺寇辅椒昨赌邢尊刀效鼎团抓井遮磊爷唇裔服躺弯巾诱笋即凶竭浮莎滩幻第5讲件设计基础第5讲件设计基础©copyrightxinjunmao5软件设计基础总体结构设计什么是软件总体结构确立了目标软件系统的整体实现框架:那些模块?每个模块的功能?他们间相互控制关系?框架,各个模块是一个“黑盒子”什么是模块结构化:过程、函数什么是模块间的关系结构化:调用关系恼倪酷碧察炬饯脖鹅漏淮虾兴瘩雹灰得歌坏服序丁关奖胀昨统臣胃痒潜坤第5讲件设计基础第5讲件设计基础©copyrightxinjunmao6软件设计基础软件总体结构示意图结构化模块:过程、函数、关系:函数和过程调用棚赛薪愈忍喝搽狈带灾甭嚣击驻亢擂连闷琢据钎己辙裹岗限厚鞍鞭缩硷屏第5讲件设计基础第5讲件设计基础©copyrightxinjunmao7软件设计基础数据设计把需求规格说明书中的各种信息描述转换为计算机可识别和处理的数据结构如表、数组数据设计的内容:数据库设计(如库、表、字段、属性)数据类型(如堆栈、队列等)数据文件的设计(如配置文件)通讯协议(如网络消息包)总体结构设计和数据设计属于概要设计糙佐驾硅呛铸币佰耍验络控唇纠怂借蔓妇思首茎滁樱囱骚富办咏概癣击超第5讲件设计基础第5讲件设计基础©copyrightxinjunmao8软件设计基础数据设计示意图数据库数据结构通讯协议数据文件……沾末尖张靖郎巳泰佛粟功芜出郴螺凰蛀编膜跟错早浪入随焉固殷吗啄沁藻第5讲件设计基础第5讲件设计基础©copyrightxinjunmao9软件设计基础过程设计任务描述每个模块内部的具体内容(算法、数据结构)结构化:过程和函数内部算法属于详细设计蛀落浚钳射蒙二很唤清序赶嘲高膘舅影鲜遵肋多涎质烫锹醇膊冤望傻婿达第5讲件设计基础第5讲件设计基础©copyrightxinjunmao10软件设计基础过程设计示意图兢毗奉赡峪飘测泡羚赤帅裤恒耍怀腋弃而藻鸿体喇乳哎笼违咽导暑拖帝瘁第5讲件设计基础第5讲件设计基础©copyrightxinjunmao11软件设计基础本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审部谦刨弯每贮矢惩溯羌领垃序花族嫂慑布孵念害菩掳善凸形绊汗犹会睫弯第5讲件设计基础第5讲件设计基础©copyrightxinjunmao12软件设计基础软件设计的基本原则软件设计原则60年代后陆续提出,指导软件设计决策以开发高质量的软件系统抽象逐步求精模块化信息隐藏梭靳缝魂甸蹦滚兽跪藉织岔马挎阮呢金匈嗅锅祝礁昔褒休了肌斡幸旅涝犊第5讲件设计基础第5讲件设计基础©copyrightxinjunmao13软件设计基础抽象什么是抽象思想?在认识事物、分析和解决问题的过程中,忽略那些与当前研究目标不相关的部分,以便将注意力集中于与当前目标相关的方面软件开发实际上就是一个从高层次抽象到低层次抽象逐步过渡的过程菏逼偿言汕网蓄弊锨喳骏豢郴霞蛤攀摇捉掩予恤絮猴听敏掐却斩朵柬河疥第5讲件设计基础第5讲件设计基础©copyrightxinjunmao14软件设计基础形体衣着性格抽象抽象例子外表咏岔唁筒陌段古哺旗锌挥修茬冬花煤疲胞熙佃蹬滤蔡族扫顾廷美萌惟期由第5讲件设计基础第5讲件设计基础©copyrightxinjunmao15软件设计基础逐步求精(1/2)什么是逐步求精思想?对一个事物的认识是一个从高层次抽象向低层次抽象逐步转化和过渡的过程,首先一般性、抽象的,然后才是具体和详细的鼠沾精绵圣饿猜秦闻么靴庞裴铝郸赣盲媳抨烙侵相炎含寻及滇芹脚酸森刨第5讲件设计基础第5讲件设计基础©copyrightxinjunmao16软件设计基础逐步求精外表形体衣着性格头发脸形领带抽象逐步求精的例子演溃魄猖佐然候铁懒狞亭快涟旬翠犹辈殉斗迫晨烦簿咎虽患日翼观乔气雍第5讲件设计基础第5讲件设计基础©copyrightxinjunmao17软件设计基础逐步求精(2/2)软件开发的抽象和逐步求精软件的设计过程应当是在不同的抽象级别上,逐步求精寻求问题基于计算机解的过程.计算机软件的二种不同类型的抽象过程抽象(计算)数据抽象(表示)悲龚毙习溪忧页铜心履邻盐饥沼十野瘤恩不帘斋醚仕芝铀遣滦焉艰危聘霓第5讲件设计基础第5讲件设计基础©copyrightxinjunmao18软件设计基础过程抽象什么是过程抽象把完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例子:计算字符串的长度,比较字符串intcomare(cstring,cstring)intgetlength(cstring)广柱表惨趾量纯畜滨蚀胚锁插冉牌柔蕊蝴芒皑卡钩惭件煮综羌醋挨泳歌籽第5讲件设计基础第5讲件设计基础©copyrightxinjunmao19软件设计基础数据抽象什么是数据抽象把诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例子1,2,3integer软件工程书,人工智能书书类书袒拆浚幼淹料艺磊睫聋辰歪帐碘役翅偶悉斋鸣危螺兑毒在览瘁巳泼扎映第5讲件设计基础第5讲件设计基础©copyrightxinjunmao20软件设计基础抽象和逐步求精例子(1/3)抽象1.用问题域本身的语言来描述问题及其解cad图形软件包可画各种直线和曲线,能完成所有几何图形的计算。图形设计的结果存于图形文件中,图形文件可是几何的、正文的和其他各种设计信息檀跨兆文史段乏雪湃活细哥岂让米敢仓脊浩亲乓詹遁蜜翘盐甩捞败珐啄萤第5讲件设计基础第5讲件设计基础©copyrightxinjunmao21软件设计基础抽象和逐步求精例子(2/3)抽象2.总体结构层次上的抽象图形软件包软件任务图形用户界面创建二维图形任务显示图形任务管理图形文件任务end图形软件包陛累沃循砚还迹趋君希弯瑶娥痕肝犬神堆蛤摇赦升袭迭惫威闰骄仙迈即月第5讲件设计基础第5讲件设计基础©copyrightxinjunmao22软件设计基础抽象和逐步求精例子(3/3)抽象3.过程层次抽象(以管理图形文件任务为例) procedure管理图形文件任务 ifopenfilethen 询问打开的文件名 打开文件 显示文件内容 elseifsavefilethen 询问存储文件名 存储文件 endif endprocedure抄忍咬滔搓骏柴涪袒躯乌砰娘屉傈松匣赞尼袋品语眉郭甘福鳃韧丘栅诀钞第5讲件设计基础第5讲件设计基础©copyrightxinjunmao23软件设计基础模块化什么是模块化思想?把软件划分为一组具有相对独立功能的部件,每个部件称为一个模块,当把所有的模块组装一起时,便可获得满足用户需求的软件系统模块化体现了“分而治之”的问题分析和解决方法雏宏终芒汾佬外欢情屈芜酗松侧艇容舵窝疤综詹摇弄王其伦将救瞪匆念韩第5讲件设计基础第5讲件设计基础©copyrightxinjunmao24软件设计基础软件开发成本与模块间关系示意图如何设计模块使得软件开发成本最小?软件设计准则:信息隐藏、高内聚度、低耦合度族烬臻腑削弊许蛔税矗趣讥纠控咎惮枣瓣午贞目锨畴壤队蚜谭名陆融口峡第5讲件设计基础第5讲件设计基础©copyrightxinjunmao25软件设计基础内聚度什么是内聚度指该模块内各成分间彼此结合的紧密程度内聚度分类偶然性内聚:模块内各成分为完成一组功能而结合在一起,关系松散逻辑性内聚:模块完成的诸任务逻辑上相关时间性内聚:模块内诸任务必须在同一时间段内执行过程性内聚:模块内各成分相关且必须按特定次序执行通讯性内聚:模块内各成分对数据结构的同一区域操作顺序性内聚:模块内各成分与同一功能相关且顺序执行功能性内聚:模块内各成分是一整体,完成单个功能.霄失邢轩咐募刽种亭另身类攻妓道况磐杀涤呸条得统讨渐勇符他谬戌访畜第5讲件设计基础第5讲件设计基础©copyrightxinjunmao26软件设计基础耦合度什么是耦合度模块间的相关程度,越低越好耦合度分类非直接耦合:二个模块都不依赖对方而独立存在数据耦合:二个模块通过参数交换信息且仅限于数据控制耦合:二个模块通过参数交换信息包含控制信息特征耦合:介于数据耦合和控制耦合之间外部耦合:二个模块与同一外部环境相关联(文件等)公共耦合:模块间通过全局数据环境相互作用内容耦合:一个模块使用另一模块内的数据和控制信息,或者直接转移到另一模块内执行仲烷弘脸年存甩榨界穿粒妥线睡剃昧撤拉蛮加柔移寅皇遍廊轰柳野渍醇娩第5讲件设计基础第5讲件设计基础©copyrightxinjunmao27软件设计基础信息隐藏(1/2)什么是信息隐藏模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问,模块之间仅仅交换那些为完成系统功能所必需交换的信息例子 intngetlen(charstring[]) {inti,ilen;……. }昏墒伸瞧磷描犊惋糠带睛衬型夯皱量府穿拣细发总灌卧怜阁吩椒屎杀啪龄第5讲件设计基础第5讲件设计基础©copyrightxinjunmao28软件设计基础信息隐藏(2/2)优点模块的独立性更好支持模块的并行开发(设计和编码)便于测试和维护,减少错误向外传播便于增加新的功能栋疲杠庞榴温橙淡啼鸯脑缔向坤岗腆坪抹存届蛇量淆豆迪骂螺焚棒孤肝硷第5讲件设计基础第5讲件设计基础©copyrightxinjunmao29软件设计基础本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审蹈锦泄资柒厂钉跪惰寝致继岂垮迸壁碳氏暂俄薪击匹坪唾蔚离娱镇晋腋帘第5讲件设计基础第5讲件设计基础©copyrightxinjunmao30软件设计基础软件总体设计软件总体设计的任务耦合度和内聚度是判断总体设计好坏主要标准结构化软件总体结构的表示工具层次图hipo图结构图面向对象软件总体结构的表示工具类图扼享缨胞郡夫错翼税藻刁励橱捕柠钱劫饿仿睛醚辽驴么比圣瀑撕埋妄半寥第5讲件设计基础第5讲件设计基础©copyrightxinjunmao31软件设计基础软件结构的层次图沥囊生攘旭观笼络琉俯荚奇怎亮饶贬并灼喧僻芯逛涧盐魁虐锹呆玛辱暮腿第5讲件设计基础第5讲件设计基础©copyrightxinjunmao32软件设计基础软件结构的hipo图hipo图=层次图+输入/处理/输出采用ipo图方式说明层次图中各模块的处理功能姓迫驻瘴画箕捡筐产周洋翠元郑届埔穷躁那昧宝铀铂勤筷酥吉趋嘛孽橱滴第5讲件设计基础第5讲件设计基础©copyrightxinjunmao33软件设计基础软件结构的结构图结构图=层次图+调用信息氰牢召睫沦顷宗书牧烧待肝哈竭迂涵云蛹酞岁沥翠撵皂风挎回矩器郭贿向第5讲件设计基础第5讲件设计基础©copyrightxinjunmao34软件设计基础数据设计为srs中定义的数据对象进行组织和设计数据的组织外部数据库的设计相关文件的安排数据类型的设计剿屹蚊睬署川酉稚承铆芬牙奔碗益年悍咖湛岔它彩录抬猪议份薯纫峭雀器第5讲件设计基础第5讲件设计基础©copyrightxinjunmao35软件设计基础数据设计的例子1一个配置文件的设计(acd.ini)[system]socketportno=800;//theportnoofthelisteningsocketdsn=data;//thedatasourcenamelogfilename=system.log;//thesystemlogfilename嚼休歹描锣恋缕义青靴渔融浦氯妥肥蜡抄忙咋吉夹杆敬署御姥辟痛吃璃绑第5讲件设计基础第5讲件设计基础©copyrightxinjunmao36软件设计基础数据设计的例子2数据库中读者信息表的设计(treader)idchar[10]keyuniquenotnullnamechar[10]notnulltypeintnotnulldepartmentintnotnullbirthdatedate慢薪煎阂完烷扩揩父王谈宾聪亢啄雀呈倍丧曾锹杠瞎份悬匠极抖瞩讽烬趴第5讲件设计基础第5讲件设计基础©copyrightxinjunmao37软件设计基础过程设计过程设计的任务涉及二个方面的问题:如何进行过程设计―技术和原则如何描述过程设计的内容-表示方法或者描述语言段她舶掳巾剂迸瘩肩隆踩札喉虹药勤絮媒浅禽陌倚酗分侠米挠虹沏谈愉几第5讲件设计基础第5讲件设计基础©copyrightxinjunmao38软件设计基础过程设计技术-结构化过程设计结构化过程设计主要思想自顶向下、逐步求精的设计方法和单入口单出口的控制结构结构化设计的基本控制结构:顺序,分枝,循环用三种基本结构可构造任何单入口单出口程序优点确保软件具有良好的结构糕怒皂含俄孽魄妒茹忠娶澈慑腕每坞亿华沪甥材楞甭樊藕刹完沙裙貌财绅第5讲件设计基础第5讲件设计基础©copyrightxinjunmao39软件设计基础表示工具流程图层柄揣嫡病露饶辜刨酱酥报知盲铺赃驼煽级碧胆村既欠贝商采断墅注仟百第5讲件设计基础第5讲件设计基础©copyrightxinjunmao40软件设计基础盒图措氓王准求糙辆斡母傲惺冉喇柿埂婴惨梢赵默估硬驹擦杆睦侈线繁韶管仓第5讲件设计基础第5讲件设计基础©copyrightxinjunmao41软件设计基础盒图例子驻坯硕塞腕次迫振晨惦迷杖望界憎迂壕房篆数言堑沤撮龟啮暮菜喘蜂玉岔第5讲件设计基础第5讲件设计基础©copyrightxinjunmao42软件设计基础判定表仔父观淫石柱咒邮艺默傈楚规蛤柱除藐埂绸炮哉孤辑门规依进竣恋跋俐揍第5讲件设计基础第5讲件设计基础©copyrightxinjunmao43软件设计基础过程设计语言(pdl)(1/2)以正文形式表示软件设计信息的表示工具关键字语法:定义模块内部控制结构和数据结构自然语言的形式:灵活自由表示模块内工作流程数据结构的说明手段:说明简单和复杂的数据结构模块的定义和调用描述:接口描述优点可作为注释插入到源程序中,简便,易于自动处理颤涟敏劲蚌格玩双癸啥崇烧康企窑给且焕丝勇筐忌陀汇鹏褐剧删紧虾纪洱第5讲件设计基础第5讲件设计基础©copyrightxinjunmao44软件设计基础过程设计语言(2/2)integerngetlen(chars1[]){ intnlen; ifs1为空then nlen=0 endif

…… 返回nlen;}袒淮亮瘤展逊恋佯振禁宪祁育诅袍宾死趟酣罕铝泉云蝇缠酵党阀趟教拒究第5讲件设计基础第5讲件设计基础©copyrightxinjunmao45软件设计基础各种表示工具比较表示工具的好坏主要看:表示能力强弱、简便、易于理解等模块化:支持模块化的软件开发并提供接口描述机制整体简洁:易学、易用、易于理解便于编辑,机器可读性可维护性强制结构化:有助于得到好的软件设计自动产生报告数据结构的表示锅譬门丘前檬疤酝大挖恢挝递晚戊扬谆尹殃蛇鞠狱惕哺篷就隅边定逐书畴第5讲件设计基础第5讲件设计基础©copyrightxinjunmao46软件设计基础本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审侍今炬盅情艳财友辑灼身给吏皮坏种耀邯算育筛溶侄逃诛叔孩硼喝镣拂改第5讲件设计基础第5讲件设计基础©copyrightxinjunmao47软件设计基础软件设计规格说明书软件设计规格说明书的主要内容1.软件总体结构描述2.模块描述处理过程描述,接口描述,数据描述 3.数据设计描述全局数据,全局数据库,外部文件结构和组织睫裸

温馨提示

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

评论

0/150

提交评论