需求分析与系统设计_第1页
需求分析与系统设计_第2页
需求分析与系统设计_第3页
需求分析与系统设计_第4页
需求分析与系统设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、需求分析与系统设计 需求需求的定义需求分层需求的评价 需求开发和管理需求开发需求管理需求的定义IEEE软件工程标准词汇表(1997年)中定义需求为:(1)用户解决问题或达到目标所需的条件或能力。(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。需求分析专家Alan Davis:从系统外部能发现系统所具有的满足于用户的特点、功能及属性等需求分层 业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。 用户需求(user

2、 requirement) 文档描述了用户使用产品必须要完成的任务,这在use case文档或 sc enario说明中予以说明。 功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。需求分层需求的评价 优秀需求的特性: 完整性 正确性 可行性 必要性 划分优先级 无二义性 可验证性需求开发和管理需求开发 需求开发活动包括以下几个方面: 确定产品所期望的用户分类。 获取每类用户的需求。 了解实际用户任务和目标以及这些任务所支持的业务需求。 分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议

3、解决方法和附加信息。 将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件。 了解相关质量属性的重要性。 商讨实施优先级的划分。 将所收集的用户需求编写成规格说明和模型。 评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚。需求分析的任务 准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。需求分析的工作绘制系统关联图这种关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。同时它也明确了通过接口的信息流和物质流。创建用户接口原型当开发人员或用户不能确定需求时,开发一个用户接口原型一个

4、可能的局部实现这样使得许多概念和可能发生的事更为直观明了。用户通过评价原型将使项目参与者能更好地相互理解所要解决的问题。注意要找出需求文档与原型之间所有的冲突之处。分析需求可行性在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。确定需求的优先级别应用分析方法来确定使用用例、产品特性或单项需求实现的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中作出需要的变更。为需求建立模型需求的图形分析模型是软件需求规格说明极好的补充说明。它们能提

5、供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。创建数据字典数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项以确保客户与开发小组是使用一致的定义和术语。使用质量功能调配质量功能调配( Q F D)是一种高级系统技术,它将产品特性、属性与对客户的重要性联系起来。该技术提供了一种分析方法以明确那些是客户最为关注的特性。Q F D将需求分为三类:期望需求,即客户或许并未提及,但如若缺少会让他们感到不满意;普通需求;兴奋需求,即实现

6、了会给客户带去惊喜,但若未实现也不会受到责备需求管理 定义需求基线。 评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它。 以一种可控制的方式将需求变更融入到项目中。 使当前的项目计划与需求一致。 估计变更需求所产生影响并在此基础上协商新的承诺(约定)。 让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪。 在整个项目过程中跟踪需求状态及其变更情况。区别项目愿景和范围需求分析方法 认识世界过程论对象论 分析方法架构化分析方法面向对象分析方法原型认识世界 程序世界本质只有两种东西数据和逻辑 过程论认为:数据和逻辑是分离的、独立的。所谓世界的演变,是在逻辑作用下,数据做改变

7、的一个过程。这种过程有明确的开始、结束、输入、输出,每个步骤有着严格的因果关系。 对象论认为:数据和逻辑不是分离的,而是相互依存的。相关的数据和逻辑形成个体,这些个体叫做对象(Object),世界就是由一个个对象组成的。对象具有相对独立性,对外提供一定的服务。对象间通过相互调用而完成的交互;实例说有甲、乙、丙三人住店,一间房30。于是每人10元,共计给店老板30元住进一间房。后来店老板发现弄错了,房价应该是25元,于是给小二5元让小二退给房客。小二黑心,贪污了2元,退给甲乙丙每人1元。这样房客每人付了10-1=9元,三九27,加上小二贪污的2元,共29元,问那1元哪里去了?过程论对象论架构化分

8、析方法 数据流图DFD(流动和处理)、 加工说明PSPEC(说明DFD中的每个加工) 数据字典DD (DFD中所有元素的定义的集合) 状态迁移图STD(软件状态变迁) 关联图(外部实体和系统之间的数据流和物流) E-R图 3NF面向对象分析方法面向对象的三个基本特征 封装 继承 多态抽象 类(Class),就是从对象上首先抽象出来的概念 抽象是有层次的。 抽象是先对象再有类,写程序的时候先有类再有对象。继承 先有子类,然后有父类,是一种自底向上形成的体系。当然,当父类被抽象出来后,可能还会有新的子类加进来。 继承作用:规定了抽象与具体之间的可映射性。 开放-关闭原则(OCP):软件实体应该可以

9、扩展,但不可以修改。 里氏代换原则(LSP):子类型应该能代替掉其父类型,且代替后程序运行情况不会错乱。耦合 泛化耦合(Generalization Couple):由于泛化(继承)关系的存在,在两个有祖孙、父子关系的类间形成的一种逻辑关联。 聚合(Aggregation):一种弱的拥有关系,体现A对象可以包含B对象,但B对象不是A对象的一部分。 组合(Composition):一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体具有一样的生命周期。 依赖(Dependency):由于逻辑上相互协作可能,而形成的一种关系。耦合 所谓低耦合:对象间谁也不认识谁,只知道对象能提供什么服务。依

10、赖倒置原则(DIP)依赖倒置原则(DIP):客户类和服务类都应该依赖于抽象(接口),并且客户类拥有接口。依赖注入容器(DI) 依赖注入就是容器挑选符合接口的服务类为客户类提供服务。 一个符合OO原则的、低耦合的程序世界的运作形式是这样的:首先参与运作的本质只有对象,对象不直接依赖,没有选择权,互相不知道,而只知道各个接口。客户类制定接口,对象间通过接口交互,形成运作。世界的统治者依赖注入容器决定选择哪个服务类给客户类使用。原型一个软件原型是所提出的新产品的部分实现。使用原型有三个主要目的: 明确并完善需求原型:作为一种需求工具,它初步实现所理解的系统的一部分。用户对原型的评价可以指出需求中的许多问题,在你开发真正产品之前,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论