admin 管理员组

文章数量: 887021

架构师案例分析

<1> 嵌入式操作系统 3
<2> 系统可靠性 3
<3>应用系统数据架构 6
<4>数据库 7
<5>开发方法 9
<6>软件架构设计 11
<7>构件 13
<8>UML 15
<9>面向服务架构SOA 17
<10> 嵌入式 19
<十一> 数据库 22
<十二> 系统建模 24
<十三> 结构化分析 27
<十四>结构化分析 30
<十五>结构化分析 33
<十六>软件质量评估 36
<十七>数据架构(这个就算了) 39
<十八>经典架构 42
<十九>架构风格 47
<二十>质量属性 51
<二十一>架构风格 53
<二十二>开发方法 55
<二十三>mvc 58
<二十四>web 60
<二十五>系统质量属性 62
<二十六>mvc 64
<二十七>web 67
<二十八>质量属性 69
<二十九>软件质量属性 71
<三十>数据库 73
<三十一>微服务架构 75
<三十二>设计模式 77
<三十三>安全 79
<三十四>mvc 81
<三十五>数据库 83
<三十六>质量属性 85
<三十七>wbe和安全和嵌入式 87
<三十八>构件集成 91
<三十九>软件架构风格 93
<四十一>uml 95
<四十二>设计模式 95
<四十三>质量属性 99
<四十四>服务总线 102
<四十五>mvc 102
<四十六>开发进度 105
<47> REST风格 106
(48) Nosql 和关系数据库 107
(49) 架构风格 108
(50) Web 110
(51) 质量属性 113
(52) 微服务架构 115
(53) 持久层 117
(54) 质量属性 118

嵌入式操作系统

【问题1】请用450字以内文字简要说明王工提出的采用嵌入式实时操作系统的理由或优点,并说明选择操作系统产品时需要重点考虑其哪些功能与性能?
【问题2】李工和王工通过认真地对需求进行分析,给出了时间性能评估报告,判定在上述硬件平台上可以满足系统要求。请用300字以内文字简要说明嵌入式实时操作系统中时间性能评估中主要考虑哪几项因素;针对本课题的具体数据,叙述系统的工作时序关系。
【问题3】根据系统需求,请设计出系统的处理流程(按时序),说明所有任务的优先级分配策略,422接口、双口存储器、离散量接口和A/D (D/A)的数据输入输出方法(中断或查询驱动)及理由。请用350字以内文字简要说明。

系统可靠性

【问题1】请用200字以内文字说明系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性一般采用哪些技术?

问题1:系统可靠性定义:系统在规定的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率。
系统可靠性包括:成熟性、容错性、易恢复性和可靠性的依从性4个子特性。
提高系统可靠性一般采用以下4类技术:(1)冗余技术;(2)软件容错技术;(3)双机容错技术;(4)集群技术。

【问题2】请根据你对软件可靠性的理解,给出下表所列出的硬件可靠性特征与其对应的软件可靠性特征之间的差异或相似之处。

问题2:
(1)硬件会老化,软件不会改变
(2)硬件容易更换,软件更换存在需求的改变,存在bug
(3)硬件失效前会发出警告,软件不会

【问题三】
恢复块方法

应用系统数据架构

(1)内存数据库和关系数据库的比较*(从设计难度,数据冗余程度,数据架构,应用扩展)
数据结构需要符合需求设计难度大;可能存在相同的数据属性,数据冗余大;以应用程序为中心组织管理数据;数据独立于应用系统,容易在不同的数据系统间共享数据

(2)

(3)

数据库

【问题1】请用300字以内的文字分别说明数据库程序在线访问方式和ORM方式的优缺点,说明该软件企业采用ORM的原因。
数据库程序在线访问方式优点:
1.性能比直接SQL好;
2.可以处理复杂的查询语句。
数据库程序在线访问方式不足:
1.程序员必须懂SQL语句;
2.修改维护相对困难。
ORM方式优点:
1.降低学习和开发成本;
2.程序员不用再写SQL进行数据库操作;
3.减少程序代码量;
4.降低由于SQL代码质量差带来的影响。
0RM方式缺点:
1.性能比直接用SQL差
2.处理复杂查询比较困难。
采用ORM原因:(1)缺乏数据库开发经验,因此SQL语句编写质量有潜在风险;(2)学习成本高;(3)应用比较简单,没有太复杂功能。
【问题2】请用100字以内的文字说明新体系架构中增加数据访问层的原因。请根据图4-1所示,填写图中空白处(1)-(3)。
(1)涉及多种异构数据库平台,数据访问复杂性增加,不宜与业务逻辑混合在一起;(2)数据管理变复杂之后,需要使用代码量增加,分层次有利于逻辑更加清晰,程序维护更加方便;(3)业务逻辑应以相同的方式应对异构数据库,为了做好隐蔽性需要单独设计数据访问层。
【问题3】应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景:
工厂模式分为:抽象工厂和工厂方法,本题为抽象工厂设计模式。抽象工厂设计模式提供一个接口,可以创建一系列或相互依赖的对象,而无需指定他们具体的类。优点:方便创建一系列的对象,其使用场景也是创建系列对象的情况。该题目中,可以针对
oracle,mysql,sqlserver分别抽象建立抽象工厂,若指定当前工厂为oracle工厂,则创建出来的数据库连接,数据集等一系列对象都是符合oracle操作要求的,这样便于数据库之间的切换。

开发方法

【问题1】小规模发布(small release)是XP的基本元素之一。请用200字以内文字分别阐明:(1)原型系统和XP小规模发布的系统的主要差别?(2)为什么该项目组没有采用原型开发方法?
【问题1】(1)原型系统和XP小型发布的系统的主要差别是功能。采用原型系统主要是让用户确认需求,或者用来测试关键的技术,但是它展示的功能并不是实际系统的功能,不能用来评价实际的系统;XP小型发布的系统考试时不包括足够的功能,但是每个功能和可发布的产品的定义是一样的。在完整性上,它配备了一系列实用的功能集;在质量上,它可以健壮地运行。(2)在该项目中,不需要开发原型系统。由于项目没有大的技术风险,所以不需要用原型系统来测试关键技术。网站系统的开发和原型系统的开发在工作量上是相当的,在时间要求短的情况下,直接开发系统可以节省时间。对于用户需求经常发生变化的情况,可以采用XP开发方法的代码重构、持续集成和小型发布等技术。

【问题2】请用200字以内文字,简要说明采用XP方法可能会存在哪些问题。
【问题2】(1)开发团队、管理层,以及客户的不理解,阻碍XP方法论实施。(2)导致开发团队忽视文档,以XP为借口拒绝编写甚至是必须的文档。(3)XP是针对单一团队设计的,外包方的参与将会为有效的组织带来很大的困难。(4)缺乏客户的参与,导致用户故事编写、优先级确认等工作遇到困难。(5)项目规模扩大后,XP方法论将不适应。(6)对客户、开发人员和管理者的素质要求较高。

【问题3】在项目组的后续讨论中,李工提出,如果项目规模扩大,XP将不再适用。王工对此表示赞同,但同时提出可以将XP方法和传统软件开发过程相结合。请用200字以内的文字简要地说明如何将XP方法和传统软件开发过程相结合。
【问题3】(1)可以将XP和传统软件开发过程中的增量式开发过程相结合。(2)将大规模项目划分为若干个具有共同目标的小规模项目,用XP方法论组织小项目开发,用传统软件过程方法论监控全局。(3)在此基础上,建立面向目标的项目管理。

<6>软件架构设计
【说明】某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:
a.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。
b.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致口
c.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。d.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无需重启环境。
e.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。
f.能够连续运行的时间不小于240水时,意外退出后能够在10秒之内自动重启。g.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布口
h.支持应用开发过程中的代码调试功能:
开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。

【问题1】

<7>构件
【说明】构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。某公司长期从事飞行器电子设备研制工作,已积累了大量成熟软件。但是,由于当初管理和设计等原因,公司的大量软件不能被复用,严重影响了公司后续发展。公司领导层高度重视软件复用问题,明确提出了要将本公司的成熟软件进行改造,建立公司可复用的软件构件库,以提升开发效率、降低成本。公司领导层决定将此项任务交给技术部门的王工程师负责组织实施。两个月后,王工程师经过调研、梳理和实验,提交了一份实施方案。此方案得到了公司领导层的肯定,但在实施过程中遇到了许多困难,主要表现在公司软件架构的变更和构件抽取的界面等方面。

【问题1】请用200字以内文字说明获取构件的方法有哪几种?开发构件通常采用哪几种策略?并列举出两种主流构件标准。

答:获取构件的途径:
1)从现有构件中获取
2)从遗留工程提取
3)从市场购买
4)重新开发新的构件

开发构件的策略:分区/抽象/分割

主流构件:
EJB:由SUN的Java企业Bean制定。
CORBA:OMG制定
COM/DCOM: Microsoft制定

<8>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 关联

<9>面向服务架构SOA
【说明】某银行拟将以分行为主体的银行信息系统,全面整合为由总行统管理维护的银行信息系统,实现统一的用户账户管理、转账汇款、自助缴费、理财投资、贷款管理、网上支付、财务报表分析等业务功能。但是,由于原有以分行为主体的银行信息系统中,多个业务系统采用异构平台、数据库和中间件,使用的报文交换标准和通信协议也不尽相同,使用传统的EAl解决方案根本无法实现新的业务模式下异构系统间灵活的交互和集成。因此,为了以最小的系统改进整合现有的基于不同技术实现的银行业务系统,该银行拟采用基于ESB的面向服务架构(SOA)集成方案实现业务整合。

【问题1】请说明什么是面向服务架构(SOA)以及ESB在SOA中的作用与特点。
SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统-和通用的方式进行交互。
ESB作用与特点:
1.SOA的一种实现方式,ESB在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;
2、描述服务的元数据和服务注册管理;
3、在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由实践中总结出来的一些模式如同步模式、异步模式等;
4、发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供者。高级一些的能力,包括对安全的支持、服务质量保证、可管理性和负载平衡等。

【问题2】基于该信息系统整合的实际需求,项目组完成了基于SOA的银行信息系统架构设计方案。该系统架构图如图5-1所示:

【问题3】针对银行信息系统的数据交互安全性需求,列举3种可实现信息系统安全保障的措施。

1.引入https协议或采用加密技术对数据先加密再传输
2、采用信息摘要技术对重要信息进行完整性验证
3、交易类敏感信息采用数字签名机制

<10> 嵌入式
【说明】嵌入式系统是当前航空、航天、船舶及工业、医疗等领域的核心技术,嵌入式系统可包括实时系统与非实时系统两种。某宇航公司长期从事航空航天飞行器电子设备的研制工作,随着业务的扩大,需要大量大学毕业生补充到科研生产部门。按照公司规定,大学毕业生必须进行相关基础知识培训,为此,公司经理安排王工对他们进行了长达一个月的培训。

【问题1】王工在培训中指出:嵌入式系统主要负责对设备的各种传感器进行管理与控制。而航空航天飞行器的电子设备由于对时间具有很强的敏感性,通常由嵌入式实时系统进行管控,请用300字以内文字说明什么是实时系统,实时系统有哪些主要特性。
实时系统是指向系统发出一指令后,在一个极短的时间内,系统回复结果。
实时系统的特性:(1)实时性(2)专用性(3)软硬件依赖强 (4)多种技术紧密结合(5)系统透明性(6)系统资源受限
【问题2】实时系统根据应用场景、时间特征以及工作方式的不同,存在多种实时特性,大致有三种分类方法,即时间类别、时间需求和工作方式结构。根据自己所掌握的“实时性”知识,将图3-1给出的实时特性按三种分类方式,填写图3-1中(1)~(8)处空白。备选答案:时限的危害程度;时间角包;弱;时间响应;固定;时限/反应时间;时间明确;输入输出激励;时间触发;强;周期/零星/非周期;事件触发

(1)强
(2)(3)时间响应、时间明确
(4)(5)(6)时限/反应时间、输入/输出激励、周期/零星/非周期
(7)(8)时间触发、事件触发

【问题3】可靠性是实时系统的关键特性之一,区分软件的错误(Error)、缺陷(Defect)、故障(Faulit)和失效(Failure)概念是软件可靠性设计工作的基础。请简要说明错误、缺陷、故障和失效的定义;并在图3-2中标出错误、缺陷和失效出现阶段,说明缺陷、故障和失效的表现形式,填写图3-2中(1)~(6)处

软件错误:软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。
软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。
软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。
软件失效:软件失效是指软件运行时产生的一种不希望或不可接受的外部行为结果。
(1)存在(2)引起(3)用户经历(4)在开发过程中(5)在产品中(6)在运行时

<十一> 数据库
[说明]某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型数据库)研制了一套业务系统。业务开展后受到用户普遍欢迎,用户数和业务数量迅速增长,原有的数据库服务器已不能满足高度并发的业务要求。为此,该企业成立了专门的研发团队来解决该问题。张工建议重新开发整个系统,采用新的服务器和数据架构,解决当前问题的同时为日后的扩展提供支持。但是,李工认为张工的方案开发周期过长,投入过大,当前应该在改动尽量小的前提下解决该问题。李工认为访问量很大的只是部分数据,建议采用缓存工具MemCache来减轻数据库服务器的压力,这样开发量小,开发周期短,比较适合初创公司,同时将来也可以通过集群进行扩展。然而,刘工又认为李工的方案中存在数据可靠性和一致性问题,在宕机时容易丢失交易数据,建议采用Redis来解决问题。在经过充分讨论,该公司最终决定采用刘工的方案。

[问题1]在李工和刘工的方案中,均采用分布式数据库缓存技术来解决问题。请说明分布式数据库缓存的基本概念。表4-1中对MemCache和Redis两种工具的优缺点进行了比较,请补充完善表4-1中的空(1)~(6)。表4-1

[问题2]刘工认为李工的方案存在数据可靠性和一致性的问题,请说明原因。为避免数据可靠性和一致性的问题,刘工的方案采用Redis作为数据库缓存,请说明基本的Redis与原有关系数据库的数据同步方案。

数据仅存在于内存中,宕机或重启数据将全部失效,这属于数据可靠性问题。
MemCache不支持事务,存在数据一致性问题。

读数据时,先读Redis中的数据,如果Redis没有,则从原数据库读取,并同步更新Redis数据。写数据时,先写入原数据库中,并同步更新至Redis中。

[问题3]请给出Redis分布式存储的2种常见方案和Redis集群切片的几种常见方式。
客户端分片、Twemproxy、Redis Cluster、Proxy +Redis Cluster

<十二> 系统建模
【说明】某公司拟研制一款高空监视无人直升机,该无人机采用遥控一自主复合型控制实现垂直升降。该直升机飞行控制系统由机上部分和地面部分组成,机上部分主要包括无线电传输设备、飞控计算机、导航设备等,地面部分包括遥控操纵设备、无线电传输设备以及地面综合控制计算机等。其主要工作原理是地面综合控制计算机负责发送相应指令,飞控计算机按照预定程序实现相应功能。经过需求分析,对该无人直升机控制系统纵向控制基本功能整理如下:(a)飞控计算机加电后,应完成系统初始化,飞机进入准备起飞状态;(b)在准备起飞状态中等待地面综合控制计算机发送起飞指令,飞控计算机接收到起飞指令后,进入垂直起飞状态;(c)垂直起飞过程中如果飞控计算机发现飞机飞行异常,飞行控制系统应转入无线电遥控飞行状态,地面综合控制计算机发送遥控指令;(d)垂直起飞达到预定起飞高度后,飞机应进入高度保持状态;(e)飞控计算机在收到地面综合控制计算机发送的目标高度后,飞机应进入垂直升降状态,接近目标高度;垂直升降过程中出现飞机飞行异常,控制系统应转入无线电遥控飞行;(f)飞机到达目标高度后,应进入高度保持状态,完成相应的任务;(g)飞机在接到地面综合控制计算机发送的任务执行结束指令后,进入飞机降落状态;(h)飞机降落过程中如果出现飞机飞行异常,控制系统应转入无线电遥控飞行;(i)飞机降落到指定着陆高度后,进入飞机着陆状态,应按照预定着陆算法,进行着陆;(j)无线电遥控飞行中,地面综合控制计算机发送着陆指令,飞机进入着陆状态,应按照预定着陆算法,进行着陆。

【问题1】状态图和活动图是软件系统设计建模中常用的两种手段,请用200字以内文字简要说明状态图和活动图的含义及其区别。
状态图:用来描述一个特定对象的所有可能状态以及其引起状态转移的事件。
活动图:用来描述操作的行为,也用于描述用例和对象内部的工作过程。
两者有本质区别:状态图和活动图用于不同的目的,状态图着重描述一系列的状态及状态间的转移,状态间的变迁需要外部事件的触发。活动图用于捕获动作及动作的结果,活动图中一个活动结束将立即进入下一个活动,是内部处理驱动的流程。

【问题2】根据题干中描述的基本功能需求,架构师王工通过对需求的分析和总结给出了无人直升机控制系统纵向控制状态图(如下图)。请根据题干描述,提炼出相应状态及条件,并完善下图所示状态图中的(1)~(5),并回答下

【问题3】根据题目中描述的基本功能需求,架构师王工给出了无人直升机控制系统纵向控制的顶层活动图(如下图)。请根据题干描述,完善下图活动图中的(1)~(9),并回答下列问题

<十三> 结构化分析
[说明]某公司欲建设-一个房屋租赁服务系统,统一管理房主和租赁者的信息,提供快捷的租赁服务。本系统的主要功能描述如下:1.登记房主信息。记录房主的姓名、住址、身份证号和联系电话等信息,并写入房主信息文件。2.登记房屋信息。记录房屋的地址、房屋类型(如平房、带阳台的楼房、独立式住宅等)、楼层、租金及房屋状态(待租赁、已出租)等信息,并写入房屋信息文件。-名房主可以在系统中登记多套待租赁的房屋。3.登记租赁者信息。记录租赁者的个人信息,包括:姓名、性别、住址、身份证号和电话号码等,并写入租赁者信息文件。4.安排看房。已经登记在系统中的租赁者,可以从待租赁房屋列表中查询待租赁房屋信息。租赁者可以提出看房请求,系统安排租赁者看房。对于每次看房,系统会生成一条看房记录并将其写入看房记录文件中。5.收取手续费。房主登记完房屋后,系统会生成一份费用单,房主根据费用单交纳相应的费用。6.变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态的请求。系统将根据房主的请求,修改房屋信息文件

[问题1]若来用结构化方法对房屋租赁服务系统进行分析,得到如图2-1所示的顶层DFD,使用题干中给出的词语,给出图2-1中外部实体E1E2、加工P1P6以及数据存储D1~D4的名称。

[问题2]若采用信息工程(Information Engineering)方法对房屋租赁服务系统进行分析,得到如图2-2所示的ERD.请给出图2-2中实体(1)~(5)的名称

(1)房主(2)房屋(3)房屋信息文件(4)租赁者(5)看房记录

[题3](1)信息工程方法中的“实体(entity)"与面向对象方法中的“类(class)"之间有哪些不同之处?(2)在面向对象方法中通常采用用例(Use Case)来捕获系统的功能需求。用例可以按照不同的层次来进行划分,其中的Essential Use Cases和Real Use Cases有哪些区别?

(1)实体用于数据建模,而类用于面向对象建模。实体只有属性,而类有属性和操作。
(2)Essential Use Cases可翻译为抽象用例,Real Use Cases可翻译为基础用例。他们是区别在于:基础用例是实实在在与用户需求有对应关系的用例,是从用户需求获取的渠道得到的,而抽象用例是从基础用例中抽取的用例的公共部分,是为了避免重复工作,优化结构而提出的用例。

<十四>结构化分析
【说明】某公司正在研发一套新的库存管理系统。系统中一个关键事件是接收供应商供货。项目组系统分析员小王花了大量时间在仓库观察了整个事件的处理过程,并开发出该过程所执行活动的列表:供应商发送货物和商品清单。公司收到商品后执行收货处理,包括卸载商品、确定收到了订单上的商品、处理与供应商的分歧等。对于已有商品,调整其库存信息,对于新采购的商品,在库存中添加新的商品记录。收货完成后,系统执行入库处理,将商品放到仓库对应的货架上。在付款处理活动中,自动生成应付账款信息,如果查询到该供应商有待付款记录,则进行合并付款,付款完成后消除应付账款记录。最后,仓库管理员根据最新的库存商品,调整出货信息。小王根据自己观察的过程创建了该事件的1层数据流

【问题1】请用300以内文字说明数据流图(Data Flow Diagram)的基本元素及其作用。

数据流图(Data Flow Diagram)的四种基本元素及其作用:
(1)External Agent(实体/外部代理):定义位于项目范围之外,但与正在被研发的系统有交互关系的人、部门、外部系统或组织。
(2)Process(加工/处理):在输入数据流或条件上执行,或者对输入数据流或条件做出响应的工作。
(3)Data Store(数据存储):静止的数据,表示系统中需要保存的数据。
(4)Data Flow(数据流):运动中的数据,表示到一个过程的数据输入,或者来自一个过程的数据输出。

【问题2】数据流图在绘制过程中可能出现多种语法错误,请分析题图所示数据流图中哪些地方有错误,并分别说明错误的类型。
(1)D1到A2:缺少移动数据流的加工。
(2)Ps.3:没有输出数据流,输入输出不平衡。
(3)P5.4:没有输入数据流,输入输出不平衡。
(4)D2:数据存储没有输出的数据流。(此条可不必写)

【问题3】

Crud:create/read/update/delete

<十五>结构化分析
某公司拟开发一个商业情报处理系统,使公司能够及时针对市场环境的变化及时调整发展战略,以获取最大的商业利益。项目组经过讨论,决定采用结构化分析和设计方法。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,项目组成员分别给出了自己的设计思路:(1)小张提出先构建系统流程图(System Flowcharts),以便更精确地反映系统的业务处理过程及数据的输入和输出;(2)小李提出先构建系统数据流图(Data Flow Diagrams),来展现系统的处理过程和定义业务功能边界,并给出了情报分类子系统的0层和1层数据流图,后者如图.项目经讨论确定以数据流图作为本阶段的建模手段。工程师老王详细说明了流程图和数据流图之间的区别与联系,并指出了图2-1的数据流图中存在的错误。

【问题1】流程图和数据流图是软件系统分析设计中常用的两种手段,请用300字以内文字简要说明流程图与数据流图的含义及其区别,并说明项目组为何确定采用数据流图作为建模手段。
数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。
流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。
两者的区别主要包括:
(1)数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。
(2&#

本文标签: 案例分析 架构