【软件系统架构设计师-案例-2】系统分析与设计
对象模型:指明了系统应该做什么,描述了系统的数据结构。动态模型:指明了什么时候做,描述了系统的控制结构。功能模型:定义了做事情的实体,用于描述系统功能。
J2EE体系结构
(1)View:JSP(JSP部署于网络服务器上,可以响应服务端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。)
(2)Controller:Servlet(用java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互地)
(3)Model:Entity Bean(实体Bean 可以存储在持久存储介质上的持久对象,会话Bean,用于实现业务逻辑,比如用户注册、信息记录、数据操作等)
基本流程:JSP发一个数据到servlet,servlet收到后做下解析再根据数据调用相应的service去服务,service如果有要调用数据库就通过DAO和数据库做交互,使用javaBean完成封装,返回结果给servlet,servlet再返回给JSP。
EJB(构件)中的Bean(构件)分为哪三种类型?每种类型Bean的职责是什么?
EJB中Bean分为三种类型:Session Bean ,Entity Bean,Message-Driven Bean.
(1)Session Bean的职责:会话Bean,用于实现业务逻辑,比如用户注册、信息记录、数据操作等,主要维护一个短暂的会话,当客户端执行完成后,Session Bean和它的数据会消失。
(2)Entity Bean的职责:实体Bean,维护一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责entity Bean数据的存储。
(3)Message-Driven Bean的职责:结合了Session Bean和JMS,允许异步接收消息。
用例建模的主要元素是用例和参与者,有哪些参与者和用例?
用例是系统提供给参与者的功能,通常用椭圆表示,描述了系统的一项功能,可以是用户执行的操作“登录”、“查询”等。用例图展示了系统的功能模型。
参与者是与系统交互的用户、组织或外部系统,通常用小人表示,可以是人、其他系统(打印机)、可以运行的进程(定时任务)。
用例之间的关系有哪几种类型?
-
包含关系
用例“注册学生信息”和“充值”与用例“用户登陆”之间的关系就是包含关系。b和a本质不一样,就是做b之前一定要做a,那a和b就是包含。
-
扩展关系

- 泛化关系

“会员注册”和“电话注册”、“邮件注册”之间是泛化关系。即子用例与父用例之间的关系。泛化关系是一种继承关系,表示子用例将继承父用例的所有结构和行为。一个父用例可能是“使用计算器”,而子用例可能是“使用计算器的加法功能”和“使用计算器的减法功能”。
用例图包含哪几个基本元素?
(1)参与者。参与者是指存在于系统外部并与系统进行交互的任何事物,既可以是使用系统的用户,也可以是其他外部系统和设备等外部实体。
(2)用例。用例表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。
(3)通信关联。通信关联表示的是参与者和用例之间的关系,或者是用例和用例之间的关系。
类之间的关系有哪几种类型?
聚合:大雁聚集起来变雁群
组合:一个鸟由两个翅膀组成
关联:企鹅与气候的联系
依赖:动物需要水和空气
泛化(继承):唐老鸭属于鸭的一种
数据流图和流程图?
(1)数据流图是一种图形化的系统分析工具,用于描述数据在系统中的流动、处理和存储过程。目的是分析系统的数据处理逻辑,展示系统中数据的来源、流向、处理过程和存储位置。
(2)流程图是用图形符号表示工作流或工作过程的一种图示。侧重于描述一个业务流程的具体步骤和决策点。展示任务的执行顺序、分支情况和循环操作等。
(3)数据流图展现系统的数据流,流程图展示控制流;数据流图的处理过程可并行,系统流程图在某个时间点只能处于一个处理过程。
【E-R表示数据模型,DFD表示功能模型,状态转换图表示行为模型】
为什么采用数据流图作为建模手段?
为了更好地对数据处理流程以及外部角色的关联进行建模。
数据流图和数据字典在系统分析阶段和系统设计阶段的作用分别是什么?
数据流图像地图一样展示数据流程,让大家清楚功能边界,明白数据流转,发现系统问题;数据字典是数据的说明书,为数据库设计提供信息,让大家对数据的理解保持一致。
1.分析阶段:
数据流图:理解需求,定边界,发现问题
数据字典:定义数据、保持一致、检查需求
2. 设计阶段:
数据流图:架构设计、数据库和处理流程设计的基础
数据字典:数据库详细设计、接口设计、代码实现的依据
数据流图容易存在的问题以及高质量的数据流图应考虑的三个原则。
(1)容易存在的问题:只有输入没有输出,产生数据黑洞;只有输出没有输入,无中生有;外部数据没有加工处理,直接到数据存储。【外部实体作为数据来源和数据去处,常见的错误集中在孤立的外部实体】
(2)高质量数据流图设计原则:
复杂性最小化原则;
数据流一致性原则;
接口最小化原则。
信息工程方法中的“实体(entity)”和面向对象中的“类”之间有什么不同?
实体用于数据建模,类用于面向对象建模。实体只有属性,类有属性和操作。
在OOA方法中,构建用例模型一般需要经历几个阶段?
(1)识别参与者
(2)合并需求获得用例
(3)细化用例描述
(4)调整用例模型
面向切面编程(AOP)
是面向对象编程(OOP)的补充,用于处理系统中分布于各个模块(如类、方法)中的横切关注点。横切关注点是指那些会跨越多个模块的功能,例如日志记录、安全检查、事物管理等。横切关注点的的代码会分散在各个业务逻辑方法中,AOP将横切关注点提取出来成为独立的模块,称为切面,然后将切面织入到业务逻辑中。分为三个步骤:(1)切面分解(2)关注点实现(3)切面的重新组合
采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,分别介绍3种模型并说明它们之间的关联关系。
对象模型:指明了系统应该做什么,描述了系统的数据结构。
动态模型:指明了什么时候做,描述了系统的控制结构。
功能模型:定义了做事情的实体,用于描述系统功能。
设计类是面向对象设计过程中的重要工作,请说明设计类通常分为哪三种类型,每种类型的主要职责。
在系统设计的过程中,通常分为:实体类、边界类(接口类)、控制类三种类型。
实体类是存储和管理系统内部的信息。
边界类(接口类)表示系统和外部之间的交互界面。
控制类表示系统中的控制逻辑,负责协调和控制系统中各个对象之间的交互和协作。
UML图:
顺序图(序列图、交互图):着重描述对象按时间顺序的消息交换。
协作图(通信图):着重描述系统成分如何协同工作。
活动图:描述一个操作中要进行的各项活动的执行流程。
状态图:描述一个对象在其生命周期中可能的状态组合。
更多推荐



所有评论(0)