从十多年前开始接触编程知识,一路从c、vb、asp、delphi、.net、j2ee等学来,虽然学会了一些基础的应用,但对系统分析与设计仍然很茫然。经过不断的学习和总结,针对中小型系统的分析与设计给出几点总结,希望对初学者能提供帮助。
界限:从软件生命周期来看,一定要搞清楚啥叫界限,简单来说你所从事的工作属于软件的那个阶段,通常的教科书、专业书籍等往往也介绍的云里雾里,让初学者摸不着头脑,啥都学、啥都不了解,搞不清真正的方向。严格意义上来说,一个软件的诞生,应该从需求开始,需求分析应该属于需求阶段的事情,这个应该属于第一阶段;有个这个基础以后,开始对软件进行设计、编码、测试,这个应该是第二阶段。个人认为这样的基线应该是比较合理的,软件生命周期界限不宜分的过多,因为界限越多管理越复杂,不利于系统的整体开展。
要求:那么每个阶段我们要做什么能?对我么提出那些要求呢?我们分别来做介绍。
第一阶段重点是搞清楚用户的需求并且提出关键的改善意见,则重在于需求理解与描述。
首先,不管是结构化方法还是面向对象分析方法,最终目的是把客户的需求理解清楚,需求从哪里来呢?从客户的业务流程来,这点很多初学者不太能体会到,这样理解比较容易------一个流程可以看作一个子系统,一个软件是由若干个子系统构成,每个子系统又是由若干的功能点组成,需求分析就是把实际业务流程或功能点采用信息化手段进行管理,从而解决实际业务无法完成的任务,并且借助分析工具把需求通过图形、表格、文字等方式并固化下来,也是作为设计的基础;其次,在理解客户需求基础上给客户提出关键的改善意见,就是告诉客户那些流程需要变革或者改进,并且告诉客户改进后流程的优势和好处,必须拿出让客户能接受的方案,最后再次完善需求文档;所以这阶段的人必须对业务十分的了解与熟悉,否则无法真正理解客户的需求,更谈不上给客户提出关键意见了,另外一个重要的要求就是掌握需求分析工具,就拿UML来说,需要掌握各种图形的画法,并且能熟练进行各种业务流程和功能点的建模。
第二阶段通过理解需求文档并实现系统,则重在于用户体验。
设计阶段可以指定不同的管理基线,每个阶段给出相关的质量要求和文档要求,并且作为后一个阶段的要求,采用连环锁的方式实现环环卡关,确保各个阶段软件质量,最后在通过单元和集成测试,最终设计出符合客户要求的高质量软件。例如:可以分为输入输出设计(HCI)、数据库设计、框架设计、编码、测试等等内容。
框架设计,根据需求文档组织各个功能模块,实现不同功能模块的组织与权限设计;
输入输出设计,根据不同业务流程、不同功能点、不同用户风格、不同业务要求设计出不用的GUI界面,要简单、易用、简洁、大方,这点尤为重要,也是设计的核心任务之一;
数据库设计,利用数据库建模技术实现数据库的设计与实现;
编码,根据需求文档要求实现各功能模块;
测试,根据需求文档验证个功能模块是否符合相应的需求;