系统架构设计时案例分析
- 格式:doc
- 大小:123.50 KB
- 文档页数:26
2016年下半年下午系统架构设计师考试试题-案例分析+论文-答案与解析试题一(共15分)【说明】某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。
在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:a.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。
集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。
b.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致。
c.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。
d.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无需重启环境。
e.支持不同模型的自动转换。
在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。
f.能够连续运行的时间不小于240小时,意外退出后能够在10秒之内自动重启。
g.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布。
h.支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。
在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。
公司经过评审,最终采用了王工的方案。
【问题1】(10分)识别软件架构质量属性是进行架构设计的重要步骤。
请分析题干中的需求描述,填写表1-1中(1)~(5)处的空白。
系统架构设计师案例分析真题解析2022年11月系统构设计师下午题试题一(共 25 分) :阅读以下关于软件架构设计与评估的叙述,在答题纸上回答问题 1 和问题 2。
【说明】某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。
在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对简单,系统性能方面不做过多考虑,新系统除了保持现有的四级固定会员制度外,还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度,并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合,提供个性化的打折促销活动。
在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:(a)管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑,设置后即可生效;(b)系统应该具备完整的安全防护措施,支持对恶意攻击行为进行检测与报警;(c)在正常负载情况下,系统应在 0.3 秒内对用户的界面操作请求进行响应;(d)用户名是系统唯一标识,要求以字母开头,由数字和字母组合而成,长度不少于 6 个字符。
(e)在正常负载情况下,用户支付商品费用后在 3 秒内确认订单支付信息;(f)系统主站点电力中断后,应在 5 秒内将请求重定向到备用站点;(g)系统支持横向存储扩展,要求在 2 人天内完成所有的扩展与测试工作;(h)系统宕机后,需要在 10 秒内感知错误,并自动启动热备份系统;(i)系统需要内置接口函数,支持开发团队进行功能调试与系统诊断;(j)系统需要为所有的用户操作行为进行详细记录,便于后期查阅与审计;(k)支持对系统的外观进行调整和配置,调整工作需要在 4 人天内完成。
在对系统需求、质量属性描述和架构特性进行分析的基础上,系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对系统架构进行评估。
【问题 1】(12 分)在架构评估过程中,质量属性效用树 (utility tree)是对系统质量属性进行识别和优先级排序的重要工具。
2024年软件资格考试系统分析师(综合知识、案例分析、论文)合卷(高级)模拟试卷(答案在后面)一、综合知识(客观选择题,75题,每题1分,共75分)1、软件工程的基本目标是()A. 提高软件质量B. 提高软件生产效率C. 降低软件成本D. 提高软件可维护性2、在软件需求分析过程中,以下哪个不属于需求验证的范畴?()A. 用户访谈B. 实际运行C. 演示验证D. 确认测试3、题干:在软件工程中,以下哪个阶段是用来确定软件需求的?A. 需求分析B. 系统设计C. 编码D. 测试4、题干:在UML(统一建模语言)中,以下哪种图用于展示系统的静态结构?A. 类图B. 序列图C. 状态图D. 活动图5、以下哪个选项是UML(统一建模语言)中用于描述系统内部组件之间交互的图?A. 时序图(Sequence Diagram)B. 类图(Class Diagram)C. 构件图(Component Diagram)D. 用例图(Use Case Diagram)6、软件需求规格说明书(SRS)的作用不包括以下哪项?A. 确保软件系统的需求是完整、一致和可验证的B. 为软件开发团队提供清晰的开发方向C. 作为项目验收的唯一依据D. 向利益相关者提供关于系统功能和性能的详细信息7、题目:在软件工程中,以下哪个阶段是需求分析的主要任务?A. 系统设计B. 系统规划C. 系统测试D. 需求分析8、题目:以下哪种方法不是软件测试中的静态测试方法?A. 检查B. 代码审查C. 单元测试D. 模块测试9、题干:以下哪个技术是实现数据加密的一种方式?A. RSAB. MD5C. HTMLD. TCP11、题干:在软件开发生命周期中,需求分析阶段的主要目标是?A. 确定软件系统的功能需求和非功能需求B. 设计软件系统的总体架构C. 实现软件系统的核心功能D. 测试和验证软件系统的质量13、在面向对象设计中,以下哪一项不是设计模式?A. 单例模式B. 命令模式C. 观察者模式D. 工厂方法模式15、关于面向对象的设计原则,以下哪一项陈述是正确的?A. 开闭原则表明一个模块应该对其接口开放,对其实现封闭。
全国计算机技术与软件专业技术资格(水平)考试2018年下半年系统架构设计师下午试卷I(考试时间14:00~16:30 共150 分钟)1.在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。
2.在答题纸的指定位置填写准考证号、出生年月日和姓名。
3.答题纸上除填写上述内容外只能写解答。
4.本试卷共5道题,试题一是必答题,试题二至试题五选答1 道。
每题25 分,满分75 分。
5.解答时字迹务必清楚,字迹不清时,将不评分。
6.仿照下面例题,将解答写在答题纸的对应栏内。
例题2018 年下半年全国计算机技术与软件专业技术资格(水平)考试日期是(1)月(2)日。
因为正确的解答是“11 月 4 日”,故在答题纸的对应栏内写上“11”和“4”(参看下表)。
试题一阅读以下关于软件系统设计的叙述,在答题纸上回答问题1 至问题3。
【说明】某文化产业集团委托软件公司开发一套文化用品商城系统,业务涉及文化用品销售、定制、竞拍和点评等板块,以提升商城的信息化建设水平。
该软件公司组织项目组完成了需求调研,现已进入到系统架构设计阶段。
考虑到系统需求对架构设计决策的影响,项目组先列出了可能影响系统架构设计的部分需求如下:(a)用户界面支持用户的个性化定制;(b)系统需要支持当前主流的标准和服务,特别是通信协议和平台接口;(c)用户操作的响应时间应不大于3 秒,竞拍板块不大于1 秒;(d)系统具有故障诊断和快速恢复能力;(e)用户密码需要加密传输;(f)系统需要支持不低于2G 的数据缓存;(g)用户操作停滞时间超过一定时限需要重新登录验证;(h)系统支持用户选择汉语、英语或法语三种语言之一进行操作。
项目组提出了两种系统架构设计方案:瘦客户端C/S 架构和胖客户端C/S 架构,经过对上述需求逐条分析和讨论,最终决定采用瘦客户端C/S 架构进行设计。
【问题1】(8 分)在系统架构设计中,决定系统架构设计的非功能性需求主要有四类:操作性需求、性能需求、安全性需求和文化需求。
第三批次2023年下半年系统集成项目管理工程师案例分析真题答案解析(试题四)【说明】某项目在上线前发现一个严重的bug,经初步分析需要跨团队合作解决,涉及的合作团队包括浏览器团队、桌面开发团队、算法团队、智能聊天机器团队和系统架构设计师团队。
因为项目时间紧张,需要在两天内修复完成。
项目经理在企业聊天工具中创建一个“bug1234修复方案”讨论群,每个研发队派出一名工程师参加,测试小组负责人也加入了群聊。
项目经理发出调查问卷询问大家今晚19:00召开视频会议讨论方案是否可以准时参加。
晚上19:00视频会议准时开始,项目经理首先阐述了这次会议发起的背景,计划讨论的事项,会议的输出,希望大家共同努力完成问题修复。
接着组织大家对这个bug的现象和原因进行分析,对各个维度的解决方案进行了头脑风暴,团队之间还提供了一些建议和意见。
大家认为这个问题可以先由浏览器团队进行排查和解决,浏览器表示可以修改但是两天内完成修复比较困难。
项目经理对大家热烈的讨论表示赞扬,希望其他研发团队给予浏览器团队全力支持,感谢大家一起讨论方案,互相帮助争取按照计划完成项目上线工作。
最后项目经理把会议纪要以电子邮件的形式群发给所有参会人员和领导团队,记录这个事情重要信息和结论以便后续工作执行参考。
【问题1】(1)结合案例,请写出项目经理分别采用了什么沟通方法①项目经理询问大家是否可以参加会议②项目经理希望其他研发团队给予浏览器团队全力支持③各研发团队讨论问题解决方案(2)请写出(1)中使用的沟通方法从控制程度角度从强到弱的排列次序。
(3)请写出(1)中使用的沟通方法从参与程度角度从强到弱的排列次序。
【问题2】请计算沟通渠道的数量。
【问题3】从即时性角度,判断下到沟通渠道是否为高等(即时性强),是的选择“√”,否的选择“×”。
(1)电子邮件(2)即时通讯(3)视频会议(4)群发邮件(5)面对面交谈【问题4】会议的管理和控制是非常重要的,请分别说明项目经理在会前、会中和会后的注意事项。
软件工程【问题】识别设计类是面向对象设计过程中的重要工作,设计类表达了类的职责,即该类所担任的任务。
请用300字以内的文字说明设计类通常分为哪三种类型,每种类型的主要职责,并针对题干描述案例涉及的具体类为每种类型的设计类型举出2个实例。
1)实体类。
实体类映射需求中的每个实体,保存需要存储在永久存储体中的信息,例如,用户、商品等。
2)控制类。
控制类是用于控制用例工作的类,用于对一个或几个用例所特有的控制行为进行建模。
例如,结算、备货等。
3)边界类。
边界类用于封装在用例内,外流动的信息或数据流。
例如,浏览器、购物车等。
【问题】在面向对象的设计过程中,活动图阐明了业务用例实现的工作流程。
请用300字以内的文字给出活动图与流程图的三个主要区别。
活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现系统的行为,而非处理过程;而流程图着重描述处理过程。
流程图一般都限于顺序进程,而活动图则可以支持并发进程。
活动图是面向对象的,而流程图是面向过程的【问题】设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内文字说明三者的作用。
创建型模式主要用于创建对接,为设计类实例化新对象提供指南。
结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。
行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。
【问题】请将项目组已经掌握的设计模式按照其作用分布归类到创建型、结构性和行为型模式中。
创建型模式:构造器模式、原型模式结构性模式:适配器模式、外观模式、代理模式行为型模式:命令模式、中介模式、状态模式和策略模式。
数据库设计【问题1】商铺用户需要实时统计本商铺的货物数量和销售情况,以便于及时补货,或者为商铺调整销售策略。
为此专门设计了可实时查看当天商铺中货物销售情况和存货情况的视图,商铺产品销售情况日报表(商铺编码、产品编码,日销售产品数量,库存数量,日期)。
2011年系统架构设计师论文考试真题范文(四)系统架构设计师考试属于软考中的一项高级资格考试,考试分综合知识、案例分析和论文3个科目。
对于很多考生来说论文是一个考试难关,怎么提高自己的论文写作水平,多看历年软考论文真题范文是一个很好的练习论文写作水平的方式,希赛小编为大家整理了2011年系统架构设计师论文考试真题范文论模型驱动架构在系统开发中的应用,希望对大家有所帮助。
【摘要】开放式数控系统的研究已经成为目前数控系统研究的热点,模型驱动开发技术是目前软件开发研究的先进技术。
为研究模型驱动技术在数控系统软件开发中的应用,作者分析了当前数控系统设计开发中的一些问题,在开放式数控系统软件常用的开发技术基础之上,采用MDD(Mode-lDrivenDevelopmen)软件设计的思想和开放式模式设计软件的模型结构,分析设计了数控系统的软件开发途径,提出了判断引擎和模式转换规则库相结合的数控模式仲裁模块设计,并利用有限状态机理论、利用Matlab和Stateflow工具箱建立了工作模式仲裁模块的行为状态模型,通过MatlabSimulink仿真环境可以实现对建立的行为模型进行了验证。
通过在MATL AB中调试和进行模型的有效验证,可以建立一个无逻辑错误的可执行模型,可以仿真数控系统的运行情况,检验模型是否按照期望的模式在运行。
通过这种方法设计开发软件,可使描述文档的问题尽早发现,也使软件的修改更新工作变得简单易操作,而软件的开放性特征也得到了很好地体现。
【正文】良好的数控系统是数控机床加工高性能、高精度零件产品的保证,随着产品功能和结构复杂性的提高,对加工过程的要求越来越高,优秀数控系统的开发成为产品加工的关键。
20世纪80年代以后,开放式数控系统成为数控系统研究的主流,许多研究人员在这方面做了很多工作[1-3],这些研究工作使开放式数控系统的特征更加趋于统一和清晰,如:模块化,可扩展性,互操作性,可移植性和可定制性。
全国计算机技术与软件专业技术资格(水平)考试2014年下半年系统架构设计师下午试卷I(考试时间13:30~15:00共90分钟)请按下述要求正确填写答题纸1.在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。
2.在答题纸的指定位置填写准考证号、出生年月日和姓名。
3.答题纸上除填写上述内容外只能写解答。
4.本试卷共5道题,试题一是必答题,试题二至试题五选答1道。
每题15分,满分75分。
5.解答时字迹务必清楚,字迹不清时,将不评分。
6.仿照下面例题,将解答写在答题纸的对应栏内。
例题2014年下半年全国计算机技术与软件专业技术资格(水平)考试日期是(1)月(2)日。
因为正确的解答是“11月4日”,故在答题纸的对应栏内写上“11”和“4”(参看下表)。
例题解答栏(1)11(2)4试题一是必答题试题一【说明】某软件公司欲开发一个网络设备管理系统,对管理区域内的网络设备(如路由器和交换机等)进行远程监视和控制。
公司的系统分析师首先对系统进行了需求分析,识别出如下3项核心需求:(a)目前需要管理的网络设备确定为10类20种,未来还将有新类别的网络设备纳入到该设备管理系统中;(b)不同类别的网络设备,监视和控制的内容差异较大;同一类网络设备,监视和控制的内容相似,但不同厂商的实现方式(包括控制接口格式、编程语言等)差异较大;(c)网络管理员能够在一个统一的终端之上实现对这些网络设备的可视化呈现和管理操作。
针对上述需求,公司研发部门的架构师对网络设备管理系统的架构进行了分析与设计,架构师王工认为该系统可以采用MVC架构风格实现,即对每种网络设备设计一个监控组件,组件通过调用网络设备厂商内置的编程接口对监控指令进行接收和处理;系统管理员通过管理模块向监控组件发送监控指令,对网络设备进行远程管理;网络状态、监控结果等信息会在控制终端上进行展示。
针对不同网络设备的差异,王工认为可以对当前的20种网络设备接口进行调研与梳理,然后通过定义统一操作接口屏蔽设备差异。
2017年下半年下午系统架构设计师考试试题-案例分析+论文-答案与解析试题一(共15分)【说明】阅读以下关于软件系统设计的叙述,在答题纸上回答问题 1 至问题 3。
【说明】某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。
在系统的需求分析与架构设计阶段,用户提出的需求、质量属性描述和架构特性如下:(a)、系统用户分为高级管理员、数据管理员和数据维护员等三类;(b)、系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;(c)、正常负载情况下,系统必须在 0.5 秒内对用户的查询请求进行响应;(d)、对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;(e)、系统的用户名不能为中文,要求必须以字母开头,长度不少于5个字符;(f)、更改系统加密的级别将对安全性和性能产生影响;(g)、网络失效后,系统需要在 10 秒内发现错误并启用备用系统;(h)、查询过程中涉及到的桥梁与公路的实时状态视频传输必须保证画面具有1024*768的分辨率, 40帧 /秒的速率;(i)、在系统升级时,必须保证在 10 人月内可添加一个新的消息处理中间件;(j)、系统主站点断电后,必须在 3 秒内将请求重定向到备用站点;(k)、如果每秒钟用户查询请求的数量是 10 个,处理单个请求的时间为 30 毫秒,则系统应保证在 1秒内完成用户的查询请求;(l)、对桥梁信息数据库的所有操作都必须进行完整记录;(m)、更改系统的 Web 界面接口必须在 4 人周内完成;(n)、如果"养护报告生成"业务逻辑的描述尚未达成共识,可能导致部分业务功能模块规则的矛盾,影响系统的可修改性(O)、系统必须提供远程调试接口,并支持系统的远程调试。
在对系统需求,质量属性描述和架构特性进行分析的基础上,系统的架构师给出了三个候选的架构设计方案,公司目前正在组织系统开发的相关人员对系统架构进行评估。
2015软件水平考试(高级)系统架构设计师真题及答案案例第1部分:问答题,共5题,请在空白处填写正确答案。
1.[问答题]阅读以下关于嵌入式系统可靠性设计方面的描述,回答下列问题。
【说明】某宇航公司长期从事宇航装备的研制工作,嵌入式系统的可靠性分析与设计已成为该公司产品研制中的核心工作,随着宇航装备的综合化技术发展,嵌入式软件规模发生了巨大变化,代码规模已从原来的几十万扩展到上百万,从而带来了由于软件失效而引起系统可靠性降低的隐患。
公司领导非常重视软件可靠性工作,决定抽调王工程师等5人组建可靠性研究团队,专门研究提高本公司宇航装备的系统可靠性和软件可靠性问题,并要求在三个月内,给出本公司在系统和软件设计方面如何考虑可靠性设计的方法和规范。
可靠性研究团队很快拿出了系统及硬件的可靠性提高方案,但对于软件可靠性问题始终没有研究出一种普遍认同的方法。
【问题1】请用200字以内文字说明系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性一般采用哪些技术?【问题2】王工带领的可靠性研究团队之所以没能快速取得软件可靠性问题的技术突破,其核心原因是他们没有搞懂高可靠性软件应具备的特点。
软件可靠性一般致力于系统性地减少和消除对软件程序性能有不利影响的系统故障。
除非被修改,否则软件系统不会随着时间的推移而发生退化。
请根据你对软件可靠性的理解,给出下表所列出的硬件可靠性特征与其对应的软件可靠性特征之间的差异或相似之处,将答案写在答题纸上。
【问题3】王工带领的可靠性研究团队在分析了大量相关资料基础上,提出软件的质量和可靠性必须在开发过程构建到软件中,也就是说,为了提高软件的可靠性,必须在需求分析、设计阶段开展软件可靠性筹划和设计。
研究团队针对本公司承担的飞行控制系统制定出了一套飞控软件的可靠性设计要求。
飞行控制系统是一种双余度同构型系统,输入采用了独立的两路数据通道,在系统内完成输入数据的交叉对比、表决、制导率计算,输出数据的交叉对比、表决、输出等功能,系统的监控模块实现对系统失效或失步的检测与定位。
论文一企业人事信息系统的应用广东延国庆中国系统分析师网站【摘要】本文讨论《企业人事信息系统》项目的需求分析方法与工具的选用。
该系统的建设目标是帮助该企业管理好企业内部的人员和人员的活动,人事信息管理指的是企业员工从招聘面试到离职退休的全过程,涉及的主要活动包括面试、报到、培训、升职、离职或其他的人事变动,也包括电子化考勤、工资性收入的计算与分发、使用其他公司资源的有关记录(如宿舍、保险、证件办理等等)。
此外,本系统也涉及到企业在全国各地的人事信息管理,企业的组织架构的设置,级别与职务管理,人力申请直至人力需求报表,从而形成一个对企业真正有用的人事信息管理应用系统。
在本文中首先讨论了选用面向对象方法与工具的主要理由与策略,进一步通过一个简例说明该方法与工具使用的效果,也讨论了使用多种工具与方法在需求分析中的必要性,最后简要小结了选用正确工具与方法的意义和作用。
在项目开展期间,我担任了系统分析、系统设计与数据库管理等大量工作。
【正文】人事信息管理系统是一个有着广泛应用面的实用性系统,但是,我国各个企业有着自身的体制、机制、特点与不同的要求;在开发这类系统时,系统需求分析是极为重要的一环。
在整个分析过程中,我们都采用了面向对象的分析方法,这是因为我们在近几年的实践中已坚信这种方法能够更加有效地表达和描述现实世界。
软件要具有适用性和扩展性,就必须更接近于现实世界本身的发展规律。
以一个简单的例子来看,假设要求设计关于引进人才评估的一个系统,按我们过去的做法,先会要求提供给我们一份相关的引进人才评估表,然后依葫芦画瓢地设计相应的表单与界面。
在短期来说,这样做是简便而实用的,但并不能够符合现实世界的长远目标,这套设计方法不具有扩展性,因为任何一份评估表的结构都会有可能发生许多改变的。
采用面向对象的方法,可以从中提取出表类型、表结构、评分方法以及能考虑继承等各方面的要素,这样就可以保证软件的通用性,可配置性与可维护性。
在工具的选择过程中,我们选择了现在已十分流行的Rational 系列,包括Rational Rose 、RUP 、SoDA 等,为什么选取这个系列工具呢?这是基于我们对软件需求分析目标的看法,我们认为需求分析应当能正确地回答如下的几个关键性问题:(1)用户的需求是否已详尽地被考虑到了?(2)用户能理解或明白我们所描述的内容吗?(3)分析是否会和设计相脱节,(4)程序员能明白我们的分析与设计要求吗?等等。
以下对上述几个问题逐一简要地加以说明:(1)详尽地获取用户的需求。
用户的需求可分为显式的需求与隐性的需求,用户的倾向往往只顾及到当前的与明显的需求。
要达到对需求理解的全面性,不仅仅只是依靠有效的用户谈话和调查,因为我们所面对的用户需求往往会有些片面的,采用Rational Rose(基于UML)提供的用例,以及多种图的联合使用,可以使我们发现其中的遗漏。
(2)使用户能充分地理解我们的表示方法,能够真正明白我们描述的内容。
软件需求分析规格说明书通常会是冗长而枯燥的,一般的用户不容易深入理解,这样就削弱了分析的正确性。
通过支持面向对象及UML 语言的Rational Rose可以更好地和用户交流,让用户了解系统的运作方式甚至细节的操作。
(3)使分析和设计两个阶段互相联系与贯通。
这是我们选择面向对象的方法及Rational Rose 工具的重要原因,系统分析要向用户描述的不仅仅是用户的需求,而且包括解决方法,解决方法当然应包括设计(程序)、数据库与系统配置,我们当然不希望用户得到的是一个与需求规格说明不相同的软件,也不可能要求程序员完成一个不可胜任的任务。
然而我们在以前的多项工作中经常发现这类情节,因为系统分析与设计相互脱节,导致一头扎在分析中不顾设计有关的事宜。
分析与设计的脱节,还不利于设计现格说明的评估,因为分析往往会脱离现实,导致缺乏评估的依据。
因为不可能成功地完成设计而使分析需要重来,就会造成巨大的浪费与损失。
一个好的工具可以使分析与设计更紧密地连结起来,甚至于一一对应。
面向对象的分析方法使对象之间相对而言有独立性,减少了任何影响到全局的改动,能避免因需求变化而导致全盘皆动的被动局面。
(4)使程序员明白我们的设计。
一个好的设计应该让程序员感到清晰明白,更少疑问。
一个疑问很多的设计加上沟通不畅,绝对会出现在应用环境下所不需要的另一个软件,所以设计规格说明书务必清楚、形象与明确,当然,Rational Rose 具有足够的图形与其他形式,能使程序员更加明确,甚至能细微到每一个语句(事实上如果使用VB,程序架构都有可能直接生成了)。
(5)选择UML 可能会有更多的理由。
比如用户文档的编写、数据库设计,我们都需要做到有延续性,有自动化支持和具有质量上的保证。
所以,我们选用了以上的方法和工具。
在分析中,面对考勤班次的问题时,由于过去一直使用纸卡方式考勤,使用户对班次形成了固定的概念,而现在的许多考勤软件也采用多次刷卡的方法来形成一天的记录。
经过面向对象的分析可以发现,事实上每天的上班记录是由多个时段所形成的,时段的多少在各个公司,各个工种与部门都不尽相同,每个时段可能有不同的属性,时段与时段组合可形成为班次,这更适合于现实的情况,使之能更加灵活与更有扩展性。
其实,在天与天之间也都有相互之间的关系。
在这一点上,我们又发现必须在考勤与薪金工资中加入与MRP 中相似的期段(Periods)的基本概念,比如可以称之为考勤期段,允许为用户更加方便地设置考勤期段,可能使之不一定与自然年月日相同等等。
Rational Rose 使我们更方便地把上面的想法在类上去实现,更进一步地设计好我们的高效率的数据库。
当然,使用单一的一个工具去完成一个中大型的应用系统的需求分析,是不可能成功的。
因为社会在发展,用户的需求也在改变,如何把握住用户的需求是需要时间的,面向对象的方法有时也会忽略外在的与表层的要求,不仅仅是要获得关键的需求,其他更多的需求往往要等到用户在使用后才知道,然而等到用户使用是不现实的,作为原型开发模型中的原型也是收集用户需求,描述与解释需求的一类相当有效的方法与工具。
在我们的开发过程中,为了更好地让用户了解我们的系统和我们的设计方案,让用户在见面会上更有方向性与针对性,我们首先用Access 开发出原型,让用户先试用。
这样,我们在真正的分析与设计时就能更加符合用户的要求。
总之,软件需求分析方法和工具的使用,对我们软件开发过程影响是很深远的,选用高效能的正确的方法与工具,可以使我们的软件更加正确地反映现实需求,更加具有可用性、可扩展性和可维护性;降低了软件项目的风险。
【评注】(1)写得有些特色,观点鲜明。
(2)摘要写得不错,既反映了项目内容,也小结了本文的写作要点。
(3)文中所举的例子虽然简单,但很实际。
(4)多种方法与工具的使用,叙述得简明扼要。
(5)内容可更丰富一些,更深入的例子也可再增多一些,则会更有说服力。
(6)对需求分析的全过程的描述太少。
论文二企业集团的信息管理系统应用广东刘小波中国系统分析师网站【摘要】本文以某个IT 产品销售公司的信息系统项目的开发为背景,讨论了一个信息系统需求分析的整个过程,其重要特征是:所涉及的项目是原有系统的一个升级替换版本。
因此,需求分析过程不同于建立一个全新的系统,大体上可分为三个阶段:(1)实施逆向工程获得对系统的初步了解;(2)在第1 步的基础上写出基本需求,交由客户评审补充;(3)在第2 步的基础上开发原型,利用原型与客户交流,最终获得基线需求。
针对上述三个阶段,本文论述了所使用的分析方法与工具以及所遇到过的一些典型问题和措施,最后对需求分析中使用的工具,谈一些自己的初步体会。
【正文】我于1998 年8 月至2000 年7 月参加了某个大型集团的企业信息系统的开发工作,该大型集团的业务主要涉及到IT 类产品的进销存。
本人在项目中负责系统分析的工作,该集团企业原先已委托某个电脑公司开发过一套IT 类产品管理系统,但是该老系统存在两个主要的问题:(一)系统运行速度非常慢,如商品销售开单时,从确定开单到开单完成有时需要1 ~2 分钟左右的响应时间,让客户无法忍受。
(二)系统数据不准确,经常出现实物库存与电脑库存严重不相匹配的情况,使销售数据的统计产生一些混乱,有关财务的数据因此无法有效使用,只能采用人工录入方式补充进行。
在这种情况下,该集团的总经理决定参考原有系统重新开发一个系统,以便解决原系统所存在的上述两个难以克服的难题。
注;原系统采用PB6.5 开发,数据库采用SYBASE,服务器采用Windows2000Server,客户端采用Windows 98,程序架构采用的是传统的C/S 结构。
鉴于该集团业务操作复杂,流程多,涉及人员多等特点,以及项目完成时间短,经费有限,人员有限等限制约束条件,再考虑到必须避免前一系统出现过的结构混乱与难于维护等问题,我们决定要对原系统的需求做一个比较彻底的和切实可行的分析,由于原有系统已经开发了近两年,并且客户也有了一定的使用经验,业务基本流程本身也并没有太大的变化,因此,我们把需求分析的过程分为三步:(1)分析原有系统的结构,主要是数据库结构和程序结构,(2)在获得第(1)步结果的基础上写出基本需求,交由客户评审补充,(3)在第(2)步的基础上开发原型,利用此原型与客户交流,从而获得最终可用的需求结果。
下面按上述三步分别加以论述。
第一步是实施逆向工程,获取原有系统的基本需求。
由于原有系统在功能上大体上能基本满足客户的需求,并且在两年多的开发中也积累了不少经验,因此,从中可以获得一些有益的参考,也可以避免多走弯路。
在这一阶段,我们采用的主要工具是PB 自带的Power Designer 和PB Documents;前者主要用来分析数据库结构,后者主要用来分析程序结构,便于开发人员与高级用户理解程序。
采用这两个工具的原因是:原系统过于庞大,模块多,数据库模式多,表格量很大,仅靠人工的方法很难从中获得一个比较完整的、明确的系统结构以及整体构成,而且原有系统未能提供一套正确完整有效的设计文档,于是我们只能依靠工具辅助来进行。
在使用Power Designer 分析数据库,并且用PB Documents 分析原程序中的PBL 以后,我们对原系统的结构有了一个初步的了解,再结合对原系统的使用,基本明确了功能与流程的需求,并在此基础上用人工录入方式,产生了初步需求的自然语言文档。
这里指出,使用Power Designer 的一个不足之处是:如果一个表中的字段过多,而且又同时依赖多个表时,输出的表格相关图形很复杂,有很多交叉,且难于调整,不方便阅读及打印。
第二步是在第一步的基础上进行的,即写出系统基本需求,交由客户评审和补充。