一个关于爬虫程序的的需求分析和概念原型
这个博客是结合上课所学进行所用。在学习完成之后,决定对我的工程实践项目进行建模,最终形成概念模型
1. 概述
最近学习了需求分析和建模方法,趁热打铁,针对自己的项目进行用例建模,业务领域建模和数据建模,最终形成概念原型。
这个项目是使用爬虫来爬取知乎网数据的一个项目,下面,我们按照流程,一步步的对系统进行建模
2. 用例建模
什么是用例?
用例(Use Case)的核心概念中首先它是一个业务过程(business process),经过逻辑整理抽象出来的一个业务过程,这是用例的实质。什么是业务过程?在待开发软件所处的业务领域内完成特定业务任务(business task)的一系列活动就是业务过程。
2.1 需求描述
我们抽取出项目中的核心需求
- 用户能够查看爬取的知乎网数据
- 用户能够根据需要主动获取知乎网数据
- 用户能够查询爬取到本地的数据
2.2 需求分析
根据准确提取用户的基本方法:
- 系统:爬虫系统
- 参与者:用户
- 用例
- 查看数据
- 获取数据
- 查询数据
2.3用例建模
2.4 总结
如此我们的用例图就画完了。最后总结一下:
•第一步,从需求表述中找出用例,往往是动名词短语表示的抽象用例;
•第二步,描述用例开始和结束的状态,用TUCBW和TUCEW表示的高层用例;
•第三步,对用例按照子系统或不同的方面进行分类,描述用例与用例、用例与参与者之间的上下文关系,并画出用例图;
3.业务领域建模
什么是业务领域建模?
• 业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。
• 开发团队获取业务领域知识的过程一般包括收集业务领域相关信息、执行团队头脑风暴、对业务领域相关的知识概念进行分类,最后用UML类图将业务领域知识图形化展示。
3.1 头脑风暴
团队成员聚在一起执行头脑风暴从收集的应用业务领域的信息中按规则识别业务领域相关的概念,并分别列出。
• • 名词和名词短语(nouns / noun phrases);
• • “Y 的 X”(X of Y)表达方法,比如汽车的颜色;
• • 及物动词(transitive verbs);
• • 形容词(adjectives);
• • 数量词(numeric);
• • 所有关系的表达方法(possession expressions),比如具有、拥有等;
• • 构成关系的表达方法(constituents / “part of" expressions);
• • 包含关系的表达方法(containment / containing expressions);
• • ”X 是一种/类 Y“(X is a Y)表达方法,比如汽车是一种车辆;
我们继续分析:
- 用户能够查看爬取的知乎网数据
- 用户能够根据需要主动获取知乎网数据
- 用户能够查询爬取到本地的数据
我们提取关键字:
名词:用户、数据
动词:爬取、查询
3.2概念分类
经过头脑风暴按照识别规则将业务领域内的信息提取出来之后,我们需要进一步对这些信息进行面向对象分析,将其归类为类、属性,以及类之间的关系。
•• 名词和名词短语(nouns / noun phrases)可能是类或者属性;
• • “Y 的 X”(X of Y)表达方法,可能X是Y的属性,也可能X是关联关系中的一个参与者,比如中国科学技术大学的小王同学;
• • 及物动词(transitive verbs)往往意味着关联关系;
• • 形容词(adjectives)一般是属性值;
• • 数量词(numeric)往往意味着属性或者属性值;
• • 所有关系的表达方法(possession expressions)很可能是聚合关系,也可能是属性;
• • 构成关系的表达方法(constituents / “part of" expressions)一般是聚合关系;
• • 包含关系的表达方法(containment / containing expressions)一般表示关联关系或者聚合关系;
• • ”X 是一种/类 Y“(X is a Y)表达方法一般是继承关系;
我们继续分析:
名词:用户、数据
动词:爬取、查询
我们可以为用户建立一个UI类进行交互,数据可以通过一个数据类表达出来,爬取和查询属于方法,基于此,我们给出UML类图
3.3 具体UML类图
3.4 总结
•第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;这个在用例建模的时候已经给出
• 第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
• 第三步,给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。
• 第四步,将结果用 UML 类图画出来。
4. 数据模型建模
什么是数据模型?
数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库。 将经过系统分析后抽象出来的概念模型转化为物理模型后,建立数据库实体以及各实体之间关系的过程(实体一般是表)。
4.1 分析
根据用例建模和业务领域建模,我们发现项目的关键部分在于对数据的操作和存取。
于是我们可以对具体的数据进行建模,包括数据内容,数据存取时间等
4.2 数据模型
数据表:
序号 | 说明 | 名称 | 类型 | 长度 | 主键 |
---|---|---|---|---|---|
1 | 编号 | _id | Int | 32 | Y |
2 | 作者名 | author_name | string | 不限 | N |
3 | 评论数 | comment_count | Int | 32 | N |
4 | 点赞数目 | veteup_count | Int | 32 | N |
5 | 内容 | content | string | 不限 | N |
6 | 摘要 | excerpt | string | 不限 | N |
7 | 问题id | question_id | string | 不限 | N |
8 | 创建时间 | Create_time | data | 不限 | N |
5.概念原型
概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论。
概念原型是一种虚拟的、理想化的软件产品形式。
5.1 概念原型的工作过程
以这个项目来举例,用户登陆系统,可以选择爬取新的数据,也可以查看上一次的数据,可以通过搜索查询或爬取数据。
总结
这是根据课上学到的东西进行项目进行建模,最终形成概念模型。因为才疏学浅,可能有疏忽和不足之处,请多多包涵