第一章 总 则
第一条 软件代码(程序)管理办法制定的意义。加强知识产权的管理,加强个人与企业或公司利益关系维护,加强企业或公司在市场中的竞争力,加强企业或公司对市场认识能力,建立企业规范化管理秩序,使得企业或公司长期性发展能够得到保证。
第二条 软件代码(程序)所指的范围。软件代码(程序)是指公司所有投入(包括资金投入的购买软件代码、程序,或者人力投入的开发设计程序。全文有效。)研发、开发、实验的程序或软件代码部分,包括:已经采用的产品或未采用部分、源代码或可执行程序、系统程序、设备驱动程序和应用程序,以及所有相关的设计文件和工程文件等;
第三条 软件代码(程序)管理的内涵。保证企业或公司开发设计、生产的正常维持,保障企业或公司的长期发展,以保障企业或公司员工的长期稳定的工作环境,建立具体的管理办法,明确企业或公司与个人法律责任、经济利益关系,同时,出现了一些违章或纠纷时提供法律依据。
第四条 软件代码(程序)的所属权。凡是公司投入研发、开发、实验的程序或软件代码,按照国家有关法制规定,其属于公司所属权,公司可以进行各种商业行为的使用。个人是受薪并提供环境从事此项工作,在其工作期间进行所有的开发、设计的软件或程序,没有任何支配的权利,包括复制给他人使用。个人拥有监督和指控非所属权企业、公司或个人盗用的权利,个人拥有可以对自己所开发、设计的程序的保存权利。企业或公司的利益是对每一个员工利益的保证。
第五条 软件代码(程序)的所属权期限。一般情况下,软件代码(程序)的所属权期限为4年,如果是属于公司所经营的主托产品、公司开发的未来性产品,或者公司特别提出安全性要求的,公司其所属权期限可以更长,甚至可以认为或规定为根本不允许泄漏。凡是泄漏软件代码(程序)者,应承担所有法律责任,包括经济上的罚款或赔偿。
第六条 软件代码(程序)所属权的版本控制。凡公司投入研发、设计、实验的软件代码(程序),新的版本替代旧的版本,或者新软件、程序替代旧的软件、程序,其旧版本或旧软件代码(程序)同样具备有所属权,同样具备有法律保证的权利。
第七条 公司管理办法制约。如果国家法律法规作出明确的条定,我们可以参照执行。其前提条件是必须保证公司的一切利益。公司作出规定的具体条定是公司管理的基本依据,受到法律保证。当然,公司制定管理办法也必须依照国家有关法律法规,否则无效。
第八条 软件代码(程序)被认为泄漏、盗用或侵权的基本条件。凡认为公司软件的泄漏、盗用或侵权应当包括功能性、软件代码(程序)相同、开发设计人相同、安全控制编号或CDKEY属我公司发放、产品描述信息或说明书与我公司一致等特征,都属于泄漏、盗用或侵权行为。
第二章 软件代码(程序)以及资料
第九条 软件代码(程序)以及资料的说明。对于一个软件企业或公司来说,应当包括有自己研发、设计产品,承接工程项目,实验性或原型研发性的设计,以及未来性研发工作。同样存在从实验性原型研发到产品定性设计,也同样存在着工程项目策划到具体产品研发、设计,也同样存在着未来性的详细设计和完整性设计。从认识到设计并进行定型的设计可能是分阶段进行,也可能是从立项直接到最终的产品。因此,我们只能抓住特征性描述,不可能对综合性过程描述。
第十条 实施的工程项目软件代码(程序)以及资料。实施工程项目是指承接用户需求设计或者协作用户实现用户需求产品。实施工程项目应当包括用户需求、需求分析、temp设计、实施计划、实施工程文件、实施过程控制文件、用户操作使用手册、培训计划、培训材料、验收文件、软件代码(程序)、程序测试文件、运行文件等。
第十一条 产品研发、设计软件代码(程序)以及资料。研发、设计产品是指公司发展规划进行立项开发、设计产品,也包括承接的工程项目中单独划分出来的一个软件设计。产品研发、设计软件代码(程序)以及资料包括有可行性报告、立项文件、设计文件、设计过程控制文件、商业策划文件、产品使用说明,可复用性函数描述手册、测试文件、软件代码(程序)、运行状况检测文件。
第十二条 实验软件代码(程序)以及资料。实验性软件设计是指原型研发过程中进行实验性设计,原型模型设计合理性验证设计、新技术探索设计等。实验理由文件、实验环境文件、实验方法文件、测试方法文件、实验结果报告、可复用性函数说明文挡、软件代码。
第十三条 未来性研发文挡资料。未来性研发包括主托产品未来性规划研究、新技术与未来性产品发展研究,综合性技术研究等。文挡资料包括有技术文献(研究的技术依据)、市场发展动态信息、研究具体目标、研究结果。
第三章 软件代码(程序)以及资料的验收
第十四条 交接验收的具体内容。完成一个工程项目、完成一个产品开发、完成一个实验项目、或完成一个未来性方案设计,都必须提交整个任务的所有文件。按照第二章描述,验收具体内容有完整性、功能性、正确性、逻辑性、适用性、安全性、稳定性、扩展性、可维护性、可复用性。
第十五条 文挡管理验收的具体内容。企业或公司生产资料积累和管理是一个非常重要的环节,不仅提高公司价值,而且提高公司的生产能力和生产品质都有主要的作用。文挡管理方面的验收主要有可读性、可保管性、归类封装的合理性、编号一致性。
第十六条 综合性验收具体内容。包括有可生产保证性、可复用的保证性、管理安全性、长期保存保证性。
第四章 软件代码(程序)以及资料可复用性办法
第十七条 详细的可复用性文件描述。从事软件代码设计人员或消化整理公开源码,都应编写详细功能函数描述,提供可复用性的基本条件。
第十八条 提供非常方便组织起来的可复用性的include文件。
第十九条 尽量提供更多的方便使用函数的例程资源、帮助信息。
第二十条 部署复用性资源办法。
1、 linux环境
1) 部署结构
复用性资源 |
usr |
local |
include |
lib |
项目名称1 |
项目名称2 |
项目名称3 |
项目名称1
|
项目名称2
|
项目名称3
|
men |
项目名称1
|
项目名称2
|
项目名称3
|
2) 环境描述
PATH=($PATH):/usr/local/include/项目名称
export PATH
2、 windows环境
1) 部署结构
复用性资源 |
include |
lib |
项目名称1 |
项目名称2 |
项目名称3 |
项目名称1
|
项目名称2
|
项目名称3
|
2) 部署环境
采用不同的工具有不同的定义环境方法,我们必须按照开发工具定义环境方法,进行定义,保证正常编译。
第五章 软件代码(程序)以及资料安全性控制
第二十一条 建立项目参与人员的管理信息。
第二十二条 建立借阅资料人员管理信息。
第二十三条 建立所有资料的管理信息。
第二十四条 建立核心内容和一般性技术资料分别管理。
第六章 公司员工违反规定的制裁
第二十五条
第七章 软件代码(程序)管理办法生效
附件:可复用性软件代码(程序)的选择和检查办法
选择并检测可复用性的功能函数,纳入我们资源库中,提供更多的资源服务,是每一个企业或公司应当开展的、非常必要的、非常有意义的一项工作。主要优点有:
l 解决复杂功能设计的简单化实现;
l 解决重复开发而浪费时间、资金;
l 解决软件开发的稳定性;
l 约束企业或公司产品设计模式规范;
l 解决实现功能统一的整体形象效果;
l 解决实现功能的效率可以预见性;
l 解决一些开发技术障碍;
l 提供一种开发交流方法;
1、封装性检查
程序封装讨论三个方面问题。第一是采用对象化封装还是采用ANSI C封装;第二是数据结构封装;第三是函数引用。
对于对象化程序,我们必须讨论继承、派生、原生等问题,同时,我们也必须讨论外部引用、调用等问题,保证程序移植后能够正常运行。
对于采用ANSI C设计的程序,我们尽量避免使用外部变量的问题,防止环境变化导致的不可预见性错误。
数据结构封状是评价一个程序设计的最基本条件,如果数据结构设计合理,可以大大提高工作效率;减少程序代码。因此,合理的定义数据结构是编写程序工作非常重要的事。主要检查名称定义合理、数据信息项完整并有一定扩展性保证,必须保证符合逻辑。
函数引用是指函数引用的变量,一个高质量程序代码,定义引用变量的数量和合理性是致关重要的。如果我们从一个对偶、聚集函数来审视引用的正确性和合理性就很容易明白了。
2、抽象性描述
抽象性描述是指程序刻画一个事物的正确性和准确性问题。比如我们对一个设备进行操作,那么我们需要使用哪些接口函数实现对这个设备操作的所有功能,能够粼粼尽致的反映出设备的功能。使用最少的接口函数,能够完整的描述一个事物的本质。
3、功能性检查
将抽象化的描述采用一个一个具体函数实现,因此,每个函数具备有唯一的、独立功能性描述。其检查功能的正确性和安全性。
4、逻辑性描述
逻辑性包含有抽象化关系和程序自身描述逻辑。抽象花逻辑关系是指我们抽象一个事物用聚集函数描述这个事物,那么存在着这些聚集的函数与函数间存在一种关系,使用序列、数据交换序列等逻辑关系。
程序自身描述逻辑是指描述功能清晰,并具有非常强的条理性,实现方法明确。
5、完整性检查
完整性包含抽象化描述的完整性和具体每一个函数描述的完整性。
6、效率性检查
使用简单高效的设计模式,使用高效简单的算法,使用合理的数据结构描述,使用唯一性描述等是实现高效率程序的关键。
7、奇偶性、聚集性检查
主要是抽象化思考与保证。一般而言,我们描述一个事物是要从多个方面或方位进行描述,往往仅仅从一个角度描述是很难描述完整的,或者说描述不够清晰,功能性不强。采用多功能函数描述,可以很好解决代码唯一性问题和完整性性描述问题。
8、移植性检查
检查程序使用类库、函数,外部引用,以及与硬件关系密切等问题,避免存在着根本性的不可移植使用或移植条件的存在。
9、稳定性、安全性检查
检查软件代码(程序)的编写质量、检查结果、使用驻留函数的处理方法,以及引用或建立容错性编程的正确性和完整性。一个高稳定性、高安全性的软件开发必须有一个完整性、合理性的容错处理过程。
10、 资源浪费检查
11、 提供帮助信息、例程说明检查
12、 产生驻留垃圾检查