软考高级 系统分析—论文理论知识

软件需求获取技术

需求获取方法:
1) 用户访谈:1对3,有代表性的用户
2) 问卷调查:用户多,无法一一访谈
3) 现场观摩:针对较为复杂的流程的操作;
4) 联合需求计划:高度组织的群体会议,各方参与,成本较高
5) 情节串联板:一系列图片,公共这些图片讲故事
6) 收集资料:把与系统有关的,对系统开发有益的信息收集起来;
7) 参加业务实践:有效地发现问题的本质和寻找解决问题的办法
8) 阅读历史文档:对收集数据性的信息较为有用
9) 抽样调查

联合需求计划:是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,他是联合应用开的一部分。JRP是一种相对来说成本较高的需求获取方法,但也是十分有效的一种。它通过联合各个关键用户代表、系统分析师、开发团队代表一起,通过有组织的会议来讨论需求。JRP将会起到群策群力的效果,对于一些问题最有歧义的时候,对需求最不清晰的领域都是十分有用的一种方法。
优势:发挥用户管理人员与系统开发过程的积极性,提高系统开发效率;降低系统需求获取的时间成本,加速系统开发周期;采用原型确认系统需求并获取设计审批,具有原型化开发方法的优点。

需求分析方法及应用

1) 绘制系统上下文范围关系图:这种关系图是用于定义系统与系统外部实体之间的界限和接口的简单模型,它可以为需求确定一个范围。
2) 创建用户界面原型: 用户界面对于一个系统来说重要,快速开发一个抛弃式原形,将帮助用户更好地理解要解决的问题,更好的理解系统
3) 分析需求的可行性:成本,性能,技术层面,法律方面
4) 确定需求的优先级:迭代开发已经成为现代软件工程方法的一个基础。而需求的优先级是制定迭代计划的一个重要的依据。
5) 为需求建立模型:建立分析模型,图标上加少量文字描述,形式化的描述需求使得其更加清晰,易懂。采用分析方法不同,使用的图也不同。OOA中的用例模型和领域模型;SA中的DFD和E-R图。
需求分析模型主要描述系统的数据,功能、用户界面和运行的外部行为,它是系统的一种逻辑表示技术,并不涉及软件的具体实现细节。
需求分析模型可以帮助系统分析师理解系统,使需求分析任务更加容易实现。同时它是以后进行软件设计的基础,为软件设计提供系统的表示视图。
数据流图(DFD):系统组成部分以及功能间的联系,清楚地描述系统的哪些功能部分组成。
状态转换图(STD):清楚描述用户的状态转换过程,大量的判断。
6) 创建数据字典:对系统所使用到的所有数据项和结构进行定义,以确保开发人员使用了统一的数据定义。
7) 使用QFD:在需求优先级基础上的一个升华,其原理与满意度和不满意度指标时分接近,通过将产品特性、属性与对用户的重要性联系起来。

信息系统开发方法及应用

1、 结构化方法
系统内各个组成要素之间的相互联系,相互作用的框架。也称为生命周期法,是一种传统的信息系统开发方法。由结构化分析,结构化设计,和结构化程序设计三部分有机结合而成,其精髓是自顶向下,逐步求精和模块化设计。
结构化方法假定待开发系统是一个结构化的系统,其基本思想是将系统的生命周期划分为系统规划,系统分析,系统设计,系统实施,系统维护等阶段。这种方法遵循系统工程原理,按照事先设计好的程序和步骤,使用一定的开发工具,完成规定的文档,在结构化和模块化的基础上,进行信息系统的开发工作。结构化方法的开发过程一般是把系统功能视为一个大的模块,再根据系统分析与设计的要求对其进行进一步的模块分解或组合。

2、面向对象方法
客观世界是由各种“对象”组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,都属于某个对象“类”,是该对象类的一个元素。复杂的对象可由简单的各种对象以某种方式而构成,不同对象的组合及相互作用构成了系统。
OO方法是当前主流开发方法,拥有很多不同的分支体系包括OMT(对象建模技术)方法,OOSE(面向对象的软件工程)方法和Booch方法等,而OMT,OOSE,Booch已经成为UML(统一建模语言)

3、原型化方法:
结构化和面向对象方法有一个共同点,在系统开发初期必须明确系统功能要求,确定系统边界。原型化方法也成为快速原型方法,它是一种根据用户初步需求,利用系统开发工具,快速建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统。

4、面向服务方法:
OO的应用构建在类和对象之上,随后发展起来的建模技术将相关对象按照业务功能进行分组,就形成了构建的概念。对于跨构建的功能调用,采用接口的形式暴露出来。进一步将接口的定义与实现进行解耦,则催生了面向服务的开发方法。由此可见,面向对象,基于构建、面向服务是三个递进的抽象层次。

软件开发模型及应用

瀑布模型:严格遵循软件生命周期各阶段的固定顺序,一个阶段完成再进入另一个阶段。
优点:可以使过程比较规范化,有利于评审;
缺点:过于理想,缺乏灵活性,容易产生需求偏差。
快速原型模型:对于许多需求不够明确的项目。它采用了一种动态定义需求的方法,通过快速地建立一个能够反映用户主要需求的软件模型,让用户在计算机上使用它,了解其概要,再根据反馈的结果进行修改,因此能够充分体现用户的参与和决策。

演化模型:快速原型在获得真实需求时,就将抛弃原型。而演化模型则不然,它将从初始的模型逐渐演化为最终软件产品,是一种“渐进式”原型法。

增量模型:结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析。它是由指定计划、风险分析、实施工程、客户评估这一循环组成的,它最初从概念项目开始第一个螺旋。

喷泉模型:主要用于描述面向对象的开发过程,最核心的特点是迭代。所有的开发活动没有明显的边界,允许各种开发活动交叉进行

统一过程(UP):统一过程是一个通用过程框架,可以用于种类广泛的软件系统,不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。UP是基于构建的,在为软件系统建模时,UP使用的是UML。与其他软件过程相比,UP具有三个显著特点,即用例驱动、以架构为中心、迭代和增量。

敏捷方法:以人为核心、迭代、循序渐进的开发方法。项目的构建被切分成很多子项目,各个子项目成果都经过测试,具备集成和可运行的特征。在敏捷开发过程中,从开发者的角度看,主要的关注点有短平块的会议、小版本发布、较少的文档、合作为重、客户直接参与、自动化测试、适应性计划调整和结对编程;从管理者角度看,主要关注点有测试驱动开发,持续集成和重构。


敏捷开发和统一开发区别

敏捷方法和RUP方法在对待风险态度上有明显的区别,敏捷开发在项目后期也要接受需求和技术架构的变更,而RUP方法强调在项目早期消除主要的风险,以保证项目开发的进度和质量。
敏捷开发在中小型项目中有比较好的效果,随着项目规模的不断增大,迭代次数会陡增,给项目管理和实施带来极大困难。
统一过程开发
统一开发分为初始阶段、细化阶段、构建阶段和交付阶段,每执行一遍四个阶段便完成了一次迭代,是否进行下一次迭代取决于评审目标是否完成。

软件的系统测试及应用

系统测试的对象是完整的、集成的计算机系统,测试的目的是在真实的系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统,子系统设计文档和软件开发合同规定的要求。
系统测试依据的是用户需求开发或开发合同,除应满足一般测试的准入条件外,在进行系统测试前,还应确认被测系统的所有配置项已经通过测试,对需要固化运行的软件还应提供硬件。
测试包括,功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试。其中最主要的工作是功能测试和性能测试

功能测试主要采用黑盒测试方法,测试系统是否达到了用户明确提出的需求及隐含需求。
性能测试主要验证软件系统在承担一定负载的情况下所表现出来的特性是否符合 用户的需要,主要有响应时间、吞吐量、并发数和资源利用率。验证能否达到用户提出的性能指标,同时发现软件中存在的性能瓶颈,并优化软件,最后起到优化系统的目的,包括:
1)发现缺陷:软件的某缺陷与软件性能密切相关,针对缺陷测试一般需要伴随着性能测试进行。
2)性能调优:性能调优并不一定针对发现的性能缺陷,也可能是为了更好地发挥系统的潜能。
3)评估系统的能力:软件性能测试不仅需要测试软件在规定条件下是否满足性能需求,往往还要测试能够满足性能需求的条件极限。
4)验证稳定性和可靠性:在一定负载下测试一定的时间,是评估系统稳定性和可靠性是否满足要求的唯一方法。

集成应用

1)表示集成:也称为界面集成,这是比较原始和最浅层的集成,但又是最常用的集成。这种方法把用户界面最为公共的集成点,把原因零散的系统界面集中在一个新的界面中。表示集成是黑盒集成。一般有以下几种情况:
在现有的基于终端的应用系统上配置基于PC的用户界面
为用户提供统一,但是有多个系统组成的应用系统

2)数据集成
3)控制集成
4)业务流程集成

项目管理技术及其应用

1,成本方面
1)资源计划
2)成本估算
3)成本预算
4)成本控制
2,进度方面
1)活动定义
2)活动排序
3)活动资源估算
4)进度计划编制

3,质量方面
1)软件生命周期的质量模型主要包括质量、内部质量属性、外部质量属性等内容
2)软件管理计划主要有:评审与检查、项目计划阶段的质量管理活动、软件配置管理等
3)软件质量保证是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划,有组织的活动。

猜你喜欢

转载自blog.csdn.net/WANGYONGZIXUE/article/details/117091690