《需求分析与系统设计》阅读笔记(一)
阅读是学习过程中不可或缺的一部分,即使我是一名软件工程专业的学生,阅读也是必要的,或许有人觉得比起费脑子去思考那些书中难以理解的部分,不如多去参加几个项目,写几行代码来得实在。但书籍正是用来承载作者将自己所经历的,所思考总结出的经验的工具,为的就是让读者少走一些弯路,因此,读书是非常有必要的,我在这学期选择了《需求分析与系统设计》这本书,于此阐述自己阅读时的产物。
软件工程,谈到工程就会想到建筑师啊,高楼大厦什么的。的确,软件工程确实是在“软件”世界中创建理想中的高楼大厦,我们为了完成任务,需要尽可能按照甲方的要求去构造软件。但无论是现实世界中,还是网络世界中,开启一项工程不是说干就干的,要考虑相当多的因素,这一本书正是提供了很多设计上的思维。谈到工程我们需要思考最现实的东西——利益。实际上整个软件开发过程利益相关者仅有两个人:客户和开发者。客户一定是希望自己使用的软件功能齐全,使用方便的,也因为客户很大概率是不懂软件的,所以他们的要求有的时候未免显得不近人情,这时候作为开发者的我们需要根据实际开发情况跟客户进行协商,最后确定目标,完成软件开发,收工。这是大体上的软件开发流程。那么开发者在拿到协商后的方案后,该怎样进行实施?
现在的软件开发模式已经趋于成熟,目前可提供的解决方案管理框架就有两种:ITIL框架和COBIT框架。前者属于一种过程标准,面向的是软件开发者;后者面向的则是管理层,与业务需求挂钩。当然,本次重点讨论的不是这个,而是系统规划。我们在拿到一个软件项目时,需要对系统进行规划,现用四种常用方式来进行系统规划:
一,SWOT(优势,劣势,机会,威胁)。这种方式顾名思义,代入客户的需求,按照四个标准去分析系统。开发组根据SWOT矩阵所得出的长远目标,再细化得出具体目标后,根据两个目标制定策略,最后完成规划。
二,VCM(价值链模型)。这种方式与产品的价值挂钩,要根据产品的一个完整的活动链分析(从厂里出生到被客户抛弃而死亡)其竞争优势,进行系统规划,简单的说就是怎么做才能将价值收益最大化。
三,BPR(业务过程重组)。这种方式需要一个前提:组织必须彻底改造自己,丢弃掉那些正在使用的功能分解,分层结构和操作原则。其主要目的就是在现有的系统规划上不断重构,改进方案,最后得出最优解。需要注意的是BPR的主要目的不再局限于功能,而是整个业务过程。
四,ISA(信息系统体系结构)。它与SWOT“相反”,是自底向上的方法。ISA方法提供了一个框架,该框架需要5个视角:规划者,所有者,设计者,建造者,承包者;以及每个视角都需要面对6个关键问题:实例数据,业务过程,处理构件的位置,用户,事件和状态的调度,企业动机。根据这30个单元格(5×6),最后得出一个完整的系统框架。
无论是哪种系统规划方法,它们的主要目标都是一致的:追求软件的效果,而非效率。