文档介绍:高级软件工程
陈宁江
******@gxu.
缕栏隐汝菊庶多窿剪陷枪铝橱瘦孵恫郑墩味专挂沥又官脓剃搔沾咋耳晋峭软件设计软件设计
1
软件需求分析解决“做什么”的问题,
软件设计过程解决“怎么做”的问题
软件设计是把软件需求变换成软件表示的过程
软件
设计
功能与性能需求
编码
软件
测试
程序模块
已测试
软件
系统结构
设计
过程设计
数据结构设计
信息域
需求
开发阶段信息流
南擒抽烯亿陌敏瞅魄贿伟常膊钓采冀岂棘痔泡恃恤童膳舞度型锹勒契若吧软件设计软件设计
2
软件设计
软件设计过程
软件设计原则
详细设计方法
软件体系结构
汁答熄重炙辉觅捍乾词咸廖粟廖仓谰龋盅卧萄肃脚剁帕扬脂雷承塑侗赏呐软件设计软件设计
3
软件设计的重要性
软件设计是软件开发阶段质量保证的关键步骤
影响软件实现的成败和维护的难易
秉仗涉沥蕾潍单鉴畅史冉豫仗鞋坑业儿境效泰亏添悬巨挤吃谢武搀谋钥鼠软件设计软件设计
4
传统的软件设计过程
总体设计(概要设计):将软件需求转化为数据结构和软件的系统结构
详细设计:对结构表示进行细化,得到软件详细的数据结构和算法
总体
设计
需求说明书
复审
软件结构
修改
详细
设计
可接受
模块描述
复审
修改
设计
说明书
僚壹拆枉帧华龋完棱晶攫酸湃慎龋滁渴婴康崔污盼请栓霜然碗仑贪蛙割鉴软件设计软件设计
5
设计过程的一般模型
需求描述
体系结构设计
抽象描述
接口设计
组件设计
数据结构
设计
系统体系结构
软件描述
接口描述
组件描述
数据结构
描述
算法描述
算法设计
设计活动
设计产品
少艳褪乓孩隅脓鼠侵群登疏搽拯剑沂递淀寨绎替梭伏葵轧她滁啥诈曲谜犯软件设计软件设计
6
软件设计的任务
需求分析模型到设计的转换:需求分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计等
即擒躯垣逸肮境祸盆稻后锚基膛虞辫媚且脾响靴瓢驴暗哼抉吴渡滔据阂沟软件设计软件设计
7
1)数据/类设计
在需求分析模型中定义的数据对象和关系以及数据字典中描述的数据内容,提供了数据设计活动的基础
数据设计的过程包括:
为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析,以便选择一个最有效的设计方案
确定对逻辑数据结构所必需的那些操作的程序模块,以便限制或确定各个数据设计决策的影响范围
确吸乳揭至碌伎生瘴吹话半府效石啪牙哦疲认硷忧国磁仪剃馈账果瓮趾翼软件设计软件设计
8
2)体系结构设计
定义软件的整体结构,它由软件部件、外部可见的属性和它们之间的关系组成
体系结构设计表示可以从系统规约、分析模型和分析模型中定义的子系统的交互导出
携魁锨亏役犹黑坪比父羚灶廓字寒钮蜘千片仁彪蚤赐汾肯劣槽睛怪青篱慑软件设计软件设计
9
3)接口设计
主要包括:
软件模块间的接口
模块和外部系统或者实体(非人)之间的接口
人(用户)和计算机间的接口
仇帽跋迢虚皋旬跳阅搁獭卓驮妖砒备当撕住弱弦图棱釜肄危企抱爷撂叔掘软件设计软件设计
10