校园⼆⼿交易论坛⼩程序开发--需求分析和概念原型0.前⾔
本⽂基于在《⾼级软件⼯程》课程中所学的软件⼯程建模⽅法,对⼯程实践项⽬--校园⼆⼿交易论坛⼩程序开发进⾏⽤例建模,绘制业务类图,数据建模,最终形成概念原型,⼀⽅⾯是对课程中所学知识的进⼀步掌握吸收,另⼀⽅⾯也为⼯程实践之后的项⽬完成打下基础。
1.项⽬简述
此次项⽬是基于⼩程序的校园⼆⼿交易论坛项⽬,⽤于校园范围内的⼆⼿商品交易和论坛交流,主要功能包括:商品交易,商品交易,论坛发布等功能。
2.⽤例建模
⽤例(Use Case)的核⼼概念中⾸先它是⼀个业务过程(business process),经过逻辑整理抽象出来的⼀个业务过程,这是⽤例的实质。在待开发软件所处的业务领域内完成特定业务任务(business task)的⼀系列活动就是业务过程。
⽤例有以下⼏个基本要素:
1.⼀个⽤例应该由业务领域内的某个参与者(Actor)所触发。
2.⽤例必须能为特定的参与者完成⼀个特定的业务任务。
3.⼀个⽤例必须终⽌于某个特定参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。
2.1⽤例建模的基本步骤
第⼀步,从需求表述中出⽤例,往往是动名词短语表⽰的抽象⽤例;
第⼆步,描述⽤例开始和结束的状态,⽤TUCBW和TUCEW表⽰的⾼层⽤例;
第三步,对⽤例按照⼦系统或不同的⽅⾯进⾏分类,描述⽤例与⽤例、⽤例与参与者之间的上下⽂关系,并画出⽤例图;
第四步,进⼀步逐⼀分析⽤例与参与者的详细交互过程,完成⼀个两列的表格将参与者和待开发软件系统之间从⽤例开始到⽤例结束的所有交互步骤都列举出来扩展⽤例。
其中第⼀步到第三步是计划阶段,第四步是增量实现阶段。
2.2对项⽬进⾏⽤例建模,绘制⽤例图
本项⽬的参与者(actor)可以分为普通⽤户和管理员两种类型,因此分别对这两种参与者进⾏⽤例建模:
1.普通⽤户的⽤例建模如下图所⽰:
2.管理者的⽤例建模如下图所⽰:
3.业务领域建模
3.1业务领域建模概念
业务领域建模是开发团队⽤于获取业务领域知识的过程。因为软件⼯程师往往需要⼯作在不同的业务领域或者不同项⽬中,他们需要业务领域知识来开发软件系统。软件⼯程师往往来⾃不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统⼀的业务认知。
开发团队获取业务领域知识的过程⼀般包括收集业务领域相关信息、执⾏团队头脑风暴、对业务领域相关的知识概念进⾏分类,最后⽤UML 类图将业务领域知识图形化展⽰。
3.2类和对象UML图以及常见关系
需求中业务领域内的名词或名词短语可能是⼀个类(Class)或者属性(Attribute)。因此在进⾏业务领域建模时,区分出类和属性是⾮常重要的⼀步。
⼀个对象作为某个类的实例,在业务领域内是能够独⽴存在的,属性往往不能独⽴存在。
类和对象的UML的基本画法表⽰如下:
业务领域中两个概念之间的关系可以分为三类,分别是:继承关系,聚合关系和关联关系
1.继承关系:继承关系表达着两个概念之间具有概括化/具体化(generalization/specialization)的关系。⼀个概念⽐另⼀个概念更加概括/具体。⽐如车辆是是⼩汽车的概括,⼩汽车是⼀种具体的车辆类型。所以继承关系也被称为“是⼀种”(IS-A)关系;
2.聚合关系:聚合关系表⽰⼀个对象是另⼀个对象的⼀部分的情况。⽐如发动机引擎是⼩汽车的⼀部分。也被称为“部分与整体”(part-of)的关系;
3.关联关系:关联关系表⽰继承和聚合以外的⼀般关系,是业务领域内特定的两个概念之间的关系,既不是继承关系也不是聚合关系。
3.3业务领域建模基本步骤
第⼀步,收集应⽤业务领域的信息。聚焦在功能需求层⾯,也考虑其他类型的需求和资料;
第⼆步,头脑风暴。列出重要的应⽤业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
第三步,给这些应⽤业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。
第四步,将结果⽤ UML 类图画出来。
3.4项⽬的业务领域建模
根据分析,⽬前所需的类有普通⽤户类,管理员类,商品类,帖⼦类,评论类;分别分析其属性和⽅法及类之间的关系,绘制UML图如下所⽰:
4.数据模型设计
4.1MongoDB简介
MongoDB是⼀个通⽤的、基于⽂档的、分布式的数据库,为云计算时代的现代应⽤程序开发者⽽⽣,没有数据库⽐MongoDB在应⽤开发效率上更加⾼效。
MongoDB是⼀种⽂档数据库,也就是说MongoDB⽤类似JSON格式的⽂档来存储数据。⽬前普遍认为JSON格式是理解和存储数据最⾃然的⽅式,JSON格式⽐传统的关系数据模型有更强⼤的数据表达能⼒。
4.2项⽬的数据模型
⽤户表:
字段名类型注释
id int⽤户id
name string⽤户昵称
phone_number string⽤户⼿机号
email_address string邮箱地址
wx_id string⽤户账号
student_number string⽤户学号
school_name string学校名称
管理员表:
字段名类型注释
------------
id int管理员id
name string管理员昵称
phone_number string管理员⼿机号
email_address string邮箱地址
wx_id string管理员账号
student_number string⽤户学号
商品表:
字段名类型注释
------------
goods_id int商品id
user_id int发布商品的⽤户id
name string商品名称
price int商品价格
image string商品图⽚地址
publish_time string发布时间
type string商品类型
information string商品信息描述
reply_number int评论数量
小程序源码交易市场
论坛表:
字段名类型注释
------------
post_id int论坛id
user_id int发布论坛的⽤户id
name string论坛名称
字段名类型注释
image string论坛图⽚地址
publish_time string发布时间
type string论坛类型
information string论坛内容
reply_number int评论数量
回复表:
字段名类型注释
------------
reply_id int回复id
item_id int所属商品或论坛的id
user_id int发表评论⽤户的id
publish_time string评论时间
information string评论内容
5.概念原型总结
概念是⼈对能代表某种事物或发展过程的特点及意义所形成的思维结论,⽽概念原型是⼀种虚拟的、理想化的软件产品形式。
如下是概念原型的具体定义:
概念原型=⽤例+数据模型,即上⽂中我们所分析的部分,因此也可以总结出该项⽬的概念原型⼯作过程:
项⽬参与者主要分为普通⽤户和管理员,普通⽤户⾸先进⾏注册,在管理员审核通过之后可以顺利进⾏登录,可以从商品页⾯浏览商品,根据分类选择⾃⼰感兴趣的商品,并在感兴趣的商品下评论;也可以在论坛页⾯浏览论坛并发表评论;同时⽤户也可以发布⾃⼰的帖⼦和商品,在管理员审核通过之后成功发布。管理员由可以做到和普通⽤户同样的事情,除此之外,管理员可以审核进⾏注册的普通⽤户,通过验证其学校和学号等信息使普通⽤户使⽤⼩程序,并在⽤户发布其商品或者帖⼦后进⾏审核,审核通过之后,该商品或帖⼦可以在商品页⾯和论坛页⾯公开显⽰。
6.⼩结
此次博客通过对⼯程实践项⽬进⾏需求分析,不仅加深了对上课所讲内容的理解,同时也对⼯程实践项⽬之后的开发有了更加明确的⽅向。希望可以借助这次机会培养⾃⼰的软件⼯程思维,使⾃⼰之后的项⽬开发更加规范。同时本⽂章由于⾃⼰也并未对知识内容完全理解掌握,错误之处还望⽼师和和同学们指正。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论