首页 理论教育 结构化方法概述

结构化方法概述

时间:2023-02-28 理论教育 版权反馈
【摘要】:开发时期包括分析设计和实施两类任务,其中分析设计包括需求分析、总体设计和详细设计三个阶段,实施则包括编码和测试两个阶段。需求分析确定用户对软件系统的功能性和非功能性的全部需求,并以需求规格说明书的形式表达。分析、设计人员是在软件计划、需求分析和总体设计以及测试阶段的积极参与者。

3.2.1 结构化方法概述

1.结构化方法开发过程

结构化方法将软件生命周期划分为计划、开发、运行三个时期,每个时期分为若干阶段,各阶段的工作按顺序开展。

(1)计划时期

计划时期主要任务是分析新系统的目标和分析用户基本需求,按设定目标的要求进行问题定义并分析开发该系统的可行性。用户与分析人员的交互和配合是这一时期的重要特征和要求。

①问题定义。确定软件系统的主要功能,即进行系统功能分析,分析人员在与用户讨论的基础上提出软件系统目标、范围与功能说明。

②可行性研究。对问题定义阶段所确定的问题,实现的可能性和必要性进行研究,并讨论问题的解决办法,对各种方案可做出必要的成本/效益分析,分析人员据此提出可行性分析报告作为使用部门是否继续进行该项工程的依据。

(2)开发时期

开发时期包括分析设计和实施两类任务,其中分析设计包括需求分析、总体设计和详细设计三个阶段,实施则包括编码和测试两个阶段。需求分析确定用户对软件系统的功能性和非功能性的全部需求,并以需求规格说明书的形式表达。

①总体设计,建立系统的总体结构,子系统划分,提出软件结构图。

②详细设计,确定软件结构图中每个模块的内部过程和结构。

③编码,按照选定的程序语言,将模块的过程性描述翻译成程序。

④测试,发现并排除上述各阶段,即分析、设计和编码阶段所产生的各种错误。

(3)运行时期

运行期主要的任务是软件维护。为了排除软件系统中仍旧可能隐含的错误,适应用户需求及系统操作环境的变化,继续对系统进行的修改和扩充。

按上述模型进行的软件开发具有以下特点:

①阶段性。前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。

②推迟实施。将分析和设计与实施明显的划分开来,适当地推迟系统的具体程序来实现。

③文档管理。在每阶段都规定了要完成的文档,如果没有完成文档,就认为没有完成该阶段的任务。在每一阶段都要对已完成的文档进行复审,以便尽早发现问题,避免后期的返工。

2.问题定义

问题定义阶段的任务是要确定软件系统所要解决的任务。分析人员在与用户和部门负责人交互之后,应提出关于问题性质、工程目标和规模的书面报告,即软件系统目标与范围的说明。

为了确定软件系统的目标和范围,需要将整个新的系统看成由多种元素组成的集合体。其中包括人、操作过程、硬件、软件和信息元素。然后将整个系统功能分配给硬件、软件和人等元素。描述软硬件和人之间的接口,对软件系统的性能与可靠性、开发费用和进度进行限定。

为了成功地完成问题定义阶段的任务,需要硬件人员和软件人员的共同参与,这一阶段是软件生命周期中较短的阶段。

3.可行性研究

(1)可行性研究的任务

可行性研究的目的在于用最小的代价确定在问题定义阶段所确定的系统目标和规模是否现实,所确定的问题是否可以解决,系统方案在经济上、技术上和操作上是否可以接受。

可行性研究着重对如下具体方案考虑:

①经济可行性

估计开发费用以及新系统可能带来的收益,将两者进行权衡,看结果是否可以接受。

②技术可行性

对要求的功能、性能以及限制条件进行分析,是否能够做一个可接受的系统。所考虑的因素通常还包括开发的风险,是否能够得到需要的软件、硬件资源和一个熟练的有能力的开发队伍,与系统开发有关的技术是否足以支持系统的研制。技术可行性的估计,需要有经验的人员去完成。

③操作可行性

判断系统的操作方式在该用户组织内是否可行。

(2)推荐方案

分析设计人员应以新系统的目标和作用范围为依据提出一种以上的设计方案,从技术可行性、经济可行性、操作可行性等方面进行比较,并选择出综合最优的方案。

根据可行性研究结果要做出的决定是:是否继续按预定目标进行这项开发工程,可行性分析人员必须清楚地表明他对这个关键性决定的建议。如果认为值得继续进行这项开发工程,则应提供选择一种最好的解法并说明理由。可见分析是在问题的目标和约束之间的一种权衡,还可能有的结果则是修改目标或放宽约束。

(3)软件计划

分析人员应该为推荐的系统草拟一份软件计划,其中描述的是为了成功地进行一个软件项目,其所需要做的工作、需要的资源、需要的工作量和费用以及应遵循的进度安排。

软件计划的目的是提供一个框架,使主管人员可以对资源、成本、进度在项目开始以后能在很短时间内就可以进行合理的估价,而不必等到详细的软件需求分析完成之后。

软件计划由两项任务组成:分析和估算。分析是对系统内各软件功能界限的划定。估算是指根据已有的定性数据和以往的经验对系统开发的资源、费用和进度进行定量的估计。

在软件开发工作中的资源包含人力资源、软件资源和硬件资源。对每一种资源都应指明:资源的描述、使用资源的起始时间和持续时间。

人员可以分为管理人员、分析、设计人员及编码和测试人员。管理人员在项目的早期参与工作,在项目中期参与较少,到项目后期参与又较多。分析、设计人员是在软件计划、需求分析和总体设计以及测试阶段的积极参与者。而编码和测试人员则大都在详细设计、编写程序期间和早期测试阶段参与工作。

硬件资源包括:开发系统、目标机器和新系统的其他硬件部分。开发系统是指在软件开发阶段使用的计算机及其指定的外部设备。开发系统应该能够适应多种用户的需求,保持大量的信息并应尽可能多地提供各种软件工具。目标系统是指所开发的软件最终在机上运行的计算机系统。

软件资源包括:支持软件和应用软件。支持软件是用来帮助软件开发的软件,它包括各种各样的软件工具,适当地使用支持软件可以显著地改善软件开发的生产率。应用软件是从各种软件包或程序库中最终成为新软件的一个组成部分的软件。在采用应用软件时的两条准则是:如果现有的应用软件需要做“某些修改”才能与系统正确地结合时,一定要小心从事;在一般情况下,修改现有软件的费用有时会高于开发同样软件的费用。

软件开发项目的进度安排可以从两种观点来考虑:一是项目的交付日期已定,负责开发工作的软件机构被限定在一个规定的时间范围内分配其工作量;二是项目最后的交付日期由软件机构自己确定,可以从最佳的利用各种资源的角度出发来分配工作量,项目最后的交付日期经过对软件各部分仔细分析后才确定。在多数项目中,遇到的往往是第一种情况。

软件计划的阅读者可以包括软件主管部门、用户和技术人员。所确定的成本与进度可供主管部门复审。它同时也给出了整个软件生命周期的基本成本预算和进度安排。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈