资源描述
利用“4+1”视图建模方法进行“网 上 选课系统”软件体系结构设计
所学专业: 软件工程
年级班级: 级软工-2 班
所属小组: 第六组
组责任人: 耿奇云
组内组员: 耿奇云 郜振南 杨建威
组员学号:
河南农业大学信息和管理科学学院
12月19日
一、 引言
(一) 利用4+1视图方法:针对不一样需求进行架构设计
要开发出用户满意软件并不是件轻易事,软件架构师必需全方面把握多种多样需求、权衡需求之间有可能矛盾之处,分门别类地将不一样需求一一满足。
Philippe Kruchten提出4+1视图方法为软件架构师"一一征服需求"提供了良好基础,图1示。
图1利用4+1视图方法针对不一样需求进行架构设计
场景视图:场景视图关注案例描述,即对案软件需求功效描述和非功效描述;对应于UML建模中用例建模。
逻辑视图:逻辑视图关注功效,不仅包含用户可见功效,还包含为实现用户功效而必需提供"辅助功效模块";它们可能是逻辑层、功效模块等。
开发视图:开发视图关注程序包,不仅包含要编写源程序,还包含能够直接使用第三方SDK和现成框架、类库,和开发系统将运行于其上系统软件或中间件。开发视图和逻辑视图之间可能存在一定映射关系:比如逻辑层通常会映射到多个程序包等。
处理视图:处理视图关注进程、线程、对象等运行时概念,和相关并发、同时、通信等问题。处理视图和开发视图关系:开发视图通常偏重程序包在编译时期静态依靠关系,而这些程序运行起来以后会表现为对象、线程、进程,处理视图比较关注正是这些运行时单元交互问题。
物理视图:物理视图关注"目标程序及其依靠运行库和系统软件"最终怎样安装或布署到物理机器,和怎样布署机器和网络来配合软件系统可靠性、可伸缩性等要求。物理视图和处理视图关系:处理视图尤其关注目标程序动态实施情况,而物理视图重视目标程序静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响架构视图。
(二) 软件需求分类
需要架构设计多重视图方法,从根本上来说是因为需求种类复杂性所致。软件需求包含功效需求和非功效需求。非功效需求包含质量属性和约束条件。质量属性包含运行期质量属性和开发期质量属性。软件需求分类图2所表示。
图2 软件需求分类
(三) 网上选课需求
1.网上选课系统需求描述
管理员经过系统管理界面进入,建立本学期要开设各门课程,并将课程信息保留到数据库中,并能够对课程进行一定改动和删除操作。学生经过浏览器能够查询已选课程信息并进行选课,老师能够选择所要上课程并提交所选课程成绩。管理员同时负责维护各项信息。以上信息统一保留到数据库中。
2.网上选课系统需求
表1 网上选课系统:需求种类分析
非功效需求
功效需求
约束
运行期质量属性
开发期质量属性
项目预算有限
用户平均电脑操作水平偏低
开发人员分散在不一样地点
要求能在Windows
all 系统上运行
高性能
易用性
易了解
模块间松散耦合
实现不一样用户所要实施不一样功效
提升不一样用户操作效率
确保数据库中数据一致性和完整性
二、 网上选课系统场景建模
场景视图:场景视图关注案例描述,即对案软件需求功效描述和非功效描述;对应于UML建模中用例建模。
(一) 用例建模和分析步骤
依据网上选课系统需求概述进行用例建模和分析。用例建模和分析步骤图3示。
1.确定网上选课系统边界范围,找出系统外部参与者和外部系统
2.确定各个参与者应有系统行为,并命名为用例
3. 把系统中公共系统行为分解为新用例,供其它用例引用
4. 把系统中部分变更行为分解为扩展用例
5. 编制用例脚本
6. 绘制系统用例图
7. 把系统用例中特殊情况用例画成单独子用例图
(二) 用例建模具体过程
1. 确定系统边界范围,找出参与者
系统参与者包含:管理员、学生和老师
图4
2. 确定每一个参与者所期望系统行为
管理员:登陆、课程管理、学生管理和老师管理
学生:登录、选课、查询课程
老师:登录、查询课程、提交成绩
图5
3. 把公共系统行为分解为新用例
将管理员、学生和老师登陆抽取为公共用例;
图6
4. 扩展用例
将全部操作保留用例扩展为数据库。
图7
5. 用例图优化
抽取用户角色,实现统一登录;
抽取课程管理用例,和学生信息管理、老师信息管理等用例并列
图8
6. 用自然语言和事件流编写网上选课用例脚本
(1)用户登陆脚本:
1)运行程序,弹出登录界面;
2)在登陆界面输入用户名、密码和用户类型;
3)提交信息进行验证;
A1:用户信息验证异常
4)进入操作界面。
A1:用户信息验证异常
3a)提醒用户用户名或密码或用户类型错误
3b)重新输入用户名、密码和用户类型
3c)转到3)
老师选课脚本:
一、(1)运行程序,弹出登陆界面,
(2)在登陆界面输入用户名、密码和用户类型;
(3)提交信息进行验证;
A:用户信息验证异常
(4)进入操作界面。
A:用户信息验证异常
1、提醒用户用户名或密码或用户类型错误
2、重新输入用户名、密码和用户类型
3、转到(3)
二、(1)登陆成功后,在选课界面进行选课;
(2)选择课程,单击完成,系统进行验证;
A1:课程信息异常,重新进行选课;
(3)选课成功;
(4)退出程序;
老师提交成绩脚本以下:
(1) 用户登陆界面后输入用户名、密码和用户类型;
(2) 提交信息进行验证:假如信息异常系统将退出,用户需重新登陆
(3) 用户登陆成功后进入学生成绩界面,并提交学生成绩,所以显示选课学生姓名、学号、班级、成绩;
(4) 系统确定输入信息完整没有缺失或错误;
(5) 系统将输入学生成绩存放建档;
(6) 用户提交成绩成功后退出程序。若提交失败将退回(3);
学生选课教本:
(1) 用户登陆界面后输入用户名、密码和用户类型;
(2) 提交信息进行验证:假如信息异常系统将退出,用户需重新登陆
(3) 用户登陆失败将返回(1),登陆 成功后进入学生选课系统;
(4) 学生选择所要选择课程后提交,系统将确定改门课程是否已满;
A:若所选课程人数已满,选课失败,返回(3)重新选课;若选课成功,则系统将会把改课程添加到学生课程表里;
(5) 用户退出程序;
学生查询课程教本:
(1) 用户登陆界面后输入用户名、密码和用户类型;
(2) 提交信息进行验证:假如信息异常系统将退出,用户需重新登陆;
(3) 用户登陆失败将返回(1),登陆 成功后进入学生主页查询课程;
(4) 用户退出程序
管理员老师信息教本:
(1)用户登陆界面后输入用户名、密码和用户类型;
(2)提交信息进行验证:假如信息异常系统将退出,用户需重新登陆;
(3)用户登陆失败将返回(1),登陆成功后进入管理员主页;
(4)管理员在主页上进行老师信息管理操作;
(5)用户推出程序;
管理员老师信息教本:
(1)用户登陆界面后输入用户名、密码和用户类型;
(2)提交信息进行验证:假如信息异常系统将退出,用户需重新登陆;
(3)用户登陆失败将返回(1),登陆成功后进入管理员主页;
(4)管理员在主页上进行学生信息管理操作;
(5)用户推出程序;
管理员老师信息教本:
(1)用户登陆界面后输入用户名、密码和用户类型;
(2)提交信息进行验证:假如信息异常系统将退出,用户需重新登陆;
(3)用户登陆失败将返回(1),登陆成功后进入管理员主页;
(4)管理员在主页上进行课程管理界面进行对应操作;
(5)用户推出程序;
7. 绘制用例图
依据分析和描述,本网上选课系统用例图以下
图10
三、 网上选课系统逻辑视图
逻辑视图:逻辑视图对应于功效需求,设计满足功效需求架构。逻辑视图关注功效,不仅包含用户可见功效,还包含为实现用户功效而必需提供"辅助功效模块";它们可能是逻辑层、功效模块等。
首先依据功效需求进行初步设计,进行大粒度职责划分和逻辑视图设计以下。
应用层:负责设备状态显示,提供模拟控制台供用户发送调试命令
表示层:使用通讯层和嵌入层进行交互
会话层:负责在RS232协议之上实现一套专用“应用协议”
逻辑层:当应用层发送来包含调试指令协议包时,由通讯层负责按RS232协议将之传输给嵌入层
持久连通层:当嵌入层发送来原始数据时,由通讯层将之解释成应用协议包发送给应用层
数据库层:嵌入层负责对调试设备具体控制,和高频度地从数据采集器读取设备状态数据,设备控制指令物理规格被封装在嵌入层内部,读取数据采集器具体细节也被封装在嵌入层内部
网上选课系统架构逻辑视图
四、 网上选课系统开发视图
开发视图:开发视图对应于开发期质量属性,设计满足开发期质量属性架构,包含扩展性、可重用性、可移植性、易了解性和易测试性等。开发视图关注程序包,不仅包含要编写源程序,还包含能够直接使用第三方SDK和现成框架、类库,和开发系统将运行于其上系统软件或中间件。开发视图和逻辑视图之间可能存在一定映射关系:比如逻辑层通常会映射到多个程序包等。
软件架构开发视图应该为开发人员提供切实指导。任何影响全局设计决议全部应由架构设计来完成,这些决议假如"漏"到了后边,最终到了大规模并行开发阶段才发觉,可能造成"程序员碰头儿临时决定"情况大量出现,软件质量肯定将下降甚至造成项目失败。
其中,采取哪些现成框架、哪些第三方SDK、乃至哪些中间件平台,全部应该考虑是否由软件架构开发视图确定下来。下图展示了网上选课系统(一部分)软件架构开发视图:
图* 网上选课系统架构开发视图
图** 网上选课系统架构开发视图
五、 网上选课系统过程视图
处理视图:处理视图,即过程视图,设计满足运行期质量属性架构,对应于运行期质量属性,包含易用性、性能、可伸缩性、连续可用性、鲁棒性和安全性等。处理视图关注进程、线程、对象等运行时概念,和相关并发、同时、通信等问题。处理视图和开发视图关系:开发视图通常偏重程序包在编译时期静态依靠关系,而这些程序运行起来以后会表现为对象、线程、进程,处理视图比较关注正是这些运行时单元交互问题。
性能是软件系统运行期间所表现出一个质量水平,通常见系统响应时间和系统吞吐量来衡量。为了达成高性能要求,软件架构师应该针对软件运行时情况进行分析和设计,这就是我们所谓软件架构处理视图目标。处理视图关注进程、线程、对象等运行时概念,和相关并发、同时、通信等问题。下图展示了网上选课系统架构处理视图。
能够看出,架构师为了满足高性能需求,采取了多线程设计:
· 应用层中线程代表主程序运行,它直接利用了MFC主窗口线程。不管是用户交互,还是串口数据抵达,均采取异步事件方法处理,杜绝了任何"忙等候"无谓耗时,也缩短了系统响应时间。
· 通讯层有独立线程控制着"上上下下"数据,并设置了数据缓冲区,使数据接收和数据处理相对独立,从而数据接收不会因临时处理忙碌而停滞,增加了系统吞吐量。
设备调试系统架构处理视图
用户登录时序图:
管理员时序图:
老师序列图:
学生示意图:
六、 网上选课系统物理视图
物理视图:物理视图,是和布署相关架构决议,对应于安装和布署需求。物理视图关注"目标程序及其依靠运行库和系统软件"最终怎样安装或布署到物理机器,和怎样布署机器和网络来配合软件系统可靠性、可伸缩性等要求。物理视图和处理视图关系:处理视图尤其关注目标程序动态实施情况,而物理视图重视目标程序静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响架构视图。
软件最终要驻留、安装或布署到硬件才能运行,而软件架构物理视图关注"目标程序及其依靠运行库和系统软件"最终怎样安装或布署到物理机器,和怎样布署机器和网络来配合软件系统可靠性、可伸缩性等要求。图所表示物理架构视图表示了网上选课系统软件和硬件映射关系。能够看出,嵌入部分驻留在调试机中,而PC机上是常见桌面可实施程序形式。
网上选课系统架构物理视图I
我们还可能依据具体情况需要,经过物理架构视图更明确地表示具体目标模块及其通讯结构,以下图所表示。
网上选课系统架构物理视图II
七、 小结
所谓本立道生。深入了解软件需求分类复杂性,明确区分功效需求、约束、运行期质量属性、开发期质量属性等不一样种类需求就是"本",因为各类需求对架构设计影响截然不一样。本文经过具体案例分析,展示了怎样经过RUP4+1视图方法,针对不一样需求进行架构设计,从而确保关键需求一一被满足。
本文经过比较系统地描述网上选课系统用例图一步步操作完成过程和相关用户时序图和愈加深入“4+1”视图中逻辑视图、开发视图、进程视图、物理视图和场景视图绘制描述,并对包含到软件架构模式进行了简单明了解释说明,直接深入地描述展示了软件需求开发过程中包含非功效和功效方面多种需要要求,展示说明了软件体系结构设计在软件开发和程序设计中关键地位。
参考文件
1. Philippe Kruchten著,周伯生等译. Rational统一过程引论(原书第2版). 机械工业出版社,.
2. Karl E. Wiegers著,刘伟琴等译. 软件需求(第2版). 清华大学出版社,.
3. 刘寅虓. 系统分析之路(平装,第一版). 电子工业出版社,. 张友生.软件体系结构现实状况和发展方向.程序员,(6):35~38
4. P.Kruchten. Architectural blueprints——the “4+1” view model of software architecture. IEEE Software,1995(6):42~50
5. 周莹新,艾波.软件体系结构建模研究.软件学报,1998(11):866~872
6. 张友生.软件体系结构描述方法.程序员,(11):44~46
7. 蒋慧,吴礼发,陈卫卫.UML设计关键技术.北京:期望电子出版社,.1
展开阅读全文