精华内容
下载资源
问答
  • 软件设计说明书/ 软件设计规约通用模板
  • 软件设计说明书模板.

    热门讨论 2011-10-25 12:57:29
    软件设计说明书 版本:V1.0 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 录...
  • 软件著作权最新版设计说明书,每项都有填写说明,可供新人参考。
  • 详细设计说明书模板 详细设计说明书编写规范 详细设计说明书 软件模块详细设计模板
  • 包含2套软件系统详细设计说明书模板和1个用户管理系统范例
  • 嵌入式 软件设计说明书!!!!!!!!!
  • 软件设计说明书模板及案例说明,使用的设计工具是rose,
  • 软件设计说明书模板

    万次阅读 2018-12-29 09:46:48
    软件项目的设计说明书软件开发测试中重要的环节,一份好的设计说明不仅可以为系统设计、开发、测试提供指导,还可以收获研发领导、甲方、技术合作交流人员的信任。 设计模板 封面 包含系统项目名、版本、时间等 ...

    简述

    软件项目的设计说明书是软件开发测试中重要的环节,一份好的设计说明不仅可以为系统设计、开发、测试提供指导,还可以收获研发领导、甲方、技术合作交流人员的信任。

    设计模板

    封面
    包含系统项目名、版本、时间等
    目录

    1. 引言
      1.1 背景
      项目来源、意义等
      1.2 文档阅读者
      领导–指导软件开发;项目负责人–指导、讨论;设计人员–为系统设计作参考;开发人员–为开发作参考;测试人员–为测试作参考;项目其它相关人员–了解软件功能。
      1.3 撰写日期与版本
      修改日期、版本号、变更内容简述
      1.4 文档约定
      简称、全称、英文名、含义
    2. 综合描述
      2.1 产品状况
      2.2 运行环境
      软、硬件环境等
      2.3 外部接口
      硬件–网口、串口等;软件–通信协议、数据库类型、函数库、操作系统等
    3. 软件设计说明
      3.1 总体框架(也可单独成一个大章节)
      各类图表,如系统图、架构图、UML类图、时序图、输入输出接口流图等
      3.2 子模块的设计
      3.2.1 模块功能
      3.2.2 模块结构
      结构组成图
      3.2.3 输入输出
      3.2.4 处理流程
      3.2.5 异常处理
      3.2.6 界面原型
      以上子模块选择性填充即可,不需要全部罗列
    4. 需求的可追踪性
    5. 注释/附件

    结尾

    这个设计模板个人还不是非常满意,欢迎有经验的项目管理人员留言指导。

    展开全文
  • 最标准的软件详细设计说明书模板,软件详细设计,详细设计模板,详细设计说明书,详细设计
  • 软件详细设计说明书实例,需要的童鞋速度下载,千辛万苦找到的哦。
  • 软件设计说明书模版(申请软件著作权可供参考)

    万次阅读 多人点赞 2019-06-20 14:59:22
    1.引言 1.1 编写目的 1.2 项目背景 ...3.2.1 软件概要设计说明 3.2.3 基本设计概念和处理流程 3.3 软件的详细设计 3.3.1 系统结构 3.3.2 模块设计说明 3.3.3 爬虫模块 3.3.4 日志模块 3.3.5 数...

    1.引言

    1.1 编写目的

    1.2 项目背景

    1.2 项目概要

    1. 总体要求

    2.1 系统功能概述

    2.2 系统功能要求

    1. 软件开发

    3.1 软件需求分析

    3.2 软件的概要设计

    3.2.1 软件概要设计说明

    3.2.3 基本设计概念和处理流程

    3.3 软件的详细设计

    3.3.1 系统结构

    3.3.2 模块设计说明

    3.3.3 爬虫模块

    3.3.4 日志模块

    3.3.5 数据处理

    3.3.6 数据建模

    3.3.7 事件画像

    3.3.8 可视化展示

    3.4 数据库设计

    3.4.1 数据库说明

    3.4.2 数据库操作

    3.4.3 数据库结构

    3.4.4 表结构

    1.引言

    1.1 编写目的

    项目名称:基于互联网大数据的事件智能抓取和画像系统
    项目成员:禹精华、刘可可、刘贤辉

    对基于互联网大数据的事件智能抓取和画像系统进行算法描述和软件设计说明。

    1.2 项目背景

    项目背景:随着互联网大数据的发展,各种大数据的分析对各行业都产生了不同程度的影响。网站数据、社交媒体数据等是互联网大数据的重要组成部分。对于民航业领域,社会事件的发生,会很大程度影响旅客的出行需求变化,从而影响航空公司飞机运力投放、航班编排、票价策略调整等,对互联网事件的准确抓取和分析能够帮助航空公司更好的服务市场、服务旅客、提升收益。

    行业背景:对于航空公司来说,能否预先判断旅客的出行需求,可用于航空公司及行业管理部门决定行业运力投放的合理性,从而提高旅客服务水平、提高航空公司航班收益水平,从互联网中获取大量的影响民航领域的信息能够帮助航空公司制定销售策略。

    1.3 项目概要

    开发团队:武汉职业技术学院筑梦云工作室demo01团队

    项目开发平台说明:

    操作系统:Windows7 及以上版本

    应用服务器:Ubuntu Server 14.04 LTS 64位

    服务器配置:CUP: 1核 内存:1GB 公网带宽:1Mbps 硬盘:20G

    应用服务器:Windows Servers 2008

    服务器配置:CUP: 1核 内存:2GB 公网带宽:1Mbps 硬盘:40G

    网络架构:完全支持TCP/IP协议

    开发工具或技术体系:开发语言:Python 3.6,开发工具:Pycharm 2017

    数据库: MongoDB 3.4.3

    软件运行环境说明:

    设备:

    客户程序硬件要求:

    具有 1核处理器且满足以下要求的计算机:

    最低 1G内存

    最小 20 GB 硬盘

    web服务器硬件需求:

    具有1核处理器且满足以下要求的计算机:

    最低 1G内存

    最小 20 GB 硬盘

    总线I/O:8M/s;

    数据库服务器硬件需求:

    具有1核处理器且满足以下要求的计算机:

    最低 1G内存

    最小 20 GB 硬盘

    2.总体要求

    2.1 系统功能概述

    从互联网上抓取事件,对事件数据进行数据处理,存储到数据库,进行分词及语义等处理,提取事件的属性建立事件模型,以及可视化展现。

    1、实现互联网事件天级或更高频次抓取,采集政治会议、展会、体育赛事、演唱会、突发异常天气等各类中比较主要的事件,每个类型的事件数据至少来自2个数据源(网站),每天爬取一次。

    2、实现事件的去重功能,一是不同数据源(网站)的事件去重,二是不同天抓取的事件去重。

    3、事件画像建模,即事件属性自动化提取。

    4、使用DataV进行可视化展现。

    2.2 系统功能要求

    1、网络爬虫模块实现互联网事件抓取。

    2、日志模块实现各个模块间日志的生成。

    3、数据处理模块实现数据的准备、清洗、去重、转换。

    4、数据建模模块对数据建立模型,计算及转换。

    5、事件画像模块对事件分词及提取属性。

    6、DataV进行可视化展示。

    3.软件开发

    3.1 软件需求分析

    系统需求分析:为航空公司飞机的运力投放、航班编制、票价策略提供服务。

    软件系统结构描述:基于互联网大数据的事件智能抓取和画像系统由爬虫模块、日志模块、数据处理模块、数据建模模块、事件画像模块、可视化系统构成。

    软件结构如图3-1:

    图3-1 系统总用例图

    数据流程如图 3-2:

     

    图 3-2 数据流程

    3.2 软件的概要设计

    3.2.1 软件概要设计说明

    软件系统采用B/S架构,并且将程序部署在云服务器。

    3.2.2 基本设计概念和处理流程

    考虑到互联网上的数据复杂性非常高、并且事件数据一般为非结构化数据,其处理和分析有一定的难度,对爬虫的稳定性和爬取速度有很大的要求,我们使用scrapy爬虫框架技术来从各网站爬取数据,对数据进行处理,使用NoSQL型数据库MongoDB存储半结构化数据,对数据画像、分析、建模并且将程序部署在云端。通过访问云端数据库,数据流映射到DataV实现可视化展示。

    系统流程如图 3-2-2:

    图 3-2-2 系统流程图

    设计说明:

    1、每一个计算机需要不需要安装客户程序,但是需要有IE4.0或更高版本的支持;

    2、WEB发布服务器访问数据库服务器,数据库服务器对外部不可见;

    3、数据库服务器使用MongoDB来实现,对于目前的访问量,MongoDB在足够的硬件环境的支持下能够适用,并且在经济上也是合理的;

    4、多用户并发访问和处理、数据加锁、事务协调,由MongoDB数据库来完成,本系统不提供单独的事务处理服务器;

    5、scrapy爬虫框架可以实现快速、高并发、高层次的网络抓取。

    3.3 软件的详细设计

    3.3.1 系统结构

    应用程序采用Python语言进行开发,网络爬虫使用scrapy框架进行开发并将其部署在云服务器上,考虑到爬虫抓取的数据多为半结构化或者非结构化数据,我们使用NoSQL型数据库MongoDB进行数据存储,并部署在云服务器上。

    系统设计如图 3-3-1:

    图 3-3-1 系统设计图

    3.3.2 模块设计说明

    整个系统共划分为6个模块

    1、爬虫模块

    2、日志模块

    3、数据处理

    4、数据建模

    5、事件画像

    6、可视化展示

    系统模块设计如下:

    1、爬虫模块分为定时爬虫模块和scrapy爬虫两个模块构成。

    定时爬虫模块:管理整个爬虫模块,监控爬虫运行状态、设置爬虫抓取频率(每天爬取一次)、爬虫程序异常处理、管理爬虫日志。

    Scrapy爬虫模块:从目标网站上抓取数据,采集政治会议、展会、体育赛事、演唱会、突发异常天气、交通管制新闻网等数据源网站的事件经过数据处理,并生成爬虫日志存储到数据库。此模块由11个爬虫脚本组成,分别对相应的数据源进行数据爬取。

    爬虫模块如图3-3-2:

    图3-3-2 爬虫模块图

    2、日志模块:日志模块与系统各个模块部分联系紧密,各个模块运行都会产生日志,生成的日志将存储到数据库,方便系统管理、维护、排错。

    日志设计图如图 3-3-3:

    图3-3-3 日志模块设计图

    3、数据处理:数据处理分为数据准备、数据转换、数据聚合。主要对非结构化/半结构化数据进行处理,得到干净、规整的数据。爬虫爬取网站数据源的时候进行数据预处理,对所收集数据进行审核、筛选、排序等操作。数据预处理完成后对数据进行清洗,过滤掉不符合要求的数据,将脏数据转化为满足要求的数据。再进行缺失值处理,对缺失项进行特殊值填充,存储到数据库。数据去重主要对不同网站的事件数据去重复处理。

    4、数据建模:对事件数据建立一个统一的模型,利用聚类等机器学习算法挖掘数据间隐藏的属性及关系。由聚类算法和搜索引擎收录数两个子模块构成。

    聚类算法:使用无监督学习的K-Means对数据进行聚类分析。

    搜索引擎收录数:对于热度相关数据的缺失,我们通过抓取百度搜索引擎对事件的收录数,对缺失热度数据进行填充。

    5、事件画像:事件画像模块实现了对事件属性的自动化提取。调用数据建模模块对数据进行聚类,对不同类型的事件进行分词及属性提取,数据样本初始化,日志生成,对事件画像,生成事件样本。

    事件属性表如下:

    主办方级别是否是国际性组织
     是否是国家政府
     是否是省政府
     是否是地方级政府
    主办方类型是否是国内民间协会
     是否是国际民间协会
     是否是国内行业协会
     是否是国际行业协会
    主要影响年龄阶段主要影响年龄层为儿童
     主要影响年龄层为青年
     主要影响年龄层为成年
     主要影响年龄层为老年
    是否有固定的参与人群是否有固定的参与人群
    影响社会群体是否影响商务人群
     是否影响社会大众
    最大影响范围最大影响全球
     最大影响洲际
     最大影响全国
     最大影响全省
     最大影响全市
    事件类型是否是展会
     是否是演唱会
     是否是体育赛事
     是否是会议
     是否是地方性节假日
    事件热度事件热度
    事件历史悠久程度事件历史悠久程度
    事件一年内频率事件一年内频率
    基本属性开始日期
     结束日期
     举办城市
     事件名称

    6、可视化展示我们使用阿里云的可视化工具DataV来生成图表和数字大屏。


    3.3.3 爬虫模块

    定时爬虫模块设计如图3.3.3:

    图3.3.3 定时爬虫模块

    程序定时及爬虫管理脚本 TimerAdmins.py

    import multiprocessing
    import time
    import pymongo
    from SpiderAdmin import CrawlAdmin
    from Log import LogUtils
    
    class ProcessingTest(multiprocessing.Process):
    
        host = ''       #目标IP
        port = 0        #端口号
    
        def __init__(self,sleep):
            multiprocessing.Process.__init__(self)
            self.sleep=sleep
            self.ConfigDB='Config'
            self.ConfigTdb='timer'
    
        #程度运行
        def run(self):
            log = LogUtils()
            client = pymongo.MongoClient(host=self.host, port=self.port)
            db = client[self.ConfigDB]
            table = db[self.ConfigTdb]
            while True:
                ''' 得到当前时间戳'''
                times=time.time()
                '''得到当前时间戳去小数'''
                tim=int(str(times).split('.')[0])
                '''得到当前日期'''
                date=tim//86400
                '''从数据库查询日期'''
                info=table.find_one({"config": "timer"})
                print('data----------------------->'+str(date ))
                dateInfo=-1
                '''如果数据库没有记录则保存一下'''
                if info==None:
                    print('没有数据')
                    log.I('TimerAdmins','第一次运行数据库里没有数据')
                    table.insert({"config": "timer","time":date})
                    p = CrawlAdmin(1)
                    p.start()
                    print("已经启动爬虫模块")
                    log.I('TimerAdmins', '已经启动爬虫模块')
                    time.sleep(self.sleep)
    
                else:
                    '''
                    如果数据库有记录则对比上面获取的当前日期
                    '''
                    print(info)
                    dateInfo=int(info['time'])
                    ''' 如何当前日期大于数据库日期 '''
                    print("------------------------"+str(dateInfo))
                    if date>dateInfo:
                        timers=tim%86400
                        print('timers'+str(timers))
                        if date-dateInfo==1:
                            if timers>21600:
                                info['time']=date
                                table.save(info)
                                p=CrawlAdmin(1)
                                p.start()
                                print("已经启动爬虫模块---")
                                log.I('TimerAdmins', '已经启动爬虫模块')
                        else:
                            info['time'] = date-1
                            table.save(info)
                            p = CrawlAdmin(1)
                            p.start()
                            print("已经启动爬虫模块---")
                            log.I('TimerAdmins', '已经启动爬虫模块')
                        time.sleep(self.sleep)
                    else:
                        print('数据已是最新,不用更新')
                        log.I('TimerAdmins', '数据已是最新,不用启动爬虫模块更新')
                        time.sleep(self.sleep)
    
    if __name__ =="__main__":
        print('时间管理员开始运行')
        p=ProcessingTest(900)
        p.start()
        print(p.pid)
    

    scrapy爬虫模块设计如图 3.3.4:

     

    图3.3.4 Scrapy爬虫模块类和接口设计

    3.3.4 日志模块

    日志模块设计如图 3.3.4:

    图3.3.4 日志接口类图

    算法及源码设计如下:

    import pymongo
    import time
    import traceback
    class  LogUtils():
      
        host = ''      #目标主机IP
        port = 0      #端口号
    
        def __init__(self):
            self.LogDB='Log'
            self.Table=''
            self.client=pymongo.MongoClient(host=self.Host,port=self.port)
            self.db=self.client[self.LogDB]
    
        '''
        普通日志信息
        table  :  日志的表名 统一写类名
        LogInfo:  日志的内容
        '''
        def InfoLog(self,Table,LogInfo):
            try:
                self.Table=Table
                table=self.db[self.Table]
                times=str(time.time()).split('.')[0]
                timeArray=time.localtime(int(times))
                OtherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
                table.insert({'logInfo':LogInfo,'Grade':'Info','time':OtherStyleTime})
    
            except:
                traceback.print_exc()
    
        '''
        普通日志信息 的重载方法  简便写法
        table  :  日志的表名 统一写类名
        LogInfo:  日志的内容
        '''
    
        def I(self,Table,LogInfo):
            try:
                self.Table=Table
                table=self.db[self.Table]
                times=str(time.time()).split('.')[0]
                timeArray=time.localtime(int(times))
                OtherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
                table.insert({'logInfo':LogInfo,'Grade':'Info','time':OtherStyleTime})
    
            except:
                traceback.print_exc()
    
        '''
        错误日志信息 
        table  :  日志的表名 统一写类名
        LogInfo:  日志的内容
        '''
        def ErrorLog(self,Table,LogInfo):
            try:
                self.Table=Table
                table=self.db[self.Table]
                times=str(time.time()).split('.')[0]
                timeArray=time.localtime(int(times))
                OtherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
                table.insert({'logInfo':LogInfo,'Grade':'Error','time':OtherStyleTime})
    
            except:
                traceback.print_exc()
        '''
        错误日志信息 的重载方法  简便写法
        table  :  日志的表名 统一写类名
        LogInfo:  日志的内容
        '''
        def E(self,Table,LogInfo):
            try:
                self.Table=Table
                table=self.db[self.Table]
                times=str(time.time()).split('.')[0]
                timeArray=time.localtime(int(times))
                OtherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
                table.insert({'logInfo':LogInfo,'Grade':'Error','time':OtherStyleTime})
    
            except:
                traceback.print_exc()
    
        '''
        调试日志信息 
        table  :  日志的表名 统一写类名
        LogInfo:  日志的内容
        '''
        def DeBugLog(self,Table,LogInfo):
            try:
                self.Table=Table
                table=self.db[self.Table]
                times=str(time.time()).split('.')[0]
                timeArray=time.localtime(int(times))
                OtherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
                table.insert({'logInfo':LogInfo,'Grade':'DeBug','time':OtherStyleTime})
    
            except:
                traceback.print_exc()
        '''
        调试日志信息 的重载方法  简便写法
        table  :  日志的表名 统一写类名
        LogInfo:  日志的内容
        '''
        def D(self,Table,LogInfo):
            try:
                self.Table=Table
                table=self.db[self.Table]
                times=str(time.time()).split('.')[0]
                timeArray=time.localtime(int(times))
                OtherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
                table.insert({'logInfo':LogInfo,'Grade':'DeBug','time':OtherStyleTime})
            except:
                traceback.print_exc()
    
    
    

    3.3.5 数据处理

    数据处理脚本文件 ToHeavy.py

    数据去重设计如图 3.3.5:

    图3.3.5 数据去重接口和类图

    数据去重算法说明:根据表名查询数据库对应的表,获取该条事件过去三天所有数据,对事件名分词,如果事件名与过去三天的事件记录相似度超过65%,标记为重复数据,flag赋值为0。

    import jieba
    from datetime import *
    from pymongo import MongoClient
    import time
    from OperatingDB import OperatingDB
    
    
    def connDB(ip, port, tableName, base):
        db = OperatingDB(ip, port)
        table = db.createTable(tableName, base)
        return table
        
    
    #得到过去三天的日期(以字符串形式添加到列表)
    def past_three_days(time, daynum, pastday_lit):
        date_time = datetime.strptime(time, '%Y-%m-%d')
        for i in range(daynum):
            pastday = date_time - timedelta(i)
            strpastday = datetime.strftime(pastday, '%Y-%m-%d')
            pastday_lit.append(strpastday)
    
    #查询过去三天的数据
    def pastThreeDayData(table, pastday_lit):
        past_one_day = {}
        past_two_day= {}
        past_three_day = {}
        key = '开始日期'
    
        past_one_day[key] = pastday_lit[0]
        past_two_day[key] = pastday_lit[1]
        past_three_day[key] = pastday_lit[2]
    
        data = table.find({'$or':[past_one_day, past_two_day, past_three_day]})
        title_lit = []
        for i in data:
            title_lit.append(i['事件名称'])
     
        return title_lit
        
    
    #返回 flag,如果 flag = 0,则表示是重复数据   
    def toheavy(table, title, titles):
        
        #对标题分词处理
        title_Participle = jieba.lcut(title)
        
        for title in titles:
            count = 0
            title_tmp = jieba.lcut(title)
            for i in title_Participle:
                if i in title_tmp:
                    count += 1
            frequency = count/len(title_Participle)*100
            if(frequency > 65):
                print('相似度超过65%, 去重')
                flag = 0
    
        if flag == 1:
            print('数据无重复')
        return flag
    

    3.3.6 数据建模

    3.3.6.1 聚类算法

    数据建模说明:我们采用机器学习算法的无监督学习算法,对原始数据建立分类模型, 使用聚类分析算法来对数据进行建模。

    数据说明:在我们抓取到的数据中有关于热度的字段,例如下图的中国会展门户网站的一条数据,有关注指数的数据字段,可是单凭原始数据却无法判断所属热度的级别,无法直接划分热度级别。

    中国会展门户数据如图3.3.6.1:

    图3.3.6.1 中国会展门户数据图

    K-Means 聚类算法说明:在具体的聚类算法中我们采用K-Means聚类算法,对数据建模,将事件热度分为三类,既聚类热度级别为 1、2、3。K-Means算法是基于距离的非层次聚类算法,在最小化误差函数的基础上将数据划分为预定的类数K,采用距离作为相似性的评价指标,既认为两个对象的距离越近,相似度就越大。度量样本之间的相似性使用的是欧氏距离,公式如图 3.3.6.2:

    图3.3.6.2 欧氏距离公式图

    具体算法描述如图 3.3.6.3:

    图3.3.6.3 算法描述

    聚类算法流程如图 3.3.6.4:

    图 3.3.6.4 聚类算法流程图

    建模程序设计及算法说明: KMeans.py 聚类算法文件。

    聚类算法设计接口如图 3.3.6.5:

    图3.3.6.5 聚类算法设计接口和类图

    K-Means聚类算法设计源码如下:

    #-*- coding: utf-8 -*-
    import pandas as pd
    from sklearn.cluster import KMeans
    import xlrd
    import openpyxl
    import matplotlib.pyplot as plt
    
    class Kmeans:
        '''数据聚类'''
    
        k = 3                   #聚类的类别数(内置)
        iteration = 500         #聚类最大循环次数(内置)
        jobs = 4                #设置并发数(内置)
    
        def readData(self, inputfile):
            '''从磁盘读取数据'''
            self.inputfile = inputfile
            #读取数据
            data = pd.read_excel(self.inputfile)
            # 去掉无用字段
            data.drop(['事件名称','开始时间'], 1, inplace=True)
            return data
    
        def writeData(self, outputfile, data):
            '''写入文件'''
            self.outputfile = outputfile
            data.to_excel(self.outputfile)
    
    
        def KMeansCompute(self, data):
            '''K-Means聚类计算'''
              
            #数据标准化
            data_zs = 1.0 * (data - data.mean())/data.std()
    
            #分析为K类, 并发数4
            model = KMeans(n_clusters = self.k, n_jobs = self.jobs, max_iter = self.iteration)
            model.fit(data_zs)  #开始聚类
    
            r1 = pd.Series(model.labels_).value_counts()
            r2 = pd.DataFrame(model.cluster_centers_)   #找出聚类中心
          
            r = pd.concat([r2, r1], axis = 1)   #横向连接
            r.columns = list(data.columns) + ['类别数目']
            
            #详细输出
            r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)
            r.columns = list(data.columns) + ['聚类类别']   #重命名表头
            
            return r
    

    聚类完成后,根据事件的主办方级别、主办方类型及影响范围属性对聚类热度进行加权,得到热度属性。

    3.3.6.2 搜索引擎收录数

    在抓取其他数据源的时候会遇到热度相关字段的缺失,搜索引擎收录数一定程度上映射了事件的热度属性,既越热门的事件收录数越多,我们对百度搜索引擎事件收录数进行量化,根据事件的主办方级别、主办方类型及影响范围属性对聚类热度进行加权值来得出该事件的热度值。

    获取搜索引擎收录数文件:GetSearchEngineResult.py

    import re
    import requests
    
    class GetSearchEngineResult:
    #获取百度搜索搜索引擎结果数
        def getHTMLText(self, url):
            try:
                r = requests.get(url, timeout = 10, headers = {'user-agent' : 'Mozilla/5.0'})
                r.raise_for_status()
                return r.text
            except:
                print("解析百度结果异常")
    
        def getBaiduResult(self, title):
            baseURL = 'http://www.baidu.com/'
            url = baseURL + 's?' + 'wd=' + title
    
            html = self.getHTMLText(url)
            regex = r'百度为您找到相关结果.*?个'
            numRegex = r'[0-9]'
            data = re.search(regex, html)
            heatStr = ''
            if data:
                num = re.findall(numRegex, data.group())
                for i in num:
                    heatStr += i
            heat = self.getBaiduHeat(eval(heatStr))
    
            return heat
                 
    
    
    
     
    
    
        
    
    

    3.3.7 事件画像

    3.3.7.1 事件画像系统设计

    事件画像系统集成了事件画像管理脚本、数据样本初始化、事件样本输出、数据建模、事件画像等功能。事件画像系统调用数据建模模块,提取各类事件的属性,生成事件样本。
    事件画像系统设计如图 3.3.7.1:

    图 3.3.7.1事件画像系统设计图

    3.3.7.2事件画像

    事件画像模块的主要类是实体类、数据访问接口和功能类。

    实体类保存了事件的基本属性数据,访问接口连接数据库,功能类 对事件提取属性。

    事件画像设计及接口类如图 3.3.7.2:

    图 3.3.7.2 事件画像模块接口和类图

    3.3.8 可视化展示

    我们使用阿里的DataV做可视化展示,通过DataV建立云端数据库的连接,实现数据流映射到DataV。从而生成数据大屏。

    可视化展示预览图如图 3.3.8:

    图 3.3.8 数据大屏

    3.4数据库设计

    3.4.1 数据库说明

    考虑到程序的稳定性和团队协同工作等特性,我们将数据库部署在云服务器,实现了实时访问、高性能、高扩展性等特点。

    数据库软件:MongoDB
    建立的数据库名称: Spider、Config、DataV、Log
    存储爬虫抓取的数据: Spider
    系统配置数据库: Config
    存储可视化展示数据的库: DataV
    存储日志数据: Log

    3.4.2 数据库操作

    将对数据库的操作封装为一个模块。各个模块都要进行数据的存储,将数据的存储单独划分出来做成一个模块的好处是显而易见的,实现了系统模块间的弱耦合,方便数据的写入、读取等操作。

    ** ** ConnectMongoDB.py 功能:连接mongodb数据库

    连接数据库接口源码:

    from pymongo import MongoClient
    
    class ConnectMongo:
        '''连接数据库'''
    
        client = None
        
        # ipaddr:IP地址, port:端口号
        def connect(self, ipaddr, port):    #建立连接
            self.client = MongoClient(ipaddr, port)
    
        def close(self):                      #关闭连接
            return self.client.disconnect()
        
        def getConn(self):                  #返回连接
            return self.client
    
            
    
    
    

    OperatingDB.py 功能:封装了对数据库的操作,创建表\集合、插入数据、删除数据、查询数据、关闭数据库连接。

    from ConnectMongoDB import ConnectMongo
    
    class OperatingDB:
        
        '''操作Mongodb数据库'''
      
        def __init__(self, ipaddr, port):
            conn = ConnectMongo()
            conn.connect(ipaddr, port)
            self.client = conn.getConn()
    
        #tableName:表名, base:数据库名
        def createTable(self, tableName, base):
            '''创建数据库和表'''
            self.crawl = self.client[base]
            self.table = self.crawl[tableName]
            return self.table
    
        #data:插入的数据
        def insertDatas(self, data):
            self.table.insert(data)
                  
        def deleteData(self, data):
            '''删除数据'''
            self.table.remove(data)
        
        #q:查询条件,projecttion:查询字段。
        def query_one(self, q = {}, projection = {'_id' : 0}):
            '''查询一条数据'''
            return self.table.find_one(q, projection)
            
        def query(self, q = {}, projection = {'_id' : 0}):
            '''查询数据'''
            return self.table.find(q, projection)
    
        def closeConn(self):
            '''关闭连接'''
            self.client.close()
            
    

    3.4.3数据库结构

    由于NoSQL型数据库不同于传统的关系型数据库,在建立表结构、索引这些操作时没有像关系型的关联、约束等关系。结构设计也相对简单。

    数据库设计如下表

    数据库
    SpiderCityWeather
     DamaiConcert
     DamaiSports
     JuchengConcert
     WaringWeahter
     XishiquSports
     YongleConcert
     YongleSports
     cnena
     eshow
     people
     trafficcontrol
     xinhuanet
     XishiquConcert
    Configtimer
    LogCityWeather
     ConcertAttr
     CrawlAdmin
     DaMaiPW
     DaMaiWang
     EventPortraitAdmin
     ExhibitionAttr
     JuChenSpider
     SportAttr
     TimerAdmins
     WarningCrawl
     XishiquConcert..
     XishiquSports
     people
     xinhuanet
     yonglePW
    DataVDataV

    3.4.4 表结构

    MongoDB 将数据存储为一个文档/表,数据结构由键值(key=>value)对组成。MongoDB 文档/表类似于 JSON 对象。数据库各个表字段设计如下。

    数据库:Spider

    表名:CityWeather

    字段名中文描述数据类型
    city城市名String
    high最高气温String
    fengxiang风向String
    low最低气温String
    fengli风力String
    type天气类型String
    date日期String
    Wendu温度String
    Status状态String

    表名:DamaiConcert、JuchengConcert、YongleConcert

    字段名数据类型
    事件名称String
    举办城市String
    举办场馆String
    开始日期String
    结束日期String
    门票价格String
    事件类型String

    表名:DamaiSports

    字段名数据类型
    事件名称String
    举办城市String
    举办场馆String
    开始日期String
    结束日期String
    事件类型String

    表名:Longitudes

    字段名数据类型
    城市String
    经度String
    维度String

    表名:WaringWeather

    字段名数据类型
    事件名称String
    发布时间String
    预警城市String
    预警类型String
    预警详情String

    表名:XishiquConcert、XishiquSports

    字段名数据类型
    事件类型String
    事件名称String
    开始日期String
    场馆String
    举办城市String
    结束日期String
    累计成交String
    关注人数String
    详细热度String

    表名:YongleSports

    字段名数据类型
    事件名称String
    举办场馆String
    举办城市String
    开始日期String
    结束日期String
    类型String
    事件类型String

    表名:cnena

    字段名数据类型
    事件类型String
    事件名称String
    关注指数String
    开始日期String
    结束日期String
    展会地点String
    组织机构String
    展会概况String
    概览范围String
    举办城市String
    聚类热度String

    表名:eshow

    字段名数据类型
    事件类型String
    标签String
    事件名称String
    开始日期String
    结束日期String
    举办展馆String
    所属行业String
    举办城市String
    承办单位String
    展会面积String
    举办届数String
    举办周期String
    参观费用String
    展会概况String
    事件频率String

    表名:people

    字段名数据类型
    事件类型String
    事件名称String
    关键词String
    来源String
    描述String
    开始日期String
    会议内容String

    表名:trafficcontrol

    字段名数据类型
    事件类型String
    事件名称String
    内容String
    开始日期String

    表名:xinhuanet

    字段名数据类型
    事件类型String
    事件名称String
    关键词String
    开始日期String
    会议内容String

    数据库:Config

    表名:timer

    字段名中文描述数据类型
    _idID号ObjectId
    config配置信息String
    timer时间Date

    数据库:Log

    表名:CityWeather、ConcertAttr、CrawlAdmin、DaMaiPW、EventPortrait、EventPortraitAdmin、

    ExhibitionAttr、JuChenSpider、SportAttr、TimerAdmin、WarngingCrawl、XishiquConcert、XishiquSports、people、xinhuanet、yonglePW。

    字段名中文描述数据类型
    _idID号ObjectId
    logInfo日志信息String
    Grade报错信息String
    Time时间String

    数据库:DataV

    表名:DataV

    字段名数据类型
    _idObjectId
    热度int
    行业性质String
    影响人群String
    最大影响范围String
    事件类型String
    影响商务和群众占比String
    组织性质String

     

    展开全文
  • 基于JavaWeb开发的智慧水务管理系统软件设计说明书 编号:QN-STD-PLIS ...

               基于JavaWeb开发的智慧水务管理系统软件设计说明书

                                                                                                                                      编号:QN-STD-PLIS

                                                                                                                                      作者:田超凡(已申请CNKI个人知识产权保护)

                                                                                                                                      版本:1.0

     

     

    作者

     田超凡

    日期

     2018-06-03

    审批:

     

    日期:

     2018-06-03

     

    状态

    修订人

    修改日期

    版本

    备注

      一期设计

        田超凡

        2018-06-03

     1.0

     

    二期设计

    田超凡

    2018-07-02

     2.0

     

     

     

     

     

     

    目录

    1.引言 5

    1.1 目的 5

    1.2 背景 5

    1.3 定义 5

    1.3.1 JSP(Java Server Pages) 5

    1.3.2 Struts2 一个MVC框架(Framework 6

    1.3.3 Spring 6

    1.3.4 mybatis 6

    1.3.5 JDBC 6

    1.4 参考资料 7

    2.总体设计 8

    2.1 需求规定 8

    2.2 运行环境 8

    2.2.1 硬件环境 8

    2.2.2 软件环境 8

    2.3系统架构设计和业务处理流程 8

    2.3.1 系统架构设计 8

    2.3.2 业务处理流程 10

    2.4系统功能结构设计 13

    2.5人工处理过程 14

    2.6尚未解决的问题 14

    3.接口设计 14

    3.1用户接口 14

    3.2外部接口 15

    3.2.1 硬件接口 15

    3.2.2 软件接口 15

    3.3内部接口 15

    4运行设计 15

    4.1运行模块组合 15

    4.2运行权限控制 15

    4.3运行时间 16

    5数据结构设计 17

    6.系统出错设计 18

    6.1出错信息 18

    6.2补救措施 18

    7.一期功能模块设计 19

    7.1 登录、注销、我的工作平台 19

    7.1.1 界面设计 19

    7.1.2  IPO 20

    7.1.3 数据来源 20

    7.2 巡检系统管理 21

    7.2.1角色管理 23

    7.2.2用户管理 25

    7.2.3角色权限配置 28

    7.2.4系统配置 31

    7.3 维修系统 33

    7.3.1 界面设计 34

    7.3.2 IPO 35

    7.3.3 数据来源 36

    8.二期界面设计 37

    8.1 爆管监控 37

    8.2 G-S-M管理..............................................................................................................................38

    8.3 SCADA管理 43

    附录:一二期全数据库结构图.............................................................................................................46

     

     

     

    1 引言

    1.1 目的

    读者范围:项目经理、组织人员、设计人员、开发人员、测试人员。

    本文档作为智慧水务系统的概要说明文档,主要在于明确数据结构和软件结构,此外总体设计还将给出内部软件和外部软件部件之间的接口定义,各个软件模块的功能说明,数据结构的明细以及具体的装配要求。

    1.2

    背景随着计算机技术、网络通讯技术以及电力系统保护及自控技术的发展,变电站的自动化水平不断提高,大大减少了人为操作事故,使变电站的无人值守逐步变成了可能,并已成为电业系统的发展趋势。目前已实现了将生产现场的设备运行数据、状态传送到远方的监控中心,同时监控中心也可对远程的现场设备进行控制和调节,电力系统内各种生产设备类型复杂,数目巨大,地域分布广,人工维护困难。同时,为适应减员增效和现代化管理的要求,对生产现场的闭路电视监控系统在可靠性、易用性及易维护性,尤其对远程监控方面提出了更高的要求。

       针对当前情况,智慧水务系统致力于为客户提供更优的解决方案,推出了一套完整的智慧监控系统,通过智慧化管理平台,对设备的监控、整体优化等技术措施,实现运行监视、操作与控制、信息综合分析与智能告警和自动化管理等功能,为客户提供更好的方案解决实际问题。

     

    1.3 定义

    1.3.1 JSP

    JSP(Java Server Pages)技术使用Java编程语言编写类XML的tags和Scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务器端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

    1.3.2 Struts2 一个MVC框架

    用于快速开发Java Web应用。Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全新的Struts2框架(Framework)。全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。

    1.3.3 Spring

    Spring是一个开源的框架,它由RodJohnson创建。这是为了解决企业应用开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能有EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分JAVA应用都可以从Spring中收益。

    1.3.4 MyBatis

    MyBatis是一个基于Java的持久层框架。MyBatis支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或者注解用于配制和原始映射,将接口和Java的POJOS(Plain Old Java Objects,普通的java对象)映射成数据库中的记录。

    1.3.5 JDBC

    它是一种用于执行SQL语句的JAVA API,可以为多种关系型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序。

    1.4 参考资料

    Ø 《智慧水务系统需求分析说明书.doc》

    Ø 《J2EE 项目实训UML及设计模式》 杨少波 等编著 清华大学出版社 2008年5月

    Ø 《J2EE 项目实训Spring框架技术》 杨少波 等编著 清华大学出版社 2008《J2EE 项目实训Struts框架技术》 杨少波 等编著 清华大学出版社 2008年10月

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    2 总体设计

    2.1 需求规定

    本系统包括权限管理、用户管理、系统管理、GIS、巡检管理、设备管理、维修系统,详细请参见《智慧水务系统需求分析说明书》 。

    2.2 运行环境

    2.2.1 硬件环境

    服务器端:处理器型号以及内存容量:1G以上,外存容量硬盘40G以上,考虑到数据的安全性,要求使用磁盘阵列,广域网网络环境。

    客户端:PⅢ或更高配置。

    2.2.2 软件环境

    服务器端:CentOS 6.4,mysql数据库,tomcat7.0

    客户端: IE6.0以上,Firefox,Chrome,Opera

    2.3系统架构设计和业务处理流程

    2.3.1 系统架构设计

    根据需求文档中描述的功能、非功能性需求进行分析,以及对现有的主流技术框架的研究,本系统采用SSM框架组合,分别取SpringMVC、Spring3.3、MyBatis各框架中优秀模块进行组合,实现MVC架构模式,保证了系统良好的可扩展性、可维护性和模块的复用性。

    在分层架构中,SpringMVC作为view层和control层,主要包括action和JSP页面之间的交互相应、拦截器、过滤器等。

    MyBatis负责实例、JDBC连接以及数据持久层的功能。

    Spring作为轻量级的框架,在系统中使用其核心模块IOC、AOP功能。其中,IOC依赖反转用来连接各个层之间的对象,简化各个对象之间的调用;而基于反射及代理模式的面向切面编程开销比较大,本系统只用来进行事务管理,负责事务的回滚,此外Spring还担当着MVC各个层之间的无缝连接工作,否则即使各个框架都很优秀也无法发挥出其最大的作用。

    智慧水务系统的总体技术架构图如图1所示:再表示层(VIEW)采用了JSP页面进行展示;再效果以及渲染方面,采用jQuery插件和CSS技术;消息返回采用JSON等格式;使用ajax,所见即所得的良好用户体验。相对以前web应用,jQuery使页面展现形式有很大的改进。Spring的事务控制以及控制反转贯穿MVC三层,发挥着无缝连接的作用。再持久层,有Spring对MyBatis的支持以及MyBatis的数据持久化功能;数据库采用mysql数据库。

    图1系统总体架构图

    2.3.2 业务处理流程

    智慧水务系统中的用户分为3个角色:系统管理员、测试用户、演示用户。

    根据不同的业务流程不同角色人员分别可以不同的工作。(详见需求文档)

    在此描述主要业务流程:维修系统。

     

     

     

     

     

     

     

     

     

    图2维修系统活动图

    维修系统流程流程:

    系统管理员登录智慧水务系统—>进入任务管理界面—>查看操作列表,可以进行派工单审核,派工单管理,系统管理。

    1,派工单管理:展示在处理工单、未派工单、审核工单、已完成工单、数量,图表数据导出1.派工单管理:1.1未派工单、1.2已派工单、1.3受理工单,操作派工、指派派工人员、接收派工任务、受理派工单

    2,派工单审核:1.1延时审批、1.2待审核工单、1.3已审核工单

    3,系统管理:1数据字典、功能菜单

    图3巡检系统活动图

    巡检系统管理流程:

    系统管理登录系统进入首页——>点击巡检系统进入巡检页面(默认为巡检计划页面)——>可以进行以下功能操作:

    巡检计划、临时任务、巡检审核、巡检任务、巡检设备、巡检点、数据字典,单击a链后可以对其进行增删改详情查看等操作

                                   一期功能图

                                     

                                      二期部分功能图

    2. 4系统功能结构设计

    智慧水务系统一二期功能分为:巡检管理、设备管理、系统维修、爆管监控、G-S-M管理、SCADA管理、运行调度、管网模型。有关系统的详细功能在系统的功能模块设计中说明。

    2.5人工处理过程

    系统管理员根据各站点反馈的数据将数据记录到系统中。

    2.6尚未解决的问题

    3 接口设计

    3.1用户接口

    提供给用户的接口:

    1、菜单

    2、按钮

    3、输入界面

    软件响应信息:

    系统通过用户习惯操作的窗口模式提供给用户的菜单,按钮和输入界面,通过对用户的输入提交给系统,系统对用户的输入进行处理和响应。

    3.2外部接口

    3.2.1 硬件接口

    本系统同计算机硬件的接口由操作系统完成。

    3.2.2 软件接口

    目前外部软件主要考虑硬件的驱动和控制软件。

    3.3内部接口

    内部接口将在《智慧水务系统系统详细设计》文档中进行详细的说明,包括类的继承、实现、聚合关系等,以及各个模块之间如何进行数据交换和共享,内部接口中包括信息发布使用的数据库接口。

    4运行设计

    4.1运行模块组合

    详见图5。用户在系统中的所有操作,均记入日志表,以便跟踪查询。

    4.2运行权限控制

    系统用户登录时,对用户的身份进行检验,属于本系统的用户才能进入本系统查看相关的信息并进行操作,不属于本系统的用户不能登录且不能查看和操作相关的信息。

    所有的权限通过登录人的身份来确定,本系统按照角色分配权限,系统中共有三种角色:系统管理员、线路管理员、巡检员。

    1、 系统管理员:可以对系统中数据进行任何操作和配置。

    2、 演示用户:可以对系统进行操作但是不能进行权限的更改。

    3、 测试用户:使用测试数据进行数据测试。

    权限控制工作流程:

    用户登录――>所属角色――>权限(具体功能模块的操作权限)――>具体的菜单、数据展示。

    4.3运行时间

    系统的耗时主要是查询最新数据时的响应时间和数据上报时间,查询最新数据的响应时间和数据库中数据的记录数有关系。总体控制是:查询最新数据的响应时间应控制在2秒中内 ,数据上报时间视网络情况而定,200k数据控制在1分钟之内,其他的响应时间应在2秒内。

    5数据结构设计

     

    图6一期数据结构设计

     

    详见底部数据库结构图

    注:系统中所有表的关联关系均为逻辑关联,不设外键关联。上图中为了清晰描述表之间关联关系,使用了外键,请注意。以下是系统中数据表(49张):

    表名

    具体定义

    boom_area

    爆管区域表

        boom_data

    爆管数据表

    boom_machine

    爆管设备表

    boom_machine_attr

    爆管设备属性表

    buyer_info

    采购表

    cas_maintain

    维修信息表

        cas_order

    工单信息表

    cas_role

    角色信息表

    cas_user

    用户信息表

    center_data

    中心数据表

    center_data_day

    中心日报表

    dev_type

    关联类别表

    dic_patcycle

    周期字典表

    dic_pattype

    类型字典表

    dic_taskstatu

    状态字典表

    machine

    设备信息表

    machine_attr

    设备属性表

    machine_buyer

    采购信息表

    machine_dynamic

    设备动态属性表

    machine_file

    设备文件表

    machine_static

    设备静态属性表

    machine_storage

    设备库存表

    machine_type

    设备类别表

    patrol_check

    巡检审核表

    patrol_plan

    巡检计划表

    patrol_point

    巡检点信息表

    patrol_situation

    巡检派工表

    patrol_task

    巡检任务表

    plan_logs

    计划日志表

    plan_point

    计划巡检点信息表

    point_temperature

    监测点信息表

    pop_machine

    方案调度设备表

    pop_machine_type

    方案设备类别表

    pop_plan

    方案信息表

    pop_plan_info

    方案信息详情表

    pop_plan_more

    方案数据表

    pop_type_attr

    方案类别属性表

    pump_data

    泵站数据表

    pump_data_attr

    泵站数据属性表

    pump_pictures

    泵站工艺图表

    pump_provider_water

    泵站供水数据表

    pump_station

    泵站信息表

    pump_station_alert

    泵站告警信息表

    scada_center

    供水中心表

    task_point

    任务巡检点表

    test_point

    测点信息表

    test_point_data

    测点数据表

    water_pump

    水泵信息表

    water_pump_data

    水泵数据表

    表1

    6 系统出错设计

    6.1出错信息

    采用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含义及处理方法。出错信息采用统一的表现方式,用一个统一的窗口表现给用户,有权限的用户可以看到出错信息的提示。对于数据维护中数据导入或导出出现的错误信息,系统需要给予文档说明,将错误信息的详细描述告诉用户,以便于数据的修改。

    6.2补救措施

    系统出错后的处理的补救:

    1、数据库恢复。

    2、系统日志恢复和跟踪。

    7 一期功能模块设计

    7.1 登录、注销、我的工作平台

    7.1.1 界面设计

     

    图7 系统登录界面

    7.1.2数据来源

    数据字典名称

    用户表(cas_user)

     

    字段名称

    取值说明

    备注

    id

    必填,主键ID

    32位随机数

    userName

    必填,用户名

     

    userCode

    必填,用户编号

     

    password

    必填,密码

     

    userRole

    必填,用户角色

     

    creatBy

    创建人编号

     

    creationDate

    创建时间

     

    modifyBy

    修改人

     

    modifyDate

    修改时间

     

    7.1.3  IPO

    输入

    处理

    输出

    图7系统登录界面

    进入系统,输入登录账号和密码。点击登录,验证通过后进入系统

    界面

     

    7.1.4   界面设计

     

     

    图8主界面

     

     

    7.2   巡检系统

     

    7.2.1  界面设计

     

     

     

    图9 巡检事项-巡检计划

     

    7.2.1数据来源

     

    数据字典名称

    用户表(patrol_plan)

     

    字段名称

    取值说明

    备注

    id

    必填,主键ID

    32位随机数

    planNo

    必填,计划编号

     

    planName

    必填,计划名称

     

    patType

    必填,巡检类型

     

    patCycle

    必填,巡检周期

     

    startDate

    必填,计划开始日期

     

    endDate

    必填,计划结束日期

     

    publishDate

    必填,发布时间

     

    remark

    备注

     

     

    7.2.2  界面设计

     

     

    图10巡检事项-巡检计划

     

    7.2.2数据来源

     

    数据字典名称

    用户表(patrol_task)

     

    字段名称

    取值说明

    备注

    id

    必填,主键ID

    32位随机数

    taskNo

    必填,任务编号

     

    taskName

    必填,任务名称

     

    taskType

    必填,任务类型

     

    taskStatu

    必填,任务状态

     

    startDate

    必填,计划开始日期

     

    executor

    必填,执行人

     

    startDate

    必填,任务开始日期

     

    endDate

    必填,任务结束日期

     

    dispatchTime

    必填,派工时间

     

    dispatcher

    必填,执行人

     

    content

    必填,任务内容

     

    planId

    必填,计划ID

    外键,主键表是patrol_plan

    remark

    备注

     

     

     

     

     

     

     

     

    7.2.3 界面设计

     

     

    图11巡检事项-新增巡检计划

     

    7.2.4数据来源

     

    数据字典名称

    用户表(patrol_task)

     

    字段名称

    取值说明

    备注

    id

    必填,主键ID

     

    taskNo

    必填,任务编号

     

    taskName

    必填,任务名称

     

    taskType

    必填,任务类型

     

    taskStatu

    必填,任务状态

     

    startDate

    必填,计划开始日期

     

    executor

    必填,执行人

     

    startDate

    必填,任务开始日期

     

    endDate

    必填,任务结束日期

     

    dispatchTime

    必填,派工时间

     

     

    7.2.5 界面设计

     

     

     

     

     

     

     

     

     

     

     

     

    图12 巡检事项-增加巡检点

     

    7.2.5数据来源

     

    数据字典名称

    用户表(patrol_point)

     

    字段名称

    取值说明

    备注

    id

    必填,主键ID

    32位随机数

    pointNo

    必填,巡检点编号

     

    pointName

    必填, 巡检点名称

     

    address

    必填, 巡检点地址

     

    devNum

    必填, 设备数量

     

    remark

    备注

     

     

     

    7.2.6 界面设计

     

     

     

     

     

     

     

     

     

     

     

     

    图13 巡检事项-编辑巡检点

     

     

     

     

     

     

     

     

     

    7.2.7界面设计

     

     

     

     

     

     

     

     

     

     

     

     

    图14 巡检事项-巡检计划详情

     

     

     

     

     

     

     

     

     

     

    7.2.8界面设计

     

     

     

     

     

     

     

     

     

     

                         图15 巡检事项-巡检计划删除

     

     

     

    7.2.4   IPO

     

    输入

    处理

    输出

    图9巡检事项-巡检计划

    输入查询条件进行查询,

    约束:无论查询条件是否为空都将进行查询

    界面

    图10巡检事项-巡检计划

        点击数据栏+按钮,可以查看该计划的任务编号

    界面

    图11巡检事项-新增巡计划

        点击新增按钮,显示新增输入框,输入新增信息

    界面

    图12巡检计划-巡检点新增

        点击增加巡检点按钮,弹出一个窗口,显示巡检点数据(上面添加巡检点,可对巡检点进行增加)

    界面

    图13巡检计划-编辑巡检计划

       选中计划,点击编辑,弹出编辑窗口,填写编辑信息,即可修改(上面添加巡检点,可对巡检点进行编辑)

    界面

    图14巡检计划-巡检计划详情

       选中计划,点击详情,弹出详情窗口,即可查看计划详情,以及附带的巡检点、巡检计划历史任务

    界面

    图14巡检计划-巡检计划删除

       选中计划(可选中多个),点击删除,弹出删除弹框,点击确定即可删除(多个)

    弹框

     

    7.3   维修系统

    7.3..1  界面设计

     

     

     

    图16 维修界面

     

    IPO

     

    输入

    处理

    输出

    图1初始化界面

    列出系统’未派工单’、’在处理工单’,’带审核工单’、’已完成工单’的数量,并且使用图形化显示,左边为菜单栏,上边是功能菜单,点击左边菜单栏会在窗口右边显示该类型工单详细信息

    界面

     

    数据字典

    数据字典名称

    维修表cas_order

     

    字段名称

    取值说明

    备注

    id

    必填·主键ID

     

    informationFrom

    必填·信息来源

     

    reflectForm

    必填·反应形式

     

    reflectPeople

    必填·反映人

     

    telephone

    联系方式

     

    email

    电子邮件

     

    reflectUnit

    反应单位

     

    reflectArea

    反应区域

     

    reflectClass

    反应类别

     

    happenTime

    发生时间

     

    happenAddr

    发生地点

     

    eventLevel

    事件等级

     

    processingDepartment

    事件处理部门

     

    limitTime

    限制时间

     

    closingTime

    截止时间

     

    feedback

    备注

     

    nodeName

    工单类型

     

    operation

    操作

     

    reflectContent

    反应内容

     

    createdBy

    创建人编号

     

    creationDate

    创建时间

     

    modifyBy

    修改人编号

     

    modifyDate

    修改日期

     

    表1

     

     

    图17未派工单

     

     

    图18新增

     

     

     

    图19编辑

     

     

    图20详情

     

    IPO

    输入

    处理

    输出

    图2查询区域

    输入查询条件进行查询,无论查询条件是否为空都会将查询结果显示出来

    界面

    图2新增

    弹出如图3的界面添加信息,事件等级(‘需反馈’=1,‘否’=-1)点击保存,如保存成功会提示,点击取消弹框会消失

    界面

    图2删除

    点击信息列表需要删除的信息列表,可以选择多行,

    友情提示:点击删除按钮会提示是否确定要删除,如果删除成功,列表会移除删除的信息

    界面

    图2编辑

    点击信息列表需要删除的信息列表,只能选择一行列表,如果选择多行会友情提示,只能编辑一行数据,点击编辑按钮会弹出如图3所示的界面,更改页面信息,点击更新按钮友情提示,保存成功,点击取消按钮弹框会消失

    界面

    图2详情

    点击信息列表需要显示的数据,然后点击详细按钮,弹出如图4所示的界面

    界面

     

    数据字典

    数据字典名称

    维修表cas_order

     

    字段名称

    取值说明

    备注

     

     

    同表1(cas_order)

     

     

     

     

    图21

     

    IPO

    输入

    处理

    输出

    图2操作

    点击图2数据列表的操作列中的信息,弹出如图7所示的界面,输入维修任务指派信息,点击确认指派,友情提示:指派成功

    界面

     

    数据字典

    数据字典名称

    维修表cas_maintain

     

    字段名称

    取值说明

    备注

    id

     

    必填·主键ID

     

    repairPerson

    必填·维修人

     

    remark

    必填·任务

     

    personId

    必填·指派人编号

     

    appointmentTime

    指派事件

     

    orderId

    工单编号

     

    8 二期界面设计

    8.1爆管监控

     

    8.1.1爆管监控览图

     

    8.1.2爆管片区

     

     

     

    8.1.3爆管数据

     

     

    8.1.4仪器管理

     

     

    8.1.5数据统计

     

     

    8.2 G-S-M管理

     

     

    8.2.1泵站览图

     

     

    8.2.2泵站管理

     

     

    8.2.3泵站实时数据

     

     

    8.2.4泵站历史数据

     

     

    8.2.5泵站数据统计

     

     

     

     

     

    8.2.6测点管理

     

     

    8.2.7测点实时数据

     

     

    8.2.8测点历史数据

     

     

    8.2.9测点数据统计

     

     

    8.3 SCADA管理

     

     

     

     

    8.3.1SCADA数据管理

     

     

    8.3.2供水部门管理

     

     

     

    8.3.3部门报表管理

     

     

    8.3.4部门数据统计(一)

     

     

    8.3.4部门数据统计(二)

     

     

    8.3.4部门数据统计(三)

     

    9 数据模型设计

                                     boom_area爆管区域表

    字段名

    字段描述

    id

    主键

    areaName

    区域名称

    level

    爆管等级

    time

    爆管时间

    description

    爆管描述

     

     

     

                                     boom_data爆管数据表

    字段名

    字段描述

    id

    主键

    areaId

    区域名称

    boomData

    爆管数据

    time

    爆管时间

     

     

     

                                     boom_machine爆管设备表

    字段名

    字段描述

    id

    主键

    name

    设备名称

    content

    设备描述

     

     

                                     boom_machine_attr爆管设备属性表

    字段名

    字段描述

    id

    主键

    machineId

    设备编号

    chineseName

    中文名称

    englishName

    英文名称

    aliasName

    别名

    dataType

    数据类型

     

     

     

    buyer_info设备采购信息表

    字段名

    字段描述

    id

    主键

    devId

    设备编号

    price

    采购价格

    planNum

    计划采购数量

    totalPrice

    总价格

    statu

    采购状态

    checkUser

    审批人

     

     

     

    cas_maintain维修信息表

    字段名

    字段描述

    id

    主键

    repairPerson

    维修计划人

    remark

    维修备注

    personId

    维修人

    appointmentTime

    申报时间

    orderId

    工单编号

     

     

     

    cas_order工单信息表

    字段名

    字段描述

    eid

    工单编号

    informationForm

    信息来源

    reflectForm

    反映形式

    reflectPeople

                         反映人

    telephone

    联系电话

    email

    电子邮件

    reflectUnit

    反映单位

    reflectArea

    反映区域

    reflectClass

    反映类别

    happenTime

    发生日期

    happenAddr

    发生地点

    eventLevel

    事件等级

    processingDepartment

    处理部门

    limitTime

    处理时限

    closingTime

    截止时间

    feedback

    需反馈

    nodeName

    工单类型

    operation

    任务类型

    reflectContent

    反映内容

    createdBy

    创建人

    creationDate

    创建日期

    modifyBy

    修改人

    modifyDate

    修改日期

     

     

    cas_role角色信息表

    字段名

    字段描述

    id

    主键

        roleName

    角色名称

    roleCode

    角色编码

     

     

    cas_user用户信息表

    字段名

    字段描述

    id

    主键

        userName

    用户名称

    userCode

    用户编码

    password

    用户密码

    userRole

    用户角色

    createdBy

    创建人

    creationDate

    创建日期

    modifyBy

    修改人

    modifyDate

    修改日期

    phone

    电话

    checkNum

    审核数

     

     

    center_data中心数据日报表

    字段名

    字段描述

    id

    编号

    partTime

    时间段

    galaPa

                      普电压

    fullPa

    总电压

    galaVec

    普电流

    galaHz

    普电荷

    galaDu

    普电度

    intoWaterPa

    进水水压

    intoMg

    进水余氯

    intoDg

    进水浊度

    outWaterPa

    出水水压

    outMg

    出水余氯

    outDg

    出水浊度

    waterHeight

    水位

    machinePa

    仪器电压

    machineKv

    仪器功率

    machineHz

    仪器负载

    lazyVia

    延迟流速位

    quickVia

    瞬时流速位

    tempVia

    临时流速位

    galaKun

    电功率

    intoWater

    进洋水量

    dataType

    数据类型

     

     

    dev_type关联类别表

    字段名

    字段描述

    id

    主键

        nameame

    名称

    desType

    关联类别

    tableName

    关联表名

     

     

    dic_patcycle周期字典表

    字段名

    字段描述

    id

    主键

        patCycle

    周期名称

    val

    属性值

    des

    描述

    statu

    可用状态

    sys

    是否系统字典

     

     

    dic_pattype类别字典表

    字段名

    字段描述

    id

    主键

        patType

    类别名称

    val

    属性值

    des

    描述

    statu

    可用状态

    sys

    是否系统字典

     

     

    dic_taskstatu状态字典表

    字段名

    字段描述

    id

    主键

        taskStatu

    任务状态名称

    val

    属性值

    des

    描述

    statu

    可用状态

    sys

    是否系统字典

     

     

    machine设备信息表

    字段名

    字段描述

    id

    主键

        machineNo

    设备编号

    name

    设备名称

    startDate

    开始日期

    status

    设备状态

    description

    设备描述

    remark

    设备备注

    useCount

    使用数量

    buyDate

    采购日期

     

     

    machine_attr设备属性表

    字段名

    字段描述

    id

    主键

        name

    属性名称

    devId

    所属设备

     

     

    machine_buyer设备采购表

    字段名

    字段描述

    id

    主键

        devId

    设备编号

    price

    采购金额

    planNum

    计划采购数

    totalPrice

    采购总金额

    statu

    采购状态

    checkUser

    审批人

    message

    备注信息

     

     

    machine_dynamic设备实时属性表

    字段名

    字段描述

    id

    主键

        chineseName

    中文名

    englishName

    英文名

    aliasName

    别名

    isKey

    是否关键

    dataType

    数据类型

    remark

    备注信息

    sortNum

    排序号

    unit

    单位

    type

    属性类型

    typeId

    所属类别

     

     

    machine_file设备文件表

    字段名

    字段描述

    id

    主键

        fileName

    文件名

    path

    文件路径

    devId

    所属设备

    type

    文件类型

     

     

    machine_static设备静态属性表

    字段名

    字段描述

    id

    主键

        chineseName

    中文名

    englishName

    英文名

    aliasName

    别名

    isKey

    是否关键

    remark

    备注信息

    sortNum

    排序号

    unit

    单位

    type

    属性类型

     

     

    machine_storage设备库存表

    字段名

    字段描述

    id

    主键

    devId

    设备编号

    totalCount

    总库存数

    unUseCount

    废弃数量

     

     

     

    machine_type设备类别表

    字段名

    字段描述

    id

    主键

    name

    类别名称

     

     

    patrol_check巡检审核信息表

    字段名

    字段描述

    id

    主键

    ckDate

    审核日期

    ckResult

    审核结果

    ckAdvice

    审核建议

    taskId

    任务编号

     

     

    patrol_plan巡检计划信息表

    字段名

    字段描述

    id

    主键

    planNo

    计划编号

    planName

    计划名称

    patType

    巡检类型

    patCycle

    巡检周期

    startDate

    开始日期

    endDate

    结束日期

    publishDate

    审核日期

    remark

    备注

     

     

    patrol_point巡检点信息表

    字段名

    字段描述

    id

    主键

    pointNo

    巡检点编号

    pointName

    巡检点名称

    address

    巡检点地址

    devNum

    设备数量

    remark

    备注信息

    devId

    调度设备编号

     

     

    patrol_situation派工信息表

    字段名

    字段描述

    id

    主键

    SucDevNum

    派工编号

    executor

    执行人

    meetDate

    执行时间

    fulfilDate

    截止时间

    patResult

    巡检结果

    patExplain

    巡检备注

    taskId

    任务编号

     

     

    patrol_task巡检任务表

    字段名

    字段描述

    id

    主键

    taskNo

    任务编号

    taskName

    任务名称

    taskType

    任务类型

    taskStatu

    任务状态

    executor

    执行人

    startDate

    开始日期

    endDate

    截止日期

    dispatchTime

    创建日期

    dispatcher

    创建人

    content

    任务内容

    planId

    计划编号

    remark

    备注信息

     

     

    plan_logs巡检日志表

    字段名

    字段描述

    id

    主键

    title

    日志标题

    content

    日志内容

    createdBy

    创建人

    creationDate

    创建日期

    planId

    计划编号

     

     

    plan_point计划巡检点信息表

    字段名

    字段描述

    id

    主键

    planId

    计划编号

    pointId

    巡检点编号

     

     

    point_temperature监测点信息表

    字段名

    字段描述

    id

    主键

    name

    监测点名称

    level

    监测点等级

    time

    监测时间

    description

    描述

     

     

    pop_machine方案设备表

    字段名

    字段描述

    id

    主键

    code

    设备编号

    name

    设备名称

    type

    设备类别

    roadHeight

    设备地高

    maxPa

    最大功率

    minPa

    最小功率

     

     

    pop_machine_type方案设备类别表

    字段名

    字段描述

    id

    主键

    name

    类别名称

     

     

    pop_plan方案信息表

    字段名

    字段描述

    id

    主键

    name

    方案名称

    endDate

    截止日期

    createdBy

    创建人

    creationDate

    创建日期

    modifyBy

    修改人

    modifyDate

    修改日期

     

     

    pop_plan_info方案概况表

    字段名

    字段描述

    id

    编号

    maxWaterVec

    日供水量上限

    minWaterVec

    日供水量下限

    maxPa

    出口压力上限

    minPa

    出口压力下限

    waterMade

    制水成本

    waterLv

    水泵供水效率

    waterHeight

    清水池平均水位

    planId

    方案编号

     

     

    pop_plan_more方案数据表

    字段名

    字段描述

    id

    编号

    centerId

    中心编号

    one

    一点

    two

    二点

    three

    三点

    four

    四点

    five

    五点

    six

    六点

    seven

    七点

    eight

    八点

    nine

    九点

    ten

    十点

    eleven

    十一点

    twelve

    十二点

    thirteen

    十三点

    fourteen

    十四点

    fifteen

    十五点

    sixteen

    十六点

    seventeen

    十七点

    eighteen

    十八点

    nineteen

    十九点

    twenty

    二十点

    twentyOne

    二十一点

    twentyTwo

    二十二点

    twentyThree

    二十三点

    twentyFour

    二十四点

    planId

    计划编号

     

     

    pop_type_attr方案类别属性表

    字段名

    字段描述

    id

    编号

    typeId

    类别编号

    chineseName

    中文名称

    englishName

    英文名称

    aliasName

    别名

    isMainKey

    是否关键

    dataType

    数据类型

    unit

    单位

    remark

    备注

    attrType

    属性类型

     

     

    pump_data泵站数据表

    字段名

    字段描述

    id

    编号

    pumpId

    泵站编号

    intoVec

    进水流量

    outVec

    出水流量

    replyVec

    复线流量

    intoPa

    进水压力

    outPa

    出水压力

    intoMg

    进水余氯

    outMg

    出水余氯

    intoDg

    进水浊度

    outDg

    出水浊度

    type

    数据值类型

    time

    监测时间

     

     

    pump_data_attr泵站数据属性表

    字段名

    字段描述

    id

    编号

    errorState

    故障状态

    levelType

    层级类别

    area

    所属地区

    publish

    所属厂商

    name

    名称

    showName

    显示名称

    yPos

    经度

    miniMa

    二维码

    nodeMa

    条形码

    rfid

    rfid

    xPos

    纬度

    heightDoul

    设备高程

    kama

    马达功率

    machineKa

    发动机卡位

    fastVec

    瞬时流速

    pumpId

    泵站编号

     

     

     

    pump_pictures泵站工艺图表

    字段名

    字段描述

    id

    编号

    stationId

    泵站编号

    path

    工艺图路径

     

     

    pump_provider_water泵站供水表

    字段名

    字段描述

    id

    编号

    stationId

    泵站编号

    one

    一点

    two

    二点

    three

    三点

    four

    四点

    five

    五点

    six

    六点

    seven

    七点

    eight

    八点

    nine

    九点

    ten

    十点

    eleven

    十一点

    twelve

    十二点

    thirteen

    十三点

    fourteen

    十四点

    fifteen

    十五点

    sixteen

    十六点

    seventeen

    十七点

    eighteen

    十八点

    nineteen

    十九点

    twenty

    二十点

    twentyOne

    二十一点

    twentyTwo

    二十二点

    twentyThree

    二十三点

    twentyFour

    二十四点

     

     

    pump_station泵站信息表

    字段名

    字段描述

    id

    编号

    name

    泵站名称

    typeNo

    泵站型号

    gasHolden

    瓦斯浓度

    dasHolden

    抽放负压

    intoKun

    入口功率

    outKun

    出口功率

    temperature

    温度

    userId

    负责人

    type

    泵站类型

     

     

    pump_station_alert泵站告警信息表

    字段名

    字段描述

    id

    编号

    machineName

    设备名称

    chineseName

    中文名称

    englishName

    英文名称

    dataType

    数据类型

    alertType

    告警类型

    alertLevel

    告警等级

    alertStatu

    告警状态

    beginValue

    开始值

    nowValue

    当前值

    compareValue

    比较值

    startDate

    开始日期

    newDate

    当前日期

    endDate

    截止日期

    clearStatu

    清除状态

    stationId

    泵站编号

     

     

    scada_center供水中心信息表

    字段名

    字段描述

    id

    编号

    name

    中心名称

    address

    中心地址

    userId

    负责人

    phone

    电话

    peopleCount

    中心职工数

    type

    中心类型

    description

    中心描述

     

     

    task_point任务巡检点信息表

    字段名

    字段描述

    id

    编号

    taskId

    任务编号

    pointId

    巡检点编号

     

     

    test_point监测点信息表

    字段名

    字段描述

    id

    编号

    name

    监测点名称

    type

    监测点类型

    mainContent

    重要内容

    userId

    负责人

     

     

    test_point_data监测点数据表

    字段名

    字段描述

    id

    编号

    mitualPa

    压力

    flowVec

    流量

    normalVec

    正向累计流量

    reverseVec

    反向累计流量

    galaVec

    电量

    type

    数据类型

    pointId

    测点编号

    time

    监测时间

     

     

    water_pump水泵信息表

    字段名

    字段描述

    id

    编号

    name

    水泵名称

     

     

                               water_pump_data水泵数据表   

    字段名

    字段描述

    id

    编号

    waterId

    水泵编号

    one

    一点

    two

    二点

    three

    三点

    four

    四点

    five

    五点

    six

    六点

    seven

    七点

    eight

    八点

    nine

    九点

    ten

    十点

    eleven

    十一点

    twelve

    十二点

    thirteen

    十三点

    fourteen

    十四点

    fifteen

    十五点

    sixteen

    十六点

    seventeen

    十七点

    eighteen

    十八点

    nineteen

    十九点

    twenty

    二十点

    twentyOne

    二十一点

    twentyTwo

    二十二点

    twentyThree

    二十三点

    twentyFour

    二十四点

    pumpId

    泵站编号

     

    附录:

    一二期全数据库结构图(数据表49张):

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 软件概要设计,软件概要设计说明书软件概要设计说明书模板,最标准的软件概要设计模板
  • 计算机软件接口设计说明书模板

    热门讨论 2011-06-16 12:24:57
    3.1 中间库说明 2 3.2 传输交互方法 2 3.3 中间库接口结构 2 3.3.1 XXX1表/视图 2 3.3.2 XXX2表/视图 2 3.3.3 XXX1方法/函数 2 4 页面集成接口 3 4.1 对外提供 3 4.2 外部调用 3 5 TUXEDO接口 3 5.1 接口功能1 3 ...
  • 国军标-Gjb软件设计说明书模板

    万次阅读 2016-06-29 17:47:55
    一、Trufun服务目标 ...规范软件开发过程 优化软件开发流程 保证软件开发质量 提高软件开发效率  西安楚凡科技有限公司(Trufun)是全球领先的软件开发行业应用生命周期管理(ALM)和CASE工具解决方
     模板下载地址::http://www.trufun.net/uploads/soft/160629/1_1025508321.docx
    

    一、Trufun服务目标

    规范软件开发过程     优化软件开发流程

    保证软件开发质量     提高软件开发效率

        西安楚凡科技有限公司(Trufun)是全球领先的软件开发行业应用生命周期管理(ALM)CASE工具解决方案提供商,倡导"实用、简洁"的产品理念,为企业实现产品开发与服务支持间的规范化应用平台,在管理软件研发全过程的同时,支持当前各种规范标准,实现企业的战略目标




    Gjb软件需求规格说明书

    1. 范围

    1.1. 标识

        本条应描述本文档使用系统和软件的完整标识,适用时,包括其标识号、名称、缩略名、版本号和发布号。

    1.2. 系统概述

        本条应概述本文档所适用的系统和软件的用途。它还应描述系统与软件的一般特性;概述系统开发、运行和维护的历史;标识项目的需方、用户、开发方和保障机构等;标识当前和计划的运行现场;列出其他有关文档。

    1.3. 文档概述

        本条应概述本文档的用途和内容,并描述与它的使用有关的保密性方面的要求。

    2. 引用文档

    本章应列出引用文档的编号、标题、编写单位、修订版及日期,还应标识不能通过正常采购活动得到的文档的来源。

    3. CSCI级设计决策

    本章应根据需要分条给出CSCI级设计决策,即CSCI行为设计的决策(忽略其内部实现,从用户角度出发描述系统将怎样运转以满足需求)和其他影响组成该CSCI的软件单元的选择与设计的决策。如果在需求中所有这些决策是明确的,或者这些决策要推迟到CSCI的软件单元的设计时指出,则本章应如实陈述。针对关键性需求(例如对安全性或保密性关键的需求)做出的设计决策,应在专门的章条中加以叙述。如果设计决策依赖于系统状态或方式,则应指明这一依赖性。本条应给出或引用理解这些设计所需的设计约定。CSCI级设计决策的例子如下:
    a. 关于CSCI将接收的输入和将产生的输出的设计决策,包括与其他系统、HWCI、CSCI和用户的接口(本文档的4.3.X条支出本说明要考虑的主题)。如果这一信息的全部或部分已在接口设计说明(IDD)中给出,则可以直接引用。
    b. 有关响应每个输入或条件的CSCI行为的设计决策,包括CSCI要执行的动作、响应时间和其他性能特性,模型化的物理系统的说明,选定的方程式/算法/规则,以及对不允许的输入或条件进行的处理。
    c. 有关数据库/数据文件如何呈现给用户的设计决策(本文档的4.3.X条标识了本说明要考虑的主题)。如果这一信息的全部或部分在数据库设计说明(DBDD)中给出,则可直接引用。
    d. 为满足安全性和保密性需求所选择的方法。
    e. 为满足需求所做的其他CSCI级设计决策,例如为提供所需的灵活性、可用性和可维护性所选择的方法。

    4. CSCI体系结构设计

    本章应分为以下几条描述CSCI体系结构设计。如果设计的全部或部分依赖于系统的状态方式,此依赖性应予指明。如果设计信息在多于一个条中出现,它只需被提供一次,而在其他条中引用。本条应提供或引用为了理解设计所需要的设计约定。

    4.1. CSCI部件

    本条应描述:
    a. 构成该CSCI的所有软件单元。应赋予每个软件单元一个项目唯一的标识符。
    注:软件单元是CSCI设计中的一个元素;例如,CSCI的一个主要分支,该主要分支的一个组成部分,一个类、对象、模块、函数、例程或数据库。软件单元可以出现在层次结构的不同层上,且又可以由其他软件单元组成。在设计中,软件单元与实现它们的代码和数据实体(例程,过程,数据库,数据文件等),或与包含这些实体的计算机文件之间,可以有、也可以没有一对一的对应关系。一个数据库可被处理为一个CSCI也可被处理为一个软件大院。SDD可以采用与所使用设计方法相一致的任何名字来称呼软件单元。
    b. 软件单元的静态(如,由。。。组成)关系。根据所选择的软件设计方法学,可以给出多种关系(例如,采用面向对象的设计方法时,本条既可以给出类和对象结构,也可给出CSCI的模块和过程结构)。
    c. 每个软件单元的用途,指明分配给它的CSCI需求和CSCI级设计或软件、再工程的已有的设计或软件、为重用而要开发的软件等,为构建版N计划的软件)。针对现有的设计或软件,本说明应提供标识信息,例如名字、版本、文档引用、库等。
    d. CSCI(若适用,针对每个软件单元)计划适用的计算机硬件资源(例如处理机能力,内存能力,输入/输出设备能力,辅存能力以及通信/网络设备能力)。本说明应覆盖CSCI的资源适用需求中、影响该CSCI的系统级资源分配中、以及在软件开发计划(SDP)的资源适用测量策划中包含的全部计算机硬件资源。如果针对指定计算机硬件资源的所有使用数据都在同一处提供,例如在SDD中提供,那么本条可直接引用。对每个计算机硬件资源,应包括如下信息:
    1. 得到满足的CSCI需求或系统级资源分配;
    2. 使用数据基于的假设和条件(例如,典型用法、最坏情况用法、特定事件的假定);
    3. 影响使用的特殊考虑(例如,虚存、覆盖、多处理器的使用情况,操作系统、库软件的开销或其他实现开销的影响);
    4. 所使用的测度的单位(例如,处理器能力的百分比、周期/秒、内存字节数、千字节/妙);
    5. 进行评估或测量的几笔(例如,软件单元,CSCI或者可执行程序)。
    e. 标识实现每个软件单元的软件放置在哪个程序库中。

    4.2. 执行方案

    本条应说明软件单元间的执行方案,可采用图表和描述,来说明软件单元间的动态关系,即CSCI运行期间软件单元间的互相作用情况,(若适用)应包括执行控制流程、数据流、动态控制序列、状态转换图、时序图、单元间的优先关系、中断处理、时序/排序关系、例外处理、并发执行、动态分配与去除分配、对象/进程/任务的动态创建/删除、以及动态行为的其他方面。

    4.3. 接口设计

    4.3.1. 接口标识和接口图

    本条应说明赋予每个借口的项目唯一的标识符,(若适用)应通过名称、编号、版本及文档引用来标识接口实体(软件单元、系统、配置项、用户等)。该标识应说明那些实体具有固定的接口特性(从而把接口需求分配给这些接口实体);说明哪些实体正在开发或修改(这些实体已有各自的接口需求)。(若适用)应通过接口图来描述这些接口。

    4.3.2. X(接口的项目唯一的标识符)

    本条(从4.3.2开始)应通过项目唯一的标识符来标识接口,应简要地标识接口实体,根据需要可分条描述单方或双方接口实体的特性。如果一指定的接口实体未包含在本SDD中(例如,一个外部系统),而描述接口实体需要提到其接口特性时,这些特性应作为假设予以陈述、或以“当【未涵盖的实体】这样做时,【所指定的实体】将…”的形式描述。本条可引用其他文档(例如数据字典、协议标准、用户接口标准)代替在此所描述的信息。本设计说明应包括以下内容(若适用),以任何适合于所提供的信息的顺序提供,并应从接口实体角度说明这些特性之间的区别(例如关于数据元素的大小、频率或其他特性的不同期望值):
    A 接口实体分配给该接口的优先级。
    B 对实现的接口类型的要求(例如实时数据传送、数据的储存和检索等)。
    C 接口实体将提供、储存、发送、存取、接受的各个数据元素所要求的特征,例如:
    1) 名称/标识符:
    a. 项目唯一的标识符;
    b. 非技术(自然语言)名称;
    c. 数据元素名称;
    d. 技术名(如在代码或数据库中的变量名或字段名);
    e. 缩略名或同义名。
    2) 数据类型(字母、数字、整数等)。
    3) 大小和格式(如:字符串的长度和标点符号)。
    4) 计量单位(如:m等)。
    5) 可能值的范围或枚举(如:0-99)。
    6) 准确性(正确程度)和精度(有效数字位数)。
    7) 优先级别、定时、频率、容量、序列以及其他约束条件(例如数据元素是否可以被更新、业务规则是否适用)。
    8) 保密性约束。
    9) 来源(建立/发送实体)和接收者(使用/接收实体)。
    D 接口实体将提供、存储、发送、访问、接收的数据元素组合体(记录、消息、文件、数组、显示、报表等)所要求的特征,例如:
    1) 名称/标识符:
    a. 项目唯一的标识符;
    b. 非技术(自然语言)名称;
    c. 技术名(如在代码或数据库中的变量名或字段名);
    d. 缩略名或同义名。
    2) 数据元素组合体中的数据元素和其结构(编号、顺序和组成情况)。
    3) 介质(例如磁盘)以及在介质上数据元素/包的结构。
    4) 显示和其他输出的视听特性(例如颜色、布局、字体、图标和其他显示元素、蜂鸣音和亮度)。
    5) 数据自合体之间的关系,如排序/存取特性。
    6) 优先级、时序、频率、容量、序列及其他约束,例如包是否可以被更新、业务规则是否适用。
    7) 保密性约束。
    8) 来源(建立/发送实体)和接收者(使用/接收实体)。
    E 接口实体用于接口的通信方法的特征。如:
    1) 项目唯一的标识符;
    2) 通信链接/带宽/频率/介质及其特征;
    3) 消息格式;
    4) 控制流(如:序列编号和缓冲区分配);
    5) 周期/非周期传送的数据传送速率,传输间隔;
    6) 路由、寻址、命名约定;
    7) 传输服务,包括:优先权和等级;
    8) 安全性/保密性考虑,如:加密、用户鉴别、隔离和审核。
    F 接口实体用于接口的协议所要求的特征,如:
    1) 项目唯一的标识符;
    2) 协议的优先级别/层次;
    3) 打包,包括拆包和重新打包、路由和寻址;
    4) 合法性检查、错误控制和恢复过程;
    5) 同步,包括建立连接、保持和终止;
    6) 状态、标识及任何其他报告的特性。
    G 其他特征,例如接口实体的物理兼容性(尺寸、公差、负荷和接插件的兼容性等)。

    5. CSCI详细设计

    5.1. X(软件单元的项目唯一的标识符,或者一组软件单元的标识符)

    本条应通过项目唯一的标识符来标识软件单元,并对该单元进行说明。(若适用)该说明应包括下列信息。本条也可以指定一组软件单元,软后再分小条对他们分别进行标识和说明,包含其他软件单元的软件单元可引用那些软件单元的说明,而无需在此重复。
    A. (若有)单元设计决策,例如所使用的算法(如果此前尚未选定)。
    B. 该软件单元设计中的任何约束、限定或非常规特征。
    C. 如果使用的编程语言不同于该CSCI所指定的语言,则应支出并说明使用它的理由。
    D. 如果该软件单元博阿含过程性命令或由过程性命令组成(例如数据库管理系统DBMS查询,用于代码自动生成的图形用户接口(GUI)构造器的输入,操作系统的命令或Shell脚本),应列出这些过程性命令,并引用解释它们的用户手册或其他文档。
    E. 如果该软件单元包含、接收或输出数据,(若适用)应对它的输入、输出及其他数据元素和数据元素组合体进行说明。本文档的4.3.X条提供了(若适用)应包括的主题。软件单元的局部数据应与软件单元的输入或输出数据分开来描述。如果该软件单元是一个数据库,应引用响应的数据库设计说明(DBDD);接口特性可以在这里提供、也可以引用第4章或相应的接口设计说明(IDD)。
    F. 如果该软件单元包含逻辑,则给出该软件单元所用到的逻辑,(若适用)应包括:
    1) 该软件单元执行启动时,其内部起作用的条件。
    2) 将控制传递给其他软件单元的条件。
    3) 对每个输入的响应以及响应时间,包括数据转换、重命名以及数据传输操作。
    4) 在软件单元运行期间的操作顺序和动态控制序列,包括:
    a. 顺序控制的方法;
    b. 该方法的逻辑和输入条件,例如时序编译、优先级分配等;
    c. 进出内存的数据传输;
    d. 对离散输入信号的感知,以及该软件单元内中断操作之间的时序关系。
    5) 异常和错误处理。

    6. 需求可追踪性

    本章应包含:
    1) 从本SDD所标识的每个软件单元,到分配给它的CSCI需求的可追踪性(这一可追踪性也可以在4.1条中提供)。
    2) 从每个CSCI需求,到被分配这些需求的软件单元的可追踪性。

    7. 注释

    本章应包括有助于了解文档的所有信息(例如:背景、术语、缩略语或公式)。
    展开全文
  • 很详细的图书管理系统 软件工程 详细设计 说明书,对于初学者,或是课程设计,很有帮助!
  • 文档中包含软件工程的详细设计说明书,需求规格说明书,测试计划三个文档的模板。希望可以为大家的学习文档的书写提供一些帮助~
  • 接口设计说明书 本接口说明书详细介绍了LK9000编程接口函数的功能,用法、声明所在的头文件。用户在开发LK9000软件时必须阅读该说明书。
  • 软件概要设计说明书案例

    热门讨论 2011-07-06 20:17:06
    软件概要设计说明书(案例),赞~ 软件概要设计是从总体上把握系统设计框架,他包括模块划分、处理流程和接口设计,概要设计说明书对上述内容作了总体描述,体现了用户需求与应用系统实现之间的关系,在设计过程中起...
  • 软件开发详细设计说明书(示例)1、上传 用户通过关联系统将图片、电子保单、电子文档等上传至影像进行永久保留。 2、下载 用户通过IE浏览器调阅、Applet调阅、出单系统调阅等方式获取并查看保存在影像系统中的图片...
  • 可行性研究报告+项目开发计划+需求规格说明书+概要设计说明书+详细设计说明书+用户操作手册+测试计划+面向对象软件设计说明书模板+……
  • 校园二手交易平台系统设计说明书
  • 总体设计又称概要设计,即确定系统的具体实现方案、给出软件的模块结构、编写总体设计说明书。 详细设计又称过程设计,这一步的工作,就是要对系统中的每个模块给出足够详细的 过程性描述。这种描述不是程序的...
  • 软件工程课程中的教务管理系统概要设计和详细设计说明书
  • 包括系统概要说明书,概要设计、接口设计、系统详细设计等模板和范例
  • 软件设计方案说明书的编写

    万次阅读 多人点赞 2018-10-09 11:37:36
    关于软件设计方案说明书的编写,其根本目的有两个,一是便于项目内部各职能的成员进行沟通和项目执行时的依据(比如编码、测试等),二是作为项目的一部分,是项目文档的一部分。软件设计方案说明书的格式和内容,...
  • 软件开发概要设计说明书范例

    热门讨论 2011-12-16 20:37:52
    软件公司技术文档,某管理信息系统的概要设计说明书 不是模板,是一个完整的实例
  • 系统详细设计,教你写系统详细设计,相当不错的哦,想些详细设计的可以看看

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 197,624
精华内容 79,049
关键字:

软件设计说明书