软件需求工程与UML建模
其实我觉得这门课比较落后于时代,UML可能并不是一个用来沟通的工具,而是用来呈现结果的工具。
而且在实际中需求工程的形式其实也没有那么固定,这边只是推荐了一个可能的范式。
课程评价
感觉认真听课的人比较少,属于水课的范畴
考核方式
会查考勤
小组项目+汇报+期末考试
项目
项目不是要求你真实把项目做出来,而是要求你对这个项目涉及到的方面给出需求分析,以及 UML 建模。
但是很多例如采样数据的操作,只能靠编数字,而且本身对这门课不太伤心,做这种项目和需求分析会很痛苦。
期末考试
题型
期末考试的题型比较固定。
第一大题是不知道从哪些地方随便挑的几个名词解释,共 5 题,每题 5 分,共 25 分。
第二大题是结构化分析题,要求画出数据流图(包括上下文图、0层数据流图和任意一个1层数据流图等)或实体关系图,共 25 分。
第三大题是面向对象分析题,要求画出类图、用例图、时序图等,共 25 分。
第四大题是项目题,要求根据你所参加的课程小组项目,完成作答,这题每年的问题都一模一样,所以可以提前准备,共 25 分。
例题
2022 年的期末考试题如下:
一、名词解释题 (每题5分, 共25分)
- 软件过程包括哪些?
- 需求工程流程包括哪些部分?
- 需求分析方法主要有哪些,其中工业界使用的主流方法是哪个?
- ERD 中一个实体在关系中的最大基数指的是什么?
- 上下文图是如何看待和描述系统的?
二、结构化分析题 (25分)
请根据以下描述信息画出该系统的上下文图,0层数据流图和任意一个1层数据流图。
某餐厅欲引入一款食物订货系统,该系统首先需要接收顾客的食物订单,接收后呈送给顾客收条,并将订单转交给系统的其他内部功能进行处理。该系统能够将接收的订单及时转交给厨房进行食物生产,同时该系统能够根据一段时间的事务积累,为管理者提供管理报表来反应组织的生产状况。总的来说,该订货系统具体的内部功能如下:
- 接受顾客的食物订单: a. 呈送给顾客收条; b. 订单转交给厨房; c. 启动订单的后续处理。
- 处理顾客食物订单,根据订单生成并记录食物的销售事务。
- 根据订单更新库存信息,以保证生成的原材料供应。
- 根据一段时间内的食物销售情况和库存管理情况生成管理报表,向管理者反应组织的生产状况。
三、面向对象分析题 (25分)
请根据以下描述信息对所有名词进行分析和筛选,画出类图并标明关系。
电话公司开发管理电话客户信息的交互式网络系统:
- 浏览电话客户信息:任何使用 Internet 的网络用户,都可以浏览电话客户信息(姓名/公司名、住址、电话号码)。
- 登录:电话公司授予每个电话客户一个帐号。授权了的电话客户,可以使用系统提供的页面来设置个人密码,并使用帐号和密码向系统注册。
- 修改个体信息:电话客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。
- 删除电话客户信息:只有公司管理人员才能删除不再接受公司服务的电话客户信息。
四、项目题 (25分)
请根据你所参加的课程小组项目,完成以下内容:
- 软件系统的名称及小组成员名单;
- 软件的目标需求;
- 软件的用户需求;
- 列出你所负责的软件功能需求,并简述所采用的需求获取技术、需求分析与建模的工作过程;
- 针对你所负责的软件功能需求,选择1到2项高优先级的需求,给出需求建模的结果:
- 结构化建模: 上下文图,数据流图(至少2层),实体关系图,功能分解图
- 面向对象建模:用例图、类图、时序图,状态图,活动图
特别注明:“结构化建模”和“面向对象建模”二选一。