`

需求分析与定义(软件工程)

阅读更多

需求分析与定义

1. 软件需求:

软件需求分为三大部分:

I. 功能需求:指系统需要完成那些事情,即向用户提供那些功能。

II. 非功能需求:指产品所具备的品质和属性,比如可靠性、扩展性、响应时间、性能等等。。。

III. 设计约束:也称条件约束、补充规则。比如用户要安装该产品他需要有什么样的必备条件。(系统对操作系统的要求、硬件环境的要求等等…..

2. 需求调查与问题定义:

在做需求调查时需要做到两WH WhatWhereHow

I. What-----应该收集什么信息

II. Where----从什么地方收集

III. How-------用什么机制或技术来收集

3. 需求分析

需求分析通常包括七个方面:

I. 绘制系统上下文范围关系图:主要用于定义系统与系统外部实体间的界限和接口的简单模型,他可以为需求确定一个范围。其实就是DFD0层图。

II. 创建用户接口原型:这里我们可以把他看成是用户操作的一个雏形,什么意思呢就是我们通常所说的界面用户通过一系列的操作完成他想达到的效果的接口。

III. 分析需求的可行性:这个需求我们应该用什么技术解决,他实现后的性能怎么样,是否与其他需求相重合或是矛盾,这里一定要注意不要把系统的这个需求怎么用代码实现想进去。在需求分析时应多注意需求本身是否有用不必考虑怎么实现

IV. 确定需求的优先级:可采用满意度/不满意度指标来说明(满意度1-5 表示当需求被实现时用户的满意程度;不满意度取值同理)

V. 为需求建立模型:这里可以用UML创建用例图或是E-R图再加上少量的文字描述。

VI. 使用质量功能调配(QFD):这里我的理解是分析员根据需求的理解发现隐藏需求而这些需求是用户也没有想到的需求,系统实现后会给用户一个惊喜,而没实现用户也不会有抱怨。

4. 需求分析方法

现在比较流行的软件需求分析方法有4种,其中3种理论比较成熟

I. 结构化分析方法(Struetured Analysis,SA):这个大家想必很熟悉了不在复述。

II. 软系统方法:这只是过度性的方法论他的出现只是证明结构化分析方法的一些不足。因为结构化分析方法采用的相对形式化的模型不仅与社会观格格不入,而且在解决“不确定性”时显得十分无力。

III. 面向对象分析方法(Object Oriented AnalysisOOA):这也是我下文想讲的分析方法

IV. 面向问题域的分析(Problem Domain Oriented Analysis,PDOA):OOA也存在着很多不足,但PDOA现在正在研究中所以未被广泛应用

这里需要注意的是:在软件开发中有很多需求分析方法他们没有好坏之分只要你运用得当照样可以做出一个很好的系统,依据个人对某个方法的理解用自己最擅长的方法是最明智的选择。

5. 面向对象需求分析(OOA

面向对象这个概念很简单但也很复杂我在这里不做深入探讨。我将从实际出发来和大家一起探讨下在实际开发中我们应该怎么做。

OOA的精髓在于世间万物均为对象采用OOA方法在整个过程中包括2个工作任务:建立一个反应问题域静态关系的概念模型,就是我们通常所说的类图;另一个反应系统行为的动态模型,即用例模型

那么我们在实际开发中到底怎么做呢?
1
)建立域模型

I. 寻找类:在寻找类时有多种方法典型的是根据需求文档用“名词动词法”来寻找,找出备选类后再从中寻找出真正的类。(注意在用此方法时切记不要咬文嚼字专牛角尖在这里花费很长的时间)

II. 确定类之间的关联:这个过程是迭代的我们需要理清楚这些类之间的关系如关联、继承、聚合等然后通过UML记录下来。类之间的关系不是一下子就能确定下来的是要慢慢完善的

III. 为类添加职责:这里就可以理解成为类添加所需要的属性和方法。

IV. 域模型的详细度:这里不做太多要求可以写的很详细也可以写的简单写,可以把握好一个原则:只要能有利于团队更好的开发就是好模型。

2)建立用例模型

I.什么是用例:

用例实例是在系统中执行的一系列动作,这些动作将生成对特定参与者可见的价值结果。(用例实例就是常说的“使用场景“)一个用例定义一组用例实例。

II.识别参与者:

用例主要是为了让客户直观的理解需求那么这里参与者是必不可少的这样才能形象的勾画出系统某个特定场景下的流程。

注意参与者不仅可以是人也可以是其他的事物如(其他系统、硬件设备、时钟等等)

III. 合并需求获得的用例

IV.绘制用例图(如果对用例图不清楚请参考UML相关文章)

V 细化用例描述

用例描述可以包括以下几个部分:

u 用例名称

u 简要说明

u 事件流:是该用例要完成的工作步骤

u 非功能需求

u 前置条件

u 后置条件

u 扩展点

u 优先级别

3)要想做好需求分析光上面的用例是不够的还有写建模技术也要有如:协作图、顺序图和状态图

u 协作图:是一种用以显示对象如何被协调在一起执行用例的图,用来识别协作完成给定业务的对象。

u 顺序图:是一种用以显示用例对象之间消息顺序的图,他与协作图表达的信息是一样的知识显示的方式有差别。顺序图以图形化的方式强调消息的顺序,而非协作对象间的顺序。他和协作图统称为交互图。

u 状态图:是一种用以显示对象在生命周期和转换期情况的图

要想前面理解OOA思想UML是最好的帮助这里我只是简单的谈了一下。

分享到:
评论

相关推荐

    软件工程文档模板(问题定义、可行性研究、需求分析、测试分析……)

    软件工程文档模板(问题定义、可行性研究、需求分析、测试分析……).

    软件工程实训需求分析报告定义.pdf

    软件工程实训需求分析报告定义.pdf

    软件工程需求分析报告

    软件工程需求分析报告 1.1编写目的 本需求的编写目的在于设备管理系统软件的开发途径和应用方法。 本需求的预期读者是与设备管理系统软件软件开发有联系的决策人,开发人员,支 持本项目的领导和公司人员,软件验证...

    软件工程需求分析报告模版.doc

    需求分析报告 引言 编写目的(阐明编写需求分析报告的目的) 项目背景(应包括:a.项目的委托单位、开发单位和主管部门;b.该软件系统与 其他系统的关系。) 名词解释(列出文档中所用到的专门术语的定义和缩写词的...

    软件工程需求分析

    用例图 反映用户与系统交互情况的一种图形,常用于需求分析 表 1.2所列为本文用到的缩略语。 表 1.2 缩略语 缩略语 说 明 LIMS (Library Information Management System) 图书馆 南京工程学院图书馆 1.4 参考资料 ...

    软件工程文档模板问题定义.可行性研究.需求分析.测试分析

    软件工程文档模板问题定义.可行性研究.需求分析.测试分析

    软件工程图书管理系统需求分析与设计文档

    三、 需求分析 3 1. 识别参与者和用例: 3 2. 用例描述 4 四、 静态结构模型 5 1. 类定义 5 2. 类关系图 5 五、 动态行为模型 5 1. 用户登陆(用例UC0001) 5 2. 。。。。。。 6 六、 状态图(此处为可选) 6 七、 ...

    软件工程实验指导需求分析项目设计定义.pdf

    软件工程实验指导需求分析项目设计定义.pdf

    软件工程实验三教学管理系统的分析与设计.zip

    1.通过教学管理系统的分析与设计,掌握面向对象的分析与设计方法以及UML在软件项目和开发过程中的应用; 2.掌握软件系统的静态建模方法; 3.掌握软件系统的动态建模方法; 4.综合系统建模中的用例图、序列图、...

    软件工程需求文档

    第一部分:需求析 文档 这一 部分安排 部分安排 部分安排 4个课 时,前两个课 时,前两个课 时,前两个课 时,前两个课 时,前两时学生做, 时学生做, 时学生做, 时学生做, 并打印纸质版。 并打印纸质版。 并打印...

    软件工程经典教程之[3]需求分析 PPT

    需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义, 再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。

    软件需求分析写法的具体细节

    需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。  通常软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统...

    软件工程 曾强聪

    全书共10章正文,以软件生命周期为主线,主要内容包括:软件工程概论、软件工程过程模型、项目分析与规划、软件需求分析、软件概要设计、面向对象分析与设计、用户界面设计、程序算法设计与编码、软件测试、软件维护...

    [详细完整版]软件工程术语.doc

    软件工程 软件工程是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维 护软件,即把工程化应用到软件上。 4. 软件生存周期 软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至...

    软件需求工程习题及知识要点.doc

    22需求分析人员必备的技巧和知识 23如何成为一名需求分析人员 24需求捕获的主要方法 25获取客户需求的主要步骤 26需求捕获应该是主动的和聚集的 √ 27需求的来源 28用户代表 29需求捕获要具有计划性和科学性 30需求...

    软件工程完整ppt

     851软件再工程与逆向工程的概念  852实施软件再工程的原因  853软件再工程技术  86习题  第2篇UML与面向对象的软件工程  第9章UML简介  91UML概述  911UML的组成  912UML的特点和用途  913UML的模型视图...

    软件开发过程中的需求分析

    在系统工程及软件工程中,需求分析指的是在创建一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和...

    软件工程-需求分析.docx

    需求规格说明书是需求分析的产物,它是软件系统生存期中软件定义阶段的最后一个步骤。作为整个软件开发过程的指南,也是软件开发人员开发出符合用户要求的软件的基础。编制目的是为了使用户和软件开发者双方对该软件...

    《软件工程——原理、方法与应用》优秀PPT全套课件

    6、软件工程与六类岗位 7、软件的开发方法 8、软件工程的五个面向理论 软件工程 导读: 21世纪,什么技术将影响人类的生活?什么产业将决定国家的实力? 可以毫不夸张地说,信息技术与信息产业是首选的答案之...

Global site tag (gtag.js) - Google Analytics