软件工程-第二章结构化分析

结构化分析属于软件工程的系统分析阶段,通常划分成三个步骤:问题定义,可行性研究和需求分析。

问题定义决定了整个软件工程是否能朝着正确的方向进行。

可行性研究是研究问题的范围,探索上一步确定的问题是否值得去解,是否有可行的解决办法,从而决定软件工程终止还是继续进行下去。

需术分析要求开发人员确定用户需求,对整个软件开发过程及产品质量至关重要。

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包含的信息应是充足的,完备的,有用的,无重复多余的。

判定表,判定树。

相关推荐
小天努力学java11 分钟前
【软考-架构】10.1、软件工程概述-CMM-软件过程模型-逆向工程
架构·软件工程
武汉唯众智创4 小时前
职业本科软件工程实训室建设初探
软件工程·软件工程实训室·软件工程实验室
不是小盆友5 小时前
零基础上岸高项丨经验分享
经验分享·软件工程·pat考试·软考高级·软考·软考高项·苏景一软考
Tom Boom7 小时前
【3. 软件工程】3.1 软件过程模型
职场和发展·系统架构·软件工程
a180079310801 天前
软件工程面试题(六)
java·面试·软件工程
小小的测试一下2 天前
业务流程先导及流程图回顾
功能测试·软件工程
GIS程序媛—椰子2 天前
【软件工程】习题及答案
软件工程
GIS程序媛—椰子3 天前
【软件工程】填空题
软件工程
牛马程序员小邓3 天前
系统架构师备考——软件工程基础知识篇(软件测试&净室软件工程&基于构件的软件工程)
系统架构·软件工程
南山星火3 天前
人工智能与软件工程结合的发展趋势
人工智能·软件工程