案例分析答案

1.UML

用例图三个基本元素:参与者,用例和通信关联
参与者是指存在于系统系统外部并与系统进行交互的任何事物,既可以是使用系统的用户,也可以是其他外部系统和设备等外部实体。
用例表示系统所提供的服务。
通信关联表示的用例与参与者或者用例与用例之间的关系

构建用例模型的四个阶段:
标识参与者,合并需求获得用例,细化用例描述,调整用例模型

用例的关系:关联、包含、扩展、泛化
类的关系:关联、依赖、继承、实现、组合、聚合

例题:
【说明】某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括:
(1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;
(2)管理员(Registrar)使用该系统管理学校(University)、系(Department)、教师(Lecturer)、学生(Student)和课程(Course)等教学基础信息;
(3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;
(4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单;(5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息;
(6)每个月到了月底系统会通过打印机打印学生的考勤信息。项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

【问题1】用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,说明教学服务系统中有哪些参与者。

参与者:学生、教师、管理员、时间、打印机。

【问题2】用例是对系统行为的动态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,“登录系统"用例与“注册课程”用例之间、“参加考试“用例与“参加补考“用例之间的关系分别属于哪种类型?总共:泛化,包含,扩展
用例之间的关系包括:包含、扩展。
“登录系统"用例与“注册课程”用例之间的关系为:包含关系。
“参加考试“用例与“参加补考”用例之间的关系为:扩展关系。

【问题3】类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,类University与类Student之间、类University和类Department之间、类Student和类Course之间的关系分别属于哪种类型?

类之间的关系:关联,依赖,组合,聚合,泛化
University与student 聚合
University与department 组合
Student与course 关联

2.质量属性

(1)性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
(2)可用性是系统能够正常运行的时间比例。
(3)可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
(4)健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
(5)安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
(6)可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。
(7)可变性是指体系结构经扩充或变更成为新体系结构的能力。
(8)易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
(9)可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
(10)功能性是系统所能完成所期望工作的能力。
(11)互操作性是指系统与外界或系统与系统之间的相互作用能力。

敏感点:为实现某种质量属性,一个或多个构件所具有的特性。
权衡点:影响多个质量属性的特性,并是多个质量属性的敏感点
架构风险:架构设计中存在问题的架构决策所带来的隐患。

针对质量属性的策略:
可用性:心跳、ping/echo、冗余、进程监视器
可修改性:抽象 信息隐藏 限制通信路径 运行时注册
性能:优先级队列 增加计算资源 减少计算开销 引入并发机制 采用资源调度
安全性:用户认证 用户授权 追踪审计 限制访问

SAAM:最早形成文档的架构分析方法,输入的是问题描述,需求说明,架构描述。分析的过程是场景开发,架构描述,单个场景描述,场景交互,总体评估

ATAM:主要关注系统的需求说明,针对系统的性能,安全性,可用性,可修改性在系统开发前进行分析,评估和折中。过程是场景和需求收集,架构视图和场景实现,属性模型的构造和分析,属性模型的折中四个阶段

系统架构设计中的非功能性需求
系统性能需求(Performance Requirements):指响应时间、吞吐量、准确性、有效性、资源利用率等与系统完成任务效率相关的指标。可靠性、可用性等指标归为此类。
安全性需求(Security Requirements):系统向合法用户提供服务并阻止非授权用户使用服务方面的系统需求。
操作性需求(Operational Requirements):与用户操作使用系统相关的一些需求。
文化需求(Cultural Requirements):带有文化背景因素的系统需求。

3.Web

Webx和spring MVC比较
基础服务支持:因为WebX在阿里巴巴和淘宝用了很多年,对于超大访问量的电子商务网站,WebX经受了考验,被证明是成熟可靠的。
多应用支持:WebX和Spring MVC一样,完全建立在Spring框架之上,可以使用Spring的所有特性。WebX被设计成多个层次,层次间的分界线很清晰,每个层次都足够开放和易于扩展。
可扩展性:WebX对Spring做了扩展,一个组件可以扩展另一个组件,也可以被其他组件扩展。

响应式Web设计是在开发和设计网页过程中产生的一种方式,它的目的是让内容布局能随用户使用显示器的不同而变化。
响应方式:
(1)弹性网格和布局
(2)图片
(3)CSS media query

web主从复制机制(理解背)
(1)可扩展性更优采用单台数据库服务器,随着访问量增加,必然会产生访问瓶颈,而主从结构大大方便服务器扩容,不影响系统使用。
(2)性能大大提升商务平台用户量大,并发访问高,主从方式采用一主多从,满足不同用户可以从不同数据库读取数据,提高访问速度。
(3)相当于做了负载均衡一主多从相当于分担了主机任务,做了负载均衡。
(4)保证数据安全主从方式实现了数据冗余,不会因某台机器硬件故障引起数据丢失。

对PHP搭建的网站进行修改和扩展:(理解背)
在这里插入图片描述
(1)Applet(2)Servlet(3)EJB容器(4)SessionBean(5)EntityBean

(php的缺点)
1、PHP是面向过程的语言,只要业务流程发生变化,修改工作量很大,所以可修改性差,同时可复用性也差。PHP语言在可靠性方面比J2EE平台差,J2EE平台有大量增强可靠性的成熟解决方案,而PHP只是一种简单的脚本语言,在可靠性方面缺乏成熟解决方案。PHP对于不同的数据库采用不同的数据库访问接口,而Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库,访问数据库的接口比较统一。所以原架构在数据库连接方面修改起来工作量也是很大的。
PHP比Java的可维护性差。
PHP比Java的扩展性差。
PHP比Java的安全性差。
PHP比Java的稳定性差。

(扩展成应用服务器集成)
2、应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。1、若系统负荷很大,可以布署多台应用服务,多台应用服务器分担任务,以达到性能要求。2、应用服务器可以通过灵活的增加服务器完成扩展,所以可扩展性很好。3、应用服务器可长时间稳定运行。因为当一台应用服务器出现故障时,可以将当前运行的事务转移至正常应用服务器上完成执行,不影响业务正常执行,从而保障高可靠性与稳定性。

双机热备份:同时提供不同服务,一台宕机另一台接手工作
双机冷备份:主系统 + 备用系统
双机双工:同时提供相同服务,就如集群

4.Web大量并发访问的技术手段:

HTML静态化手段可实现对系统经常访问的网页进行静态化以提高系统访问效率
缓存技术手段:系统应用需要频繁访问数据库,可以对经常访问的数据建立缓存,以提高并发访问效率。
p2p视频播放技术:视频播放实现边下边播完善用户体验,节省服务器带宽,降低成本,支持边下边播断点续传,支持多源下载,以提高并发访问效率
持久化
Hibernate和MyBatis两种持久化方案比较
都支持基本对象关系映射

水平分割和垂直分割
水平分割:按照记录进行分割,不同的记录可以分开保存,每个子表的列数相同。
垂直分割:按列进行分割,每个子表的行数相同。分割按照主键加一些列放到一个表,主键加另一些列放到另外一个表,通过主键进行关联。
水平分割的优点:降低在查询时需要读取的数据和索引页数,提高查询速度。
水平分割的缺点:给应用增加复杂度,在查询时需要多个表名,查询所有数据要union操作。

5.微服务架构

微服务的优点:
(1)每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
(2)微服务能够被小团队单独开发。
(3)微服务能使用不同的语言开发。
(4)微服务是松耦合的,在开发阶段和部署阶段都是独立的。
(5)去中心化。每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库。
微服务缺点:
(1)很难在不采用分布式事务的情况下跨服务实现功能
(2)跨服务实现功能要求团队之间的紧密协作
(3)测试工作更加困难
(4)部署复杂

应用网关实现微服务的主要技术之一,简述应用网关的作用
(1)提供统一的入口
(2)可以进行权限身份认证等
(3)可以根据流量进行限流
(4)数据缓存
(5)性能监控
(6)异常重试
(7)服务降级

6.嵌入式

特点:
(1)系统专用性强嵌入式系统是针对具体应用的专门系统。它的个性化很强,软件和硬件结合紧密。一般要针对硬件进行软件的开发和移植,根据硬件的变化和增减对软件进行修改。
(2)系统实时性强许多嵌入式系统对外部事件要求在限定的时间内及时作出响应,具有实时性。根据实时性的强弱,通常将嵌入式系统分为实时嵌入式系统和非实时嵌入式系统,其中大部分为实施嵌入式系统。
(3)软硬件依赖性强嵌入式系统的专用性决定了其软硬件的互相依赖性很强,两者必须协同设计,以达到共同实现预定功能的目的,并满足性能、成本和可靠性等方面的严格要求。
(4)处理器专用嵌入式系统的处理器一般是为某一特定目的和应用而专门设计的。通常具备功耗低、体积小和集成度高等特点,能够将许多在通用计算机上需要由板卡完成的任务和功能集成到芯片内部,从而有利于嵌入式系统的小型化和移动能力的增强。
(5)多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术、机械技术与各行业的具体应用相结合的产物。通用计算机技术也离不开这些技术,但它们相互结合的紧密程度不及嵌入式系统。
(6)系统透明性。嵌入式系统在形态上与通用计算机系统差距甚大。它的输入设备往往不是常见的鼠标和键盘之类的设备,甚至不用输出装置,用户可能根本感觉不到它所使用的设备中有嵌入式系统的存在,即使知道,也不必关心嵌入式系统的相关情况。
(7)系统资源受限。嵌入式系统为了达到结构紧凑、高可靠性和低成本的目的,其存储容量、I/O设备的数量和处理能力都比较有限。

一些技术手段(理解即可):
(1)HTML静态化手段可实现对系统经常访问的网页进行静态化以提高系统访问效率,但系统页面通常需要根据数据库中的用户信息以及用户的选择动态显示。因此不适合采用。
(2)缓存技术手段:系统应用需要频繁访问数据库,可以对经常访问的数据建立缓存,以提高并发访问效率。因此适合。
(3)p2p视频播放技术:视频播放实现边下边播完善用户体验,节省服务器带宽,降低成本,支持边下边播断点续传,支持多源下载,以提高并发访问效率。因此适合。
(4)根据需求(3),系统需有效处理大量并发请求,且系统预期用户呈明显地域集中分布特征,因此可以采用集群与镜像手段提高用户的并发访问效率,且技术原则(b)要求系统应提供热备份机制以防止服务器意外失效,因此可以采用镜像机制提高系统的可靠性,根据题干中技术原则(c),又可根据需要追加集群与镜像所需的软硬件投入。因此适合。
(5)负载均衡将是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,在系统采用集群和镜像技术手段时,负载均衡也是系统必须采用的相应配合手段。因此适合。综上不难看出,除HT

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值