软件体系结构小论文

来源:软件设计师 发布时间:2020-07-29 点击:

 基于场景的校园论坛系统体系结构分析与评估

 [摘要]随着软件规模的不断扩大,软件体系结构在软件开发设计过程中的地位越来越重要,软件体系结构已经成为软件开发过程的重要组成部分。体系结构分析与评价可以发现体系结构中的潜在风险,帮助软件开发人员进行决策。通过对不同的软件体系结构分析评价方法的比较,结合论坛项目特点,分别使用 SAAM 和 SAAMM 方法对论坛进行了分析与评价,最后给出了软件体系进一步改进的建议。

 [关键字]软件体系结构,软件体系结构分析评价,质量属性,体系结构描述语言

 1 1 、引言

 软件体系结构一般通过组件、连接件等元素对软件系统的结构和行为进行描述,是系统的高层抽象。如软件体系结构一般在软件开发的早起开始构建,用于指导开发人员有计划的进行软件开发活动。从软件开发设计的早期一直到软件的完成,软件体系结构一直发挥着重要的作用,贯穿软件开发过程的始终。软件体系结构的长周期性使的对它的分析与评价也极其重要。一个好的软件体系结构分析与评价能够帮助开发人员尽可能早的发现软件体系结构中的潜在风险,并指导开发人员对体系结构做出合理的改动,从而提升整个开发过程的质量与效率。如果说软件体系结构是一个软件开发组织的宝贵财富,那么软件体系结构分析评价方法就是组织使用软件体系结构所得的宝贵经验。

 但是令人比较遗憾的是软件体系结构到目前为止仍未有一个统一明确的定义,本文采用以下定义:“软件系统或计算系统的软件体系结构就是系统的一个或多个结构,它包括软件组件、这些组件的外部可见属性以及组件之间的相互关系。该定义侧重描述了软件系统内部组件之间的关系,强调了组件在软件体系结构中的重要性。

 2 2 、相关概念

 1 2.1 质量属性

 质量属性用以描述系统的非功能特性,体现了软件拥有所期望的属性组合的程度。ISO9126 软件质量模型是评价软件质量的国际标准,该模型中质量属性共包括功能性、可靠

 性、可用性、有效性、可维护性以及可移植性,在这六大质量属性下还包含 27 个质量子属性,以及对应的度量指标。功能性是指当软件在指定条件下使用时,软件产品提供明确的和隐含要求的功能的能力;可靠性是指在指定条件下使用时,软件铲平维持规定的性能水平的能力;可用性是指在指定条件下使用时,产品被理解、学习、使用和吸引用户的能力;有效性是指在指定条件下使用时,相对于所用资源的数量,软件产品可提供适当性能的能力;可维护性是指产品纠错,改进功能或适应环境,需求和功能规格说明的变化可被修改的能力;可移植性是指软件产品从一种环境迁移到另外一种环境的能力。虽然质量模型给出了这些数量属性的定义,但并没有给出六大质量属性与其所属子属性的具体联系。当使用分析评价方法对软件体系结构进行分析评价时需要明确具体针对那些质量属性进行分析与评价,若抛开这些质量属性去评价软件体系结构则这种评价将毫无意义。

 2 2.2 风险承担者和场景

 风险承担者是会与软件体系结构及其产品有关系的相关人员,主要包括项目经理、软件开发人员、系用户,需求分析人员等。在软件开发的各个阶段都离不开风险承担者的参与,因此在对软件体系结构进行分析与评估时需要充分考虑到风险承担者,尤其是用户的意见。

 场景是对风险承担者与软件系统交互的简单描述,如用户要求系统所要实现的功能,开发人员为系统设置新功能等。场景可以将不易表达的质量属性需求描述转换为具体的易于理解的表述形式。

 3 3 、分析评估方法

 3.1 SAAM 及其变体

 软件体系结构分析与评价可以分为定性分析与定量分析两种分析方法,其中定性分析采用基于清单、调查问卷和场景的分析评价技术,定量分析则采用基于度量指标、模拟、原型系统和数学模型等技术。对于不同的软件体系结构需要具体情况具体分析,没有哪一种分析评价技术能够适用于所有的体系结构。

 SAAM 是最早形成文档并被广泛使用的方法,最初 SAAM 被用于软件体系结构之间的比较,分析软件体系结构的可修改性,后来 SAAM 被证明也可以用于分析软件体系结构的其他属性。SAAM是基于场景的评估方法,简单易用。SAAM支持对体系结构的静态结构分析和动态结构分析,有利于评估体系结构的潜在风险。另外,SAAM 方法中的活动以及活动之间的依赖关系比较稳定,是一种比较规范的基于场景的体系结构分析方法。

 SAAM会把任何形式的质量属性具体化为场景,但是可修改性是SAAM分析的主要质量属性。SAAM 评估过程共有五个部分组成,分别是体系结构描述、场景开发、单个场景评估、场景交互和总体评估。本文对校园论坛系统进行分析评价时将会严格按照这五个步骤进行。

 在 SAAM 的基础上还出现了其他多种评估方法,这里将对这些评估方法进行简单的介绍,这些方法有 SAAMCS、ESAAMI、SAAMER 等。

 SAAMCS 将场景的复杂度作为评价的重要因素,它在 SAAM 的基础上,对场景开发和评价方法上做出了改进。SAAMCS 与 SAAM 相同都适用于软件体系结构的最终版本,但是SAAMCS只分析系统的灵活性,不如SAAM在分析质量属性上的多样性。ESAAMI将SAAM用于面向对象领域,与 SAAM 不同的是 ESAMMI 考虑到了知识的重用。SAAMER 主要评价软件系统的演化和可重用性,演化是系统可维护性和可修改性的集成。SAAMER 会考虑需求变动和领域专家的经验作为信息来源。

 除了这些方法之外还有许多的软件体系评估方法,这里就不一一介绍了。

  4 4 、校园论坛系统的分析与评价

 1 4.1 评估方法的选择

 文中选择 SAAM 评估方法对校园论坛系统进行分析评价,之所以选择 SAAM 方法是基于以下几点:1、SAAM 方法出现较早,评价方法已经相当晚上;2、现在很多的评价方法都是基于 SAAM 方法的扩展和改进,深入研究 SAAM 方法有利于学习其他方法;3、SAAM 以场景为中心简单易用;4、支持体系结构的静态和动态分析;5、有利于找出体系结构的潜在风险。

 2 4.2 校园论坛体系结构

 校园交流论坛主要面向高校老师和学生,用以满足用户间日常讨论交流的需要。整个论坛系统由三大模块组成,分别是学生模块、老师模块、管理员模块。学生模块主要面向广大学生,学生是论坛系统的主要用户,该模块实现了注册登录、修改密码、发布帖子等。教师模块是整个系统中的第二大模块,除实现学生模块所具有的功能外,教师模块还实现了管理帖子、管理版面。管理员模块会赋予管理员最高的使用权限,管理员具有老师和学生所能实现的所有功能,管理员还可以对违规账号进行注销,修改用户权限对论坛系统的使用状况进行统计等。

 整个系统共有六大构件组成分别是用户管理构件、帖子管理构件、版面管理构件、用户数据操作构件、帖子数据操作构件以及版面数据操作构件。用户管理构件、帖子管理构件和版面管理构件均处于业务逻辑层,用于将用户信息、帖子信息和版面信息与用户实体绑定,用户数据操作构件、帖子数据操作构件和版面数据操作构件处于数据层,实现用户、帖子以及版面信息与数据库的交互。从这些构件和功能不难看出,该校园论坛系统体系结构对整个系统功能体系的划分较为明确,基本实现了论坛的所有基本功能。

 3 4.3 场景开发

 在场景开发的过程中,我主要考虑了学生用户、教师、管理员、开发人员四类风险承担者。这四者可以说是校园论坛的所有相关人员了,这其中又以学生用户为重中之重,因为学生用户在所有的风险承担者中所占比例最大,也是最活跃的用户。在设计场景的过程中主要考虑到了校园论坛软件系统的可修改性 (1)

 论坛主页面功能更丰富一些,比如栏目分类选择,页面美化等 (2)

 对自己发布的话题进行管理,可以删除,修改话题以及评论管理等 (3)

 对别人发布的话题可以点赞,举报等 (4)

 可以发布音频和视频等内容 (5)

 教师希望可以按姓名搜索某一学生 (6)

 教师希望发布的信息可以让指定的学生群体看到 (7)

 为学生在论坛上建立虚拟班级 (8)

 设置自己的爱好,系统自动推送相关话题 (9)

 对发布的话题进行审核,审核不通过的不允许发布 (10)

 完善用户奖惩机制,根据发帖记录其积分,赋予不同权限 (11)

 用户注册时需要邮箱验证 (12)

 查询实时在线人数,注册人数等 (13)

 将热度较高的话题添上标识,优先显示 (14)

 实现登录时,可使用 QQ、微信、微博等常用通讯软件账号的登录功能 (15)

 在首页添加公告模块,可对所有登录用户展示在本站交流时的注意事项。

 可以看到文中共选取了 15 个场景,这些场景涉及到不同的风险承担者。其中设计学生的场景最多,这也与学生是最大的用户群体有关。

 下面对其中的部分场景进行简要的说明:学生既是论坛的主要使用者,又是一个追求新鲜事物,对事物有着不一样看法的群体,所以为了满足学生多样化的需求,论坛主页面的设计需要美观简约方便等;为了使优质贴被更多的人看到,论坛应对优质贴采取置顶,推荐等措施;论坛应具有按人名或学号搜索的功能,以满足教师查找指定的学生;当教师需要对学生发布信息时,希望每个学生都能收到;对于不同班级的学生可能需要在论坛上拥有属于自己的班级小集体,同时教师也可以按照班级讲学生区分开来;当论坛帖子过多时,为帮助学生和教师能够更好的浏览论坛信息,论坛应具有根据个人偏好推荐贴子的功能;为充分调动学生使用论坛的积极性,论坛可以根据积分为学生设置等级制度,等级越高的学生将在论坛中享有越高的权限;为了保证学生和教师登录的安全性,论坛可以考虑增加邮箱验证方式;为了满足多样的登录方式,考虑到 QQ、微信使用的广泛性,论坛可以增加第三方账号登录;对于管理员想要统计论坛使用数据的情况,论坛系统应具备数据统计的功能;论坛的主

 要功能是为学生和教师提供一个交流学习的场所,所以需要保持整个论坛的正能量,这就需要禁止不良内容出现的论坛,管理员需要及时发现并处理论坛上的不良贴。

 4 4.4 单个场景评估

 在对场景进行评估时,需要区分每一个场景是直接场景还是间接场景。所谓直接场景是指本体系结构可以直接支持的场景,即不需要对体系结构做任何修改即可直接实现,相对的间接场景则需要对现有体系结构做些更才能支持的场景。在分析评估的过程中,假设每个场景的优先级是一样的,这样可以简化评价的过程。下面对每个场景进行评价,对上面 15个场景,依次按照编号进行评估,若为间接支持需要指出需要对那些构件进行变动。

 (1)

 丰富美化论坛主页面:间接支持,美化界面,要对论坛版面进行改动,需要对版面管理构件进行改动。

 (2)

 用户对自己发布的帖子进行管理:直接支持,用户对自己的帖子进行管理,使论坛系统所具有的基本功能,不需要对构件进行改动。

 (3)

 用户发布音频和视频等内容:间接支持,由于论坛只支持发布文字信息,不支持音频和视频信息,若要实现此场景需要改动的模块是帖子管理构件,帖子数据操作构件。

 (4)

 用户设置自己的爱好,系统自动推送相关话题:间接支持,若要给用户推荐用户关心的话题,需要获取用户数据和帖子数据,并将帖子推荐给对应的用户,需要改动用户数据构件,帖子管理构件。

 (5)

 教师希望可以按姓名搜索某一学生:间接支持,增加按名称搜索的功能需要查询用户数据库,需要改动用户数据操作构件。

 (6)

 教师希望发布的信息可以让指定的学生群体看到:间接支持,要使得每一位同学都看到教师发布的信息,需要对论坛中的学生进行通知,需要改动帖子管理构件。

 (7)

 为学生在论坛上建立虚拟班级:间接支持,要为学生建立班级,就需要将学生按照学生的注册信息区分开来,需要改动用户管理构件。

 (8)

 用户对别人发布的话题可以点赞,举报等:间接支持。需要改动帖子管理构件、帖子数据操作构件。

 (9)

 管理员对发布的话题进行审核,审核不通过的不允许发布:间接支持。需要改动帖子管理构件。

 (10)

 完善用户奖惩机制,根据发帖记录其积分,赋予不同权限:间接支持。需要改动用户管理构件、用户数据操作构件。

 (11)

 用户注册时需要邮箱验证:间接支持。需要改动用户管理构件。

 (12)

 查询实时在线人数,注册人数等:间接支持。需要改动用户数据操作构件。

 (13)

 将热度较高的话题添上标识,优先显示:间接支持。需要改动帖子管理构件、

 帖子数据操作构件。

 (14)

 实现登录时,可使用 QQ、微信、微博等常用通讯软件账号的登录功能:间接支持。需要改动用户管理构件、用户数据操作构件。

 (15)

 在首页添加公告模块,可对所有登录用户展示在本站交流时的注意事项:间接支持。需要改动版面数据构件。

 5 4.5 场景交互

  当两个或两个以上的场景要求对同一个构件进行改动时,则说明发生了场景交互,场景交互是 SAAM 方法对软件体系结构进行评价的重要因素。

 模块名 需要改动的数目 用户管理构件 4 帖子管理构件 6 版面管理构件 2 用户数据操作构件 6 帖子数据操作构件 3 版面数据操作构件 2

  表 1 场景交互时模块需要改动的数目

 6 4.6 总体评价与建议

  应用 SAAM 方法对论坛系统体系结构进行分析后,可以得出如下结论:

 (1)系统的设计很清晰,能够实现校园论坛的主要功能,但是仍然有一些功能未能实现,性能一般,有待进一步完善。

 (2)系统各个构件基本功能已具备,但是其中帖子管理和用户数据构件和其他部分耦合度较高,降低了软件的可修改性。

 (3)由于采用了面向对象的体系结构,所以各个构件的可重用性比较强。

 总之,论坛系统的体系结构的特性一般,能够满足用户的一般需求。不足之处,如部分场景修改涉及的构件较多,说明之间的耦合度高,修改困难。因此,需要从性能和可修改性方面改进。

 5 5 、总结

 本文通过对 SAAM 软件体系结构分析评价方法对校园论坛系统进行了分析与评价。文中着重分析了论坛系统的可修改性,从分析评价的结果可以得知,该校园论坛系统的可修改性不佳。为了使论坛系统具有较好的可修改性,可以考虑对构件进一步的划分,保证构件内部功能相互之间联系紧密,构件与构件之间的联系尽量减小,实现构件间的高聚合低耦合。

 本文基于 SAAM 评价方法对论坛体系结构进行了分析评价,SAAM 虽然有很多的优点,但是其缺点也是不可避免的。SAAM 具有以下缺点:没有提供体系结构质量属性的清晰的度量;只适合对体系结构做粗糙的评价;评价过程过度依赖专家经验。SAAM 的缺点导致我们在运用它对论坛体系结构进行分析评估时存在不足,但我们不能因为 SAAM 存在不足就弃之不用,SAAM 也有其优点,应该取其精华,去其糟泊。

 参考文献

 [1] L. Dobrica and E. Niemela, "A survey on software architecture analysis methods," in IEEE Transactions on Software Engineering, vol. 28, no. 7, pp. 638-653, July 2002. [2] 杨红,杨德礼,郑志.软件体系结构分析与评价方法研究[J].计算机工程,2007,33(5):44-46,70. DOI:10.3969/j.issn.1000-3428.2007.05.015. [3] 张 健 沛 , 刘 新 涛 , 杨 静 . 软 件 体 系 结 构 分 析 与 评 估 方 法 研 究 [J]. 计 算 机 应 用 研究,2007,24(3):21-26. DOI:10.3969/j.issn.1001-3695.2007.03.005 [4] 孙昌爱,刘超,金茂忠.软件体系结构分析及场景技术在其中的应用[J].计算机科学,2000,27(6):17. DOI:10.3969/j.issn.1002-137X.2000.06.005.

 [5] 程林辉,张凯.基于SAAM方法的CASL编译程序软件体系结构分析[J].中南民族大学学报(自然科学版),2004(04):76-78.

推荐访问:体系结构 小论文 软件
上一篇:爱国征文题目
下一篇:党建工作

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有