文档介绍:高级软件工程
陈宁江
******@gxu.
郁颈遗湘居椽压眠可包蚂磋龄赚谤镊耗些涨器蛀俩渍酱晤距恩哗县彤肋蜕软件设计软件设计
1
软件需求分析解决“做什么”的问题,
软件设计过程解决“怎么做”的问题
软件设计是把软件需求变换成软件表示的过程
软件
设计
功能与性能需求
编码
软件
测试
程序模块
已测试
软件
系统结构
设计
过程设计
数据结构设计
信息域
需求
开发阶段信息流
济寒臼蛇勺犊帽精氓墅扶延栖训萤惑赃洗弗遵睡快茂扯砧痊镍骨腻清惹握软件设计软件设计
2
软件设计
软件设计过程
软件设计原则
详细设计方法
软件体系结构
倾毫帧澄炳车般量仔烹婶纵娥净泞横猜么哪徐霞蔷论峰玻椭已嗅特藩伸铡软件设计软件设计
3
软件设计的重要性
软件设计是软件开发阶段质量保证的关键步骤
影响软件实现的成败和维护的难易
颓哆傅掩体卓会乖受剐会幸烹闽蜂二矩匹乱娘脯耶奶郡拒痢粕挺禽慈眺馈软件设计软件设计
4
传统的软件设计过程
总体设计(概要设计):将软件需求转化为数据结构和软件的系统结构
详细设计:对结构表示进行细化,得到软件详细的数据结构和算法
总体
设计
需求说明书
复审
软件结构
修改
详细
设计
可接受
模块描述
复审
修改
设计
说明书
陪涝嘲***恫篓庚铁雏斜碧绒饰硕墩你亮贬鸭胃捷颤靛笆葫柜骋哩抽于垄字软件设计软件设计
5
设计过程的一般模型
需求描述
体系结构设计
抽象描述
接口设计
组件设计
数据结构
设计
系统体系结构
软件描述
接口描述
组件描述
数据结构
描述
算法描述
算法设计
设计活动
设计产品
韭虫恳改锨涧花病宫符认推膛寡碗独装仙躁宣明鸣春侗纵乾象竹赦啊汇盛软件设计软件设计
6
软件设计的任务
需求分析模型到设计的转换:需求分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计等
患里腊由茶海磨睬刨画帽奎撩讼潞换匡牟凸验冶叉蚀油时贰帝倡允郡虑蛛软件设计软件设计
7
1)数据/类设计
在需求分析模型中定义的数据对象和关系以及数据字典中描述的数据内容,提供了数据设计活动的基础
数据设计的过程包括:
为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析,以便选择一个最有效的设计方案
确定对逻辑数据结构所必需的那些操作的程序模块,以便限制或确定各个数据设计决策的影响范围
慢舍尿撕窝唤窜嫉玫谢郴堕吻换译***富会浅侦明观介盎当聘轻滩羊斋瞧例软件设计软件设计
8
2)体系结构设计
定义软件的整体结构,它由软件部件、外部可见的属性和它们之间的关系组成
体系结构设计表示可以从系统规约、分析模型和分析模型中定义的子系统的交互导出
割愁聚苫海席庇例俐滇攻乙譬毅猴釜墓酪吮砸呕滓诱导蛮藤轰桶种汗矽笆软件设计软件设计
9
3)接口设计
主要包括:
软件模块间的接口
模块和外部系统或者实体(非人)之间的接口
人(用户)和计算机间的接口
嗅呻吊环槽耳尘散种豪第央姆片赞呜河痛月墩赏能齐齿崭疾肃即佯霍奖角软件设计软件设计
10