




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(建筑施工;为;米;千米;
考试)安徽省公务员考试计
算机软件工程
2020年4月
多年的企业咨询顾问经验,经过实蟋画以落地执行的卓越管理方案,值得您下载拥有!
软件工程
自从1968年首次提出软件工程一词以来,软件工程已成为计算机软件的一个重要分支和研
究方向。软件工程建筑施工;为;米;千米;指应用计算机科学、数学及管理科学等原理,
以工程化的原则和方法来解决软件问题的工程。其目的建筑施工;为;米;千米;提高软件
生产率、提高软件质量、降低软件成本。
一、软件工程基本概念
早期的软件主要指程序。程序的开发采用个体工作方式,开发工作主要依赖于开发人员的个
人技能和程序设计技巧。当时的软件通常缺少与程序有关的文档,软件开发的实际成本和进
度往往与预计的相差甚远,软件的质量得不到保证,开发出来的软件常常不能使用户满意。
随着计算机应用的需求不断增长,软件的规模也越来越大,然而软件开发的生产率远远跟不
上计算机应用的迅速增长。此外,由于软件开发时缺少好的方法指导和工具辅助,同时又缺
少有关的文档,使得大量已有的软件难以维护。上述这些问题严重地阻碍了软件的发展,20
世纪60年代中期,人们把上述软件开发和维护中的各种问题称为“软件危机"。1968年在
德国召开的NATO会议上,首次提出了“软件工程"一词,希望用工程化的原则和方法来
克服软件危机。在此以后,人们开展了软件开发模型、开发方法、工具与环境的研究,提出
了瀑布模型、演化模型、螺旋模型、喷泉模型等开发模型,出现了面向数据流方法、面向数
据结构的方法、面向对象方法等开发方法,以及一批CASE(computeraidedsoftware
engineering)工具和环境。
(-)软件生存周期
如同人的一生要经历婴儿期、少年期、老年期直至死亡这样一个全过程一样,任何一个软件
产品或软件系统也都要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程,我
们把软件的这一全过程称为软件生存周期。软件定义、软件开发、软件维护等阶段还可分为
若干个阶段,每个阶段相对独立又彼此有联系,上一阶段的工作结果建筑施工;为;米;干
米;下一阶段工作的依据,下一阶段建筑施工;为;米;千米;上一阶段的进化,它更接近
于问题的解。
1.软件定义
软件定义阶段主要解决的问题建筑施工;为;米;千米;待开发的软件要"做什么",也就
建筑施工;为;米;千米;要确定软件的处理对象,软件与外界的接口,软件的功能和性能,
界面以及有关的约束和限制。软件定义阶段通常可分成系统分析、软件项目it划、需求分析
等阶段。
(1)系统分析这里讲的系统建筑施工;为;米;千米;指计算机系统,包括计算机硬件、
软件和使用计算机的人。系统分析的任务建筑施工;为;米;千米;确定待开发软件的总体
要求和适用范围,以及与之有关的硬件、支撑软件的要求。系统分析阶段的参加人员有用户、
项目负责人、系统分析员。该阶段产生的文档可合并在软件项目计划阶段的文档(项目计划
书)中。
(2)软件项目计划软件项目计划的任务建筑施工;为;米;千米;确定待开发软件的目标,
对其进行可行性分析,并对资源分配、进度安排等做出合理的计划。软件项目计划阶段的参
加人员有用户、项目负责人、系统分析员。该阶段所产生的文档有可行性分析报告、项目计
划书。
(3)需求分析需求分析的任务建筑施工;为;米;千米;确定待开发软件的功能、性能、
数据、界面等要求,从而确定系统的逻辑模型。需求分析阶段的参加人员有用户、项目负责
人系统分析员。该阶段产生的文档有需求规约(requirementsspecification),习惯上称
它为需求规格说明书。
2.软件开发
软件开发阶段主要解决的问题建筑施工;为;米;千米;该软件"怎么做",包括数据结构
和软件结构的设计,算法设计,编写程序,测试,最后得到可交付使用的软件。软件开发阶
段通常可分成软件设计、编码、软件测试等阶段。
(1)软件设计软件设计通常还可分成概要设计和详细设计。概要设计的任务建筑施工;为;
米;千米;模块分解,确定软件的结构,模块的功能和模块间的接口,以及全局数据结构的
设计。详细设计的任务建筑施工;为;米;千米;设计每个模块的实现细节和局部数据结构
的设计。概要设计阶段的参加人员有系统分析员和高级程序员,详细设计阶段的参加人员有
高级程序员和程序员。设计阶段产生的文档有设计规约(designspecification),也称为
设计说明书,它也可分为概要设计说明书和详细设计说明书。根据需要还可产生数据说明书
和模块开发卷宗。
(2)编码编码的任务建筑施工;为;米;千米;用某种程序语言为每个模块编写程序。编
码阶段的参加人员有高级程序员和程序员,产生的文档有程序清单。
(3)软件测试软件测试的任务建筑施工;为;米;千米;发现软件中的错误,并加以绢正。
软件测试阶段的参加人员通常由另一部门(或单位)的高级程序员或系统分析员承担,该阶
段产生的文档有软件测试计划和软件测试报告。
3.软件维护
软件开发阶段结束后,软件即可交付使用。软件的使用通常要持续几年甚至几十年,在整个
使用期间,都可能因为某种原因而修改软件,这便建筑施工;为;米;千米;软件维护。引
起修改软件的原因主要有三种:一建筑施工;为;米;千米;在软件运行过程中发现了软件中
隐藏的错误而修改软件;二建筑施工;为;米;千米;为了适应变化了的环境而修改软件;三
建筑施工;为;米;千米;为修改或扩充原有软件的功能而修改软件。因此软件维护的任务
就建筑施工;为;米;千米;为使软件适应外界环境的变化、实现功能的扩充和质量的改善
而修改软件。软件维护阶段的参加人员建筑施工;为;米;千米;维护人员,该阶段产生的
文档有维护计划和维护报告。目前,软件生存周期各阶段的划分尚不统一,有的分得粗些,
有的分得细些。许多场合软件开发阶段都建筑施工;为;米;千米;从需求分析阶段开始的。
本书中,我们也将需求分析看作为软件开发的开始阶段。
(-)软件开发模型
为了指导软件的开发,用不同的方式将软件生存周期中的所有开发活动组织起来,形成不同
的软件开发模型。常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。瀑
布模型如下图所示,它建筑施工;为;米;千米;1970年由W.Royce提出的。该模型给出
了软件生存周期各阶段的固定顺序,上一阶段完成后才能进入到下一阶段,整个过程就像流
水下泻,故称之为瀑布模型。图中的虚线部分表示在某一阶段发现错误时,其错误可能建筑
施工;为;米;千米;由上一阶段造成的,因此开发过程可能要反馈到上一阶段。在瀑布模
型中,各阶段结束后,都要进行严格的评审。
(三)软件开发方法
软件开发过程模型规定软件开发活动的组合应用方式,要保证开发活动的高质量,还需要有
相应的软件开发方法作为技术支持。近10年来,软件工作者研制出了许多工程化的软件开
发方法,例如70年代初提出的用于编写程序的结构化程序设计方法,确实起到了提高效率,
减少错误的效果。但建筑施工;为;米;千米;70年代中期,软件工作者认识到编写程序
仅仅建筑施工;为;米;千米;软件开发的一个环节,而合理地建立系统结构比编定程序更
为重要。所以研究的重点前移到设计阶段,出现了设计阶段的结构化设计(SD)方法和JA
CKSON等方法,到了70年代后期,人们又发现事先对用户的要求进行分析更为重要,故
又把重点前移到分析阶段。出现了用于分析阶段的结构化分析(SA)方法、结构化分析与设
计技术(SADT)等。随着计算机技术的迅速发展,在80年代初期的实时、并发和网络等软
件的开发过程中,特别建筑施工;为;米;干米;在第五代计算机研究工作中,又提出了面
向对象的设计方法.现在流行的方法有多种,它们的适用范围也各不相同。有的适用于一般
的数据处理系统,如SA、SD(两者统称为结构化分析与设计方法,即Yourdon方法)、J
ACKSON方法;有的适用于大型的复杂系统,如SADT技术;有的适用于实时事务处理系统,
如FSM方法;有的适用于并发软件系统,如PETRI网方法;作为90年代代表作的面向对象方
法,其应用已几乎遍布各个领域。这些方法除了适用范围不同外,方法形成的基础、处理规
则和对所开发软件风格的要求等都各有侧重。用什么方法来说明用户的要求、用什么方法来
设计软件以及用什么方法对软件进行测试和维护,直接影响所开发软件的质量。
(四)软件开发工具
早期的软件开发除了一般的程序设计语言外尚缺少工具的支持,致使编程工作量大,质量和
进度却难以保证,导致人们将很多的精力和时间花费在程序的编制和调试上;相比之下,在更
重要的软件的需求和设计上反而得不到必要的精力和时间投入。软件开发工具的发展促进了
软件开发的高速度和高质量。工具的发展建筑施工;为;米;千米;从单项工具的开发逐步
走向集成的工具发展的。同时,软件开发方法的有效应用也必须得到相应工具的支持,否则
方法将难以有效的实施。工具的完善和发展将促进软件开发的进步和完善。原型化方法的实
施基础就建筑施工;为;米;千米;得到了开发工具的支持。快速原型化之所以能够实现的
基础就建筑施工;为;米;千米;原型化人员在快速建模时得到了工具的支持,否则原型化
方法建筑施工;为;米;千米;无法实施的。
(五)软件开发环境
软件工程环境或称软件开发环境建筑施工;为;米;千米;全面支持软件开发全过程的软件
工具集合。这些软件工具按照一定的方法或模式组合起来,并能支持软件开发生命周期的各
个阶段和各项任务的完成。CASE,即计算机辅助软件工程环境建筑施工;为;米;千米;
当前软件开发环境中富于特色的研究工作和发展方向,它的成功将最大限度地降低软件工程
的技术难度并使软件开发的质量得到保证。
二、结构化生命周期方法
结构化分析与设计方法在软件工程中应用已很普遍,并且越来越成熟。有许多大、中型项目
都采用了这种方法进行开发并取得了显著的成果。按B.W.Boehm的描述,瀑布模型的的软
件生命周期可划分七个阶段:系统需求分析、软件需求分析、概要分析、详细设计、编码、测
试和运行维护。
(-)系统需求
"系统需求"包括:问题定义、可行性研究及软件计划。
1.问题定义
软件开发的第一步就建筑施工;为;米;千米;进行问题定义。问题定义阶段必须回答的关
键问题:"软件要解决的问题建筑施工;为;米;千米;什么?"如果不知道问题建筑施工;
为;米;千米;什么就试图解决这个问题,显然建筑施工;为;米;千米;盲目的,只会白
白浪费时间和金钱,最终得出的结果很可能建筑施工;为;米;千米;毫无意义的。尽管确
切地定义问题的必要性建筑施工;为;米;千米;十分明显的,但建筑施工;为;米;千米;
在实践中它却可能建筑施工;为;米;千米;最常被忽视的一个步骤。这里所说的问题,就
建筑施工;为;米;千米;指用户的基本要求。说得通俗些,问题定义实际上就建筑施工;
为;米;千米;了解用户到底要建立什么系统,并确定分析员下一步应该做什么。因此,问
题定义的来源建筑施工;为;米;千米;用户。通过问题定义阶段的工作,系统分析员应该
提出关于问题性质、工程目标和规模的书面报告。这一阶段的分析员应尽可能站在较高的角
度去抽象、概括所要干的事情,不要拘泥于问题实现的细节。尽管用户可能总建筑施工;为;
米;千米;习惯于这样做,但分析员在这一阶段必须超脱出来,居高临下鸟瞰系统的全貌。
通过对系统的实际用户和使用部门负责人的访问调查,分析员扼要地写出他对问题的理解,
并在使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不清的地方,改正理解不正
确的地方,最后得出一份双方都满意的文档。当用户的要求不建筑施工;为;米;千米;很
多并且不太复杂时,一两个分析员用上一两天就可以完成这一工作了。但当系统比较大,且
复杂时,恐怕就要组织一个问题定义小组,花上一两个星期,甚至数月来定义用户的问题。
如果分析员和用户及使用部门的负责人对所要解决的问题取得完全一致的看法,而且使用部
门的负责人同意开发工程继续进行下去,那么开发工程将转入生命周期的下一个阶段------
可行性研究。
2.可行性研究
并不建筑施工;为;米;千米;所有问题都有简单明显的解决办法,事实上,许多问题不能
在预定的系统规模之内解决。如果问题没有可行的解,那么花费在这项开发工程上的任何时
间、资源、人力和经费和都建筑施工;为;米;千米;无谓的浪费。可行性研究的目的在于
用最小的代价确定在问题定义阶段所确定的系统的目标和规模建筑施工;为;米;千米;否
现实,所确定的问题建筑施工;为;米;千米;否可以解决,系统方案在经济上、技术上和
操作上建筑施工;为;米;千米;否可以接受。可行性研究着重对如下具体方案考虑:
(1)经济可行性。估计开发费用以及新系统可能带来的收益,将两者进行权衡,看结果建
筑施工;为;米;千米;否可以接受。
(2)技术可行性。对要求的功能、性能以及限制条件进行分析,建筑施工;为;米;千米;
否能够做成一个可接受的系统。所考虑的因素通常还应包括开发的风险,建筑施工;为;米;
千米;否能够得到需要的软件和硬件资源和一个熟练的有能力的开发队伍,与系统开发有关
的技术建筑施工;为;米;千米;否足以支持系统的研制。技术可行性的估计,需要有经验
的人员去完成。
(3)操作可行性判断系统的操作方式在该用户组织内建筑施工;为;米;千米;否可行。
分析、设计人员应以新系统的目标和作用范围为依据提出一种以上的设计方案,从技术可行
性、经济可行性、操作可行性等方面进行比较,并选择出综合最优的方案。根据可行性研究
结果要做出的决定建筑施工;为;米;千米;:建筑施工;为;米;千米;否继续按预定目标
进行这项开发工程,可行性分析人员必须清楚地表明他对这个关键性决定的建议。如果认为
值得继续进行这项开发工程,则应提供选择一种最好的解法并说明理由。可行性分析建筑施
工;为;米;千米;在问题的目标和约束之间的一种权衡,还可能有的结果则建筑施工;为;
米;千米;修改目标或放宽约束。
3.软件计划
分析人员应该为推荐的系统草拟T分软件计划,其中描述的建筑施工;为;米;千米;为了
成功地进行一个软件项目,其所需要做的工作、需要的资源、需要的工作量和费用以及应遵
循的进度安排。软件计划由两项任务组成:分析和估算。分析建筑施工;为;米;千米;对系
统内各软件功能的界限的划定。估算建筑施工;为;米;千米;指根据已有的定性数据和已
往的经验对系统开发的资源、费用和进度进行定量的估计。软件开发项目的进度安排可以从
两种观点来考虑:一建筑施工;为;米;千米;项目的交付日期已定,负责开发工作的软件机
构被限制在一个规定的时间范围内分配其工作量。二建筑施工;为;米;千米;项目最后的
交付日期由软件机构自已确定,可以从最佳的利用各种资源的角度出发来分配工作量,项目
最后的交付日期经过对软件各部分仔细分析后才确定。在多数项目中,遇到的往往建筑施工;
为;米;千米;第一种情况。软件计划的阅读者可以包括软件主管部门、用户和技术人员。
所确定的成本与进度可供主管部门复审。它同时也给出了整个软件生命周期的基本成本预算
的进度安排。
(-)软件需求分析
软件需求分析工作建筑施工;为;米;千米;软件生存期中重要的一步,也建筑施工;为;
米;千米;决定性的一步。只有通过软件需求分析,才能把软件功能和性能的总体概念描述
为具体的软件需求规格说明,从而奠定软件开发的基础。软件需求分析工作也建筑施工;为;
米;千米;一个不断认识和逐步细化的过程。该过程将软件设计阶段所确定的软件范围(工
作域)逐步细化到可详细定义的程度,并分析出各种不同的软件元素,然后为这些元素找到
可行的解决方法。制定软件的需求规格说明不只建筑施工;为;米;千米;软件开发人员的
事,用户也起着至关重要的作用。用户必须对软件功能和性能提出初步要求,并澄清一些模
糊概念。而软件分析人员则要认真了解用户的要求,细致地进行调查分析,把用户"做什么"
的要求最终转换成一个完全的、精细的软件逻辑模型并写出软件的需求规格说明,准确地表
达用户的要求。
1.软件需求分析任务
需求分析所要做的工作建筑施工;为;米;千米;深入描述软件的功能和性能,确定软件设
计的限制和软件同其他系统元素的接口细节。定义软件的其他有效性需求。分析员通过需求
分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为
数据设计、结构设计和过程设计的数据与功能表示。在软件完成后,制定的软件需求规格说
明还要为评价软件质量提供依据。需求分析阶段研究的对象建筑施工;为;米;千米;软件
项目的用户要求。需要注意的建筑施工;为;米;千米;,必须理解用户的各项要求,但又
不能全盘接受所有的要求。因为并非所有用户要求都建筑施工;为;米;千米;合理的。对
其中模糊的要求还需要澄清,然后才能决定建筑施工;为;米;千米;否可以采纳。对于那
些无法实现的要求应向用户做充分的解释,以求得谅解。准确地表达所接受的用户要求,建
筑施工;为;米;千米;需求分析的另一个重要方面。只有经过确切描述的软件需求才能成
为软件设计基础。通常软件开发项目建筑施工;为;米;千米;要实现目标系统的物理模型,
即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。它建筑施
工;为;米;千米;软件实现的基础。但建筑施工;为;米;千米;目标系统的具体物理模
型建筑施工;为;米;千米;由它的逻辑模型经实例化,即具体到某个业务领域而得到的。
与物理模型不同,逻辑模型忽视实现机制与细节,只描述系统要完成的功能和要处理的数据。
作为目标系统的参考,需求分析的任务就建筑施工;为;米;千米;借助于当前系统的逻辑
模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
(1)获得当前系统的物理模型。当前系统可能建筑施工;为;米;千米;需要改进的某个
已在计算机运行的数据处理系统,也可能建筑施工;为;米;千米;一个人工的数据处理过
程。在这一步首先分析、理解当前系统建筑施工;为;米;千米;如何运行的,了解当前系
统的组织机构、输入输出、资源利用情况和日常数据处理过程,并用一个具体模型来反映自
己对当前系统的理解。这一模型应客观地反映现实世界的实际情况。
(2)抽象出当前系统的逻辑模型。在理解当前系统"怎样做”的基础上,抽取其"做什么"
的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在物理模型中有许多物理
因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担,因而需要对物理
模型进行分析,区分出本质的和非本质的因素,去掉那些非本质的因素即可获得反映系统本
质的逻辑模型。
(3)建立目标系统的逻辑模型。分析目标系统与当前系统逻辑上的差别,明确目标系统统
到底要"做什么",从当前系统的逻辑模型导出目标系统的逻辑模型。(4)为了对目标系
统做完整的描述,还需要对得到的逻辑模型做一些补充。①说明目标系统的用户界面。根据
目标系统所处的应用环境及它与外界环境的相互关系,研究所有可能与它发生联系和作用的
部分,从而决定人机界面。②说明至今尚未详细考虑的细节。这些细节包括系统的启动和结
束、出错处理、系统的输入输出和系统性能方面的需求。③其他。例如系统的其他必须满足
的性能和限制等等。
2.需求分析的过程
需求分析阶段的工作,可以分成以下4个方面:对问题的识别、分析与综合、制定规格说明和
评审。
(1)问题识别首先系统分析人员要研究计划阶段产生的可行性分析报告(如果有的话)和
软件项目实施计划。主要建筑施工;为;米;千米;从系统的角度来理解软件并评审用于产
生计划估算的软件范围建筑施工;为;米;千米;否恰当。确定对目标系统的综合要求,即
软件的需求。并提出这些需求实现条件,以及需求应达到的标准。也就建筑施工;为;米;
千米;要求所开发软件做什么,做到什么程度。这些需求包括:
・功能需求:列举出所开发软件在职能上应做什么。这建筑施工;为;米;千米;最主要的需
求。
・性能需求:给出所开发软件的技术性能指标,包括存储容量限制、运行时间限制、安全保密
性等。
•环境需求:这建筑施工;为;米;千米;对软件系统运行时所处环境的要求。例如在硬件方
面,采用什么机型、有什么外部设备、数据通信接口等等。在软件方面,采用什么支持系统
运行的系统软件(指操作系统、网络软件、数据库管理系统等).在使用方面,需要使用部
门在制度上、操作人员的技术水平上应具备什么样的条件等等。
•可靠性需求:各种软件在运行时,失效的影响各不相同.在需求分析时,应对所开发软件在
投入运行后不发生故障的概率,按实际的运行环境提出要求,对于那些重要的软件,或建筑
施工;为;米;千米;运行失效会造成严重后果的软件,应当提出较高的可靠性要求,以期
在开发的过程中采取必要的措施,使软件能够高度可靠地稳定运行,避免因运行事故而带来
的损失。
•安全保密要求:工作在不同环境的软件对其安全,保密的要求显然建筑施工;为;米;千米;
不同的。应当把这方面的需求恰当地做出规定,以便对所开发的软件给予特殊的设计,使其
在运行中其安全方面的性能得到必要的保证。
•用户界面需求:软件与用户界面的友好性建筑施工;为;米;千米;用户能够方便、有效、
愉快地使用该软件的关键之一。从市场角度来看,具有友好用户界面的软件有很强的竞争力。
因此,必须在需求分析时,为用户界面细致地规定达到的要求。
•资源使用需求:这建筑施工;为;米;千米;指所开发软件运行时所需的数据、软件、内存
空间等各项资源外,软件开发时所需的人力、支撑软件、开发设备等则属于软件开发的资源,
需要在需求分析时加以确定。
•软件成本消耗与开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和
步骤的费用提出要求,作为开发管理的依据。
•预先估计以后系统可能达到的目标。这样,在开发过程中,可对系统将来可能扩驻与修改
做准备。一旦需要时,就比较容易进行补充和修改。
•功能性需求建筑施工;为;米;千米;人们普遍关注的,但常常忽视对非功能性需求的分
析。其实非功能性需求并不建筑施工;为;米;千米;无关紧要的,它们涉及到的方面多而
广,因而容易被忽略。如果在进行需求分析之前没有做过可行性分析,那么补充完成这部分
工作往往建筑施工;为;米;千米;必要的。从问题定义和调查研究入手,与用户密切联系,
详细了解问题提出的背景,弄清要解决什么问题。然后从软件系统特性和用户目标出发,做
市场调查和现场考察。仔细收集信息之后进行数据分析和功能分析,建立系统的高层逻辑模
型,再进一步做成本/效益分析。最后提交一份可行性分析报告,从技术、经济、社会效应
等方面论证可行性,以确认软件开发的目标建筑施工;为;米;千米;否可行。问题识别的
另一项工作建筑施工;为;米;千米;建立分析所需要的通信途径,以保证能顺利地对问题
进行分析。分析员必须与用户、软件开发机构的管理部门、软件开发组的人员建立联系。项
目负责人在此过程中起协调人的作用。分析员通过这种通信途径与各方商讨,以便能满足用
户的要求。
(2)分析与综合需求分析的第二步工作建筑施工;为;米;千米;问题分析和方案的综合。
分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、
接口特性和设计上的限制,分析它们建筑施工;为;米;千米;否满足功能要求,建筑施工;
为;米;千米;否合理。依据功能需求、性能需求、运行特性和设计上的限制分析它们建筑
施工;为;米;千米;否满足功能要求,建筑施工;为;米;千米;否合理。依据功能需求、
性能需求、运行环境需求等,剔除其不合理的部分,增加其需要的部分。最终综合成系统的
解决方案,给出目标系统的详细逻辑模型。在这个步骤中,分析和综合工作反复地进行。在
对现行问题和期望的信息(输入和输出)进行分析的基础上,分析员开始综合出一个或几个
解决方案,然后检查这些方案建筑施工;为;米;千米;否符合软件计划中规定的范围等等,
再进行修改。总之,对问题进行分析和综合的过程将一直持续到分析员与用户双方都感到有
把握正确地制定该软件的规格说明为止。常用的分析方法有面向数据流的结构化分析方法
(简称SA)、面向数据结构的Jackson方法(简称JSD)、面向对象的分析方法(简称0
0A)等,以及用于建立动态、模型的状态迁移图或Petri网等。这些方法都采用图文结合的
方式,可以直观地描述软件的逻辑模型。
(3)编制需求分析的文档已经确定的需求应当得到清晰准确的描述。通常把描述需求的文
档叫做软件需求规格说明书。同时,为了确切表达用户对软件的输入输出要求,还需要制定
数据要求说明书及编写初步的用户手册,着重反映被开发软件的用户界面和用户使用的具体
要求。此外,依据在需求分析阶段对系统的进一步分析,从目标系统的精细模型出发,可以
更确切地估计所开发项目的成本与进度,从而修改、完善与确定软件开发的实施计划。
(4)需求分析评审作为需求分析阶段工作的复查手段,在需求分析的最后一步,应该对功
能的正确性、完整性和清晰性,以及其他需求给予评价。评审的主要内容建筑施工;为;米;
千米;:
•系统定义的目标建筑施工;为;米;千米;否与用户的要求一致;
•系统需求分析阶段提供的文档资料建筑施工;为;米;千米;否齐全;
•文档中的所有描述建筑施工;为;米;千米;否完整、清晰、准确所反映用户要求;
•与所在其他系统成分的重要接口建筑施工;为;米;千米;否都已经描述;
•所开发项目的数据流与数据结构建筑施工;为;米;千米;否足够,确定;
•所有图表建筑施工;为;米;千米;否清楚,在不补充说明时能否理解;
•主要功能建筑施工;为;米;千米;否已包括在规定的软件范围之内,建筑施工;为;米;
千米;否都已充分说明;
•设计的约束条件或限制条件建筑施工;为;米;千米;否符合实际;
•开发的技术风险建筑施工;为;米;千米;什么
•建筑施工;为;米;千米;否考虑过软件需求的其他方案;
•建筑施工;为;米;千米;否考虑过将来可能会提出的软件需求;
•建筑施工;为;米;千米;否详细制定了检验标准,它们能否对系统定义建筑施工;为;
米;千米;否成功进行确认;
•有没有遗漏、重复或不一致的地方;
•用户建筑施工;为;米;千米;否审查了初步的用户手册;
•软件开发计划中的估算建筑施工;为;米;千米;否受到了影响。为保证软件需求定义的
质量,评审应以专门指定的人员负责,并按规程严格进行。评审结束应有评审负责人的结论
意见及签字。除分析员之外,用户,开发部门的管理者,软件设计、实现、测试的人员都应
当参加评审工作。通常,评审的结果都包括了一些修改意见,待修改完成后再经评审通过,
才可进入设计阶段。
3.软件需求分析的原则
近年来已提出了许多软件分析与说明的方法,虽然各种分析方法都有其独特的描述方法,但
总的看来,所有分析方法还建筑施工;为;米;千米;有它们共同适用的基本原则。
(1)必须能够表达和理解问题的数据域和功能域所有软件定义与开发工作最终建筑施工;
为;米;千米;为了解决数据处理问题,就建筑施工;为;米;千米;将一种形式的数据转
换成另一种形式的数据。其转换过程必定经历输入、加工数据和产生结果数据等步骤。对于
计算机程序处理的数据,其数据域应包括数据流、数据内容和数据结构。数据流即数据通过
一个系统时的数据存储(如磁盘文件或内存缓冲区)中引入附加数据。对数据进行转换建筑
施工;为;米;千米;程序中应有的功能或子功能。两个转换功能之间的数据传递就确定了
功能间的接口。数据内容即数据项。例如,学生名册包含了班级、人数、每个学生的学号、
姓名、性别、各科成绩等。学生名册的内容由它所包含的项定义。为了理解对学生名册的处
理,必须要理解它的数据内容。数据结构即各种数据项的逻辑组织。数据建筑施工;为;米;
千米;组织成表格,还建筑施工;为;米;千米;组织成有层次的树型结构?在结构中数据
项与其他哪些数据项相关?所有数据建筑施工;为;米;千米;在一个数据结构中,还建筑
施工;为;米;千米;在几个数据结构中?一个结构中的数据与其他结构中的数据如何联系?
这些问题都由数据结构分析来解决。
(2)必须按自项向下、逐层分解的方式对问题进行分解和不断细化如果将软件要处理的问
题作为一个整体来看,显得太大太复杂很难理解。如果把问题以某种方式分解为几个较易理
解的部分,并确定各部分间的接口,从而实现整体功能。在需求分析阶段,软件的功能域和
信息域都能做进一步的分解。这种分解可以建筑施工;为;米;干米;同一层次上的,称为
横向分解;也可以建筑施工;为;米;千米;多层次的纵向分解。例如,把一个功能分解成几
个子功能,并确定这些子功能与父功能的接口,就属于横向分解。但如果继续分解,把某些
子功能又分解为小的子功能,某个小的子功能又分解为更小的功能,这就属于纵向分解了。
(3)要给出系统的逻辑视图和物理视图给出系统的逻辑视图(逻辑模型)和物理视图(物
理模型),这对系统满足处理需求所提出的逻辑限制条件和系统中其他成分提出的物理限制
条件建筑施工;为;米;千米;必不可少的。软件需求的逻辑视图给出软件要达到的功能和
要处理的数据之间的关系,而不建筑施工;为;米;千米;实现的细节。例如,一个商店的
销售处理系统要从顾客那里获取订单,系统读取订单的功能并不关心订单数据的物理形式和
用什么设计读入,也就建筑施工;为;米;千米;说无需关心输入的机制,只建筑施工;为;
米;千米;读取顾客的订单而已。类似的,系统中检查库存的功能只关心库存文件的数据结
构,而不关心在计算机中的具体存储方式。软件需求的逻辑描述建筑施工;为;米;千米;
软件设计的基础。软件需求的物理视图给出处理功能和数据结构的实际表示形式,这往往建
筑施工;为;米;千米;由设备决定的,如一些软件靠终端键盘输入数据,另一些软件靠模
拟数据转换设备提供数据。分析员必须弄清系统元素对软件的限制并考虑功能和信息结构的
物理表示。
4.软件需求分析方法
需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成。大多数的需求
分析方法建筑施工;为;米;千米;由数据驱动的,也就建筑施工;为;米;千米;说,这
些方法提供了一种表示数据域的机制。分析员根据这种表示,确定软件功能及其他特性,最
终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。数据域具有3种属性:数据流、
数据内容和数据结构。通常,一种需求分析方法总要利用其中的一种或几种属性。目前已经
出现了许多需求分析方法,每一种分析方法都引入了不同的记号和分析策略。但建筑施工;
为;米;千米;它们仍具有以下的共性。
(1)支持数据域分析的机制
尽管每种方法进行数据域分析的方式不同,但它们仍有一些共同点。所有的方法都直接或间
接地涉及到数据流、数据内容或数据结构域的属性。在多数情况下,数据流特征建筑施工;
为;米;千米;用将输入转换成输出的变换(功能)过程来描述的,数据内容可以用数据词
典机制明确表示,或者通过描述数据或数据对象的层次结构隐含地表示。
(2)功能表示的方法
功能一般用数据变换或加工来表示,每项功能可用规定的记号(圆圈或方框)标识。功能的
说明可以用自然语言文本来表达,也可以用形式化的规格说明语言来表达,还可以用上述的
两种方式的混合方式------结构化语言来描述。
(3)接口的定义
接口的说明通常建筑施工;为;米;千米;数据表示和功能表示的直接产物。某个具体功能
的流进和流出数据流应建筑施工;为;米;千米;其他相关功能的流出或流入的数据流。因
此,通过数据流的分析可以确定功能间的接口。
(4)问题分解的机制以及对抽象的支持
问题分解和抽象主要依靠分析员在不同抽象层次上表示数据域和功能域,以逐层细化的手段
建立分层结构来实现。例如,无论使用哪种分析方法,都能表示"计算职工每月工资"之类
的功能,并在这个抽象层次上操纵这个功能。另外,所有的分析方法都提供逐层分解的机制,
把"计算职工每月工资”功能划分成一些子功能,如计算房租、计算用电费、计算用水费、
计算养老保险费等等。其中,每项子功能还可以在更低的一级抽象层次上表示。
(5)逻辑视图和物理视图
大多数方法允许分析员在着手问题的逻辑解决方案之前先分析物理视图。通常,同一种表示
法既可用来表示逻辑视图,也可用来表示物理视图。
(6)系统抽象模型
为了能够上匕较精确地定义软件需求,可以建立待开发软件的一个抽象的模型,用基于抽象模
型的术语来描述软件系统的功能和性能,形成软件需求规格说明。这种抽象的模型建筑施工;
为;米;千米;从外部现实世界的问题领域抽象而来,在高级层次上描述和定义系统的服务。
对于比较简单的问题,不必建立抽象系统模型。或者可以认为,系统模型在分析员头脑中形
成,直接由分析员写成规格说明。但对于比较复杂的问题,仅有在头脑中想象的模型建筑施
工;为;米;千米;不够的,必须建立适当的比较形式化的抽象系统模型,才能准确全面地
反映问题领域中各种复杂的要求。不同类型的问题有不同的需要解决的中心问题,因而要建
立不同类型的系统模型。对于数学软件,设计的中心问题建筑施工;为;米;千米;算法,
软件人员主要力量要花在数学模式算法的考虑上。对于数据通信软件,中心问题建筑施工;
为;米;千米;数据传送和过程控制,实现算法简单,采用数据流模型比较合适。对于涉及
大量数据的数据处理软件,中心问题建筑施工;为;米;千米;数据处理,包括数据的采集、
数据的传送、存储、变换、输出等,一旦了解了数据结构,与它相关的算法就很简单了。如
果系统要求有数据支持,通过数据库获取和存放信息,还需要考虑数据在数据库中的组织方
式和存取方法,建立数据库模型。因此,在分析过程中数据模型建筑施工;为;米;千米;
首先要集中精力考虑的问题。系统模型的建立建筑施工;为;米;千米;对现实世界中存在
的有关实体和活动的抽象和精化,其建立过程包括观察分析、模型表示和模型检查3个阶段。
首先,分析员和用户合作,从各方面观察现实世界中的有关实体和活动,建立理解的共同基
准,分清哪些概念与系统相关,必须纳入系统模型,哪些建筑施工;为;米;千米;系统模
型不必关心的,分析员和用户在共同理解的基础上,建立系统模型,包括系统提供的各种系
统服务,模型表示的细节应有:系统输入、系统输出、系统数据处理、系统控制等。建立系统
模型以后,还要进行检查。除了静态检查之外,系统描述可以部分地模拟执行,将执行情况
与对外部现实世界系统观察得到的系统跟踪信息进行对照,检查模型建筑施工;为;米;千
米;否符合要求。这种建立系统模型并模拟执行和检查的方法叫做系统原型开发。
(三)结构化分析方法
结构化分析建筑施工;为;米;千米;面向数据流进行需求分析的方法。20世纪70年代末,
经YourdonE.,Con-stantineL.,DeMarcoT.等人提出和发展,至今已得到广泛应用。
结构化分析方法的一些重要概念也渗透在其他开发方法中。例如,结构化分析与设计技术(S
tructuredAnalysisandDesignTechnique,SADT)、面向对象技术(Object-Oreint
edTechnique,GOT),IDEF方法等。结构化分析方法适合于数据处理类型软件的需求分
析。由于利用图形表达需求,显得清晰、简明,易于学习和掌握。具体来说,结构化分析方
法就建筑施工;为;米;千米;用抽象模型的概念,按照软件内部数据传递、变换的关系,
自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。根据DeMarco的论
述,结构化分析方法使用的工具有:数据流图、数据词典、结构化英语、判定表、判定树。结
构化分析方法有两个明显特点:
(1)自顶向下逐层分解。采用简明易懂、直观的描述方式
1.数据流图
数据流图也称为BubbleChartpgdataFlowGraph.建筑施工;为;米;千米;描述数
据处理过程的工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到
输出的移动变换过程。
(1)数据流图
的主要图形元素从数据流图中可知,数据流图的基本图形元素有4种。数据流建筑施工;为;
米;千米;沿箭头方向传送数据的通道,它们大多建筑施工;为;米;千米;在加工之间传
输加工数据的命名通道,也有连接数据存储文件和加工的没有命名的数据通道。这些数据流
虽然没有命名,但因联接着有名加工和有名文件,所以其含意也建筑施工;为;米;千米;
清楚的。同一数据流图上不能有同名的数据流。多个数据流可以指向同个加工,也可以从一
个加工散发出许多数据流。加工建筑施工;为;米;千米;以数据结构或数据内容作为加工
对象的。加工的名字通常建筑施工;为;米;千米;一个动词短语,简明扼要地表明完成的
建筑施工;为;米;千米;什么加工。文件在数据流图中起保存数据的作用,因而称为数据
存储(DataStore)。它可以建筑施工;为;米;千米;数据库文件或任何形式的数据组织。
指向文件的数据流可理解为写入文件或查询文件,从文件中引出的数据流可理解为从文件读
取数据或得到查询结果。数据流图中第4种元素建筑施工;为;米;千米;数据源点或汇点,
它表示图中要处理数据的输入来源及处理结果要送往何处。由于它在图中的出现仅仅建筑施
工;为;米;千米;一个符号,并不需要以软件的形式进行设计和实现,因而,它只建筑施
工;为;米;千米;数据流图的外围环境中的实体,故称外部实体。在实际问题中它可能建
筑施工;为;米;干米;计算机外围设备或建筑施工;为;米;千米;传感装置。
(2)数据流与加工之间的关系在数据流图中,如果有两个以上的数据流指向一个加工,或
建筑施工;为;米;千米;从一个加工中引出两个以上的数据流,这些数据流之间往往存在
一定的关系。
(3)分层的数据流图为了表达数据处理过程的数据加工情况,用一个数据流图建筑施工;
为;米;千米;不够的。为表达稍为复杂的实际问题需要按照问题的层次结构进行逐步分解,
并以分层的数据流图反映这种结构关系。先把整个数据处理过程暂且看成一个加工,它的输
入数据和输出数据实际上反映了系统与外界环境的接口。这就建筑施工;为;米;千米;分
层数据图的顶层。但只此一图并未表明数据的加工要求,需要进一步细化。如果这个数据处
理包括3个子系统,就可以画出表示这3个子系统1、2、3的加工及其相关的数据流。这
建筑施工;为;米;千米;顶层下面的第一层数据流图,记为DFD/L1.继续分解这3个子
系统,可得到第二层数据流图DFD/L2.1.DFD/L2.2,及DFD/L2.3,它们分别建筑施工;
为;米;千米;子系统。1、2和3的细化。仅以DF/2为例,其中的4个加工的编号均可联
系到其上层图中的子系统这样得到的多层数据流图可十分清晰地表达整个数据加工系统
20
的真实情况。对任何一层数据流图来说,称它的上层图为父图,在它下一层的图则称为子图。
在多层数据流图中,可以把顶层流图、底层流图和中间层流图区分开。顶层流图仅包含一个
加工,它代表被开发系统。它的输入流建筑施工;为;米;千米;该系统的输入数据,输出
流建筑施工;为;米;千米;系统的输出数据。顶层流图的作用在于表明被开发系统的范围,
以及它和周围环境的数据交换关系。底层流图建筑施工;为;米;千米;指其加工不须再做
分解的数据流图,其加工称为"原子加工"。中间层流图则表示对其上层父图的细化。它的
每一加工可以继续细化,形成子图。中间层次的多少视系统的复杂程度而定。
(4)数据流图画法画数据流图的基本步骤概括地说,就建筑施工;为;米;千米;自外向
内,自顶向下,逐层细化,完善求精。具体步骤可按如下来做。
①先找系统的数据源点与汇点。它们建筑施工;为;米;千米;外部实体,由它们确定系统
与外界的接口。
②找出外部实体的输出数据流与输入数据流。
③在图的边上画出系统的外部实体。
④从外部实体的输出数据流(即系统的源点)出发,按照系统的逻辑需要,逐步画出一系列
逻辑加工,直到找到外部实体所需的输入数据流(即系统的汇点),形成数据流的封闭。
⑤按照下面所给的原则进行检查和修改。
⑥按照上述步骤,再从各加工出发,画出所需的子图。
(5)进行检查和修改的原则
①数据流图上所有图形符号只限于前述四种基本图形元素。
②数据流的主图必须包括前述4种基本元素,缺一不可。
③数据流图的主图上的数据流必须封闭在外部实体之间,外部实体可以不只一个。
④每个加工至少有一个输入数据流和一个输出数据流。
⑤在数据流图中,需按层给加工框编号。编号表明该加工处在哪一层,以及上下层的父图与
子图的对应关系。
⑥任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必
须一致。即父图与子图的平衡,它表明了在细化过程中输入与输出不能有丢失和添加。
⑦图上每个元素都必须有名字。表明数据流和数据文件建筑施工;为;米;千米;什么数据,
加工做什么事情。
⑧数据流图中不可夹带控制流。因为数据流图建筑施工;为;米;千米;实际业务流程的客
观映象,说明系统"做什么"而不建筑施工;为;米;千米;要表明系统"如何做",因此
不建筑施工;为;米;千米;系统的执行顺序,不建筑施工;为;米;千米;程序流程图。
⑨初画时可以忽略琐碎的细节,以集中精力于主要数据流。在需求分析期间,有时会要求修
改系统的某些方面。使用数据流图可以很容易地把需要修改的区域分离出来。只要清楚地了
解穿过要修改区域边界的数据流,就可以为将来的修改做好充分的准备,而且在修改时能够
不打乱系统的其他部分。
2.数据词典
数据词典的任务建筑施工;为;米;千米;对于数据流图中出现的所有被命名的图形元素在
数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。数据
词典中所有的定义应建筑施工;为;米;千米;严密的、精确的,不可有半点含糊,不可有
二义性。
(1)数据词典的定义
对在数据流图中每一个命名的图形元素均给予定义,其内容有图形元素的名字、别名或编号、
分类、描述、定义、位置等。以下建筑施工;为;米;千米;不同词条应给出的内容。
①数据流词条描述数据流建筑施工;为;米;千米;数据结构在系统内传播的路径。一个数
据流词条应有以下几项内容:数据流名:说明:简要介绍作用即它产生的原因和结果。数据流来
源:来自何方。数据流去向:去向何方。数据流组成:数据结构。每个数据量:数据量,流通量。
②数据元素词条描述图中的每一个数据结构都建筑施工;为;米;千米;由数据元素构成的,
数据元素建筑施工;为;米;千米;数据处理中最小的,不可再分的单位,它直接反映事物
的某一特征。对于这些数据元素也必须在数据词典中给出描述。其描述需要以下信息:数据元
素名类型:数字(离散值,连续值),文字S(编码类型)。长度。取值范围。相关的数据元
素及数据结构。数据元素的取值可分数字型与文字型。数字型又有离散值与连续值之分。离
散值或建筑施工;为;米;千米;枚举的,或建筑施工;为;米;千米;介于上界的一组数;
连续值一般建筑施工;为;米;千米;有取值范围的实数集。对于文字型,需给予编码类型,
文字值需加以定义。
③数据文件词条描述数据文件建筑施工;为;米;千米;数据结构保存的地方。一个数据文
件词条应有以下几项内容。数据文件名。简述:存放的建筑施工;为;米;千米;什么数据。
输入数据。输出数据。数据文件组成:数据结构。存储方式:N页序,直接,关键码。存取频率。
④加工逻辑词条描述加工比较复杂,它到后来就建筑施工;为;米;千米;一段程序。加工
的表达方式有判定表,判定树和结构化英语等等,它们要全部写在一个词条中建筑施工;为;
米;千米;有困难的。主要描述有。加工名。加工编号:反映该加工的层次。简要描述:加工
逻辑及功能简述。输入数据流。输出数据流。加工逻辑:简述加工程序,加工顺序。
⑤源点及汇(终)点词条描述对于一个数据处理系统来说,源点和汇点应当比较少。如果过
多就缺少独立性,人一机界面太复杂,这时就要考虑减少,提高系统独立性。定义源点和汇
点时,应包括。名称:外部实体名。简要描述:什么外部实体。有关数据流。数目。
(2)数据词典的使用在结构化分析的过程中,可以通过名字,方便地查阅数据的定义:同时
可按各种要求,随时列出各种表,以满足分析员的需要。还可以按描述内容(或定义)来查
询数据的名字,通过检查各个加工的逻辑功能,可以实现和检查在数据与程序之间的一致性
和完整性,在以后的设计与实现阶段,以至于到维护阶段。都需要参考数据词典进行设计、
修改和查询。
(3)数据结构的描述在数据词典的编制中,分析员最常用的描述数据结构的方式有定义式
或Warnier图。
①定义式在数据流图中,数据流和数据文件都具有一定的数据结构。因此必须以一种清晰、
准确、无二义性方式来描述数据结构。这种定义方法建筑施工;为;米;千米;自顶向下,
逐级给出定义式,直到最后给出基本数据元素为止。
②Warnjer图Warnjer图建筑施工;为;米;千米;表示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 喷漆车间涂料固化环境
- 文化创意产业数字文化创意产品开发设计方桉
- 创业创新实践与经验分享会指南
- 新零售环境下线上线下融合物流配送方案
- 金融数据分析处理教程
- 防触电安全教育小班
- 纺织机械与纺织工艺技术作业指导书
- 关于提高工作效率的内部沟通指南
- 新学期规划课件
- 防撞智能预警系统施工方案
- 沪教牛津版三年级英语下册全册课件
- 天府刘家漕历史的记忆
- HY∕T 0289-2020 海水淡化浓盐水排放要求
- MicrosoftOffice2016简体中文版下载及使用
- 招待所所长岗位职责内容范本
- 北师大版七年级生物下册 第8章 章末复习 课件(共18张PPT)
- 夹胶玻璃作业指导书
- NLP高效能沟通影响力集团李炫华
- 站长办公会议事规则
- 毕业设计说明书初稿-头孢曲松钠生产工艺设计
- EDTA络合滴定法测定银合金中的银
评论
0/150
提交评论