课程大作业

更新时间:2023-10-09 03:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《软件体系结构》课程大作业

利用“4+1”视图建模方法进行“网上选课系统”软件体系结构设计

所学专业: 软件工程 年级班级: 2010级 1 班 所属小组: 第?组 组负责人: ??? 组内成员: ???、???、???

河南农业大学信息与管理科学学院

2012年12月12日

一、 引言

(一) 运用4+1视图方法:针对不同需求进行架构设计

要开发出用户满意的软件并不是件容易的事,软件架构师必须全面把握各种各样的需求、权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足。

Philippe Kruchten提出的4+1视图方法为软件架构师\一一征服需求\提供了良好基础,如图1所示:

图1运用4+1视图方法针对不同需求进行架构设计

场景视图:场景视图关注案例描述,即对案软件需求的功能描述和非功能描述;对应于UML建模中的用例建模。

逻辑视图:逻辑视图关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的\辅助功能模块\;它们可能是逻辑层、功能模块等。

开发视图:开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。

处理视图也即进程视图:处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题。

物理视图:物理视图关注\目标程序及其依赖的运行库和系统软件\最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。

(二) 软件需求分类

需要架构设计的多重视图方法,从根本上来说是因为需求种类的复杂性所致。软件需求包括功能需求和非功能需求。非功能需求包括质量属性和约束条件。质量属性包括运行期质量属性和开发期质量属性。软件需求分类如图2所示:

图2 软件需求分类

(三) 网上选课需求

1.网上选课系统需求描述

管理员通过系统管理界面进入,建立本学期要开设的各门课程,并将课程信息保存到数据库中,并可以对课程进行一定的改动和删除操作。学生通过浏览器可以查询已选课程信息并进行选课,教师可以选择所要上的课程并提交所选课程

的成绩。管理员同时负责维护各项信息。以上信息统一保存到数据库中。

2.网上选课系统需求

表1 网上选课系统:需求种类分析 非功能需求 约束 运行期质量属性 开发期质量属性 个人计算机,学需要确保网上选个人计算机,生和教师操作过课系统能够正确java集成开发环程中需要进行一运行,网上选课境及相关开发软定的网络连接。系统的各种用户件。程序结构精网上选课系统管功能划分正确明简明了合理。 理员、学生、教确。程序运行正师等用户在操作常高效精简。 中只能对本身应有功能进行操作。 功能需求 学生登录成功后,可以对管理员已经录入的课程进行选课和对已选课程进行成绩查询。教师登录成功后,可以对管理员已经录入的课程进行选课和对已选课程进行成绩提交。管理员登录成功后,可以对课程和相关成绩进行管理,并负责各项信息的维护工作。 二、 网上选课系统场景建模

场景视图:场景视图关注案例描述,即对案软件需求的功能描述和非功能描述;对应于UML建模中的用例建模。

(一) 用例建模与分析步骤

根据网上选课系统需求概述进行用例建模与分析。

1.确定网上选课系统的边界范围,找出系统外部的参与者和外部系统 2.确定各个参与者应有的系统行为,并命名为用例

3. 把系统中公共的系统行为分解为新的用例,供其它用例引用 4. 把系统中一些变更的行为分解为扩展用例 5. 编制用例的脚本 6. 绘制系统的用例图

7. 把系统用例中特殊情况的用例画成单独的子用例图

(二) 用例建模具体过程

1.确定系统边界范围,找出参与者 系统参与者包括:管理员、学生和老师

2.确定每一个参与者所希望的系统行为

管理员:登录、课程管理、学生管理和老师管理

学生:登录、选课和查询成绩

教师:登录、选课和提交成绩

3.把公共系统行为分解为新的用例

将管理员、学生和老师的登录抽取为公共用例

4.扩展用例

将所有操作保存的用例扩展为数据库

5.用例图优化

抽取用户角色,实现统一登录;

抽取课程管理用例,与学生信息管理、教师信息管理等用例并列

6.用自然语言和事件流编写网上选课用例脚本

(1)用户登录脚本

1)运行程序,弹出登录界面

2)在登录界面中输入用户名、密码和用户类型 3)提交信息进行验证

用户信息验证异常,则提示用户用户名或密码或用户类型有误,转到(1)中的操作2)以重新进行用户的登录操作 4)进入操作界面 (2)用户操作脚本

1)成功登录的用户类型为学生

学生选课脚本:在规定的选课时间内对学生本人能够选择的课程和课程数进行一定的选择,并保存提交选课信息,否则提示未在规定选课时间内或提交信息有误或选课信息未进行保存提交,转到(2)中的操作1)

学生查询成绩脚本:输入要查询的课程进行成绩查询或查询全部课程进行全部所选课程成绩的查询,否则提示输入课程有误或没有选择本门课程或输入课程成绩还未提交整理并耐心等待,转到(2)中的操作1)

2)成功登录的用户类型为教师

教师选课脚本:在规定的选课时间内对教师本人能够选择的课程和课程数进行一定的选择,并保存提交选课信息,否则提示未在规定选课时间内或提交信息有误或选课信息未进行保存提交,转到(2)中的操作2)

教师提交成绩脚本:在所选课程的有效提交成绩时间内,输入要提交成绩的课程进行成绩提交或查询未提交成绩的已选课程进行成绩的提交,否则提示未在规定的提交成绩时间内或输入课程信息有误或提交成绩信息有误,转到(2)中的操作2) 3)成功登录的用户类型为管理员

管理员课程管理脚本:对学校的课程进行一定的管理并为学生和教师在规定的选课时间内提供选课功能,否则提示学校未开设这门课程或没有在规定的选课时间内或为学生和教师提供的选课信息有误,转到(2)中的操作3)

管理员学生管理脚本:对学校的学生进行一定的管理并为学生提供成绩查询功能以及对学生信息进行一定的维护,否则提示对学生的操作有误,转到(2)中的3)

管理员教师管理脚本:对学校的教师进行一定的管理并对教师提供提交成绩功能以及对教师信息进行一定的维护,否则提示对教师的操作有误,转到(2)中的3)

7.绘制用例图

根据分析与描述,本网上选课系统的用例图如下图所示:

三、 网上选课系统逻辑视图

逻辑视图:逻辑视图对应于功能需求,设计满足功能需求的架构。逻辑视图关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的\辅助功能模块\;它们可能是逻辑层、功能模块等。

本实验中根据功能需求进行初步设计,进行大致职责划分和逻辑视图的绘制如下所示:

应用层:负责设备状态的显示,提供模拟控制台供用户发送调试命令 表示层:使用通讯层和嵌入层进行交互

会话层:负责在RS232协议之上实现一套专用的“应用协议”

逻辑层:当应用层发送来包含调试指令的协议包时,由通讯层负责按RS232协议将之传递给嵌入层

持久连通层:当嵌入层发送来原始数据时,由通讯层将之解释成应用协议包发送给应用层

数据库层:嵌入层负责对调试设备的具体控制,以及高频度地从数据采集器读取设备状态数据,设备控制指令的物理规格被封装在嵌入层内部,读取数据采集器的具体细节也被封装在嵌入层内部

应用层表示层会话层商务逻辑层持久层与连通层(DAO)数据库层 网上选课系统架构的逻辑视图

四、 网上选课系统开发视图

开发视图:开发视图对应于开发期质量属性,设计满足开发期质量属性的架构,包括扩展性、可重用性、可移植性、易理解性和易测试性等。开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。

软件架构的开发视图应当为开发人员提供切实的指导。任何影响全局的设计决策都应由架构设计来完成,这些决策如果\漏\到了后边,最终到了大规模并行开发阶段才发现,可能造成\程序员碰头儿临时决定\的情况大量出现,软件质量必然将下降甚至导致项目失败。

其中,采用哪些现成框架、哪些第三方SDK、乃至哪些中间件平台,都应该考虑是否由软件架构的开发视图确定下来。下面两个图从不同角度展示了网上选课系统的(一部分)软件架构开发视图:

应用层Struts表示层会话层Spring商务逻辑层持久层与连通层(DAO)Hibernate数据库层 网上选课系统架构的开发视图1

网上选课系统架构的开发视图2

五、 网上选课系统过程视图

处理视图:处理视图,即过程视图,设计满足运行期质量属性的架构,对应于运行期质量属性,包括易用性、性能、可伸缩性、持续可用性、鲁棒性和安全性等。处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期

的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题。

性能是软件系统运行期间所表现出的一种质量水平,一般用系统响应时间和系统吞吐量来衡量。为了达到高性能的要求,软件架构师应当针对软件的运行时情况进行分析与设计,这就是我们所谓的软件架构的处理视图的目标。处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。下图展示了网上选课系统架构的处理视图:

可以看出,架构师为了满足高性能需求,采用了多线程的设计:

应用层中的线程代表主程序的运行,直接利用MFC的主窗口线程。无论是用户交互,还是串口的数据到达,均采取异步事件的方式处理,杜绝了任何“忙等待”无谓的耗时,也缩短了系统的响应时间。

通讯层有独立的线程控制着“上上下下”的数据,并设置了数据缓冲区,使数据的接收和数据的处理相对独立,从而数据接收不会因暂时的处理忙碌而停滞,增加了系统吞吐量。

在嵌入层的设计中,分别通过时钟中断和RS232口中断来激发相应的处理逻辑,达到了轮询和收发数据的目的。

设备调试系统架构的处理视图

(一)根据用例图和用例描述画出用户登录时序图如下:

(二)根据用例图和用例描述画出管理员操作时序图如下:

(三)根据用例图和用例描述画出学生操作时序图如下:

(四)根据用例图和用例描述画出教师操作时序图如下:

六、 网上选课系统物理视图

物理视图:物理视图,是和部署相关的架构决策,对应于安装和部署需求。物理视图关注\目标程序及其依赖的运行库和系统软件\最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。

软件最终要驻留、安装或部署到硬件才能运行,而软件架构的物理视图关注\目标程序及其依赖的运行库和系统软件\最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。下图所示的物理架构视图表达了网上选课系统软件和硬件的映射关系。可以看出,嵌入部分驻留在调试机中,而PC机上是常见的桌面可执行程序的形式。

网上选课系统架构的物理视图I

我们还可能根据具体情况的需要,通过物理架构视图更明确地表达具体目标模块及其通讯结构,如下图所示:

网上选课系统架构的物理视图II

七、 小结

所谓本立道生。深入理解软件需求分类的复杂性,明确区分功能需求、约束、运行期质量属性、开发期质量属性等不同种类的需求就是\本\,因为各类需求对架构设计的影响截然不同。本文通过具体案例的分析,展示了如何通过RUP的4+1视图方法,针对不同需求进行架构设计,从而确保重要的需求一一被满足。

本文通过比较系统地描述网上选课系统的用例图的一步步操作完成过程和相关的用户时序图以及更加深入的“4+1”视图中的逻辑视图、开发视图、进程视图、物理视图和场景视图的绘制描述,并对涉及到的软件架构模式进行了简单明了的解释说明,直接深入地描述展示了软件需求开发过程中包括非功能和功能方面的各种需要要求,展示说明了软件体系结构设计在软件开发和程序设计中的重要地位。本实验中的网上选课系统的用例图、相关用户的时序图和相关的“4+1”

视图开发设计以及相关视图模式的说明介绍,充分表达出了软件体系结构在程序设计开发和软件开发设计测试一系列过程中的不可或缺的重要作用,特别是uml建模和“4+1”视图的引入应用,这些都无不体现了软件体系结构是风险承担者进行交流的手段、是早期设计决策的体现、是可传递可重用的模型等众多优点优势,虽然软件体系结构发展历史不是多么悠久,但它为我们个人为我们整体都奉献了许多作出了许多,使我们每个人每个整体都受益匪浅,它的贡献效益之巨大之深远是毋庸置疑的。

参考文献

1. Philippe Kruchten著,周伯生等译. Rational统一过程引论(原书第2版). 机械工业出版社,2002.

2. Karl E. Wiegers著,刘伟琴等译. 软件需求(第2版). 清华大学出版社,2004.

3. 刘寅虓. 系统分析之路(平装,第一版). 电子工业出版社,2005. 4. 葛志春.软件重用技术在产品开发中的实践.中国系统分析员,2002(4):42~47

5. 张友生.软件体系结构的现状和发展方向.程序员,2002(6):35~38 6. P.Kruchten. Architectural blueprints——the “4+1” view model of software architecture. IEEE Software,1995(6):42~50

7. 周莹新,艾波.软件体系结构建模研究.软件学报,1998(11):866~872 8. 张友生.软件体系结构的描述方法.程序员,2002(11):44~46

9. 蒋慧,吴礼发,陈卫卫.UML设计核心技术.北京:希望电子出版社,2001.1 10.贾晓琳,谭征,何坚等.基于体系结构描述的软件测试技术.西安交通大学学报,2005(8):808~811

11.刘霞,李明树,王青等.软件体系结构分析与评述方法.计算机研究与发展,2005(7):1247~1254

12.周欣,黄璜等.软件体系结构质量评价概述.计算机科学,2003(1):49~52

本文来源:https://www.bwwdw.com/article/swcf.html

Top