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

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

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

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

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

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

判定表,判定树。

相关推荐
不止会JS1 天前
软考:系统架构设计师教材笔记(持续更新中)
系统架构·软件工程·软考
Theodore_10222 天前
4 软件工程——总体设计
java·开发语言·数据库·算法·java-ee·软件工程·设计
Theodore_10222 天前
1 软件工程——概述
java·开发语言·算法·设计模式·java-ee·软件工程·个人开发
shinelord明2 天前
【再谈设计模式】享元模式~对象共享的优化妙手
开发语言·数据结构·算法·设计模式·软件工程
人才程序员3 天前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面
Theodore_10223 天前
3 需求分析
java·开发语言·算法·java-ee·软件工程·需求分析·需求
做人求其滴4 天前
GDPU软件工程习题(挖空版)
软件工程
MrFlySand_飞沙4 天前
软件工程
软件工程
jokr_4 天前
【软件工程复习】
软件工程
云空4 天前
《软件工程文档攻略:解锁软件开发的“秘籍”》
软件工程