结构化分析属于软件工程的系统分析阶段,通常划分成三个步骤:问题定义,可行性研究和需求分析。
问题定义决定了整个软件工程是否能朝着正确的方向进行。
可行性研究是研究问题的范围,探索上一步确定的问题是否值得去解,是否有可行的解决办法,从而决定软件工程终止还是继续进行下去。
需术分析要求开发人员确定用户需求,对整个软件开发过程及产品质量至关重要。
2.1问题定义
1,问题定义的规范化要求
问题必须明确,完整。
要求:①重视问题定义。②客观,全面地定义,不能避重就轻,偷工减料。③清楚问题定义的工作内容,不能把问题定义当作解决方法。④深入分析,抓住问题的本质。⑤严格评审。
2.2可行性研究
研究问题的范围,探索问题是否值得去解及是否有可行的解冯办法。
1,可行性研究的内容
可以从以下3方面对能否实现新系统目标进行可行性分析。
①技术可行性:在现有资源条件下,分析技术风险有多大及项目是否能实现。资源包括硬件资源,软件资源,技术人员的技术水平和己有的工作基础。主要包括以下4方面:
1采集影响系统性能,可靠性,可维护性方面的信息。
2论证实现系统功能和性能需要的各种设备,技术,方法和过程。
3分析项目开发在技术上担负的风险及对开发成本的影响。
4如有可能应研究现有类似系统。
技术可行性研究的困难主要体现在以下4方面:技术发展性,领域知识不熟悉,系统目标,功能和性能不确定。
②经济可行性
成本包括:购置并安装软件,硬件及有关设备的费用,系统开发费用,系统安装,运行和维护费用,人员培训费用
估算项目带来的经济效益:1系统为用户增加的收入,可以用直接的或统计的方法估算。2估算项目的开发成本是否超过预期的利润。3分析系统开发对其他产品或利润的影响。
③法律可行性
2.3需求分析
1,需求分析阶段的任务
可以分为4个步骤,即获取需求,分析需求,定义需求和验证需求。
①获取需求:通过启发和引导从客户那里得到原始需求是开发人员的业务要求,简称为N。
②分析需求:1完整性,描述清楚。2正确性,准确无误,无歧义。3合理性,协调一致,无矛盾冲突。4,可行性。5充分性,全面周到。
③定义需求:编写需求规格说明。
④验证需求:投受严格评审。
2,需求获取
涉及客户,用户和开发方。客户为软件投资方,用户为软件使用者。开发方要获取全面,正确的用户需求。
①需求获取的任务
要解决的问题:1发现和分析问题,并分析问题的因果关系。2与用户进行各种方式的交流,并使用调查研究方法收集信息。3按照数据,过程和接口三个成分观察问题。4将获取的需求文档化。
②需求获取的原则
1深入浅出的厚则。2以流程为主线的原则。
③需求获取的过程
步骤:1深入了解应用领域,开发高层的业务模型。2定义项目范围和高层需求。3识别用户类型和用户代表。4获取具体需求。5确定目标系统的业务工作流。6需求整理与总结。
获取具体需求途径:1与用户进行交流。2分析现有产品或竞争产品的描述文档。3分析系统需求规格说明。4当前系统的问题报告及改进要求。5市场调查和用户问卷调查。6观察用户工作。
2.4结构化需求分析
结构化分折的框驾主要包括功能建模(数据流图),数据建模(实体-联系图),行为建模(状态转换图)及框架核心(数据字典)。
1,功能建摸
数据流图的基本符号:①外部实体。②数据流。③加工。④数据存储。
画数据流图的步骤:①画出系统的环境图。②画出分层数据流图。
数据流图的改进:①正确性:数据是否守恒,数据存储的使用,子,父图平衡,加工与数据流的关系和命名。
②可读性:简化加工之间的联系,分解应当均匀,命名应当恰当。
2,数据建模
3种相互关联的元素:数据对象,描述数据对象的属性及数据对象彼此间相互关联的关系。
①数据对象,又称实体,是目标系统所需要的复合信息的表示,所谓复合信息是是有若干不同属性的信息。
②属性:数据对象的特征。
③联系:一对一,一对多,多对多。
3,行为建模
绘制系统的状态转换图,通过描绘系统的状态及引起系统状态转换的事件来表示系统的行为。
4,数据字典
以词条方式定义在数据模型,功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义。
①词条描述:数据流词条,数据元素词条,数据存储文件词条,加工词条,数据源点及数据汇点词条。
②加工逻辑:1对数据流图的每一个基本加工,必须有一个加工规格说明。2必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。3必须描述实现加工的策略而非细节。4包含的信息应是充足的,完备的,有用的,无重复多余的。
判定表,判定树。