基于场景的校园论坛系统体系结构分析与评估摘要随着软件规模的不断扩大软件体系结构在软件开发设计过程中的地位越来越重要软件体系结构已经成为软件开发过程的重要组成部分体系结构分析与评价可以发现体系结构中的潜在风险帮助软件开发人员进行决策通过对不同的软件体系结构分析评价方法的比较结合论坛项目特点分别使用和方法对论坛进行了分析与评价最后给出了软件体系进一步改进的建议关键字软件体系结构软件体系结构分析评价质量属性体系结构描述语言引言软件体系结构一般通过组件连接件等元素对软件系统的结构和行为进行描述是系统的高层抽象如软件体系结构一般在软件开发的早起开始构建用于指导开发人员有计划的进行软件开发活动从软件开发设计的早期一直到软件的完成软件体系结构一直发挥着重要的作用贯穿软件开发过程的始终软件体系结构的长周期性使的对它的分析与评价也极其重要一个好的软件体系结构分析与评价能够帮助开发人员尽可能早的发现软件体系结构中的潜在风险并指导开发人员对体系结构做出合理的改动从而提升整个开发过程的质量与效率如果说软件体系结构是一个软件开发组织的宝贵财富那么软件体系结构分析评价方法就是组织使用软件体系结构所得的宝贵经验但是令人比较遗憾的是软件体系结构到目前为止仍未有一个统一明确的定义本文采用以下定义软件系统或计算系统的软件体系结构就是系统的一个或多个结构它包括软件组件这些组件的外部可见属性以及组件之间的相互关系该定义侧重描述了软件系统内部组件之间的关系强调了组件在软件体系结构中的重要性相关概念质量属性质量属性用以描述系统的非功能特性体现了软件拥有所期望的属性组合的程度软件质量模型是评价软件质量的国际标准该模型中质量属性共包括功能性可靠性可用性有效性可维护性以及可移植性在这六大质量属性下还包含个质量子属性以及对应的度量指标功能性是指当软件在指定条件下使用时软件产品提供明确的和隐含要求的功能的能力可靠性是指在指定条件下使用时软件铲平维持规定的性能水平的能力可用性是指在指定条件下使用时产品被理解学习使用和吸引用户的能力有效性是指在指定条件下使用时相对于所用资源的数量软件产品可提供适当性能的能力可维护性是指产品纠错改进功能或适应环境需求和功能规格说明的变化可被修改的能力可移植性是指软件产品从一种环境迁移到另外一种环境的能力虽然质量模型给出了这些数量属性的定义但并没有给出六大质量属性与其所属子属性的具体联系当使用分析评价方法对软件体系结构进行分析评价时需要明确具体针对那些质量属性进行分析与评价若抛开这些质量属性去评价软件体系结构则这种评价将毫无意义风险承担者和场景风险承担者是会与软件体系结构及其产品有关系的相关人员主要包括项目经理软件开发人员系用户需求分析人员等在软件开发的各个阶段都离不开风险承担者的参与因此在对软件体系结构进行分析与评估时需要充分考虑到风险承担者尤其是用户的意见场景是对风险承担者与软件系统交互的简单描述如用户要求系统所要实现的功能开发人员为系统设置新功能等场景可以将不易表达的质量属性需求描述转换为具体的易于理解的表述形式分析评估方法及其变体软件体系结构分析与评价可以分为定性分析与定量分析两种分析方法其中定性分析采用基于清单调查问卷和场景的分析评价技术定量分析则采用基于度量指标模拟原型系统和数学模型等技术对于不同的软件体系结构需要具体情况具体分析没有哪一种分析评价技术能够适用于所有的体系结构是最早形成文档并被广泛使用的方法最初被用于软件体系结构之间的比较分析软件体系结构的可修改性后来被证明也可以用于分析软件体系结构的其他属性是基于场景的评估方法简单易用支持对体系结构的静态结构分析和动态结构分析有利于评估体系结构的潜在风险另外方法中的活动以及活动之间的依赖关系比较稳定是一种比较规范的基于场景的体系结构分析方法会把任何形式的质量属性具体化为场景但是可修改性是分析的主要质量属性评估过程共有五个部分组成分别是体系结构描述场景开发单个场景评估场景交互和总体评估本文对校园论坛系统进行分析评价时将会严格按照这五个步骤进行在的基础上还出现了其他多种评估方法这里将对这些评估方法进行简单的介绍这些方法有等将场景的复杂度作为评价的重要因素它在的基础上对场景开发和评价方法上做出了改进与相同都适用于软件体系结构的最终版本但是只分析系统的灵活性不如在分析质量属性上的多样性将用于面向对象领域与不同的是考虑到了知识的重用主要评价软件系统的演化和可重用性演化是系统可维护性和可修改性的集成会考虑需求变动和领域专家的经验作为信息来源除了这些方法之外还有许多的软件体系评估方法这里就不一一介绍了校园论坛系统的分析与评价评估方法的选择文中选择评估方法对校园论坛系统进行分析评价之所以选择方法是基于以下几点方法出现较早评价方法已经相当晚上现在很多的评价方法都是基于方法的扩展和改进深入研究方法有利于学习其他方法以场景为中心简单易用支持体系结构的静态和动态分析有利于找出体系结构的潜在风险校园论坛体系结构校园交流论坛主要面向高校老师和学生用以满足用户间日常讨论交流的需要整个论坛系统由三大模块组成分别是学生模块老师模块管理员模块学生模块主要面向广大学生学生是论坛系统的主要用户该模块实现了注册登录修改密码发布帖子等教师模块是整个系统中的第二大模块除实现学生模块所具有的功能外教师模块还实现了管理帖子管理版面管理员模块会赋予管理员最高的使用权限管理员具有老师和学生所能实现的所有功能管理员还可以对违规账号进行注销修改用户权限对论坛系统的使用状况进行统计等整个系统共有六大构件组成分别是用户管理构件帖子管理构件版面管理构件用户数据操作构件帖子数据操作构件以及版面数据操作构件用户管理构件帖子管理构件和版面管理构件均处于业务逻辑层用于将用户信息帖子信息和版面信息与用户实体绑定用户数据操作构件帖子数据操作构件和版面数据操作构件处于数据层实现用户帖子以及版面信息与数据库的交互从这些构件和功能不难看出该校园论坛系统体系结构对整个系统功能体系的划分较为明确基本实现了论坛的所有基本功能场景开发在场景开发的过程中我主要考虑了学生用户教师管理员开发人员四类风险承担者这四者可以说是校园论坛的所有相关人员了这其中又以学生用户为重中之重因为学生用户在所有的风险承担者中所占比例最大也是最活跃的用户在设计场景的过程中主要考虑到了校园论坛软件系统的可修改性论坛主页面功能更丰富一些比如栏目分类选择页面美化等对自己发布的话题进行管理可以删除修改话题以及评论管理等对别人发布的话题可以点赞举报等可以发布音频和视频等内容教师希望可以按姓名搜索某一学生教师希望发布的信息可以让指定的学生群体看到为学生在论坛上建立虚拟班级设置自己的爱好系统自动推送相关话题对发布的话题进行审核审核不通过的不允许发布完善用户奖惩机制根据发帖记录其积分赋予不同权限用户注册时需要邮箱验证查询实时在线人数注册人数等将热度较高的话题添上标识优先显示实现登录时可使用QQ微信微博等常用通讯软件账号的登录功能在首页添加公告模块可对所有登录用户展示在本站交流时的注意事项可以看到文中共选取了个场景这些场景涉及到不同的风险承担者其中设计学生的场景最多这也与学生是最大的用户群体有关下面对其中的部分场景进行简要的说明学生既是论坛的主要使用者又是一个追求新鲜事物对事物有着不一样看法的群体所以为了满足学生多样化的需求论坛主页面的设计需要美观简约方便等为了使优质贴被更多的人看到论坛应对优质贴采取置顶推荐等措施论坛应具有按人名或学号搜索的功能以满足教师查找指定的学生当教师需要对学生发布信息时希望每个学生都能收到对于不同班级的学生可能需要在论坛上拥有属于自己的班级小集体同时教师也可以按照班级讲学生区分开来当论坛帖子过多时为帮助学生和教师能够更好的浏览论坛信息论坛应具有根据个人偏好推荐贴子的功能为充分调动学生使用论坛的积极性论坛可以根据积分为学生设置等级制度等级越高的学生将在论坛中享有越高的权限为了保证学生和教师登录的安全性论坛可以考虑增加邮箱验证方式为了满足多样的登录方式考虑到微信使用的广泛性论坛可以增加第三方账号登录对于管理员想要统计论坛使用数据的情况论坛系统应具备数据统计的功能论坛的主要功能是为学生和教师提供一个交流学习的场所所以需要保持整个论坛的正能量这就需要禁止不良内容出现的论坛管理员需要及时发现并处理论坛上的不良贴单个场景评估在对场景进行评估时需要区分每一个场景是直接场景还是间接场景所谓直接场景是指本体系结构可以直接支持的场景即不需要对体系结构做任何修改即可直接实现相对的间接场景则需要对现有体系结构做些更才能支持的场景在分析评估的过程中假设每个场景的优先级是一样的这样可以简化评价的过程下面对每个场景进行评价对上面个场景依次按照编号进行评估若为间接支持需要指出需要对那些构件进行变动丰富美化论坛主页面间接支持美化界面要对论坛版面进行改动需要对版面管理构件进行改动用户对自己发布的帖子进行管理直接支持用户对自己的帖子进行管理使论坛系统所具有的基本功能不需要对构件进行改动用户发布音频和视频等内容间接支持由于论坛只支持发布文字信息不支持音频和视频信息若要实现此场景需要改动的模块是帖子管理构件帖子数据操作构件用户设置自己的爱好系统自动推送相关话题间接支持若要给用户推荐用户关心的话题需要获取用户数据和帖子数据并将帖子推荐给对应的用户需要改动用户数据构件帖子管理构件教师希望可以按姓名搜索某一学生间接支持增加按名称搜索的功能需要查询用户数据库需要改动用户数据操作构件教师希望发布的信息可以让指定的学生群体看到间接支持要使得每一位同学都看到教师发布的信息需要对论坛中的学生进行通知需要改动帖子管理构件为学生在论坛上建立虚拟班级间接支持要为学生建立班级就需要将学生按照学生的注册信息区分开来需要改动用户管理构件用户对别人发布的话题可以点赞举报等间接支持需要改动帖子管理构件帖子数据操作构件管理员对发布的话题进行审核审核不通过的不允许发布间接支持需要改动帖子管理构件完善用户奖惩机制根据发帖记录其积分赋予不同权限间接支持需要改动用户管理构件用户数据操作构件用户注册时需要邮箱验证间接支持需要改动用户管理构件查询实时在线人数注册人数等间接支持需要改动用户数据操作构件将热度较高的话题添上标识优先显示间接支持需要改动帖子管理构件帖子数据操作构件实现登录时可使用QQ微信微博等常用通讯软件账号的登录功能间接支持需要改动用户管理构件用户数据操作构件在首页添加公告模块可对所有登录用户展示在本站交流时的注意事项间接支持需要改动版面数据构件场景交互当两个或两个以上的场景要求对同一个构件进行改动时则说明发生了场景交互场景交互是方法对软件体系结构进行评价的重要因素模块名需要改动的数目用户管理构件4帖子管理构件6版面管理构件2用户数据操作构件6帖子数据操作构件3版面数据操作构件2表场景交互时模块需要改动的数目总体评价与建议应用方法对论坛系统体系结构进行分析后可以得出如下结论系统的设计很清晰能够实现校园论坛的主要功能但是仍然有一些功能未能实现性能一般有待进一步完善系统各个构件基本功能已具备但是其中帖子管理和用户数据构件和其他部分耦合度较高降低了软件的可修改性由于采用了面向对象的体系结构所以各个构件的可重用性比较强总之论坛系统的体系结构的特性一般能够满足用户的一般需求不足之处如部分场景修改涉及的构件较多说明之间的耦合度高修改困难因此需要从性能和可修改性方面改进总结本文通过对软件体系结构分析评价方法对校园论坛系统进行了分析与评价文中着重分析了论坛系统的可修改性从分析评价的结果可以得知该校园论坛系统的可修改性不佳为了使论坛系统具有较好的可修改性可以考虑对构件进一步的划分保证构件内部功能相互之间联系紧密构件与构件之间的联系尽量减小实现构件间的高聚合低耦合本文基于评价方法对论坛体系结构进行了分析评价虽然有很多的优点但是其缺点也是不可避免的具有以下缺点没有提供体系结构质量属性的清晰的度量只适合对体系结构做粗糙的评价评价过程过度依赖专家经验的缺点导致我们在运用它对论坛体系结构进行分析评估时存在不足但我们不能因为存在不足就弃之不用也有其优点应该取其精华去其糟泊参考文献LDobricaandENiemelaAsurveyonsoftwarearchitectureanalysismethodsinIEEETransactionsonSoftwareEngineeringvol28no7pp638653July2002杨红杨德礼郑志软件体系结构分析与评价方法研究J计算机工程2007335444670DOI103969jissn10003428200705015张健沛刘新涛杨静软件体系结构分析与评估方法研究J计算机应用研究20072432126DOI103969jissn10013695200703005孙昌爱刘超金茂忠软件体系结构分析及场景技术在其中的应用J计算机科学200027617DOI103969jissn1002137X200006005程林辉张凯基于SAAM方法的CASL编译程序软件体系结构分析J中南民族大学学报自然科学版2004047678