精华内容
下载资源
问答
  • 各种系统架构图与详细说明

    万次阅读 多人点赞 2018-09-15 17:49:59
    如上图所示为本次共享资源平台逻辑架构图,上图整体展现说明包括以下几个方面: 1 应用系统建设 本次项目的一项重点就是实现原有应用系统的全面升级以及新的应用系统的开发,从而建立行业的全面的应用系统架构群。...
      1. 共享平台逻辑架构设计

    如上图所示为本次共享资源平台逻辑架构图,上图整体展现说明包括以下几个方面:

    1 应用系统建设

    本次项目的一项重点就是实现原有应用系统的全面升级以及新的应用系统的开发,从而建立行业的全面的应用系统架构群。整体应用系统通过SOA面向服务管理架构模式实现应用组件的有效整合,完成应用系统的统一化管理与维护。

    2 应用资源采集

    整体应用系统资源统一分为两类,具体包括结构化资源和非机构化资源。本次项目就要实现对这两类资源的有效采集和管理。对于非结构化资源,我们将通过相应的资源采集工具完成数据的统一管理与维护。对于结构化资源,我们将通过全面的接口管理体系进行相应资源采集模板的搭建,采集后的数据经过有效的资源审核和分析处理后进入到数据交换平台进行有效管理。

    3 数据分析与展现

    采集完成的数据将通过有效的资源分析管理机制实现资源的有效管理与展现,具体包括了对资源的查询、分析、统计、汇总、报表、预测、决策等功能模块的搭建。

    4 数据的应用

    最终数据将通过内外网门户对外进行发布,相关人员包括局内各个部门人员、区各委办局、用人单位以及广大公众将可以通过不同的权限登录不同门户进行相关资源的查询,从而有效提升了我局整体应用服务质量。

    综上,我们对本次项目整体逻辑架构进行了有效的构建,下面我们将从技术角度对相关架构进行描述。

     

      1. 技术架构设计

    如上图对本次项目整体技术架构进行了设计,从上图我们可以看出,本次项目整体建设内容应当包含了相关体系架构的搭建、应用功能完善可开发、应用资源全面共享与管理。下面我们将分别进行说明。

      1. 整体架构设计

    上述两节,我们对共享平台整体逻辑架构以及项目搭建整体技术架构进行了分别的设计说明,通过上述设计,我们对整体项目的架构图进行了归纳如下:

    综上,我们对整体应用系统架构图进行了设计,下面我们将分别进行说明。

        1. 应用层级说明

    整体应用系统架构设计分为五个基础层级,通过有效的层级结构的划分可以全面展现整体应用系统的设计思路。

    基础层

    基础层建设是项目搭建的基础保障,具体内容包含了网络系统的建设、机房建设、多媒体设备建设、存储设备建设以及安全设备建设等,通过全面的基础设置的搭建,为整体应用系统的全面建设良好的基础。

    应用数据层

    应用数据层是整体项目的数据资源的保障,本次项目建设要求实现全面的资源共享平台的搭建,所以对于应用数据层的有效设计规划对于本次项目的建设有着非常重要的作用。

    从整体结构上划分,我们将本次项目建设数据资源分为基础的结构型资源和非结构型资源,对于非结构型资源我们将通过基础内容管理平台进行有效的管理维护,从而供用户有效的查询浏览;对于结构型数据,我们进行了有效的分类,具体包括政务公开资源库、办公资源库、业务经办资源库、分析决策资源库、内部管理资源库以及公共服务资源库。通过对资源库的有效分类,建立完善的元数据管理规范,从而更加合理有效的实现资源的共享机制。

    应用支撑层

    应用支撑层是整体应用系统建设的基础保障,根据本次招标文件相关需求,我们进行了相关面向服务体系架构的设计,通过统一的企业级总线服务实现相关引用组件包括工作流、表单、统一管理、资源共享等应用组件进行有效的整合和管理,各个应用系统的建设可以右下基于基础支撑组件的应用,快速搭建相关功能模块。

    由此可见,应用支撑层的建设是整体架构设计的核心部分,其关系到本次项目的顺利搭建以及今后区劳动局信息化的发展。

    应用管理层

    在3.3.3图中的设计中,应用管理层有效的承接了我局原有应用系统分类标准,将实际应用系统分成了八个应用体系,在实际应用系统的建设中,我们将全面传承原有应用分类标准规范的基础上实现有效的多维的应用资源分类方法,不仅如此,整体应用系统也可以通过多维的管理模式进行相关操作管理,如按照业务将应用系统进行划分,包括劳动管理和保险管理等。

    应用管理层是实际应用系统的建设层,通过应用支撑层相关整合机制的建立,我们将实现应用管理层相关应用系统的有效整合,通过统一化的管理体系,全面提升我局应用系统管理效率,提升服务质量。

    展现层

    整体应用功能将通过门户方式进行展现,架构分别设计了内网门户和外网门户,不同的应用人员通过登录可以实现相关系统的应用和资源的浏览查询操作。

    1. 3.2准体系规范说明

    大型的应用工程项目的建设必须遵照严格的标准体系建设规范,根据本次项目实际需求,我们通过三个规范体系对项目进行合理的保障,具体包括了安全标准管理系统、标准规范体系以及运行管理体系。

    通过相关标准的制定、安全架构的保障以及管理规范的建设可以保障整体应用系统的设计、搭建、运维等全流程性工作。

    1. 3.3应用用户设计

    通过分析,我们将整体应用系统面向人群分为四类,具体包括广大公众、区内委办局、局内相关部门以及用人单位,不同对象通过访问不同门户可以进行全面的服务保障。

    1. 3.4系统建设总结

    在3.3.3图中对本次项目整体应用系统建设需求同样也进行了归纳,项目整体分为三个主体建设,即:共享信息平台的搭建、原有应用系统的改造以及新的应用系统的搭建。

    共享信息平台的建设旨在全面整合相关应用系统资源,实现有效的浏览、查询检索机制,整体数据通过规范化的元数据管理机制,实现有效的梳理存储,为今后资源的整合奠定基础。不仅如此,在实际项目建设中还将引入商业智能应用模块,实现对共享资源的智能化分析,从而为决策预警等提供有力依据。

    原有业务系统改造则是实现原有应用系统相关流程等的优化配置,并通过有效的数据梳理改造为信息资源的共享奠定良好的基础。本次项目中需要改造系统包括:政务公开系统、办公自动化系统、公众服务系统以及综合管理系统。

    新的业务系统的建设则是要全面提升现阶段我局整体办公效率,继续加强信息化建设,通过更加全面合理的应用系统的建设,提升我局整体服务水平。本次项目需要建设系统包括:业务经办系统、社会保险系统、土地储备系统、企业监督系统、劳动监察系统、劳动关系与仲裁系统、就业和失业管理系统以及综合管理系统。

    1. 3.5应用接口管理

    本次项目建设还涉及到整体应用系统与外部相关系统接口的管理,实际应用接口包括与税务接口、与财政部门接口、与民政部门接口、与基层单位接口与公安部门接口以及与其他部门的接口。

    通过有效的接口管理机制,实现资源的互联互通,从而更加有效的提升我局无纸化办公机制,全面加强我局整体工作效率。

      1. 系统整体逻辑架构

    规划一个成熟先进的北京市卫生人才交流服务中心网站平台系统框架是一切技术工作的先决条件,是奠定系统性能的基础,是至关重要的。

    因此,本项目建设应首先考虑设计和建立一个统一的北京市卫生人才交流服务中心门户网站系统技术体系,能够支持政府信息资源的整合、管理及门户网站群的建设,提供统一的内容管理、资源整合、安全管理构架,并提供对应用服务的统一调度和管理,同时,系统体系结构应分层组织,系统功能模块化,系统集成松耦合,方便业务应用的修改、重用和部署,满足系统未来弹性扩展的要求。

    系统逻辑框架如下图所示。

    整体系统包括三个体系一个平台进行全面保障,其中三个体系包括:

    1. 运行管理体系;
    2. 标准规范体系;
    3. 安全保障体系;

    具体平台根据新闻局实际需求建设网站群支撑管理平台,平台保障了相关招标文件中的采集管理、内容管理、统计管理、安全管理等功能需求,对于整体应用平台的支撑则通过中科软多年门户建设经验总结完成的相关应用组件包括工作流管理、元数据管理、电子表单等进行保障。

        1. 各主要组成部分概要描述
    1. 数据层

    对结构化数据和非结构化数据进行调度和存储。结构化数据包括:XML 和DBMS。非结构化数据包括:文本文件、音视频文件、office 系列文件、图形图像文件及ZIP、PDF、SWF等其他格式文件等,在数据接口上支持WebService 模块化组件。

    1. 支撑层

    支撑层通过应用服务器,提供对系统应用层强大的支持,包括:电子表单、工作流、元数据管理、安全审计等功能。并通过WEBSERVICE接口服务支持外部资源对内容管理基础数据以及内容管理对外部数据资源的应用数据集成。

    1. 应用层

    应用层是政府门户网站群非常重要的组成部分,是对信息处理的重要环节,按功能的不同可以分为:信息发布管理、网站群管理、系统管理、外挂组件管理、交互功能、多媒体信息管理、内容聚合:RSS等。

    1. 展现层

    政府门户网站群的最终表现是一组具有相同标准和相同规范体系的网站群体系。它涵盖主站、各级子网站、各类专题子网站等,同时系统为应用层的不同应用提供信息资源的不同表现形式,包括有Web、RSS等。

    1. 接入层

    实现客户通过浏览器来访问表现层以获取信息资源。

      1. 系统技术架构

    系统技术架构框架如图所示。

      1. 总体架构设计

    应用系统总体架构图

    如上图所示,本项目将采用数据与应用大集中的架构,即国际收支平衡管理管理信息系统只部署在国家外汇管理局,相关数据也集中存储在总局的国际收支平衡整合库中。整个系统采用B/S的结构,在进行数据清洗、转换,即ETL的时候会采用C/S结构,整个架构主要包括如下内容:

    1、构建应用支撑平台,提供统一的人员、组织机构和权限管理,提供支持各种复杂业务系统的开发和组装框架,实现单点登录和目录服务,并提供对应用系统的运行监控,数据的备份恢复等功能。

    国际收支平衡管理信息系统的各个子系统以及外汇局应用支撑平台门户都是基于应用支撑平台开发、组装和运行的。

    2、数据整合与交换系统是整个国际收支平衡管理信息系统的基础,负责将从外汇局内部(主要是现有的业务系统或者业务数据)和外汇局外部(主要是共建部委的共享数据)的相关外汇数据采集、清洗、转换,并通过数据传输通道汇总至统一的国际收支信息的整合数据库中。

    各分支局数据通过数据传输通道上传到国家外汇管理局,由数据整合和交换系统接收并处理数据,最终也汇总至总局的整合数据库中。

    数据交换将以成熟、稳定的第三方产品为基础进行设计和开发。

    3、开发新版国际收支网上申报系统,实现涉外收入申报业务网上受理,方便企业申报业务;建立与银行系统的接口,满足与银行的数据交换;方便银行的查询和审核操作。

    网上申报数据将统一存储至网上申报数据库,并通过数据整合与交换系统与国际收支统计监测系统进行数据集成,同时申报数据最终汇总至总局的整合数据库中。

    网上申报系统将与外汇局的“一站式”网上服务平台集成,申报主体和银行将通过服务平台登录系统,进行申报、审核、查询统计等操作。

    外汇局人员也可通过服务平台或者外汇局的应用支撑平台门户登录系统,进行对申报数据的核查、查询统计操作。

    4、在数据整合与交换系统上建设统计分析系统,根据基础指标和统计分析指标将整合数据库中的信息动态生成各类统计分析报表(如国际收支平衡表、国际投资头寸表、结售汇统计报表等)。

    统计分析系统将利用数据仓库和多维联机在线分析技术,在对国际收支平衡状况的需求分析的基础上,提供面向主题的多种分析模型和分析方法,从多个角度分析国际收支平衡的状况和存在问题。统计分析结果将存储至外汇局数据仓库系统,为决策支持系统提供数据支撑,并可以通过BI工具在外汇局应用支撑平台门户进行展现。此外,统计报表信息通过数据整合与交换平台与金宏工程其他共建部委进行“共享”。

    5、在统计分析系统和总局数据仓库的基础上建设决策支持系统,通过基础指标,统计分析指标和统计分析系统产生的结果,借助OLAP分析模型工具,产生决策支持信息和预警信息,进行经济分析和预警,辅助外汇管理政策的制定。

    各类统计分析模型、预警模型将统一存放到“模型库”中,方便分析人员使用。此外还提供一套机制建设“知识库”,存储有关外汇管理的各类信息。

    (2)-(4)这几个系统在支撑平台的数据整合与交换基础上提供统一的数据交换接口,同时支持以XML作为统一的数据接口格式。

    6、建设外汇局应用支撑平台门户,通过门户对所有的系统进行统一管理,并且将统计分析、决策支持的结果和其他应用软件的功能模块通过信息集成门户提供给外汇局的领导、业务人员使用。

    外汇局应用支撑平台门户就是建设在应用支撑平台门户基础上。

    7、国际收支平衡管理系统与金宏共享平台、国际收支平衡共享数据库物理隔离,国际收支平衡管理系统中的数据通过涉密网和业务网之间的数据交换系统交换到金宏内网上的国际收支平衡共享数据库中,向共建部委提供数据服务。从共建部委获得的数据也通过涉密网和业务网交换系统,进入数据整合与交换系统中。

      1. 系统架构

    国际收支网上申报系统技术架构图

    企业用户可以通过“一站式”信息服务门户访问国际收支网上申报系统,完成涉外收支业务的申报,申报信息由数据管理模块通过特定的数据接口交换到银行业务系统,在银行业务系统进行审核。审核过后的结果信息再经过数据管理模块交换到网上申报系统供企业用户查询。

    企业用户需要在银行业务系统完成账户开户,定时由银行业务系统交换到网上申报系统供企业用户登录。

      1. 系统架构

    统计分析系统技术架构图

    1、统计分析系统的数据来源于数据仓库,通过条件查询模块从数据仓库得到满足用户的基础数据,由数据统计模块来对这部分基础数据进行汇总统计;

    2、汇总统计的数据根据外汇局用户的需要可以由报表定制模块利用原有的报表工具实现对国际收支平衡表、国际投资头寸表、结售汇统计报表、外债余额简表的设计以及利用Cognos的BI工具完成展现以及经过OLAP分析转化成多维数据;

    3、针对预先设计好的数据模型以及辅助模型管理模块来产生分析结果,供外汇局用户制定决策。

      1. 系统架构

    决策支持系统技术架构图

    1、决策支持系统利用从数据仓库获得的基础数据完成报表和查询,生成日、月、季报表供外汇局用户查询浏览;

    2、通过ASL规则引擎对基础数据进行分析,以风险模型为依据生成分析报告;

    3、利用数据挖掘模型对基础数据进行处理得到模型数据,与ASL分析信息共同生成分析报告,供外汇局用户来进行营运监管的管理;

    4、“知识库”的信息同时也提供给营运监管模块来进行运作。

      1. 总体架构

    国资委国有资产监督管理系统总体架构图

    国资委国有资产监督管理系统的总体框架主要包含六个层次,即基础平台层、数据资源管理层、应用支撑层、业务实现层、门户展现层、终端接入层。

    1.基础平台层:国资委IT基础平台主要包括网络系统、主机、存储系统、安全系统、配套的软件等。网络系统分为业务内网、业务外网和互联网。业务内网与业务外网物理隔离,互联网与业务外网通过防火墙配置实现逻辑隔离。

    2.数据资源管理层:数据资源管理层主要由数据库组成,其中结构化数据库主要包括管人、管事、管资产、纪检监督业务数据库、共享数据库、基础数据库、原有系统数据库及其它信息资源库等。非结构数据库主要是由一些文件型的数据构成。信息资源库主要是应用系统的数据库,它是业务应用信息系统的组成部分和数据中心的基础。

    3.应用支撑层:应用支撑层主要包括应用开发平台 (基础数据管理、报表管理、工作流管理、表单工具、门户引擎、规则引擎、工作流引擎、用户权限管理、目录服务、内容管理、接口管理、预警平台)和中间件(应用服务器、消息中间件、WEB服务器)。通过建设应用支撑平台,实现界面集成、应用集成、数据集成及流程集成,通过四个集成来达到国资委所有系统的集成效果。

    4.业务实现层:主要包括四大核心业务应用系统和数据中心。

    国资监管应用系统主要包括企业国有资产产权登记子系统、上市公司国有股权监督管理子系统、企业国有产权交易监督管理子系统、企业财务状况监督子系统设计、中央企业财务绩效评价子系统、中央企业财务预决算管理子系统、企业国有资产统计评价子系统、企业财务信息查询分析子系统、中央企业人员管理子系统、中央企业业绩考核子系统、中央企业重大投资管理子系统、中央企业经济运行监督子系统、纪检监察管理子系统等。

    国有资产数据中心:主要包括元数据注册器、信息资源数据库、信息资源目录体系、信息资源交换体系等。国有资产信息资源库是数据中心的基础,为国资委业务监管提供数据支持,包括企业基本信息数据、企业绩效评价数据、企业人员管理数据、企业财务数据、国有产权数据、资产统计数据、企业重组与规划投资数据、纪检监察数据、政策法规文献数据和其他业务数据十大类。作为统一信息资源平台,国有资产信息资源库对国资委各类共享数据提供统一的存储和管理,是国资委委内各厅局之间以及与其它政府机关之间进行数据交换和共享的基础平台,为各类业务的开展提供完整、统一和准确的数据支持。

    5.门户展现层:门户展现层主要由国资委数据采集门户构成、互联网门户、业务内网门户、业务外网门户组成。

    6.终端接入层:中央企业、地方国资委、上市企业(含国有股)、其它部门及公众通过统一的身份认证、权限管理登录数据采集门户、国资委业务外网门户、国资委互联网,并实现统一的入口、出口和单点登录。

    其中,中央企业、地方国资委、上市企业(含国有股)通过在线填报或离线填报(利用数据采集终端)的方式在数据采集门户上进行数据填报,数据采集门户及业务外网与内网物理隔离,通过应用支撑平台提供的数据交换组件实现内、外网的数据传输和交换。其它部门(包括金宏工程相关部门)也是通过应用支撑平台提供的数据交换组件实现内、外网的数据传输和交换。社会公众登录国资委互联网网站进行国资监管信息查询和交互。

    除此之外,贯穿着六个层次的还有国资委信息安全保障体系、项目实施与运维管理,和相关的标准体系和管理规范。

      1. 系统逻辑结构

    国资监管信息系统主要作用体现为国资监管业务服务。一期工程建设6大应用系统,形成10个信息资源库。其总体逻辑结构图如下:

    图5-1总体逻辑结构图

    通过四大业务系统(共计13个子系统)覆盖国资委管资产、管人、管事、资产监督的四大业务。

    其业务核心就是实现国有经济布局以及国有资产的增值保值。

    实现国有经济布局,具体是通过产权登记系统,掌握所有国有股权的分布情况。通过上市公司国有股权交易监督和其他企业国有股权交易监督系统,对国有股权的交易进行监控,随时了解国有经济的布局情况,并加以控制。通过资产统计、企业财务监督、中央企业预决算管理,等3个系统,全面获得企业的实际财务资产情况。

    另外通过中央企业经济运行管理系统,掌握中央企业的经济运行情况以及行业经济运行分析,从而对中央企业重大投资进行管理和监控,确保了解国有经济布局的运行情况和进行调整。

    实现国有资产的增值保值,具体措施是通过管人来实现,通过中央企业人员管理系统,后备、任命、管理企业管理者。通过企业绩效考核系统来评价、更换人员,来实现国有资产的增值保值。但不是简单的通过管人来实现国有资产增值保值,任命、考核,需要从资产管理、资产监督、企业运行情况等三个方面不断地获取信息,对管理者进行监督和引导,即使发现问题,确保国有资产的增值保值。

    通过13个业务应用系统覆盖四大业务职能,为解决目前监管业务中信息采集的问题、信息沟通的问题,需要建设13个业务应用系统统一的数据采集系统、信息发布系统。

    针对13个业务应用,形成了10大国有资产信息资源库,包括监管企业方面获得的6种信息:

    • 企业基本信息
    • 企业产权信息
    • 企业财务信息
    • 企业人员信息
    • 企业重组与规划投资信息
    • 其他业务信息

    以及国资委监管产生的4种信息:

    • 政策法规信息
    • 国有资产统计信息
    • 企业业绩考核信息
    • 纪检监察信息
      1. 系统体系结构

    本项目总体技术框架建立要遵循“整合资源,信息共享”、“统一架构,业务协同”的原则,应用系统采用多层架构,以信息资源库和公共服务为基础进行开发,实现资源和服务的共享,实现业务层和展现层的分离。总体技术框架如下图所示:

    图5-2 国资委国有资产监督管理系统总体技术框架

    总体框架主要包含六个层次:

    国资委IT基础设施:主要包括网络、服务器、存储系统、配套的系统软件、数据库和机房等。网络系统为内、外网物理隔离的双网结构。IT基础设施是国资委国有资产监督管理系统的基础平台。

    国有资产数据中心:主要包括元数据注册器、信息资源数据库、信息资源目录体系、信息资源交换体系等。国有资产信息资源库是数据中心的基础,为国资委业务监管提供数据支持,包括企业基本信息数据、企业绩效评价数据、企业人员管理数据、企业财务数据、国有产权数据、资产统计数据、企业重组与规划投资数据、纪检监察数据、政策法规文献数据和其他业务数据十大类。作为统一信息资源平台,国有资产信息资源库对国资委各类共享数据提供统一的存储和管理,是国资委委内各厅局之间以及与其它政府机关之间进行数据交换和共享的基础平台,为各类业务的开展提供完整、统一和准确的数据支持。

    国资委应用系统支撑平台:主要包括由表单工具、系统集成组件、内容管理工具、工作流组件、消息交换工具、应用中间件、统一用户管理和其他组件工具构成的应用支撑平台,从整合、协同、管理和服务四个方面对业务系统的开发、部署和运行进行支持。

    国有资产监督管理业务应用信息系统:主要包括搭建在应用支撑平台上的基础应用组件、通过基础应用组件组合成的企业国有资产产权登记子系统、上市公司国有股权监督管理子系统、企业国有产权交易监督管理子系统、企业财务状况监督子系统设计、中央企业财务绩效评价子系统、中央企业财务预决算管理子系统、企业国有资产统计评价子系统、企业财务信息查询分析子系统、中央企业人员管理子系统、中央企业业绩考核子系统、中央企业重大投资管理子系统、中央企业经济运行监督子系统、纪检监察管理子系统。

    应用数据库:主要是应用系统的数据库,是业务应用信息系统的组成部分。

    国资委信息发布系统:主要包括国资委内网消息发布、外网消息发布和互联网消息发布。

    除此之外,贯穿着六个层次的还有国资委信息安全保障体系、技术支持与运行维护体系。同时,国资委信息化相关的标准、规范、政策、法规也将在“国有资产监督管理系统”项目建设中必须加以重视,并积极推进。

    展开全文
  • 想必学过机器学习的人都知道,学习率、训练迭代次数和模型参数的初始化方式都对模型最后的准确率有一定的影响,那么影响到底有多大呢?我初步做了个实验,在 TensorFlow 框架下使用 Logistics Regression 对经典的 ...

    想必学过机器学习的人都知道,学习率、训练迭代次数和模型参数的初始化方式都对模型最后的准确率有一定的影响,那么影响到底有多大呢?

    我初步做了个实验,在 TensorFlow 框架下使用 Logistics Regression 对经典的 MNIST 数据集进行分类。

    本文所说的 准确率 均指 测试准确率

    代码

    from tensorflow.examples.tutorials.mnist import input_data
    
    mnist = input_data.read_data_sets("/home/alan/data/", one_hot=True)
    
    from __future__ import print_function
    import tensorflow as tf
    import matplotlib.pyplot as plt
    # 如果运行提示没有seaborn库,可以注释掉这行代码
    # 也可以使用 pip install seaborn或者 conda install seaborn安装
    import seaborn
    # 我是在Jupyter Notebook下运行的
    # 如果你是在命令行运行那么就注释掉下面这一行
    %matplotlib inline
    
    # 设置模型
    # 学习率
    learning_rate = 0.01
    # 训练迭代次数
    training_epochs = 50
    # batch大小
    batch_size = 100
    # 每多少次迭代显示一次损失
    display_step = 1
    
    x = tf.placeholder(tf.float32, [None, 784])
    y = tf.placeholder(tf.float32, [None, 10])
    
    # 模型参数
    # W = tf.Variable(tf.zeros([784, 10]))
    # b = tf.Variable(tf.zeros([10]))
    W = tf.Variable(tf.truncated_normal([784, 10]))
    b = tf.Variable(tf.truncated_normal([10]))
    
    # 建立模型
    pred = tf.nn.softmax(tf.matmul(x, W) + b)
    
    # 定义损失函数:交叉熵
    cost = tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred), reduction_indices=1))
    
    # 梯度下降
    optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
    
    # 初始化所有变量
    init = tf.initialize_all_variables()
    
    # 训练模型
    with tf.Session() as sess:
        sess.run(init)
        
        ax1 = plt.subplot(211)
        ax1.set_ylabel("Accuracy")
        ax2 = plt.subplot(212, sharex=ax1)
        ax2.set_ylabel("Cost")
        ax2.set_xlabel("Epoch")
        plt.setp(ax1.get_xticklabels(), visible=False)
        
        for epoch in range(training_epochs):
            avg_cost = 0
            total_batch = int(mnist.train.num_examples / batch_size)
            
            for i in range(total_batch):
                batch_xs, batch_ys = mnist.train.next_batch(batch_size)
                _, c = sess.run([optimizer, cost], feed_dict={x: batch_xs, y: batch_ys})
                
                avg_cost += c / total_batch
                
            if (epoch + 1) % display_step == 0:
                 # 计算测试准确率
                correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
                accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
                
                ax1.plot(epoch+1, accuracy.eval({x: mnist.test.images, y: mnist.test.labels}), 'mo')
                ax2.plot(epoch+1, avg_cost, 'co') 
                
                print("Epoch:", '%04d' % (epoch+1), "cost=", '{:.9f}'.format(avg_cost), end=' ')
                print("Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels}))
                
        print("Optimization Finished!")
        
        print("Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels}))
        plt.suptitle("learning rate=%f, training epochs=%i, with tf.truncated_normal()" % (learning_rate, training_epochs), size=14)
        plt.savefig('AC8.png', dpi=300)
        plt.show()
    

    通过修改 learning_ratetraining_epochs来修改学习率和迭代次数,修改

    # 所有变量初始化为0
    # W = tf.Variable(tf.zeros([784, 10]))
    # b = tf.Variable(tf.zeros([10]))
    
    # 所有变量初始化为符合标准截断正态分布的随机数
    W = tf.Variable(tf.truncated_normal([784, 10]))
    b = tf.Variable(tf.truncated_normal([10]))
    

    来修改变量的初始化方式。程序最终会输出损失和准确率随着迭代次数的变化趋势图。

    结果

    以下结果的背景是:TensorFlow,Logistics Regression,MNIST数据集,很可能换一个数据集下面的结论中的某一条就不成立啦,所以要具体情况具体分析,找到最优的超参数组合。

    多次的更改会输出多个不同的图,我们先来看下最终的准确率比较,然后再看下每种情况的详细的损失和准确率变化。

    符号说明

    • lr:Learning Rate,学习率
    • te:Training Epochs,训练迭代次数
    • ztf.zeros(),变量初始化为0
    • ttf.truncated_normal(),变量初始化为标准截断正态分布的随机数

    最终准确率比较

    可以看到

    • 学习率为0.1,迭代次数为50次,并且采用随机初始化方式时准确率远远低于其他方式,甚至不足90%。而学习率为0.1,迭代次数为50次,并且采用随机初始化的方式时准确率最高。
    • 对于采用随机初始化的方式,在其他参数相同的情况下增大迭代次数会明显的提高准确率。而对于初始化为0的情况则无明显变化。
    • 其他参数相同的情况下,过度增大学习率的确是会导致准确率下降的,查看详细变化过程时可以看到准确率变化波动比较大。
    • 在学习率适中,迭代次数较大时变量初始化方式对最终准确率的影响不大。

    每种情况损失和准确率的详细变化趋势

    与上图的顺序保持一致,从上至下。
    每张图的标题在图的下面,斜体字。

    在这里插入图片描述
    学习率为1,迭代次数为50,随机初始化



    学习率为1,迭代次数为50,初始化为0


    在这里插入图片描述
    学习率为0.1,迭代次数为50,随机初始化


    在这里插入图片描述
    学习率为0.1,迭代次数为50,初始化为0


    在这里插入图片描述
    学习率为0.1,迭代次数为25,随机初始化


    在这里插入图片描述
    学习率为0.1,迭代次数为25,初始化为0


    在这里插入图片描述
    学习率为0.01,迭代次数为50,随机初始化


    在这里插入图片描述
    学习率为0.01,迭代次数为50,初始化为0

    大部分情况下准确率和损失的变化时单调的,但是当学习率过大(=1)时准确率开始不稳定。

    END

    暂且就是这么多,我说的难免有不合适的地方,有错误的地方欢迎指出。

    展开全文
  • java准确读取word文件页数

    万次阅读 热门讨论 2017-05-06 20:48:37
    由于本人在做一个网上打印网站,遇到了一个需求是“准确读取word文件页数,从而实现计费功能”,通过很长时间的学习、查资料后,终于解决了这个问题,因此把方法写出来,方便有同样需求的人少走弯路。 (本方法已在...

    由于本人在做一个网上打印网站,遇到了一个需求是“准确读取word文件页数,从而实现计费功能”,通过很长时间的学习、查资料后,终于解决了这个问题,因此把方法写出来,方便有同样需求的人少走弯路。

    首先需要感谢kookob博主的一篇博文(http://blog.csdn.net/kookob/article/details/45038563?locationNum=3&fps=1)对我帮助很大,但里面介绍的不够完善,故在此更加细化的讲解一下,希望对大家有所帮助。

    一、本人已经实验过,使用poi方法、java2word方法、itext方法等,都不能很好的读取word文件的页数,大部分问题都是读取的不准确。因为这里涉及到金钱问题,所以必须准确,所以才有了本文。

    二、本文思路是“pdf格式直接读取,word格式先转pdf再读取”,由于在word转pdf时需要一些时间,我们开发者如果单单用进度条,当word较大时,会造成转的太慢,所以我在我的网站(已上线)中,在用户“选择文件”后,后台开始转格式,此时不让用户看到,而去让用户做一些配置,比如打印的份数、是否双面打印等,用户设置完了,在最后的结算页面显示“正在读取格式”的进度条,然后再显示“正在计算金额”,这样用户体验会更好。

    三、下面将一步步实现准确读取word页数:

    3.1 准备工作:

    3.1.1开发环境:windows。请务必在windows操作系统中进行本操作,因为word需要在服务器上转为pdf。

    3.1.2 请在电脑上安装word,注意是安装word,不是安装wps。

    3.1.3 请在电脑上安装word转pdf的插件:“软件名:SaveAsPDFandXPS”,下载地址:http://download.csdn.net/download/tiandixuanwuliang/10006993

    3.1.4 请把系统需要调用的dll文件放置在java环境的jre的bin目录下,例如:‪E:\software\java\jre7\bin\jacob-1.18-x64.dll,(请注意自己电脑32位还是64位)下载地址:http://download.csdn.net/download/tiandixuanwuliang/10007003

    3.1.5 java环境jdk1.7

    3.2 word转pdf:

    3.2.1新建java工程,把jacob.jar添加到工程中,此jar包在3.1.4节下载的文件夹里面有。

    同时把jacob.jar文件拷贝一份放到C:/windows/system32下

    如图:


    3.2.2Word2PdfUtil.java代码如下:

    package testJavaReadWordpage;
    
    import java.io.File;
    import java.io.IOException;
    
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Dispatch;
    
    public class Word2PdfUtil {
    
    	static final int wdDoNotSaveChanges = 0;// 不保存待定的更改。
    	static final int wdFormatPDF = 17;// word转PDF 格式
    
    	public static boolean word2pdf(String source, String target) {
    		System.out.println("Word转PDF开始启动...");
    		long start = System.currentTimeMillis();
    		ActiveXComponent app = null;
    		try {
    			app = new ActiveXComponent("Word.Application");
    			app.setProperty("Visible", false);
    			Dispatch docs = app.getProperty("Documents").toDispatch();
    			System.out.println("打开文档:" + source);
    			Dispatch doc = Dispatch.call(docs, "Open", source, false, true).toDispatch();
    			System.out.println("转换文档到PDF:" + target);
    			File tofile = new File(target);
    			if (tofile.exists()) {
    				tofile.delete();
    			}
    			Dispatch.call(doc, "SaveAs", target, wdFormatPDF);
    			Dispatch.call(doc, "Close", false);
    			long end = System.currentTimeMillis();
    			System.out.println("转换完成,用时:" + (end - start) + "ms");
    			return true;
    		} catch (Exception e) {
    			System.out.println("Word转PDF出错:" + e.getMessage());
    			return false;
    		} finally {
    			if (app != null) {
    				app.invoke("Quit", wdDoNotSaveChanges);
    			}
    		}
    	}
    
    }
    
    注意:请在e盘下放一个test.doc的word文件,经过上面代码,转换成功显示如下:


    3.3开始读取pdf:

    3.3.1先请导入java读取pdf文件页码的jar,下载地址:http://download.csdn.net/download/tiandixuanwuliang/10007010

    3.3.2代码如下:

    package testJavaReadWordpage;
    
    import java.io.IOException;
    
    import com.itextpdf.text.pdf.PdfReader;
    
    public class GetPdfpage {
    	public static int getPdfPage(String filepath){
    		int pagecount = 0;	
    		PdfReader reader;
    		try {
    			reader = new PdfReader("e:\\test1.pdf");
    			pagecount= reader.getNumberOfPages(); 
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		System.out.println(pagecount);
    		return pagecount;
    	}
    }
    注:读取成功如下:


    3.4总结:利用java准确读取word页码,采用先把word转为pdf,再读取pdf页码的方式,经过测试,本方法得到的word页码准确率为100%

    【项目工程】:http://download.csdn.net/download/tiandixuanwuliang/10007015

    注:虽说代码看起来不难,但是本人也是研究了大半个月才找出了这个方法,其中下载了很多无用的资源,尝试了很多方法,故本文中有些工具、工程都设置了下载分数,也恳请大家理解,希望大家多多支持,本人将尽己所能写出更好的博文。

    四、如果有错误,请看下面:

    4.1如果报错:java.lang.UnsatisfiedLinkError: no jacob-1.14-x86 in java.library.path说明是jacob.dll文件错误,可能是位数错误,请把64位的换成32的;还有可能是jacob.dll放的位置有问题,具体请看:http://blog.csdn.net/li346985170/article/details/38365889

    4.2如果报错:Unsupported major.minor version 51.0,是jdk版本错误,请用jdk1.7及以上,具体方法请看:https://jingyan.baidu.com/article/bea41d437363bdb4c51be6e3.html

    4.3如果程序一直不能转成功,请检查,电脑是否安装了word,是否安装了转pdf的插件。另外,还可以,把jacod.all和jacod.jar两个文件在jre的bin、jdk的bin和C:\Windows\System32下到处放,但是要注意是32位还是64位(有时候调用可以有问题,本人对java底层不太熟悉,反正经过这些操作,就可以转pdf成功了)。

    4.4如果报错:Could not initialize class com.jacob.activeX.ActiveXComponent请把jacob.jar文件拷贝到C:/windows/System32中

    五、本人使用上述方法,成功准确地获取了word页码,本人能力有限错误地方,欢迎大家批评指正;或者大家有更好的办法,或者大家在操作过程中遇到任何问题,都欢迎在评论区留言。

    本文链接:http://blog.csdn.net/tiandixuanwuliang/article/details/71298406

    展开全文
  • 项目计划书编写说明

    千次阅读 2010-07-30 14:20:00
    摘要 本文主要对软件开发项目计划书的格式及主要内容的编写要点进行说明,对一些内容进行了举例说明。 关键词 项目、计划书、格式、编写说明 正文 一、项目计划书格式 根据《GB...

    本文转自网络。

    摘要
    本文主要对软件开发项目计划书的格式及主要内容的编写要点进行说明,对一些内容进行了举例说明。
    关键词
    项目、计划书、格式、编写说明
    正文
    一、项目计划书格式
    根据《GB8567-88计算机软件产品开发文件编制指南》中项目开发计划的要求,结合实际情况调整后的《项目计划书》内容索引如下:
    1 引言
    1.1 编写目的
    1.2 背景
    1.3 定义
    1.4 参考资料
    1.5 标准、条约和约定
    2 项目概述
    2.1项目目标
    2.2产品目标与范围
    2.3假设与约束
     2.4 项目工作范围
    2.5 应交付成果
    2.5.1 需完成的软件
    2.5.2 需提交用户的文档
    2.5.3 须提交内部的文档
    2.5.4 应当提供的服务
    2.6 项目开发环境
    2.7 项目验收方式与依据
    3 项目团队组织
    3.1 组织结构
    3.2 人员分工
    3.3 协作与沟通
    3.3.1 内部协作
    3.3.2 外部沟通
    4 实施计划
    4.1 风险评估及对策
    4.2 工作流程
    4.3 总体进度计划
    4.4 项目监控
    4.4.1 质量控制计划
    4.4.2 进度监控计划
    4.4.3 预算监控计划
    4.4.4 配置管理计划
    5 支持条件
    5.1 内部支持(可选)
    5.2 客户支持(对项目而言)
    5.3 外包(可选)
    6 预算(可选)
    6.1 人员成本
    6.2 设备成本
    6.3 其它经费预算
    6.4 项目合计经费预算
    7 关键问题
    8专题计划要点
    二、项目计划书的编写说明
    1 引言
    1.1 编写目的
    说明编写这份项目计划的目的,并指出预期的读者。
    作用:本节是为了说明编制“项目计划书”亦即本文档的意图和希望达到的效果。注意这里的“目的”不是“项目目标”,而是为了说明本文档的目的与作用。“项目目标”在2.1中说明。
    意义:使项目成员和项目干系人了解项目开发计划书的作用、希望达到的效果。开发计划书的作用一般都是“项目成员以及项目干系人之间的共识与约定,项目生命周期所有活动的行动基础,以便项目团队根据本计划书开展和检查项目工作。”
    例如可以这么写:为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,因此以文件化的形式,把对于在项目生命周期内的工作任务范围、各项工作的任务分解、项目团队组织结构、各团队成员的工作责任、团队内外沟通协作方式、开发进度、经费预算、项目内外环境条件、风险对策等内容做出的安排以书面的方式,作为项目团队成员以及项目干系人之间的共识与约定,项目生命周期内的所有项目活动的行动基础,项目团队开展和检查项目工作的依据。
    常见的问题:把项目本身的“项目目标”误作编制项目开发计划的目的。
    1.2 背景
    主要说明项目的来历,一些需要项目团队成员知道的相关情况。主要有以下内容:
    项目的名称:经过与客户商定或经过立项手续统一确定的项目名称,一般与所待开发的软件系统名称有较大的关系,如针对“XX系统”开发的项目名称是“XX系统开发”。
    项目的委托单位:如果是根据合同进行的软件开发项目,项目的委托单位就是合同中的甲方;如果是自行研发的软件产品,项目的委托单位就是本企业。
    项目的用户(单位):软件或网络的使用单位,可以泛指某个用户群。注意项目的用户或单位有时与项目的委托单位是同一个,有时是不一样的。如海关的报关软件、税务的报税软件,委托单位是海关或税务机关,但使用的用户或单位不仅有海关或税务机关,还包括需要报关、报税的企业单位。
    项目的任务提出者:本企业内部提出需要完成此项目的人员,一般是领导或商务人员;注意项目的任务提出者一般不同于项目的委托单位,前者一般是企业内部的人员。如果是内部开发项目,则两者的区别在于前者指人,后者指单位。
    项目的主要承担部门:有些企业根据行业方向或工作性质的不同把软件开发分成不同的部门(也有的分为不同事业部)。项目的特点就是其矩阵式组织,一般一个项目的项目成员可能由不同的部门组成,甚至可能由研发部门、开发部门、测试部门、集成部门、服务部门等等其中几个组成。需要根据项目所涉及的范围确定本项目的主要承担部门。
    项目建设背景:从政治环境上、业务环境上说明项目建设背景,说明项目的大环境、来龙去脉。这有利于项目成员更好地理解项目目标和各项任务。
    例句:根据《某部关于某建设工作的实施意见》精神,为了保障某建设工作的正常实施,必须加强监督考核,建立督查通报制度,某市某建设工作小组办公室把此项建设工作实施列入督查的重要内容,及时掌握进度,相关部门建立市某建设工作简报制度,及时反映全市某建设工作动态。
    目前对于某建设工作的工作主要采用计划部门手工编制年度计划、建设工作主管部门和建设工作实施单位联合手动编制进度计划,某建设工作单位手工上报建设工作进度情况的方式,而全市的建设工作有数百个,加上前期建设工作的数量和今后某市建设发展的趋势,建设工作的数量将越来越多,原来的工作模式已经越来越无法适应市委市政府的要求。因此,充分利用现代信息化、因特网的优势,建立“某市某建设工作信息报送反馈系统”,提高某建设工作信息报送反馈工作效率,提高信息的及时性、减轻各级相关工作人员的劳动强度是非常有必要和紧迫的任务。
    软件系统与其他系统的关系:说明与本系统有关的其他系统,说明它们之间的相互依赖关系。这些系统可以是这个系统的基础性系统(一些数据、环境等必须依靠这个系统才能运行),也可以是以这个系统为基础的系统,或者是两者兼而有之的关系、互相依赖的系统。例句:本系统中对外部办公部分如需要各个建设单位报送材料的子系统应当挂在市政府网站。
    软件系统与机构的关系:说明软件系统除了委托单位和使用单位,还与哪些机构组织有关系。例如一些系统需要遵守那些组织的标准、需要通过那些组织机构的测试才能使用等等、是否需要外包或与那些组织机构合作。
    1.3 定义
    列出为正确理解本计划书所用到的专门术语的定义、外文缩写词的原词及中文解释。注意尽量不要对一些业界使用的通用术语进行另外的定义,使它的含义和通用术语的惯用含义不一致。
    1.4 参考资料
    列出本计划书中所引用的及相关的文件资料和标准的作者、标题、编号、发表日期和出版单位,必要时说明得到这些文件资料和标准的途径。本节与下一节的“标准、条约和约定”互为补充,注意“参考资料”未必作为“标准、条约和约定”,因为“参考”的不一定是“必须遵守”的。常用资料如:
    本项目的合同、标书、上级机关有关通知、经过审批的项目任务书;
    属于本项目的其他已经发表的文件;
    本文档中各处引用的文件、资料,包括所要用到的软件开发标准。
    1.5 标准、条约和约定
    列出在本项目开发过程中必须遵守的标准、条约和约定。例如:相应的《立项建议书》、《项目任务书》、合同、国家标准、行业标准、上级机关有关通知和实施方案、相应的技术规范等。
    “参考资料”一般具有“物质”特性,一般要说明参照了什么,要说明在哪里可以获得;“标准、条约和约定”一般具有“精神”特性,一般是必须遵守的,不说明在哪里可以获得。参考资料的内容应该涵盖“标准、条约和约定”。

    2 项目概述
    2.1 项目目标
     设定项目目标就是把项目要完成的工作用清晰的语言描述出来,让项目团队每一个成员都有明确的概念。注意,不要简单地说成在什么什么时间完成开发什么什么软件系统或完成什么什么软件安装集成任务。注意“要完成一个系统”只是一个模糊的目标,它还不够具体和明确。明确的项目目标应该指出了服务对象,所开发软件系统最主要的功能和系统本身的比较深层次的社会目的或系统使用后所起到的社会效果。
    项目目标应当符合SMART原则:
    l S Specific 明确的陈述
    l M Measurable 可以衡量的结果
    l A Attainable 可以达成的目标
    l R Realistic 合理的,现实的或者说是能和实际工作相结合
    l T Trackable 可以跟踪的
    项目目标可以进行横向的分解也可以进行纵向的分解。横向分解一般按照系统的功能或按照建设单位的不同业务要求,如分解为第一目标、第二目标等等;纵向的分解一般是指按照阶段,如分解为第一阶段目标、第二阶段目标等等,或近期目标、中期目标、远期目标等等。阶段目标一般应当说明目标实现的较为明确的时间。一般要在说明了总目标的基础上再说明分解目标,可加上“为实现项目的总目标,必须实现以下三个阶段目标······”
    2.2 产品目标与范围
    根据项目输入(如合同、立项建议书、项目技术方案、标书等)说明此项目要实现的软件系统产品的目的与目标及简要的软件功能需求。对项目成果(软件系统)范围进行准确清晰的界定与说明是软件开发项目活动开展的基础和依据。软件系统产品目标应当从用户的角度说明开发这一软件系统是为了解决用户的那些问题。产品目标如“提高工作信息报送反馈工作效率,更好地进行工作信息报送的检查监督,提高信息的及时性、汇总统计信息的准确性,减轻各级相关工作人员的劳动强度。”
    2.3 假设与约束
    对于项目必须遵守的各种约束(时间、人员、预算、设备等)进行说明。这些内容将限制你实现什么、怎样实现、什么时候实现、成本范围等种种制约条件。
    假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成。如:“系统分析员必须在3天内到位”或“用户必须在8月8日前确定对需求文档进行确认”
    约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如人力资源的约束限制,就必须牺牲进度或质量等等。
    假设与约束是针对比较明确会出现的情况,如果问题的出现具有不确定性,则应该在风险分析中列出,分析其出现的可能性(概率)、造成的影响、应当采取的相应措施。
    2.4 项目工作范围
    说明为实现项目的目标需要进行那些工作。在必要时,可描述与合作单位和用户的工作分工。
    注意产品范围与项目工作范围的不同含义。
    产品范围界定:软件系统产品本身范围的特征和功能范围。
    工作范围界定:为了能够按时保质交付一个有特殊的特征和功能的软件系统产品所要完成的那些工作任务。
    产品范围的完成情况是参照客户的需求来衡量的,而项目范围的完成情况则是参照计划来检验的。这两个范围管理模型间必须要有较好的统一性,以确保项目的具体工作成果,能按特定的产品要求准时交付。
    2.5 应交付成果
    2.5.1 需完成的软件
    列出需要完成的程序的名称、所用的编程语言及存储程序的媒体形式。其中软件对象可能包括:源程序、数据库对象创建语句、可执行程序、支撑系统的数据库数据、配置文件、第三方模块、界面文件、界面原稿文件、声音文件、安装软件、安装软件源程序文件等等。
    2.5.2 需提交用户的文档
    列出需要移交给用户的每种文档的名称、内容要点及存储形式,如需求规格说明书、帮助手册等。此处需要移交用户的文档可参考合同中的规定。
    2.5.3 须提交内部的文档
    可根据《GB8567-88计算机软件产品开发文件编制指南》附录O:“文件编制实施规定的实例(参考件)”结合各企业实际情况调整制定《软件开发文档编制裁减衡量因素表》。根据《因素表》确定项目对应的项目衡量因素取值,以确定本项目应完成的阶段成果。将不适用于本项目的内容裁减,以减少不必要的项目任务和资源。
    根据因素取值列出本项目应完成的阶段成果,说明本项目取值所在的区间,将其他因素值区间删除。
    2.5.4 应当提供的服务
     根据合同或某重点建设工作需要,列出将向用户或委托单位提供的各种服务,例如培训、安装、维护和运行支持等。具体的工作计划如需要编制现场安装作业指导书、培训计划等,应当在本计划“4.3总体进度计划”中条列出。
    2.6 项目开发环境
    说明开发本软件项目所需要的软硬件环境和版本、如操作系统、开发工具、数据库系统、配置管理工具、网络环境。环境可能不止一种,如开发工具可能需要针对Java的,也需要针对C++的。有些环境可能无法确定,需要在需求分析完成或设计完成后才能确定所需要的环境。
    2.7 项目验收方式与依据
    说明项目内部验收和用户验收的方式,如验收包括交付前验收、交付后验收、试运行(初步)验收、最终验收、第三方验收、专家参与验收等等。项目验收依据主要有标书、合同、相关标准、项目文档(最主要是需求规格说明书)。
    3 项目团队组织
    3.1 组织结构
    说明项目团队的组织结构。项目的组织结构可以从所需角色和项目成员两个方面描述。所需角色主要说明为了完成本项目任务,项目团队需要哪些角色构成,如项目经理、计划经理、系统分析员(或小组)、构架设计师、设计组、程序组、测试组等等。组织结构可以用图形来表示,可以采用树形图,也可以采用矩阵式图形,同时说明团队成员来自于哪个部门。除了图形外,可以用文字简要说明各个角色应有的技术水平。
    注意虽然有一些通用的结构可以套用,但各种不同规模、不同形式的项目组织结构是不一样的。如产品研发项目可能就不需要实施人员(小组),但需要知识转移方面的人员(小组)。而软件编码外包的项目则不需要程序员,测试人员也可以适当地减少。
    3.2 人员分工
    确定项目团队的的每个成员属于组织结构中的什么角色,他们的技术水平、项目中的分工与配置,可以用列表方式说明,具体编制时按照项目实际组织结构编写。以下是一个示例。

    姓名 技术水平 角色 工作描述
    jet 高级软件工程师 项目管理、前期分析、设计 分析系统需求、项目计划、项目团队管理、检查进度
    James 工程师 分析、设计、编码 分析新功能、软件框架扩展、代码模块分配、数据库设计说明书
    green 测试 文档编写、测试 用户操作手册


    3.3 协作与沟通
    项目的沟通与协作首先应当确定协作与沟通的对象,就是与谁协作、沟通。沟通对象应该包括所有项目干系人,而项目干系人包括了所有项目团队成员、项目接口人员、项目团队外部相关人员等等。
    其次应当确定协作模式与沟通方式。沟通方式如会议、使用电话、QQ、内部邮件、外部邮件、QuickPlace、聊天室等等。其中邮件沟通应当说明主送人、抄送人,聊天室沟通方式应当约定时间周期。而协作模式主要说明在出现什么状况的时候各个角色应当(主动)采取什么措施,包括沟通,如何互相配合来共同完成某项任务。定期的沟通一般要包括项目阶段报告、项目阶段计划、阶段会议等
    3.3.1 项目团队内部协作
    本节说明在项目开发过程中项目团队内部的协作模式和沟通方式、频次、沟通成果记录办法等内容。
    3.3.2 项目接口人员
    应当说明接口工作的人员即他们的职责、联系方式、沟通方式、协作模式,包括:
    a、负责本项目同用户的接口人员;
    b、负责本项目同本企业各管理机构,如计划管理部门、合同管理部门、采购部门、质量管理部门、财务部门等的接口人员;
    c、负责本项目同分包方的接口人员。
    3.3.3 项目团队外部沟通与协作模式
    项目团队外部包括企业内部管理协助部门、项目委托单位、客户等等。本节说明在项目开发过程中项目团队内部与接口人员、客户沟通的方式、频次、沟通成果记录办法等内容。明确最终用户、直接用户及其所在本企业/部门名称和联系电话。明确协作开发的有关部门的名称、经理姓名、承担的工作内容以及工作实施责任人的姓名、联系电话。确定有关的合作单位的名称、负责人姓名、承担的工作内容以及实施人的姓名、联系电话。

    4 实施计划

    4.1 风险评估及对策
    识别或预估项目进行过程中可能出现的风险。应该分析风险出现的可能性(概率)、造成的影响、根据影响应该采取的对策,采取的措施。风险识别包括识别内在风险及外在风险。内在风险是指项目工作组能加以控制和影响的风险,如人事任免和成本估计等。外在风险指超出项目工作组等控制力和影响力之外的风险,如市场转向或政府行为等
    风险的对策包括:避免:排除特定危胁往往靠排除危险起源;减缓:减少风险事件的预期资金投入来减低风险发生的概率,以及减少风险事件的风险系数;吸纳:接受一切后果,可以是积极的(如制定预防性计划来防备风险事件的发生),也可以是消极的(如某些费用超支则接受低于预期的利润)。
    对于软件开发项目而言,在分析、识别和管理风险上投入足够的时间和人力可以使项目进展过程更加平稳,提高项目跟踪和控制的能力,由于在问题发生之前已经做了周密计划,因而对项目的成功产生更加充分的信心。
    软件开发项目常见预估的风险:
    1) 工程/规模/进度上的风险
    规模大,规模估算不精确甚至误差很大;就规模而言,用户要求交付期、费用很紧;预料外的工作(测试未完时的现场对应等);
    2) 技术上的风险
    使用新的开发技术、新设备等,或是新的应用组合,没有经验;是新的行业或业务,没有经验;性能上的要求很严;
    3) 用户体制上的问题
    用户管理不严,恐怕功能决定、验收不能顺利地完成(或者出现了延迟);或者恐怕功能会多次变更;与用户分担开发,恐怕工程会拖延(或者出现了延迟);用户或其他相关单位承担的工作有可能延误;
    4) 其它:应该包含此处没有、但据推测有风险的项目。
    4.2 工作流程
    说明项目采用什么样的工作流程进行。如瀑布法工作流程,原型法工作流程、螺旋型工作流程、迭代法工作流程,也可以是自己创建的工作流程。不同的流程将影响后面的工作计划的制定。必要时画出本项目采用的工作流程图及适当的文字说明。
    4.3 总体进度计划
    这里所说的总体进度计划为高层计划。作为补充,应当分阶段制定项目的阶段计划,这些阶段计划不在这份文档中,当要以这份总体计划为依据。
    总体进度计划要依据确定的项目规模,列表项目阶段划分、阶段进度安排及每阶段应提交的阶段成果,在阶段时间安排中要考虑项目阶段成果完成、提交评审、修改的时间。
    对于项目计划、项目准备、需求调研、需求分析、构架设计或概要设计、编码实现、测试、移交、内部培训、用户培训、安装部署、试运行、验收等工作,给出每项工作任务的预定开始日期、完成日期及所需的资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(里程碑)。
    例如

    起止时间点 责任人及所需资源 完成工作 应提交成果 检查点/里程碑
             
             


    需求评审
    设计评审
    表格中检查点/里程碑等阶段划分为举例,实际作业阶段划分、阶段成果等请根据项目需要确定。
    制定软件项目进度计划可以使用一些专门的工具,最常用的是Microsoft的Project作为辅助工具,功能比较强大,比较适合于规模较大的项目,但无法完全代替项目计划书,特别是一些主要由文字来说明的部分。小规模的项目可简便地使用EXCEL作为辅助工具。关于如何使用这些工具不在此作详细说明。
    制定软件项目进度计划应当考虑以下一些因素:
    1)对于系统需求和项目目标的掌握程度。如开始时对于系统需求和项目目标只有比较数的了解,就只能制定出比较粗的进度计划,等到需求阶段或设计阶段结束,就应该进一步细化进度计划。
    2)软件系统规模和项目规模,这两个不是一个概念。软件系统规模往往是从功能点的估算或其他估算方式得来的,而项目规模还要考虑对文档数量与质量的要求,使用的开发工具、新技术、多少复用、沟通的方便程度、客户方的情况、需要遵守的标准规范等等等等。例如,完成一个大型的系统,在一定的时间内一个人或几个人的智力和体力是承受不了的。由于软件是逻辑、智力产品,盲目增加软件开发人员并不能成比例地提高软件开发能力。相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理方面的问题将更为严重。
    3)软件系统复杂程度和项目复杂程度:和软件系统规模和项目规模一样,软件系统的复杂程度主要是考虑软件系统本身的功能、架构的复杂程度,而项目的复杂程度主要是指项目团队成员的构成、项目任务的复杂程度、项目干系人的复杂程度、需求调研的难易程度,多项目情况下资源保障的情况,等等等等。软件系统的规模与软件系统的复杂程度未必是成比例的关系;同样项目的规模与项目的复杂程度未必是成比例的关系。
    4)项目的工期要求,就是项目的紧急程度。有些项目规模大,却因为与顾客签订了合同,或者为了抢先占领市场,工期压缩得很紧,这时就要考虑如何更好地合理安排进度,多增加人选多采用加班的方式是一种万不得已的选择。增加人选除了增加人的成本外必定会增加沟通的成本(熟悉项目任务所需要的时间);加班如果处理不好会造成情绪上的问题,也可能会因为过于忙碌而无法顾及质量,造成质量的下滑。
    5)项目成员的能力。这些能力包括项目经理的管理能力,系统分析员的分析能力、系统设计人员的设计能力、程序员的编码能力、测试人员的测试能力,以及企业或项目团队激发出这些能力的能力。从另外一个角度看还有总体上对客户行业业务的熟悉程度;对于建模工具、开发工具、测试工具等技术的掌握程度;企业内部对行业业务知识和主要技术的知识积累。
    4.4 项目控制计划
    4.4.1 质量保证计划
    执行质量评审活动,对过程质量进行控制。规模较大的项目应当单独编写《软件开发项目质量计划》。根据GB/T 12504 计算机软件质量保证计划规范,内容包括:
    l 引言(本章节包括质量计划的目的、定义、参考资料)
    l 管理(描述负责软件质量管理的机构、任务及其相关的职责)
    l 文档(列出在该软件的开发、验证与确认以及使用与维护等阶段中需要编制的文档,并描述对文档进行评审与检查的准则)
    l 标准、条例和约定(列出软件开发过程中要用到的标准、条例和约定,并列出监督和保证执行的措施)
    l 评审和检查(规定所要进行的技术和管理两个方面的评审和检查工作,并编制或引用有关的评审和检查规程,以及通过与否的技术准则。至少要进行软件需求评审、概要设计评审、软件验证与确认评审、软件系统功能检查、程序和文档物理检查)
    l 软件配置管理(编制有关配置管理条款,或在“4.4.4 配置管理计划”中说明,或引用按照《GB/T 12505 计算机软件配置管理计划规范》单独制定的文档)
    l 工具、技术和方法(指明用于支持特定软件项目质量管理工作的工具、技术和方法,指出它们的目的和用途)
    l 媒体控制(说明保护计算机程序物理媒体的方法和设施,以免非法存取、意外损坏或自然老化)
    l 对供货单位的控制(供货单位包括项目承办单位、软件销售单位、软件开发单位。规定对这些供货单位进行控制的规程,从而保证项目承办单位从软件销售单位购买的、其他开发单位开发的或从开发单位现存软件库中选用的软件能满足规定的需求。)
    l 记录的收集、维护和保存(指明需要保存的软件质量保证活动的记录,并指出用于汇总、保护和维护这些记录的方法和设施,并指明要保存的期限)
    4.4.2 进度控制计划
    (可直接引用以下描述或根据项目情况制定本节内容)
    本项目的进度监控执行本企业《项目管理规范》,由本企业过程控制部门如质量管理部统一进行监控,并保留在监控过程中产生的日常检查记录。
    4.4.3 预算监控计划
    说明如何检查项目预算的使用情况。根据项目情况需要制定。
    4.4.4 配置管理计划
    编制有关软件配置管理的条款,或引用按照GB/T 12505单独制订《配置管理计划》文档。在这些条款或文档中,必须规定用于标识软件产品、控制和实现软件的修改、记录和报告修改实现的状态以及评审和检查配置管理工作等四方面的活动。还必须规定用以维护和存储软件受控版本的方法和设施;必须规定对所发现的软件问题进行报告、追踪和解决的步骤,并指出实现报告、追踪和解决软件问题的机构及其职责。
    根据《GB/T 12505 计算机软件配置管理计划规范》,软件配置管理计划内容如下:
    l 引言(本章节包括质量计划的目的、定义、参考资料)
    l 管理(描述负责软件配置管理的机构、任务、职责及其有关的接口控制。)
    l 软件配置管理活动(描述配置标识、配置控制、配置状态记录与报告以及配置检查与评审等到四方面的软件配置管理活动的需求。)
    l 工具、技术和方法(指明为支持特定项目的软件配置管理所使用的软件工具、技术和方法,指明它们的目的,并在开发者所有权的范围内描述其用法)
    l 对供货单位的控制(供货单位是指软件销售单位、软件开发单位或软件子开发单位。必须规定对这些供货单位进行控制的管理规程,从而使从软件销售单位购买的、其他开发单位开发的或从开发单位现存软件库中选用的软件能满足规定的软件配置管理需求)
    l 记录的收集、维护和保存(指明要保存的软件配置管理文档,指明用于汇总、保护和维护这些文档的方法和设施,并指明要保存的期限)

     5 支持条件
    说明为了支持本项目的完成所需要的各种条件和设施。
    5.1 内部支持
     逐项列出项目每阶段的支持需求(含人员、设备、软件、培训等)及其时间要求和用途。
    例如,设备、软件支持包括客户机、服务器、网络环境、外设、通讯设备、开发工具、操作系统数据库管理系统、测试环境,逐项列出有关到货日期、使用时间的要求。
    5.2 客户支持
     列出对项目而言需由客户承担的工作、完成期限和验收标准,包括需由客户提供的条件及提供时间。
    5.3 外包(可选)
    列出需由外单位分合同承包者承担的工作、完成时间,包括需要由外单位提供的条件和提供的时间。
    6 预算
    6.1 人员成本
    列出产品/项目团队每一个人的预计工作月数。
    列出完成本项目所需要的劳务(包括人员的数量和时间)
    劳务费一般包括工资、奖金、补贴、住房基金、退休养老金、医疗保险金
    6.2 设备成本
    设备成本包括:原材料费,设备购置及使用费
    列出拟购置的设备及其配置和所需的经费
    列出拟购置的软件及其版本和所需的经费
    使用的现有设备及其使用时间
    6.3 其它经费预算
    列出完成本项目所需要的各项经费,包括差旅费、资料费、通行费、会议费、交通费、办公费、培训费、外包费等,包括:
    (1) 差旅费(旅费、出租)(含补贴)
    (2) 资料费(图书费、资料费、复印费、出版费)
    (3) 通信费(市话长话费、移动通信费、上网费、邮资)
    (4) 会议费(鉴定费、评审会、研讨费、外事费等)
    (5) 办公费(购买办公用品)
    (6) 协作费(业务协作招待费、项目团队加班伙食费)
    (7) 培训费(培训资料编写费、资料印刷费、产地费、设备费)
    其他(检测、外加工费、维修费、消耗品、低易品、茶话会等)
    6.4 项目合计经费预算
    列出完成本项目需要的所有经费预算(上述各项费用之和)。
    7 关键问题
    逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目成败的影响。
    8专题计划要点
    专题计划也就是因为项目的需要在本文档之外独立建立的计划,本节说明本项目开发中需要制定的各个专题计划的要点。专题计划可能包括分合同计划、分项目计划、项目团队成员培训计划、测试计划、安全保密计划、质量保证计划、配置管理计划、用户培训计划、系统安装部署计划。
    参考文献
    《项目管理—计划、进度和控制的系统方法》(第7版)Harold Kerzner(电子工业出版社,杨爱华等译);
    《计算机软件工程规范国家标准汇编2003》中国标准出版社;
    《PMBOK-2000》PMI;
    《PMBOK-2004》PMI;
    《成功的项目管理》Trevol L Young(泰晤士报商业版,严鸿娟译);
    《成功的项目管理》Jack Gido & James P. Clements(21世纪管理经典教材系列,张金城等译);
    《如何做好项目管理》Stanley E. Portny(IDG新经济工商实务傻瓜丛书,宁俊等译);
    《管理软件开发项目》(第二版)Neal Whitten(软件项目管理系列丛书,孙艳春等译);
    《IT项目管理》Kathy Schwalbe(项目管理译丛 王金玉等译);
    《高级项目管理基础》(信息产业部计算机信息系统集成高级项目经理培训讲义)

    本文完成日期:2005年4月28日
    本文作者邮箱:luls@dragonsoft.com.cn或lulsnet@21cn.com
    欢迎指正。

    展开全文
  • 软件需求说明书 (1)

    千次阅读 2018-05-23 16:23:58
    而且要完整定义和描述各项功能的输入/处理/控制/和响应的输出(包括各种形式的打印等)软件需求说明书将业务部门提交的需求文档中的用户需求(业务需求)转换为具体的技术实现方案.软件需求说明书是设计/开发/测试/验收...
  • 将要给大家介绍的评估指标有:准确率、精准率、召回率、F1、ROC曲线、AUC曲线。 机器学习评估指标大全 所有事情都需要评估好坏,尤其是量化的评估指标。 高考成绩用来评估学生的学习能力 杠铃的重量用来评估...
  • 工作范围说明书与需求规格说明

    千次阅读 2012-07-18 21:42:13
    在做项目的过程中,经常在说工作范围说明书与需求说明书,但是这两者的区别与作用是什么呢? 首先,工作范围说明书简单地说,就是对项目干系人有约束作用的、为了说明项目工作范围的说明文件。项目工作的范围就是指...
  • django 静态文件之配置说明

    千次阅读 2016-08-13 23:08:18
    django 静态文件的配置说明有关静态文件的配置具体说明,查看官方文档:静态文件的链接那么我主要是将STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS说明一下而MEDIA_ROOT, MEDIA_URL的机制与之完全一样,更准确来说,...
  • 关于招标说明书的撰写要点

    千次阅读 2014-06-09 17:48:38
    如何撰写好标书,写招标说明书时,应该注意哪些方面,这是甲方招标说明书撰写人的职责。 在整个资源采购过程中,招标文件担负着两大职能: 一是将招投标当事人的买卖行为纳入法律法规及社会化管理范围内; 二是...
  • 旨在探究不同的改进策略对分类准确率的影响,如何一步步得提高准确率 一、问题描述 当我们在处理图像识别或者图像分类或者其他机器学习任务的时候,我们总是迷茫于做出哪些改进能够提升模型的性能(识别率、分类...
  • GDAL计算栅格图像统计值相关说明

    万次阅读 热门讨论 2013-01-11 23:15:00
    下面分别对怎么使用GDAL来计算这些值做一个简单的说明,希望对大家有用。 下面将分为三个部分进行说明,分别是:直方图统计、极值统计、均值标准方差统计。二、 统计直方图 关于直方图,这里不多介绍。这里主要对...
  • JMH使用说明

    万次阅读 2018-03-01 12:22:18
    JMH使用说明一、概述JMH,即Java Microbenchmark Harness,是专门用于代码微基准测试的工具套件。何谓Micro Benchmark呢?简单的来说就是基于方法层面的基准测试,精度可以达到微秒级。当你定位到热点方法,希望...
  • RDLC报表打印控件使用说明

    千次阅读 2009-10-05 11:58:00
    RDLC报表打印控件使用说明 由于,有个项目使用RDLC来展示、打印报表,鉴于微软的RDLC报表不是很成熟,在使用RDLC报表的时候碰到了一系列问题,其中比较突出的就是报表打印问题,主要体现为3个方面: 1)用户不能...
  • 准确率召回率

    万次阅读 2012-05-18 10:13:25
    最近一直在做相关推荐方面的研究与应用工作,召回率与准确率这两个概念偶尔会遇到, 知道意思,但是有时候要很清晰地向同学介绍则有点转不过弯来。 召回率和准确率是数据挖掘中预测、互联网中的搜索引擎等经常涉及...
  • 销售管理系统数据库设计说明

    千次阅读 2014-11-12 16:58:32
    本文档为北大青鸟ACCP软件工程师培训无锡培训中心 SI50B 班学员,第一学期毕业设计项目(《销售管理系统》)的数据库设计说明书,具体描述《销售管理系统》的数据库的设计,用于指导该系统在数据库存储各方面的内容...
  • 谷歌GDELT数据说明

    万次阅读 热门讨论 2017-09-22 16:13:23
    本文主要介绍GDELT数据以及对其58个字段进行说明,数据的下载代码会放在我的另一篇文章中,或者也可以直接在我的代码片中下载。之前因为学习需要下载了谷歌的GDELT数据,在国内也叫疙瘩汤,GDELT...
  • 前几天,帮朋友处理一个深度学习网络问题,具体场景是这样的,总共有12张,分为3个类别,同时作为训练集跟验证集,训练集跟验证集的预处理一样,使用的模型为ResNet50,最后的激活函数为softmax。使用keras框架,...
  • Android 4.1 Surface系统变化说明

    万次阅读 2012-07-18 18:11:21
    终于,JB干出了一个VSyncThread,它是一个线程,用来定时回调以模拟硬件VSYNC事件(这个时间必须比较准确,所以线程优先级必须比较高)。看,这又是一个铁证,说明JB不适合在单核CPU上跑(我觉得双核也可能不太适合...
  • 目录简述准确率、召回率、F1AP和mAP(mean Average Precision)ROC和AUC 简述 机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy)...
  • 图书馆管理系统需求规格说明

    万次阅读 多人点赞 2014-11-06 13:07:14
    软件需求规格说明书 文档编号:QY2014007-LY7 文档信息:图书馆信息管理系统软件需求规格说明书 文档类别:管理文档 密 级:机密 版本信息:1.0 建立日期:2014-05-20   创 建 人: 审 核 者: 批 准 人: ...
  • sklearn计算准确率、精确率、召回率、F1 score

    万次阅读 多人点赞 2019-03-06 16:27:26
    目录混淆矩阵准确率精确率召回率 分类是机器学习中比较常见的任务,对于分类任务常见的评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 score、ROC曲线(Receiver Operating ...
  • ◆获取到了经纬度之后,就可以通过一些地图API(百度地图、谷歌地图、高德地图)来具体进行定位 ◆获取经纬度 使用html5中的定理定位API获取经纬度 ◆获取经纬度后使用百度地图API 普通地图&全景图 ◆一个查询全球...
  • 第一步:先进行训练,得到一个初始的结果 ...结果分析:首先我们观察训练 loss(目标函数值)变化,刚开始 loss 从 200 不断减小到接近 0,但是...然后观察训练集和验证集的准确率,发现训练集准确率接近于 1,验
  • LogisticRegression - 参数说明

    万次阅读 多人点赞 2017-10-25 16:06:19
    逻辑回归参数详细说明参数说明如下: penalty:惩罚项,str类型,可选参数为l1和l2,默认为l2。用于指定惩罚项中使用的规范。newton-cg、sag和lbfgs求解算法只支持L2规范。L1G规范假设的是模型的参数满足拉普拉斯...
  • wow常用宏及说明

    千次阅读 2019-09-11 17:02:17
    常用宏及说明 施放法术与物品使用 命令 说明 举例 /cast 施放法术 /cast 变形术 /p 我羊了%t!谁打谁扛着哈! /aftercast 在某技能后执行一条宏命令 /aftercast /p 请队友点门,把懒猪%t揪过来! /cast ...
  • 这套简洁实用的资金账务系统,在我看来,非常能说明,使我想阐述一个观点,“定义和分析问题,往往比解决具体问题更重要”。 说道“观点”,自然应该归纳到我的“雷观”系列中,回头看一看时间,上一篇却是在半年...
  • libsvm参数说明

    万次阅读 2012-05-06 18:54:54
    libsvm在训练model的时候,有如下参数要设置,当然有默认的参数,但是在具体应用方面效果会大大折扣。 Options:可用的选项即表示的涵义如下  -s svm类型:SVM设置类型(默认0)  0 -- C-SVC  1 --v-SVC  2 – 一...
  • 详细设计说明

    千次阅读 2014-07-18 19:48:51
    详细设计说明书   目录 1引言  2 1.1编写目的... 2 1.2背景... 2 1.3定义... 2 1.4参考资料... 2 2程序系统的结构  2 3程序1(标识符)设计说明  2 3.1程序描述... 3 3.2功能... 3 3.3性能...
  • 准确率,召回率,F值,ROC,AUC

    万次阅读 2016-04-21 22:15:03
    度量表 1.准确率  (presion) p=TPTP+FP 2.召回率  (recall)r=TPTP+FN    3. F值为p和r的调和平均值   F=2rpp+r   4.ROC曲线 对于0,1两类分类问题,一些分类器得到的结

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 238,556
精华内容 95,422
关键字:

具体准确的说明了