软件系统设计方案——搜索引擎

一.项目简介

  本篇文章基于高级软件工程课程上的内容,针对工程实践项目(基于互联网求职搜索引擎)进行软件系统分析和设计,最终形成软件系统的概念原型

二.项目设计方案

  2.1架构模式

  MVC架构,MVC即为Model-View-Controller(模型-视图-控制器),MVC是一种设计模式,以MVC设计模式为主体结构实现的基础代码框架一般称为MVC框架,如果MVC设计模式决定了整个软件的架构,不管是直接实现了MVC模式还是以某一种MVC框架为基础,只要软件的整体结构主要表现为MVC模式,我们就称为该软件的架构为MVC架构。MVC中M、V和C所代表的含义如下:Model(模型)代表一个存取数据的对象及其数据模型。View(视图)代表模型包含的数据的表达方式,一般表达为可视化的界面接口。Controller(控制器)作用于模型和视图上,控制数据流向模型对象,并在数据变化时更新视图。控制器可以使视图与模型分离开解耦合。

 

  本项目采用MVC架构,其中Model模型层代表系统存取数据的对象及其数据模型,我们的数据搜集系统的模型主要包含工作信息模型,用户模型等;View视图层代表模型包含的数据的表达方式,一般表达为可视化的界面接口,我们的系统会实现数据展示的前端来实现数据的表达;Controller控制层作用于模型和视图上,控制数据流向模型对象,并在数据变化时更新视图,我们的爬虫实现以及数据分析模块都属于控制层,完成我们对数据的爬取与处理。

 

 三.设计模式

   策略模式在此模式中,算法是从复杂类提取的,因而可以方便地替换。如果要更改搜索引擎中排列页的方法,策略模式是一个不错的选择。思考一下搜索引擎的几个部分 —— 一部分遍历页面,一部分对每页排列,另一部分基于排列的结果排序。在复杂的示例中,这些部分都在同一个类中。通过使用策略模式,可将排列部分放入另一个类中,以便更改页排列的方式,而不影响搜索引擎的其余代码。

    责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。

四.视图及目录结构

  软件架构模型是通过一组关键视图来描述的,同一个软件架构,由于选取的视角(Perspective)和抽象层次不同可以得到不同的视图,这样一组关键视图搭配起来可以完整地描述一个逻辑自洽的软件架构模型。

  4.1分解视图

 

 

 

 

 

 

  4.2依赖视图

  依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。依赖视图在项目计划中有比较典型的应用。比如它能帮助我们找到没有依赖关系的软件模块或子系统,以便独立开发和测试,同时进一步根据依赖关系确定开发和测试软件模块的先后次序。依赖视图在项目的变更和维护中也很有价值,比如它能有效帮助我们理清一个软件模块的变更对其他软件模块带来影响范围。

  

 

 

   4.3泛化视图

    泛化视图展现了软件模块之间的一般化或具体化的关系,典型的例子就是面向对象分析和设计方法中类之间的继承关系。值得注意的是,采用对象组合替代继承关系,并不会改变类之间的泛化特征。因此泛化是指软件模块之间的一般化或具体化的关系,不能局限于继承概念的应用。

  

 

 

 

 

 

   4.4执行视图

  执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。

  

 

 

   4.5实现视图

    实现视图是描述软件架构与源文件之间的映射关系。比如软件架构的静态结构以包图或设计类图的方式来描述,但是这些包和类都是在哪些目录的哪些源文件中具体实现的呢?一般我们通过目录和源文件的命名来对应软件架构中的包、类等静态结构单元,这样典型的实现视图就可以由软件项目的源文件目录树来呈现。

   4.6部署视图

  

 

 

   4.7工作分配视图

   

 

 

 

 

 五.数据库设计

  5.1用户表

  

 

 

   5.2管理员表

  

 

   5.3工作表

  

 

六.软件系统运行环境和技术选型

   

 

七.概念模型的核心工作机制

   概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论,概念原型是一种虚拟化的、理想化的软件产品形式。也就是说,概念原型 = 用例 + 数据模型。

   用户注册登录网站后,可以搜索想要求职工作的关键字得到信息,管理员通过管理平台增删改查工作信息,以及管理用户。用户,管理员也可修改自己个人信息。

  

 

posted @ 2020-12-30 22:11  朱旭炜  阅读(469)  评论(0编辑  收藏  举报