软件需求获取与结构化分析方法
- 格式:ppt
- 大小:613.00 KB
- 文档页数:7
软件研发中的需求分析与设计方法在软件研发过程中,需求分析与设计是非常重要的环节。
它们是确保软件开发过程中需求清晰、设计合理的关键步骤。
本文将介绍几种常用的需求分析与设计方法,以及它们在软件研发中的应用。
一、需求分析方法1. 问卷调查法:通过向用户发送问卷,收集他们的需求和期望。
这种方法适用于软件开发项目的初期阶段,能够帮助开发团队了解用户需求、用户习惯和用户期望。
2. 访谈法:开发团队与用户直接进行面对面的交流,详细了解用户需求。
通过访谈,可以深入了解用户对软件功能、界面和性能的需求,进而为软件设计提供参考依据。
3. 观察法:开发团队直接观察用户在使用同类软件时的行为。
通过观察,可以确定用户的操作习惯、使用需求等,从而更好地满足用户的期望。
4. 原型法:创建软件的原型,让用户参与测试和反馈。
通过原型,用户可以更直观地感受到软件的功能和设计,从而提供宝贵的改进意见。
5. 分析法:通过对用户需求进行详细的分析,将其转化为软件功能和性能要求的规格说明。
这种方法适用于需求较为清晰、清楚的情况。
以上是一些常用的需求分析方法,每一种方法都有其特点和适用场景。
在实际应用中,开发团队可以结合项目的实际情况选择合适的方法,以确保需求的准确性和完整性。
二、设计方法1. 结构化设计方法:结构化设计方法强调软件开发的模块化和层次化。
它将整个软件系统划分为几个相互依赖的模块,每个模块都具有独立的功能和职责。
这种设计方法使得软件的管理和维护更加容易。
2. 面向对象设计方法:面向对象设计方法将软件系统看作一组相互作用的对象集合,每个对象都有自己的属性和方法。
通过面向对象设计,可以更好地实现软件的重用性和可维护性。
3. 数据流图设计方法:数据流图是一种图形化的设计工具,用于描述软件系统中数据的流动和处理过程。
通过数据流图设计,可以更好地理解软件系统中各个部分之间的关系,并确定数据的处理逻辑。
4. 用例图设计方法:用例图是一种用于描述用户与系统交互的图形化工具。
软件需求⼯程过程(SREP),本⽂简要地列举并说明了在整个软件需求⼯程的过程中的⼯作职责要点。
⼀、开始 1. 项⽬经理根据项⽬特点,指定对过程表格的具体要求; 2. 项⽬经理制订项⽬的标准,包括:DTS(缺陷类型)、TRA(风险类型)、TRS(需求类型)等,在过程表格中按标准引⽤. ⼆、计划 1. 计划经理估算需求开发时间; 2. 计划经理完成:SPT(进度计划)、TPT(任务计划),将计划数据录⼊PDS(项⽬计划摘要). 三、需求获取 1. 软件需求⼯程师搜集系统概要信息,填写REQ(需求获取概貌); 2. 软件需求⼯程师搜集⽤户需求,分类并清晰地把需求写⼊REA(需求获取/分析)、RES(需求获取情节)、UIR(⽤户交互需求); 3. 检查需求获取过程,并填写REC(需求获取检查); 4. 如果检查不通过,从1.重头开始过程; 5. 软件需求⼯程师填写TRL(时间记录⽇志)、PIP(过程改进建议); 6. 计划经理整理本阶段数据,录⼊SPT、TPT. 四、需求分析 1. 软件需求⼯程师进⾏需求分析,建⽴分析模型,数据字典及项⽬词汇表,完成REA(分析模型的具体要求,请分别参见结构化分析和⾯向对象分析的具体作业指导书); 2. 软件需求⼯程师将发现的需求的冲突、交迭、冗余或⽭盾,记⼊NCR; 3. 检查需求分析,完成RAC(需求分析检查); 4. 如果检查不通过,从1重头开始过程; 5. 软件需求⼯程师填写TRL、PIP; 6. 计划经理整理数据,录⼊TPT、SPT. 五、协商 1. 软件需求⼯程师利⽤NCR,与风险承担者协商解决需求分析中发现的问题,将决议录⼊NCR; 2. 软件需求⼯程师根据决议,修改REA等相关⽂档; 3. 如果有新的需求引⼊,需要重新进⾏需求分析阶段; 4. 软件需求⼯程师填写TRL、PIP; 5. 计划经理整理数据,录⼊TPT、SPT. 六、需求评审 1. 评审⼩组负责⼈拟定检查清单,为成员分派检查任务,制订评审⽇程表; 2. 评审员各⾃评审分派的内容,将发现的问题录⼊DRL(缺陷记录⽇志); 3. 评审⼩组负责⼈组织评审会议,各⼩组成员提交DRL并讨论; 4. 评审⼩组以IRF形式提交检查报表; 5. 软件需求⼯程师根据IRF修订相关⽂档; 6. 计划经理整理数据,录⼊TPT、SPT。
软件需求分析的研究软件需求分析在当今的软件开发过程中具有举足轻重的地位。
随着技术的迅速发展和应用领域的不断拓展,软件开发逐渐成为一项复杂的工程,而需求分析则成为该过程中至关重要的一环。
本文将深入探讨软件需求分析的概念、方法、应用及其面临的挑战和发展趋势。
软件需求分析是对软件系统的功能、性能、安全性、可维护性等方面的具体要求进行理解和描述的过程。
它的目的是明确软件系统的需求,为后续的设计和开发提供指导,同时确保最终的软件产品能够满足用户的需求。
需求分析的基本流程包括需求收集、需求描述、需求验证和需求管理。
在软件需求分析过程中,可以采用多种方法来系统地收集和描述需求。
结构化分析方法是一种常见的需求分析方法,它通过自上而下的分解方式,将系统划分为若干个功能模块,进而对每个模块的需求进行详细分析。
另一种方法是面向对象分析,它以对象为核心,通过对对象的属性、行为和关系进行分析,来描述软件系统的需求。
软件需求分析在各个领域都有广泛的应用。
在商业领域,需求分析有助于企业了解其业务需求,优化业务流程,提高工作效率。
在教育领域,需求分析有助于开发适应教育发展需求的信息化教育平台,提升教育质量。
在医疗领域,需求分析有助于开发医疗信息系统,提高医疗服务质量和效率。
然而,软件需求分析面临着一些挑战。
首先,需求获取的难度较大,需要与用户进行充分沟通,理解用户的需求。
其次,需求分析模型的复杂性也给开发人员带来了不小的挑战。
此外,随着软件系统的规模和复杂度不断增大,如何确保需求分析的准确性和完整性也成为了一个重要的问题。
随着技术的不断进步,软件需求分析的发展趋势日益明显。
数字化、智能化和模块化成为了需求分析的重要方向。
数字化需求分析使得我们可以利用大数据和等技术来更准确地获取和处理需求。
智能化需求分析则通过机器学习和知识图谱等技术对需求进行分析,提高需求理解的准确性和效率。
模块化需求分析则注重将大型复杂的软件系统分解为多个独立的模块,针对每个模块进行详细的需求分析和设计,以提高开发效率和可维护性。
结构化分析方法结构化分析方法一、需求分析与需求分析方法需求阶段是软件开发的关键阶段。
需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。
需求分析阶段的工作(四方面):◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。
◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。
◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。
◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。
1、需求获取的目的清楚地理解所要解决的问题、完整地获取用户需求。
2、需求获取的内容用户需求分类:(1)功能性需求定义了系统做什么(描述系统必须支持的功能和过程)。
(2)非功能性需求(技术需求)定义了系统工作时的特性(描述操作环境和性能目标)。
3、需求分析的步骤4、需求分析过程示意(1)通过对现实环境的调查,获得当前系统的物理模型。
(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。
(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。
5、需求分析的方法结构化分析(传统建模方法)、面向对象分析。
二、结构化分析方法1、结构化分析方法(Structure Analysis---SA)(1)定义是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
(2)结构化分析的主要步骤通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。
2、结构化分析方法使用的常用工具(1)数据流图(DFD—Data Flow Diagram )①作用从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。
软件需求分析与规格化方法软件需求分析与规格化是软件开发过程中至关重要的一环。
它确保软件开发团队与客户之间的需求对接,并将这些需求转化为清晰、具体、可执行的规格化文档。
本文将介绍软件需求分析与规格化的方法,并探讨其在软件开发中的作用。
一、软件需求分析的方法1. 需求获取:在软件需求分析的第一步,团队需要与客户充分沟通,了解客户的需求。
可以采用面对面的访谈、问卷调查、观察等方式,确保获取准确的需求信息。
2. 需求分类与整理:获取到的需求信息可能比较杂乱,需要进行分类与整理。
将需求按照功能、性能、界面等方面进行分类,以便更好地进行后续的分析与规格化。
3. 需求描述:需求描述是对需求进行准确、具体描述的过程。
可以采用自然语言描述、用例图、数据流图等方式来描述需求,确保表达清晰、明确。
4. 需求验证:需求验证是确认需求描述的准确性与完备性的过程。
可以进行需求评审、原型验证、验证性测试等方式来验证需求,以确保需求符合客户的期望。
二、软件规格化的方法1. 规格化方法:软件规格化是将需求转化为规格化文档的过程。
可以采用结构化分析与设计(SSAD)、统一建模语言(UML)等方法来进行规格化。
其中,SSAD通过数据字典、数据流图等方式将需求转化为规格化文档;UML则通过用例图、类图、时序图等方式来进行规格化。
2. 规格化文档:规格化文档是对软件需求进行详细描述的文档。
其中,包括对软件功能、性能、界面、数据等方面进行规格化描述。
规格化文档要求准确、全面、易于理解与实现。
3. 规格化验证:规格化验证是确认规格化文档准确性与完备性的过程。
可以进行规格化文档评审、原型验证、模型检验等方式来验证规格化文档,以确保规格化文档与需求描述的一致性。
三、软件需求分析与规格化的作用1. 精确定义需求:软件需求分析与规格化确保软件开发团队清楚地理解客户的需求,并将这些需求准确地转化为规格化文档。
这有助于避免需求的模糊性与不完整性,确保软件开发过程的顺利进行。
软件工程结构化分析实验软件工程是一门综合性学科,其核心是通过结构化分析与设计来构建高质量的软件系统。
在软件工程课程中,结构化分析实验是一项重要的实践环节,旨在让学生通过实际操作来理解和应用结构化分析的概念和方法。
本文将对软件工程结构化分析实验进行详细介绍。
结构化分析是软件工程中的一种需求分析方法,其目标是将系统需求转化为一个有层次结构的设计模型。
在结构化分析实验中,学生通常会以小组形式进行合作,通过使用工具和技术来完成实验任务。
以下是一个常见的结构化分析实验流程:1.需求分析:在实验开始时,学生需要与教师和小组成员讨论并确定一个具体的需求案例。
一旦确定了需求案例,学生需要对其进行详细分析,包括确定系统功能、定义用户需求和约束条件等。
2.数据流图绘制:学生需要绘制出系统的数据流图模型。
数据流图是结构化分析中的一种图形化表示方法,用于描述系统中的数据流和处理过程。
通过绘制数据流图,学生可以更清晰地理解系统中的各个组成部分之间的关系。
3.数据字典编写:学生需要编写数据字典,用于描述数据流图中的各个数据元素。
数据字典包括每个数据元素的名称、数据类型、数据长度等详细信息。
编写数据字典有助于学生更好地理解系统中的数据流和数据处理过程。
4.逻辑模型设计:学生需要将数据流图转化为一个更具体的逻辑模型。
逻辑模型是结构化分析中的一种设计方法,用于描述系统中的数据结构和处理过程。
学生需要使用数据流图中的数据流和处理过程来创建逻辑模型,以实现对系统的详细设计。
5.验证和调整:在完成逻辑模型设计后,学生需要对其进行验证和调整。
他们可以通过模拟测试、检查数据字典和数据流图等方法来验证设计的正确性,并根据实际测试结果进行相应的调整和修改。
通过以上步骤,学生可以完成一个完整的结构化分析实验。
在这个过程中,他们不仅学会了如何使用结构化分析的方法和工具,更锻炼了团队合作和问题解决能力。
结构化分析实验的目的是教会学生如何应用结构化分析的概念和原理来进行软件需求分析和设计。
软件工程中的需求获取与分析方法在软件工程领域,需求获取与分析是项目成功的关键基石。
它就像是建筑工程中的蓝图设计阶段,决定了后续开发工作的方向和质量。
如果在这个阶段出现偏差或遗漏,可能会导致项目的延误、成本的增加,甚至最终无法满足用户的期望。
需求获取,简单来说,就是从各种渠道收集关于软件系统应该做什么的信息。
这个过程并不像表面看起来那么简单,它需要与众多的利益相关者进行有效的沟通和交流。
这些利益相关者可能包括最终用户、客户、业务经理、技术人员等等。
他们对于软件系统的期望和需求各不相同,而且往往是以一种非结构化、模糊的方式表达出来的。
比如说,最终用户可能会说“我希望这个软件能让我更轻松地完成日常工作”,但这并没有具体说明什么样的操作会让他们感到轻松,以及他们日常工作的具体流程和痛点是什么。
这就需要需求获取人员通过进一步的提问、观察和调研,来挖掘出更详细、更明确的需求。
在与利益相关者沟通时,有效的倾听是至关重要的。
需求获取人员不能仅仅是被动地接受信息,而要积极地与对方互动,理解他们的语境和意图。
同时,还要善于运用各种沟通技巧,比如开放性问题、引导性问题、重复和确认等,以确保获取到的信息是准确和完整的。
除了与利益相关者直接交流,还可以通过查阅相关文档、观察现有系统的运行情况、分析市场趋势等方式来获取需求。
比如,如果要开发一个与财务相关的软件,就可以查阅财务法规、行业报告等资料,了解财务管理的最新要求和趋势。
需求分析则是对获取到的需求进行深入的理解、整理和细化。
它的目的是将那些模糊、不明确的需求转化为清晰、具体、可度量的需求规格说明,为后续的设计、开发和测试提供准确的依据。
在进行需求分析时,首先要对需求进行分类和优先级排序。
有些需求是核心的、必须满足的,而有些则是次要的、可以在后续版本中实现的。
通过优先级排序,可以合理分配资源,确保在有限的时间和预算内满足最重要的需求。
然后,要对需求进行建模和文档化。
常用的建模方法包括用例图、活动图、数据流图等。
学习软件需求分析的方法和技巧软件需求分析是软件开发过程中至关重要的一环,它涉及到对用户需求的深入理解和准确捕捉。
本文将介绍一些学习软件需求分析的方法和技巧,帮助读者更好地掌握这一重要的软件开发技能。
一、需求获取需求获取是软件需求分析的第一步,它主要包括了解用户需求、获取用户意图、定义需求范围等工作。
以下是一些常用的需求获取方法。
1. 面谈法面谈法是最常用的需求获取方法之一,通过与用户进行面对面的交谈,了解他们的需求、期望和具体问题。
在面谈过程中,需求分析师可以通过提问和倾听来准确理解用户需求。
2. 观察法观察法是通过观察用户当前的工作环境,了解他们的行为和关注点,从而推断出他们的需求。
观察法常用于现场调查和用户研究,在现实情境中帮助需求分析师更好地理解用户需求。
3. 文档分析法文档分析法是通过分析已有的文档资料,获取用户需求的方法。
这些文档可以是用户手册、业务流程图、数据库设计等,通过仔细研读这些文档,需求分析师可以捕捉到用户需求中的关键信息。
二、需求分析需求分析是对需求进行深入理解、抽象和整理的过程,目的是确保需求准确、完整、可行。
以下是几种常用的需求分析方法和技巧。
1. 用例分析法用例分析法是一种结构化的需求分析方法,它将系统功能划分为一个个独立的用例,描述了用户与系统进行交互的场景。
通过用例分析,可以帮助需求分析师更好地理解用户的功能需求和交互流程。
2. 数据流图数据流图是一种图形化的表示方法,用于描述数据在系统中的流动过程。
通过绘制数据流图,需求分析师可以清晰地了解系统中的数据交互和处理过程。
数据流图可以帮助揭示系统中的潜在问题和改进空间。
3. 需求建模需求建模是一种将需求抽象化和形式化的方法,使用统一建模语言(UML)等工具,将需求以图形化的方式表示出来。
需求建模可以使需求更加清晰、易于理解和交流。
三、需求验证需求验证是确保需求准确性和可行性的过程,它主要通过需求审查和验证活动来完成。
软件工程师软件工程需求分析方法软件工程是一门涉及软件开发过程的学科,其中软件需求分析是软件开发的重要环节之一。
合理有效地进行软件需求分析,对于保证软件开发质量和满足用户需求至关重要。
本文将介绍几种常用的软件工程师软件工程需求分析方法。
一、原型法原型法是一种通过建立软件原型来进行需求分析的方法。
软件原型是根据用户需求和系统规格说明书迅速构建的系统模型或草图,用以表达用户对软件期望的功能、界面和性能等要求。
通过使用原型法,软件工程师可以与用户进行有效的沟通和交流,在早期阶段就能发现和纠正需求问题,提高软件开发的准确性和效率。
二、面向对象方法面向对象方法是一种基于面向对象思想进行软件需求分析的方法。
面向对象方法强调将问题领域中的实体与其相应的行为进行建模,并用类和对象来描述它们之间的关系。
软件工程师可以通过面向对象方法对软件系统进行分析和设计,使系统具备良好的可扩展性、可维护性和可重用性。
常用的面向对象方法包括Unified Modeling Language (UML)、Rational Unified Process (RUP)等。
三、数据流图方法数据流图方法是一种以数据流和数据存储为主要关注点进行软件需求分析的方法。
数据流图可以清晰地描述软件系统中数据的流动和转换过程,帮助软件工程师理解和分析系统的功能。
通过数据流图方法,软件工程师可以准确地把握需求,确定系统所需的输入、输出和数据存储等,为后续的软件设计和编码提供指导。
四、用例方法用例方法是一种将用户需求表示为系统执行的场景或者操作序列的方法。
软件工程师通过编写用例来描述用户和系统之间的交互过程,明确系统的功能和性能要求。
用例方法注重从用户角度出发,通过识别主要的用例和相应的操作来捕捉需求,帮助软件工程师避免遗漏重要需求,提高软件系统的质量和可靠性。
五、面向目标方法面向目标方法是一种以目标为导向进行软件需求分析的方法。
软件工程师通过与用户密切合作,明确和定义软件系统的目标,进而推导出系统的功能需求和性能要求。
软件工程中的软件项目需求分析与设计随着信息技术的发展和应用广泛,软件项目在现代社会中扮演着重要的角色。
而软件项目的成功与否,往往取决于对需求的准确分析与设计。
本文将着重探讨软件项目需求分析与设计的重要性、步骤以及一些常用的技术方法。
一、软件项目需求分析1.1 软件需求分析的定义在软件工程中,需求分析是软件项目的第一步,其目的是明确用户的需求和期望,以便为软件设计和开发提供指导。
软件需求分析的过程包括需求获取、需求调研、需求分析、需求确认等环节。
1.2 软件需求分析的重要性软件需求分析是确保软件项目成功的关键步骤之一。
只有通过准确的需求分析,才能确保软件开发团队和用户的理解一致,避免后期出现开发与用户期望不符的情况。
此外,软件需求分析还能帮助软件开发团队预估工作量和开发周期,为后续的软件设计和开发提供基础。
1.3 软件需求分析的步骤软件需求分析的步骤可以概括为以下几个方面:(1)需求获取:通过与用户的沟通和访谈,获取用户对软件的需求和期望,了解软件在实际应用中的具体场景和功能要求。
(2)需求调研:通过对类似软件项目的研究和分析,了解市场上已有的解决方案和技术手段,为软件需求的分析和设计提供参考。
(3)需求分析:对获取的需求进行逐一分析,筛选出核心的功能需求和非功能需求,明确软件项目的关键要素。
(4)需求确认:与用户进行反复的确认和沟通,确保需求的准确性和完整性,消除潜在的歧义和风险。
二、软件项目需求设计2.1 软件需求设计的定义软件需求设计是将需求分析的结果进一步细化、具体化的过程,将问题域的概念映射到软件领域的抽象解决方案上。
软件需求设计的目标是制定出清晰、可行的软件开发方案。
2.2 软件需求设计的重要性软件需求设计的质量关系到软件项目的整体成败。
良好的需求设计能够帮助软件开发团队更准确地理解和实现软件需求,提高软件的稳定性、安全性和可维护性。
同时,软件需求设计还能有效地避免后期的重构和修改,提高软件开发效率。
软件结构化分析的实施步骤1. 确定分析目标在进行软件结构化分析之前,首先需要明确分析的目标和目的。
确定清楚分析的范围和要达到的结果,以便为后续的分析工作提供指导。
2. 收集软件相关信息在进行结构化分析前,需要收集软件的相关信息。
这些信息可以包括软件的需求文档、设计文档、代码库以及其他与软件相关的文档和资料。
这些信息的收集将帮助分析师更好地理解软件的功能、特性和结构。
3. 确定分析方法根据软件的复杂程度和分析的目标,确定合适的分析方法。
常用的分析方法包括数据流图、状态转换图、关系图等。
根据软件的特点,选择最适合的方法进行分析。
4. 绘制分析模型根据选择的分析方法,绘制相应的分析模型。
例如,可以使用数据流图来表示软件不同模块之间的数据流动情况,使用状态转换图来表示软件在不同状态间的转换关系等。
分析模型的绘制将帮助分析师更好地理解软件的结构和流程。
5. 分析模型验证对绘制的分析模型进行验证,确保模型的准确性和完整性。
可以通过与软件开发团队成员的讨论和验证来验证分析模型,以及与软件的实际运行进行对比。
分析模型的验证是保证后续分析工作的准确性和可靠性的重要环节。
6. 进行结构化分析根据绘制的分析模型,开始进行结构化分析。
根据模型中的信息,对软件的结构和流程进行深入分析,理清各个模块之间的关系和交互方式。
根据分析的结果,可以对软件进行优化和改进,提高软件的性能和可维护性。
7. 生成分析报告在进行结构化分析的过程中,需要记录分析过程、发现的问题以及提出的解决方案。
根据这些信息,生成结构化分析报告。
报告应包括对软件结构的分析结果、问题的归纳和解决方案的提出,以便于后续的软件开发和维护工作。
8. 分析结果的应用结构化分析的结果可以应用于软件的设计、开发和维护过程中。
通过分析的结果,可以优化软件的结构,提高软件的性能和可维护性,减少软件的风险和问题。
9. 不断改进结构化分析是一个迭代的过程,需要不断地分析和改进。
通过对软件的结构进行分析,不断地优化和改进软件,以适应不断变化的需求和环境。
第3章软件需求获取与结构化分析方法3.1 为什么结构化分析要叫“结构化”?有其他可替代的术语吗?“结构化”一词应来源于“结构化程序设计”,先有“结构化程序设计”的思想,后有结构化设计及结构化分析。
有时称传统的分析方法,指的就是结构化分析方法。
3.2顶层数据流图或称环境图的作用是什么?顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统。
其作用如下:(1) 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。
(2) 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。
3.3 在对数据流图进行分解时需要注意哪些问题?在对数据流图进行分解时,需要注意以下两个问题:(1) 当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。
(2) 注意分层细化时对编号的处理方法。
3.4 银行存款业务如下:客户到银行柜台存款时,首先填写存款单(包括帐号、姓名、存款金额、存款类型),如果还没有开户,则需要先开户,填写开户单(包括姓名、身份证号、地址、电话、是否留密码)。
填写完存款单或开户单后,交给营业员,营业员将存款单或开户单信息输入计算机,系统记录开户信息或存款单信息,如果是开户并选择留密码,则需要客户输入密码。
最后印出开户单或存款单给用户。
请画出银行存款业务的分层数据流图(至少画出两层)。
(1) 识别外部实体及输入输出数据流外部实体:储户、业务员。
输入数据流:存款单,开户单,密码。
可以将存款单和开户单抽象为事务。
输出数据流:存款单,开户单。
(2) 顶层数据流图(3) 一层数据流图对银行储蓄系统进行分解,从大的方面分解为接收事务、处理开户、处理存款三部分,得到一层数据流图。
(4) 二层数据流图对“处理存款”及“处理开户”进行进一步分解,得到二层数据流图,即处理存款的数据流图和处理开户的数据流图。
软件需求分析--结构化分析(SA)⽅法结构化开发⽅法(Structured Developing Method)是现有的软件开发⽅法中最成熟,应⽤最⼴泛的⽅法,主要特点是快速、⾃然和⽅便。
结构化开发⽅法由结构化分析⽅法(SA法)、结构化设计⽅法(SD 法)及结构化程序设计⽅法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)⽅法是⾯向数据流的需求分析⽅法,是70 年代末由Yourdon,Constaintine 及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤。
它适合于分析⼤型的数据处理系统,特别是企事业管理系统。
SA 法也是⼀种建模的活动,主要是根据软件内部的数据传递、变换关系,⾃顶向下逐层分解,描绘出满⾜功能要求的软件模型。
1 SA 法概述 1.SA 法的基本思想 结构化分析(Structured Analysis,简称SA 法)是⾯向数据流的需求分析⽅法,是70年代由Yourdon,Constaintine 及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤。
结构化分析⽅法的基本思想是“分解”和“抽象”。
分解:是指对于⼀个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把⼤问题分解成若⼲⼩问题,然后分别解决。
图4 是⾃顶向下逐层分解的⽰意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每⼀个细节,⽽中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进⾏,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直⾄涉及到最详细的内容,这种⽤最本质的属性表⽰⼀个⾃系统的⽅法就是“抽象”。
2.SA 法的步骤 ⑴建⽴当前系统的“具体模型”; 系统的“具体模型”就是现实环境的忠实写照,即将当前系统⽤DFD 图描述出来。
这样的表达与当前系统完全对应,因此⽤户容易理解。
⑵抽象出当前系统的逻辑模型; 分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得⽤DFD 图描述的当前系统的“逻辑模型”。