50求一份系统分析的详细文档.

liaoyehg 2003-08-12 05:05:49
本人有7年的代码编写经验,但一直都在小公司做,所以没做过完整的系统分析,领导今日要求做一份系统分析,不如何下手,请高手帮忙,非常感谢!!!!
...全文
218 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
系统分析(转载)

  如果眼光仅仅放在满足客户眼下的需求,当问题不断出现时再不断修补,头痛医
头,脚痛医脚,甚至系统构架需要不断调整或重新设计,那么,很快就会陷入代码泥
潭或坠入系统重复开发的无底深渊,当初项目完成时的成就感将被无止境的沮丧所代
替。系统分析决定系统开发的成败,软件建模使系统开发走向成熟。

  一:系统分析在网站项目管理中的地位在进行了需求分析和业务流程分析并得到
客户的认可之后,对项目进行系统分析是极其重要的。系统分析是能体现整个系统的
灵魂的文档,将客户的需求从具体到抽象的一个过程,并制定编码人员可实施的规范
和标准。

  由于Web应用技术发展的历史相对与软件的历史短得多,在开发网络应用系统尤
其是网站制作的系统设计中设计人员往往对系统分析重视的不够,特别是设计一些初
期比较简单的或交互及功能较少的网站时,主要原因通常为:

  客户初期的需求比较简单,忽略了客户潜在的巨大需求;?项目实施周期短,初
期阶段采用最快的而不是最合理的实现手段;?经费有限,难以支付高质量的人力费
用;
Web编程技术手段多样,容易上手,设计人员参差不齐;从现实中来看,网站项
目的开发与管理和实施远不如软件工程规范,在编程语言、数据库、通信协议、应用
服务器等相关环境都在不断快速发展和完善的情况下,的确很难期望每一个设计师都
能网站项目进行系统的合理的分析,从而制定一套跨平台、健壮的、易扩展和升级的
系统方案。

  但是,这并不能成为系统分析员逃避或懈怠的借口,如果把一个系统比做一部汽
车,系统分析的工作相当于设计发动机,也许很容易就想像的出用125cc的摩托车发动
机去牵引10吨重载卡车会是一个什么样的后果。

  在系统分析的过程中需要对需求分析进行进一步的深化和分析,通常客户及业务
人员在需求分析和流程分析的过程中比较注重功能上的表现和定义,即使是做出正规
的用户界面原型,对系统的需求也是不完整的,处于非技术人员的缘故,很难苛求能
提出完整清晰专业的性能需求,但不意味着这需求不存在,而且这隐藏的需求对编码
人员来说是极其重要的。

  因此,客户的需求能否在系统中得到真正的体现和实施,系统分析是至关重要的。

  二:系统分析所要做的工作:

  把系统分析和详细设计阶段分开,针对不同项目的具体情况再决定采用什么方式
进行开发。

  那么在系统分析过程中重点要做的是:

  对客户的需求分析进一步完善和补充,尤其是性能需求:让客户更加清楚这是一
个什么样的系统,所要达到的功能和性能指标是什么,系统的扩展性和适应性如何,
如何为客户今后的升级或维护提供最有效的方法。

  系统运行所需要的的环境:系统能正常运行所需要的硬件、软件、网络环境;

系统的资源说明:系统所需要的各种成本。包括人员、时间、工作环境、一次性
投入资金、持续性投入资金等所有资源。

  系统可行性分析;对于系统分析员比较苦恼的是大多客户在系统的要求上提不出
独立的或成熟的意见,而将烫山芋交给了系统分析员的手上,为了避免在系统论证方
面难以把握的失控和无从下手,设计几种不同类型的方案供客户选择不失为一个好的
方法:

  比如通常至少应该考虑下述几类可能的方案:

  1:低成本的解决方案
  系统只能完成最必要的工作,不能多做一点额外的工作。

  2:中等成本的解决方案 
  这样的系统不仅能够很好地完成预定的任务,使用起来很方便,而且可能还具有
用户没有具体指定的某些功能和特点。虽然用户没有提出这些具体要求,但是系统分
析员根据自己的知识和经验断定,这些附加的能力在实践中将证明是很有价值的。

  3:高成本的"十全十美"的系统
  这样的系统具有用户可能希望有的所有功能和特点。系统分析员应该使用系统流
程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应该在充分权
衡各种方案的利弊的基础上,推荐一个较好的系统(最佳方案),并且制定实现所推
荐的系统的详细计划。如果用户接受分析员推荐的系统,则可以着手完成本阶段的另
一项主要工作。”(引用《如何写系统分析书》一文)

  经过系统分析的阶段,我们就比较容易和客户在系统如何部署、采用的数据库类
型、设计模型和分析模型等方面达成一致的认识,如果能顺利地将客户的需求业务逻
辑分析转化为程序逻辑,把原先用户可视化的界面原型和业务流程图映射成编码人员
理解的模型和规范时,那么恭喜你,项目已经成功了一半。

  三:系统分析的难点和技能要求:

  网络应用的开发技术在日新月异地进步,从而使网站应用系统的开发模式具有多
种选择性,达到同样的目标可以采用很多不同的方式,现代的应用系统越来越成为一
个庞大的集成方案,需要考虑不同的操作平台、不同的应用服务器、不同的数据库、
不同的编程语言、不同的传输介质等等,无疑对系统分析员来说是个严峻的考验,任
何人都不可能精通甚至说掌握全部的技术,简单例子:现在有Windows,Unix,Linux
等各种服务器操作平台,有SQL Server,Oracle,DB2,Sybase,MySQL等数据库,有
JAVA,PHP,ASP,CGI,JSP,C++,VB,Delphi等等工具,谁能全部精通呢?如果不
能,那么如何确定是Windows+SQL Server+ASP好还是Unix+Oracle+JAVA合适?况且各
种软件和语言还在不断发展进步之中,超越窄带的互联网,今后还可以涉及到宽带所
带来的变动,或者增加与无线移动的接口,因此系统分析员能否出色的胜任工作很大
程度上决定了系统开发的成败。

  系统分析的主要难点在于:

  对客户隐藏的性能需求的分析:由于客户对尚未实施的系统无法预见,对今后的
业务发展也无法预知,对性能需求的分析和定义更需要系统分析员协助客户去确定和
挖掘;确定项目设计方法:根据项目需求和资源的配置选择最合适的设计方式。

  对系统模块的划分和代码复用的设计:模块最大化,代码复用度最高,是一个成
熟的系统不断致力追求的,将大型复杂的应用系统分解成相对独立,具有高度复用的
模块,各个模块之间采用规范的参数接口,将大大提高系统的开发效率和维护升级的
方便性。即使在网站的模版设计或交互设计上,也尽可能采用嵌套可复用的模版或调
用统一的样式表、JS文件等。

  项目整体评估:系统分析员绝不应成为孤立的完美主义者,而需要根据项目的大
局出发,比如公司的资源配置、人力状况、客户要求等因素评估项目整体和各个模块
的工作量、进度和分配资源,制定出最合理的可行的实施方案。

  系统分析员不但需要具备良好的沟通协调能力,更需要具备业务和技术领域两方
面的专业技能,在项目小组中是非常关键的角色之一。

  四:总结

系统分析是项目开发中最艰巨的工作,本阶段需要特别注意的工作重点在于:
  补充完善上一阶段可能欠缺的系统的性能需求;?系统分析员需要站在全局出发,
设计合理可行的设计方案;?在需求不明的情况下设计多种解决方案供客户选择,将
系统分解模块,最大限度地设计代码复用;?使用UML建模方式,将客户变化的需求映
射到模型中,大大提高系统的扩展性和开发效率。
回复
系统分析(转载)

  如果眼光仅仅放在满足客户眼下的需求,当问题不断出现时再不断修补,头痛医
头,脚痛医脚,甚至系统构架需要不断调整或重新设计,那么,很快就会陷入代码泥
潭或坠入系统重复开发的无底深渊,当初项目完成时的成就感将被无止境的沮丧所代
替。系统分析决定系统开发的成败,软件建模使系统开发走向成熟。

  一:系统分析在网站项目管理中的地位在进行了需求分析和业务流程分析并得到
客户的认可之后,对项目进行系统分析是极其重要的。系统分析是能体现整个系统的
灵魂的文档,将客户的需求从具体到抽象的一个过程,并制定编码人员可实施的规范
和标准。

  由于Web应用技术发展的历史相对与软件的历史短得多,在开发网络应用系统尤
其是网站制作的系统设计中设计人员往往对系统分析重视的不够,特别是设计一些初
期比较简单的或交互及功能较少的网站时,主要原因通常为:

  客户初期的需求比较简单,忽略了客户潜在的巨大需求;?项目实施周期短,初
期阶段采用最快的而不是最合理的实现手段;?经费有限,难以支付高质量的人力费
用;
Web编程技术手段多样,容易上手,设计人员参差不齐;从现实中来看,网站项
目的开发与管理和实施远不如软件工程规范,在编程语言、数据库、通信协议、应用
服务器等相关环境都在不断快速发展和完善的情况下,的确很难期望每一个设计师都
能网站项目进行系统的合理的分析,从而制定一套跨平台、健壮的、易扩展和升级的
系统方案。

  但是,这并不能成为系统分析员逃避或懈怠的借口,如果把一个系统比做一部汽
车,系统分析的工作相当于设计发动机,也许很容易就想像的出用125cc的摩托车发动
机去牵引10吨重载卡车会是一个什么样的后果。

  在系统分析的过程中需要对需求分析进行进一步的深化和分析,通常客户及业务
人员在需求分析和流程分析的过程中比较注重功能上的表现和定义,即使是做出正规
的用户界面原型,对系统的需求也是不完整的,处于非技术人员的缘故,很难苛求能
提出完整清晰专业的性能需求,但不意味着这需求不存在,而且这隐藏的需求对编码
人员来说是极其重要的。

  因此,客户的需求能否在系统中得到真正的体现和实施,系统分析是至关重要的。

  二:系统分析所要做的工作:

  把系统分析和详细设计阶段分开,针对不同项目的具体情况再决定采用什么方式
进行开发。

  那么在系统分析过程中重点要做的是:

  对客户的需求分析进一步完善和补充,尤其是性能需求:让客户更加清楚这是一
个什么样的系统,所要达到的功能和性能指标是什么,系统的扩展性和适应性如何,
如何为客户今后的升级或维护提供最有效的方法。

  系统运行所需要的的环境:系统能正常运行所需要的硬件、软件、网络环境;

系统的资源说明:系统所需要的各种成本。包括人员、时间、工作环境、一次性
投入资金、持续性投入资金等所有资源。

  系统可行性分析;对于系统分析员比较苦恼的是大多客户在系统的要求上提不出
独立的或成熟的意见,而将烫山芋交给了系统分析员的手上,为了避免在系统论证方
面难以把握的失控和无从下手,设计几种不同类型的方案供客户选择不失为一个好的
方法:

  比如通常至少应该考虑下述几类可能的方案:

  1:低成本的解决方案
  系统只能完成最必要的工作,不能多做一点额外的工作。

  2:中等成本的解决方案 
  这样的系统不仅能够很好地完成预定的任务,使用起来很方便,而且可能还具有
用户没有具体指定的某些功能和特点。虽然用户没有提出这些具体要求,但是系统分
析员根据自己的知识和经验断定,这些附加的能力在实践中将证明是很有价值的。

  3:高成本的"十全十美"的系统
  这样的系统具有用户可能希望有的所有功能和特点。系统分析员应该使用系统流
程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应该在充分权
衡各种方案的利弊的基础上,推荐一个较好的系统(最佳方案),并且制定实现所推
荐的系统的详细计划。如果用户接受分析员推荐的系统,则可以着手完成本阶段的另
一项主要工作。”(引用《如何写系统分析书》一文)

  经过系统分析的阶段,我们就比较容易和客户在系统如何部署、采用的数据库类
型、设计模型和分析模型等方面达成一致的认识,如果能顺利地将客户的需求业务逻
辑分析转化为程序逻辑,把原先用户可视化的界面原型和业务流程图映射成编码人员
理解的模型和规范时,那么恭喜你,项目已经成功了一半。

  三:系统分析的难点和技能要求:

  网络应用的开发技术在日新月异地进步,从而使网站应用系统的开发模式具有多
种选择性,达到同样的目标可以采用很多不同的方式,现代的应用系统越来越成为一
个庞大的集成方案,需要考虑不同的操作平台、不同的应用服务器、不同的数据库、
不同的编程语言、不同的传输介质等等,无疑对系统分析员来说是个严峻的考验,任
何人都不可能精通甚至说掌握全部的技术,简单例子:现在有Windows,Unix,Linux
等各种服务器操作平台,有SQL Server,Oracle,DB2,Sybase,MySQL等数据库,有
JAVA,PHP,ASP,CGI,JSP,C++,VB,Delphi等等工具,谁能全部精通呢?如果不
能,那么如何确定是Windows+SQL Server+ASP好还是Unix+Oracle+JAVA合适?况且各
种软件和语言还在不断发展进步之中,超越窄带的互联网,今后还可以涉及到宽带所
带来的变动,或者增加与无线移动的接口,因此系统分析员能否出色的胜任工作很大
程度上决定了系统开发的成败。

  系统分析的主要难点在于:

  对客户隐藏的性能需求的分析:由于客户对尚未实施的系统无法预见,对今后的
业务发展也无法预知,对性能需求的分析和定义更需要系统分析员协助客户去确定和
挖掘;确定项目设计方法:根据项目需求和资源的配置选择最合适的设计方式。

  对系统模块的划分和代码复用的设计:模块最大化,代码复用度最高,是一个成
熟的系统不断致力追求的,将大型复杂的应用系统分解成相对独立,具有高度复用的
模块,各个模块之间采用规范的参数接口,将大大提高系统的开发效率和维护升级的
方便性。即使在网站的模版设计或交互设计上,也尽可能采用嵌套可复用的模版或调
用统一的样式表、JS文件等。

  项目整体评估:系统分析员绝不应成为孤立的完美主义者,而需要根据项目的大
局出发,比如公司的资源配置、人力状况、客户要求等因素评估项目整体和各个模块
的工作量、进度和分配资源,制定出最合理的可行的实施方案。

  系统分析员不但需要具备良好的沟通协调能力,更需要具备业务和技术领域两方
面的专业技能,在项目小组中是非常关键的角色之一。

  四:总结

系统分析是项目开发中最艰巨的工作,本阶段需要特别注意的工作重点在于:
  补充完善上一阶段可能欠缺的系统的性能需求;?系统分析员需要站在全局出发,
设计合理可行的设计方案;?在需求不明的情况下设计多种解决方案供客户选择,将
系统分解模块,最大限度地设计代码复用;?使用UML建模方式,将客户变化的需求映
射到模型中,大大提高系统的扩展性和开发效率。
回复
yestoall 2003-08-13
文档实例都涉及公司机密,所以大家都不方便贴出来。
我这里有一个模版,你就照着写好了。

  软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。编制软件需求说明书的内容要求如下:
1 引言

1.1编写目的
  说明编写这份软件需求说明书的目的,指出预期的读者。
1.2背景
  说明:
  a.待开发的软件系统的名称;
  b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
  C.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3定义
  列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
  列出用得着的参考资料,如:
  a.本项目的经核准的计划任务书或合同、上级机关的批文;
  b.属于本项目的其他已发表的文件;
  c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2 任务概述
2.1目标
  叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|
2.2用户的特点
  列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束
2.3假定和约束
  列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
3 需求规定
3.1对功能的规定
  用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。
3.2对性能的规定
3.2.1精度
  说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
3.2.2时间特性要求
  说明对于该软件的时间特性要求,如对:
  a.响应时间;
  b.更新处理时间;
  c.数据的转换和传送时间;
  d.解题时间; 等的要求。
3.2.3灵活性
  说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:
  a.操作方式上的变化;
  b.运行环境的变化;
  c.同其他软件的接口的变化;
  d.精度和有效时限的变化;
  e.计划的变化或改进。
  对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
3.3输人输出要求
  解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
3.4数据管理能力要求
  说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。
3.5故障处理要求
  列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
3.6其他专门要求
  如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4 运行环境规定
4.1设备
  列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
  a.处理器型号及内存容量;
  b.外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
  c.输入及输出设备的型号和数量,联机或脱机;
  d.数据通信设备的型号和数量;
  e.功能键及其他专用硬件
4.2支持软件
  列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。
4.3 接口
  说明该软件同其他软件之间的接口、数据通信协议等。
4.4控制
  说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。

回复
发帖
研发管理
创建于2007-08-27

1221

社区成员

软件工程/管理 管理版
申请成为版主
帖子事件
创建了帖子
2003-08-12 05:05
社区公告
暂无公告