震惊!原来需求分析可以这样学(二)

问君能有几多愁,恰是跳完代码改需求。
相信这肯定是很多小伙伴的看法!
但是呢?不谋全局者,不主谋一域
接下来我来分析一下需求分析一些要点!

需求分析与系统设计主要岗位
系统分析,架构师

CMMI:成熟度模型(雷诗雨孙子兵法)
CMMI外包三级才能接单。

需求管理:双向追踪
(代码对应什么需求)

项目启动,策划,监控。
模型:可视化,具体说明,模板,记录。

UML建模

UML,可视化语言建模(8种模型)
为不同领域人提供统一交流
(软件,制造,工业)

软件系统建模:
逻辑视图,
需求视图,
过程视图,
部署视图。

软件工程:
需求工程
分析与设计,
软件测试,
项目管理,
软件实现。

软件声明周期:

1,可行性分析 “系统解决什么”,“是否可行”

2,需求分析阶段
2.1需求获取,定义,系统功能一个描述
2.2需求规约,系统模型
2.3,需求验证

3,设计阶段
3.1概要设计:
软件体系结构
C/S,数据库,管道,
面向对象

3.2详细设计
每个模块精确描述。

4,实现阶段,选择一种语言编码。
5,确认阶段:软件测试,白盒,黑盒
6,支持:完善维护,纠错维护。

主要模型讲解:

螺旋模型:适合大型软件开发,
电子商务,电子政务
瀑布和增量模型结合起来

喷泉模型
用户需求为动力
对象为驱动模型

智能模型
基于知识开发模型
瀑布模型+专家模型结合

瀑布模型:无法解决不明确,变动问题。
增量开发:
规模不能大,
对需求非常了解
有顶层设计经验

软件工程概要:方法,工具,过程。

基本目标:成本,质量,工期(互斥)

一个良好的家风

如何需求:

1,访谈和会议
2,问卷调查(有目的获取)
3,研究竞争对手
4,与用户形成联合小组

需求面临的挑战:
1,寻找用户
2,问题空间理解
2,需求不断变化

需求要求:
功能,性能,环境。

UML,需求建模。
符号化语言。

需求分类:
功能性需求:
呈现用户可以观察的结果
(用例建模,数据流建模)

非功能性需求:(质量)
安全性,易用性,
性能,可修改性

设计约束:系统开发的限制条件。
(软件工程处于核心地位)

系统设计:决定软件质量的优劣。
(开发和维护的基础)
软件规格说明书

四种设计模式:
构建,结构,体系,数据。

软件设计是一个迭代的过程:
目标
1,满足所有显性需求
满足用户希望的隐形需求
2,可读,可理解,易于实现的
3,现实角度出发

建模:
信息(实体关系图)
功能(数据流图)
行为(状态转换图)

需求分析方法:
1,结构化分析方法(SA):分层DFDs
根据数据处理角度来看。

2,面向对象:用例模型(OOA)
(用例图,用例故事)
UML(掷骰子)
构建用例模型。

分析模型的要素:
基于场景:用例图,用户故事
类模型:类图,协助图
流模型:DFDs,数据模型ERD
行为模型:STD,时序图

软件设计:
需求转化为系统的重要环节

系统设计:优劣决定了系统的质量

技术:数据,接口,体系结构
工程:概要软件需求转化为数据结构
详细:对结构进行细化
得到软件详细的数据结构,算法

需求分析主要步骤:

一,抽象:
1,过程(步骤)
2,数据(冠名数据集合)

二,精化
过程细节,数据细节进一步精化

三,模块化
分而治之(结构清晰,易于规划,长期维护)
同时避免不足,过度模块化。

四,信息隐藏
每个模块对其他模块
是隐藏的,不可见的

五,功能独立
每一模块有单一功能,
模块的独立程度是评价设计好坏重要标志

内聚:功能独立
耦合:模块之间相互联系

由高到低:
内容,公共,外部,控制
标记,数据,非直接。

设计原则:高内聚,低耦合

你可能感兴趣的:(计算机基础知识,前端)