软件工程第六章 分析软件需求

本文详细阐述了需求工程中的关键步骤,包括分析软件需求、用例视角、行为视角(顺序图和类图)、状态图的解释,以及类间关系如关联、聚合、继承等。UML在软件需求建模中的应用被深入讲解。
摘要由CSDN通过智能技术生成

我们回顾一下需求工程的基本过程,

_____软件需求 ->  _____软件需求 -> ______软件需求 -> _______软件需求

如果你忘了,请跳转软件工程第4章 软件需求工程基础-CSDN博客

分析软件需求属于需求工程的第二步,是需求工程中承上启下的一步,需要对第一步获取软件需求后进行精华,然后才能得到输出产品(即软件需求模型及文档)

1.分析软件需求这一阶段的任务?

用程序输入输出的观点来理解:

输入:初步软件需求,各利益相关方的要求制约

输出:软件需求模型,软件需求规格说明书

2.软件需求模型:

根据第4章所提到的OOA方法,有如下三种视角分析和建立软件需求模型。

1)用例视角。使用用例图,建立用例模型。

2)行为视角。使用交互图、状态图,描述对象以及之间的交互。

3)结构视角。使用类图,分析类。

很明显,第5章我们介绍了用例图,这一章我们要介绍状态图、顺序图、类图。

3.交互图

UML提供了顺序图和通信图,两图可相互转换。

1)顺序图。图的纵轴代表时间,横轴由参与交互的一组对象构成。

图的构成:节点和边。

a.对象。用矩形框或人形符号表示。

如果对象仅有类名,那么类下面要加下划线,表示是由该类实例化生成的对象(object)

比如,乘客XZ,属于passenger类,可以写成passenger

或者写成XZ。

对象下面的虚线,代表生命线,表示对象的活跃时期。

b.消息传递。用水平有向边表示。

以这张图为例,用户登陆界面作为一个类,可以写成UserloginUI;

登录系统这一消息传递过程,可以写成LoginSystem,在图中用水平有向边表示。

同时你会发现有向边的形式好像不太一样?

虚线有向边代表返回消息,顺序图中的消息类别分为同步消息、异步消息、返回消息、自消息,这里略。

4.通信图。

暂略。

5.类图。

用来表示系统中的类及其之间的关系。

图的构成结点边。

a.结点,也就叫做类。用矩形框表示。

b.边。代表类与类之间的关系,用不同的线段表示。

举个例子,

西瓜是一种水果。

抽象来看,西瓜是一个类,水果是一个类。

我们分别画两个矩形框,然后西瓜属于水果的一种,那么我们用一条特殊的线段将他们连起来。

(原谅我用画笔工具画的)

5.1

复杂的来看,类怎么表示?

例:学生(类)具有姓名、年龄的属性,里面还封装了modifyinfo()方法。

类具有名称、属性、方法。

属性和方法是具有可见性的。

1)可见性:+,public;

               -, private;

               #,protected..

2)多重性:两个类之间存在关联,但是一端类有一个实例对象,另一端可以有多个。

1,表示1个;

0..1,表示0个或1个;

0..*,表示0个或任意多个;

1..*,表示1个或任意多个;

m..*,表示m到n个;

n..*,表示n到任意多个。

3)约束特性。

比如,属性的取值有序,那么规定{Order}为约束特性。

5.2 类间的关系怎么表示?

类间的关系包括关联、聚合和组合、继承、实现、依赖等。

1)   关联(association)。用实线表示。

比如:顾客consumer类,和餐馆restaurant类,存在关联关系。

2)聚合(aggregation)和组合(composition)。

两种强关联关系。

聚合:部分可以脱离整体而存在。

组合:部分不能脱离整体而存在。

注意以上两者箭头的不同。

3)依赖(denpendency)。

类B的变化会引起类A的变化,类A的定义必须依赖于类B。

用虚线和箭头表示,箭头指向被依赖方。

例子:司机(类)必须有车(类)才能开。

4)继承(inheritance)

一种特殊的依赖关系。

用空心三角箭头加实线表示,箭头用子类指向父类。

再比如,孙悟空、猪八戒、悟净都属于徒弟(类)。

6.状态图。

描述实体的内部状态及其变化。

实体:可以是对象、软件系统、部分子系统、某个构件,不能是类。

图的构成:节点、边。

a.状态(节点),初始状态有1个,终止状态有0-n个,中间状态不定。

b.事件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值