系统分析与设计读书笔记.docx
- 文档编号:683685
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:15
- 大小:277.36KB
系统分析与设计读书笔记.docx
《系统分析与设计读书笔记.docx》由会员分享,可在线阅读,更多相关《系统分析与设计读书笔记.docx(15页珍藏版)》请在冰豆网上搜索。
系统分析与设计读书笔记
《系统分析与设计》读书报告
姓名:
王旭
学院:
软件学院
班级:
硕3098
学号:
3113370003
日期:
2014年6月20日
《系统分析与设计》读书报告
【书名】:
系统分析与设计【第七版】
【出版社】:
机械工业出版社
【作者】:
(美)KennethE.KendallJulieE.Kendall著施平安郝清赋译
前言
花了一个礼拜的时间读完了这本《系统分析与设计》(第七版)。
这本书的结构比较清晰,每一张之间结合比较紧密,由简入难,分部分、分章节对各个模块的内容进行了深入的探讨,这本书也新增了不少的知识点,比如以人为中心的软件开发过程,敏捷开发等著名的软件开发理论指导。
1.什么是企业架构?
如何进行系统分析?
企业架构就是企业对组织工作任务进行分工、分组和协调合作。
企业架构最早的思想雏形来自企业建模领域。
20世纪80年代中期之前,几乎只有学术界对企业再造或企业建模的思想感兴趣,但使用的理论和模型通常被限于某个信息系统的设计和开发。
20世纪80年代中期,当时还是IBM员工的JohnZachman率先提出了“信息系统架构框架”的概念,从信息、流程、网络、人员、时间、基本原理等6个透视角度来分析企业,也提供了与这些视角每个相对应的6个模型,包括语义、概念、逻辑、物理、构件和功能等模型。
由于其杰出的开创性工作成果,Zachman被公认为是企业架构领域的开拓者。
系统分析方法是指把要解决的问题作为一个系统,对系统要素进行综合分析,找出解决问题的可行方案的咨询方法。
兰德公司认为,系统分析是一种研究方略,它能在不确定的情况下,确定问题的本质和起因,明确咨询目标,找出各种可行方案,并通过一定标准对这些方案进行比较,帮助决策者在复杂的问题和环境中作出科学抉择。
系统分析的主要任务是将在系统详细调查中所得到的文档资料集中到一起,对组织内部整体管理状况和信息处理过程进行分析。
它侧重于从业务全过程的角度进行分析。
分析的主要内容是:
业务和数据的流程是否通畅,是否合理;数据、业务过程和实现管理功能之间的关系;老系统管理模式改革和新系统管理方法的实现是否具有可行性等等。
系统分析的目的是将用户的需求及其解决方法确定下来,这些需要确定的结果包括:
开发者关于现有组织管理状况的了解;用户对信息系统功能的需求;数据和业务流程;管理功能和管理数据指标体系;新系统拟改动和新增的管理模型等等。
系统分析所确定的内容是今后系统设计、系统实现的基础。
2.系统架构师的职责
系统构架师是近几年来在国内外迅速成长并发展良好的一个职位,它的重要性及给IT业所带来的影响是不言而喻的。
在我国虽然还存在一定的争论性、不可预测性、不理解性,不确定性,但它确实是时代发展的需要。
系统架构师的职责就是设计一个公司的基础架构,并提供关于怎样建立和维护系统的指导方针。
具体来讲,系统架构师的职责主要体现在以下几方面:
1.负责公司系统的架构设计、研发工作;
2.承担从业务向技术转换的桥梁作用;
3.协助项目经理制定项目计划和控制项目进度;
4.负责辅助并指导SA开展设计工作;
5.负责组织技术研究和攻关工作;
6.负责组织和管理公司内部的技术培训工作;
7.负责组织及带领公司内部员工研究与项目相关的新技术;
8.管理技术支撑团队并给项目、产品开发实施团队提供技术保障。
一般来讲,系统架构师应该拥有以下几方面的能力:
1.具备8年以上软件行业工作经验;
2.具备4年以上C/S或B/S体系结构软件产品开发及架构和设计经验;
3.具备3年以上的代码编写工作经验;
4.具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;
5.对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;
6.对.Net/JAVA技术及整个解决方案有深刻的理解及熟练的应用,并且精通WebService/J2EE架构和设计模式,并在此基础上设计产品框架;
7.具有面向对象分析、设计、开发能力(OOA、OOD、OOP),精通UML和ROSE,熟练使用RationalRose、PowerDesigner等工具进行设计开发;
8.精通大型数据库如Oracle、SqlServer等的开发;
9.对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;
10.在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;
11.良好的团队意识和协作精神,有较强的内外沟通能力
3.项目管理
项目管理是一种活动,也是一种技能,在项目经理的带领下,如何进行高效的项目开发,这是项目管理的主要内容。
项目管理的工作流程主要有:
启动项目,确定可行性,活动控制和规划,项目进度计划,功能点分析,开发和测试。
在启动项目之后的第一件事情就是要进行可行性分析。
可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。
可行性分析应具有预见性、公正性、可靠性、科学性的特点。
可行性分析的意义:
作为投资项目中的前期工作的重要内容,对项目具有十分重要的作用,主要体现在以下几个方面:
(1)可行性研究是坚持科学发展观、建设节约型社会的需要;
(2)可行性研究是建设项目投资决策和编制设计任务书的依据;(3)可行性研究是项目建设单位筹集资金的重要依据;(4)可行性研究是建设单位与各有关部门签订各种协议和合同的依据;(5)可行性研究是建设项目进行工程设计、施工、设备购置的重要依据;(6)可行性研究是向当地政府、规划部门和环境保护部门申请有关建设许可文件的依据;(7)可行性研究是国家各级计划综合部门对固定资产投资实行调控管理、编制发展计划、固定资产投资、技术改造投资的重要依据;(8)可行性研究是项目考核和后评估的重要依据。
项目进度计划是在拟定年度或实施阶段完成投资的基础上,根据相应的工程量和工期要求,对各项工作的起止时间、相互衔接协调关系所拟定的计划,同时对完成各项工作所需的劳力、材料、设备的供应做出具体安排。
如何编制项目计划:
编制进度计划前要进行详细的项目结构分析,系统地剖析整个项目结构构成,包括实施过程和细节,系统规则地分解项目。
项目结构分解的工具是工作分解结构WBS原理,它是一个分级的树型结构,是将项目按照其内在结构和实施过程的顺序进行逐层分解而形成的结构示意图。
通过项目WBS分解作到将项目分解到内容单一的、相对独立的、易于成本核算与检查的项目单元,作到明确单元之间的逻辑关系与工作关系,作到每个单元具体地落实到责任者,并能进行各部门、各专业的协调。
进度计划编制的主要依据是:
项目目标范围;工期的要求;项目特点;项目的内外部条件;项目结构分解单元;项目对各项工作的时间估计;项目的资源供应状况等。
进度计划编制要与费用、质量、安全等目标相协调,充分考虑客观条件和风险预计,确保项目目标的实现。
进度计划编制主要工具是网络计划图和横道图,通过绘制网络计划图,确定关键路线和关键工作。
根据总进度计划,制定出项目资源总计划,费用总计划,把这些总计划分解到每年、每季度、每月、每旬等各阶段,从而进行项目实施过程的依据与控制。
在分析如何进行人力资源分配以及确定开发周期时,功能点分析是一个很有用的分析方法。
功能点分析法是与是用什么技术无关,着重计算该软件的实现需要实现多少功能的方法。
采用该方法,能够更好地与客户进行沟通,因为不涉及技术,因此客户也比较容易明白该软件的开发过程。
功能点计算的类型分为:
开发项目——开发项目功能点计算度量的是项目完成、用户第一次安装系统时提供给用户的功能
升级项目——升级项目功能点计算度量的是项目完成对已存在的应用系统新增、修改或者删除的功能
应用程式——应用程式功能点计算度量的是已经安装运行的系统提供给用户的功能。
计算功能点有时又比较简单,有时候比较复杂,取决于所要实现的软件的规模与复杂度,最后将计算出来的功能数与调整因子进行处理,可以得出最终的功能点数。
得出功能点后,就需要进行软件的开发了。
目前比较流行的就是敏捷开发。
简单的说,敏捷开发是一种以用户的需求进化为核心、迭代、循序渐进的开发方法。
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷建模(AgileModeling,AM)的价值观包括了XP(ExtremeProgramming:
极限编程)的四个价值观:
沟通、简单、反馈、勇气,此外,还扩展了第五个价值观:
谦逊。
敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。
除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。
沟通:
建模不但能够促进你团队内部的开发人员之间沟通、还能够促进你的团队和你的projectstakeholder之间的沟通。
简单:
画一两张图表来代替几十甚至几百行的代码,通过这种方法,建模成为简化软件和软件(开发)过程的关键。
这一点对开发人员而言非常重要-它简单,容易发现出新的想法,随着你(对软件)的理解的加深,也能够很容易的改进。
反馈:
KentBeck在ExtremeProgrammingExplained中有句话讲得非常好:
“过度自信是编程的职业病,反馈则是其处方。
”通过图表来交流你的想法,你可以快速获得反馈,并能够按照建议行事。
勇气:
勇气非常重要,当你的决策证明是不合适的时候,你就需要做出重大的决策,放弃或重构(refactor)你的工作,修正你的方向。
谦逊:
最优秀的开发人员都拥有谦逊的美德,他们总能认识到自己并不是无所不知的。
事实上,无论是开发人员还是客户,甚至所有的projectstakeholder,都有他们自己的专业领域,都能够为项目做出贡献。
一个有效的做法是假设参与项目的每一个人都有相同的价值,都应该被尊重。
敏捷开发的原则是:
1)个体和交互胜过过程和工具
2)可以工作的软件胜过面面俱到的文档
3)客户合作胜过合同谈判
4)响应变化胜过遵循计划
5)虽然右项也有价值,但是我们认为左项具有更大的价值。
4.需求分析
在开发软件的最重要的就是进行软件需求分析,在需求分析阶段设计得当,可以加快软件的开发速率,并且能够大大降低软件在后期的修改频率,并且能够降低软件的开发成本,毕竟,在后期修改软件错误的成本远远大于在软件开发初期的成本。
软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。
需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
在问题分析阶段分析人员的主要任务是:
对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。
分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。
软件需求包括三个不同的层次:
业务需求、用户需求和功能需求(也包括非功能需求)。
1.业务需求(businessrequirem
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统分析 设计 读书笔记