发布时间:2022-06-06 06:13:00
序言:写作是分享个人见解和探索未知领域的桥梁,我们为您精选了8篇的软件设计开发研究样本,期待这些样本能够为您提供丰富的参考和启发,请尽情阅读。
关键词:软件开发;数据库设计;理论;实践
中图分类号:TP393 文献标识码:A文章编号:1007-9599 (2011) 16-0000-02
Database Design Theory Practice Study in Software Development
Jiang Ke
(Jiangxi Provincial Rural Credit Cooperatives,Nanchang330039,China)
Abstract:As an application of a strong discipline,database technology is increasingly applied in wide range of software development,software development,database design theory and practice more and more research-oriented industry.In this paper,the main problem of database design and design theory are described to introduce several principles of database design,and database design steps and some examples of analysis.
Keywords:Software development;Database design;Theory;Practice
我们知道,数据库的设计工作在自动化或交互式的半自动化设计上还存在很大的欠缺。除了关系型数据库外,目前尚缺乏一套完善的数据库设计理论、方法和工具。数据库今后的研究方向或焦点将是数据库设计理论与实践研究。本文就软件开发中数据库设计理论实践问题主要介绍了以下几个方面的内容。
一、数据库设计及设计理论概述
在整个软件开发过程中,一般会分为五个阶段,即需求分析、软件设计、软件编码、软件测试和对软件的维护。在具体的设计阶段,首要的任务就是设计出模块的程序流程、设计出算法和数据结构,次要的任务是对数据库进行设计。因此,可以看出,数据库的设计在整个软件开发过程中占据着十分重要的地位。通常,数据库的设计主要是指根据不同用户的不同需求,在一定的数据库管理系统的基础上来实现通过设计出的数据库的结构并建立起数据库的过程。它是建立数据库及其应用系统的一种很强的技术,所以,数据库设计是信息系统的开发和建议中的一项核心技术。
对于数据库的设计理论大致如下:数据库的组成=实体+关系;实体:用主键来表示;关系:用外键来表示;范式:指导如何找实体;关系:指导如何将各实体联系起来;通俗的理解就是通过范式建立起各个表,而表中只有主键,即只能找一个个单独的实体,实体之间没有关联。通过关系将每一个单一的实体联系起来,才会产生外键。
二、数据库设计的几个原则
(一)命名的规范化。我们知道,不一样的数据库产品对于对象的命名是有不同要求的。在数据库设计中,对于各对象的命名以及在编写后台程序的代码上都应采用大小写的字母形式,命名长度不超过30个字符。
(二)慎用游标。对大表或者多表定义的游标,即大的数据集合而言,在使用游标逐行进行遍历数据时极易导致程序进入到一种漫长的等待甚至死机的状态,因此,使用游标时,我们可以建立一个临时的表,将那些符合条件符合要求的数据行转入到该临时表中,再对该临时表定义游标操作,这样做能够使游标的性能大大提高。
(三)索引的使用。显然,索引一般是用于快速访问表中的数据。通常,大型的数据库会有两种索引,一种是簇索引,一种是非簇索引。无论是添加哪一种索引,都可以使按索引列查询的速度大大提高,虽然在速度上有所提高。但是在插入、更新、删除等操作上性能会有所降低,特别是在填充因子比较大时,降低效果更明显。因此,对索引较多的表进行频繁的插入、更新、删除操作时,在对于表和索引的建立上,应该设置较小的填充因子。这样才能方便在各项数据页中留下足够的自由空间,以减少页分割或重新组织的工作量,才能够有效提高性能。
(四)数据的完整性和一致性。为了有效保证数据库的完整性和一致性,通常设计人员会设计比较多的表间关联,以最大程度地降低数据的冗余。由于表间的关联是一种强制性的措施,所以建立表后,对于父表和子表的插入、更新、删除等操作都会占用系统整体的开销。还有,尽量不要选用Identify属性的字段来作为主键与子表关联。另外,为了能够很好地提高系统的响应时间,选择合理的数据冗余也是很有必要的。
(五)事务的使用。事务一般是要一次性完成的操作。这些操作都是单个的操作,但数据库系统可以保证事务这一组操作全部完成或者一点都不做。大型数据库的这一优越特性,使数据的完整性在很大程度上得到了保证。
(六)数据库性能的调整。在网络设计和计算机硬件配置确定的情况下,影响应用系统性能的因素主要是客户端程序设计和数据库性能。大部分的数据库设计员都会采用两步法开展数据库设计。具体的设计步骤是:首先是逻辑设计,其次进行物理设计。逻辑设计有效去除了冗余数据,很大程度上提高了数据吞吐速度,从而保证了数据的完整性,清楚地表达出了数据元素之间的关系。对于多表间的关联查询,其性能可能会有所降低,同时也提高了客户端编程的难度。因此,在物理设计中需进行折中考虑,结合业务规则,确定关联表数据量的大小、数据项的访问频度等,对这样的数据表频繁的关联查询时应适当提高数据冗余设计。
(七)数据类型的选择。数据类型的合理选择会在很大程度上影响到数据库的性能和操作。因此,要根据具体的设计要求与规则选择合适的数据类型。
三、数据库设计步骤及实例分析
数据库的设计过程一般可分为六个大的阶段。下面,笔者通过实例来介绍和分析各阶段的功能和特点。
(一)需求分析阶段。需求分析阶段是第一个阶段,该阶段主要是用来分析和调查用户的业务以及数据的使用情况,以此熟悉这些业务活动和数据的类别、数据的数量以及使用范围,还能了解它们在业务活动中的交流情况等,从而来确定用户对数据库系统的使用条件和各种其他约束条件,达成共识后形成一定的用户需求。在这一阶段,在定义数据库表及字段需求时,首先必须要检查报表,查询和视图,以此决定哪些是必要的表和字段。举个例子,先假设,比如一个客户需要一个报表按照其邮政编码的排序,求和及分段。这种情况下,就必须要保证其中包括单独的邮政编码字段,不能把这些邮政编码错乱地参与到地址字段里。
(二)概念设计阶段。本阶段通过对用户描述的现实世界的某一处的分类概括以及聚集,进而建立一种抽象的概念数据库模型。举个例子,以扩充的实体联系模型的方法为例。当然,还是首先要明确在现实世界中的各部门含有的所有实体及属性,明确实体间的关联以及对信息的制约条件等,列出各个部门所有信息的局部描述环境;再将得到的多个用户的局部视图集合成为一个全局的视图,这样就形成了用户要求描述的现实世界的概念数据模型。
(三)逻辑设计阶段。这一阶段的主要工作就是把现实世界的概念模型设计成为数据库的逻辑模型,而且这种逻辑模型应适用于某一种特定的数据库管理系统。很显然,逻辑设计阶段在整个数据库的设计过程中起着非常重要的作用。
(四)物理设计阶段。物理设计阶段要求在数据库管理系统的存储方法和储存结构上,要选取合适的方法路径与存储结构。同时,这些合适的方法或路径还必须要依赖于计算机具体的物理设计。
(五)验证设计阶段。这一阶段是很关键的一个阶段,也是不可缺少的一个阶段。我们知道,任何一个大型数据库的设计都会经过多重循环和反复验证。在整个验证过程中,一旦发现某一步骤出现错误,就必须马上回到上一步骤来进行调整与修改。所以,在验证设计阶段,应该考虑到以后的修改维护与解决方案。
(六)软件运行和维护阶段。这基本是最后的环节了,在数据库系统正式投入运行中,要不断地进行调整和修改维护。
四、结束语
显然,使整个数据库的设计更加的工程化、规范化和便捷化将是我们今后要不断去争取做好的。未来数据库设计的研究方向是数据库设计理论方面的内容,通过完善的理论研究来建立起准确的模型,在整个数据库的设计中充分体现出其先进的思路和方法,最终达到数据库的设计更加的工程化、规范化和便捷化的目的。
参考文献:
[1]何玉洁等.数据库原理与应用-第2版[J].机械工业,2011,4:1
[2]陶宏才.数据库原理及设计[M].清华大学出版社,2004,11
概述
刀具管理软件支持FTP协议,实现文件的上传和下载功能。另外,快速数据库查询和存取以及局域网服务的使用,能减少编辑程序与编辑工艺周期、改善技术人员之间的交流和减少各种人工的差错,从而提高生产效率,为企业节省成本与占用资金。
一、研究背景及意义
目前部分企业由于数控设备与产品的多样性,导致了数控刀具的多样性,而在编辑数控程序或编辑工艺的过程中,经常需要一些刀具的特征参数或库存数量,比如刀具长度,刀具直径,使用寿命等。过去,这些数据的获得通常是由人工查询图纸或相关资料,耗费大量人力成本与时间,所记录的数据分散且不容易查找,不利于刀具的特征参数与刀具库存数量的快速查找,从而导致编辑程序与编辑工艺周期过长,也可能导致重复购买与刀具兼容性的忽视。
随着计算机技术的在工程领域中的发展应用,为确保企业信息最大程度地实现共享,避免各种信息成为孤岛,计算机刀具管理软件已经逐步代替了人工用Excel记录刀具库存和刀具参数。
二、研究软件的功能及应用
根据数控刀具管理系统的需求及特点,该软件具体分为十大模块,分别是:附件/零件模块、单一组件模块、刀具模块、设置篇模块、库存模块、重磨模块、进程模块、进程模块、测量模块、订单计划模块。
(一)附件/零件模块
手动刀具,转动附件,机器备件等均称为附件/零件,该模块主要功能是让管理员清楚知道工具存放位置,工具的数量与种类,更能清楚了解什么样的刀具用什么样的工具进行安装或拆卸,减少了准备工作的浪费,提高了生产的效率。
(二)单一组件模块
刀片,刀柄 ,刀杆,拉丁等均称为单一组件。该模块主要是让管理员清楚知道刀片、刀柄等存放位置,以及数量与种类,更可提供采购部门需要的数据,在最快的时间反应出,哪种刀片已经快使用完,需要购买,这样不仅可以减少等待加工时间,提高生产效率。更重要的是,通过合理的管理及计算,预测车间每个月可以节约相当客观的成本,随着车间规模的逐渐壮大,节约的成本也会逐渐增加。
(三)刀具模块
刀具是由许多单一组件组成的。该模块主要功能是赋予这些刀具特有的ID编码,技术人员在编辑刀具ID编码时,需将刀具特征加入其中,如:TD-56-312-90-2-CTY,TD表示镗刀,56表示直径,312表示长度,90表示度数,2表示2个刀刃,C表示可更换刀片,T表示涂过层,Y表示硬质合金,这样就把刀具的基本特征描绘出来了,它的作用是:第一,方便技术人员选择与寻找刀具,也方便了管理人员管理刀具。第二,此模块可以使技术员清楚地知道这些刀具是由哪些单一组件组成的,以及这些单一组件的型号,从而方便了再次购买。第三,由于每把刀具都配上了身份证,现场的操作人员不容易搞混,大大提高了,生产节奏,也提高了生产效率。
(四)设置篇模块
设置篇模块含有:待加工零件图号,加工此零件所需要用的所有刀具,加工此零件所用的机床,以及操作员。使管理人员与技术人员清楚地知道,每台数控机床所需要加工哪几种零件,以及用哪些刀具,如果出现问题,方便了管理人员与技术人员进行追溯,以便及时解决问题。
(五)库存模块
所有的附件/零件,单一组件,刀具,都必须建立库存数据库。该模块主要功能是让管理员清楚的知道,所有的附件/零件,单一组件,刀具库存数量有多少 。 第一,可以避免重复购买。第二,为销售部及时提供了即将用完的单一组件信息。建立库存数据库,有效的控制了成本,降低了不必要的浪费(重复购买),提供了技术人员与采购人员所需要的信息。
(六)进程模块
该模块能自动记录各种数据,例如:用户登录刀具管理软件时,详细的记录了ID帐号与登陆时间,当该用户提取库存时,有详细的记录时间与数量,重磨刀具时详细的记录时间与数量等等,出现问题时,管理人员能够迅速的凭借进程上记录的时间,追根溯源。
(七)测量模块
对刀仪通过此模块,将测量数据直接传送到电脑上。该模块主要功能是能够记录刀具测量数据之后,生成刀补程序,接着通过DNC输入到数控机床里。
(八)订单计划模块
该模块主要针对采购部,当某样部件数量小于设定的最小库存时,此部件将会出现在订单计划中,当采购员打开刀具管理软件使用订单计划模块时,对话框将会跳出来,提醒采购员对此部件进行购买。使用该模块可以有效节省企业的占用资金,配合黄金分割原理x=(-1+ 5^-2)/2,例如,使用同一种型号刀片,数量为100片时,库存数量=100X0.382=38.2,也就是说库存数量为38片的时候占用资金最为节省,但考虑到,刀片一般以盒来计算,大多数一盒刀片里有10片刀片,那定义最少库存为40片。当库存少于40片刀片时,此部件将会出现在订单计划中,提醒采购员进行购买。
三、建立数据库
(一)刀具参数数据库
刀具管理软件利用单一组件模块和刀具模块,第一,对该刀具在刀具管理软件上进行组装,一把刀具是由多个单一组件组装而成的。第二,组装完毕时,必须给予刀具一个唯一的ID编码,确保刀具的唯一性,这样不仅有利于技术人员快速查找,也便于大家对相似刀具的区分。第三,有了ID编码之后,对该刀具的各种参数进行测量或分析,并填入相应的位置。要注意,ID编码是不能随意更换的,改变ID编码,原有的ID编码不会消失,导致数据库参数出错,因此在编辑ID编码时需谨慎。建立刀具参数数据库之后,刀具管理人员可以很方便的使用各种模块对刀具进行管理,并可以快速的提供技术人员所需要的刀具信息。
(二)刀具与零配件库存数据库
刀具管理软件利用附件/零件模块、单一组件模块与刀具模块,对各个零件与刀具的数量建立数据库。要注意,为了能够存储每一条数据记录每个库存字段目都必须配置一个代码,如果记录的所有项均填写完毕,须保存当前数据记录。建立刀具与零配件库存数据库之后,刀具管理员可以清楚的知道刀具以及零配件的数量,防止了刀具或零配件因缺少而导致产品不能加工。
四、取得的效益
降低刀具使用和管理发生的间接费用其中包括:1. 降低刀具的库存,减少冗余的刀具,提高刀具的利用率;2. 在刀具供货中引入市场机制;3. 减少对人员、资金、设备、厂房的占用;4. 减少备刀、调刀的差错。 提高加工效率及刀具应用水平其中包括: 1. 服务工艺创新;2. 选择更好的刀具,更佳的切削参数,减少随意性;3. 提供应用技术;4. 提高加工效率,保证加工质量;5. 提高数控机床的利用率5%~50%;6. 加强分析与监督的作用。
五、研究结论
刀具管理软件采用局域网访问方式,方便了各个部门对刀具库存与刀具参数进行查找,并通过DNC直接将刀补参数输入至数控设备,从而有助于生产车间实现无纸化管理。本软件的投入使用,为生产车间提供有利条件,缩短编程与编辑工艺的时间、降低成本、缩减占用资金。既能满足企业要求,又具有广泛的应用前景。
计算机专业不同与其他学科,学生的实践都是在计算机上面完成的。作为老师,如何更多的、更详细的了解学生目前的学习情况?而学生,离开了课堂和老师,又该如何进行自主学习和自我测试?因此,一种具有试题阅卷和能够反馈成绩的教学软件对于教师和学生来讲,是很重要的,这种教学软件不仅方便,而且还能够让老师实时了解学生的学习情况,同时也激发了学生对学习的兴趣。
一、VB的概述和功能
Visual Basic是美国微软公司推出的通用、面向对象以及采用事件驱动的程序设计语言,Visual是指开发用户界面图形的方法,编辑其界面的时候无需编写大量代码,只需要采用搭积木的建构程序方式编写程序即可,是开发人数使用最多的编程工具之一。而Basic则是指Basic语言,它是计算机技术发展史上被广泛应用的语言。总的来讲,Visual Basic是在Basic语言原有的基础上得到了进一步的发展,其不但提供了新的数据库和Web工具,还增加了SQL Server交互方法。总的来说,Visual Basic是目前最流行、使用最广泛的应用软件开发平台。另外,Visual Basic 程序设计主要应用于多媒体开发、数据库开发、网络开发、图形开发等程序中。其数据访问的特性在允许对企业数据库的格式建立相应的数据库和前端应用程序的同时,还可以调整其服务端。程序员可以用Visual Basic高效、快速的开发Windows编程环境下的各种应用软件系统。
二、VB6的集成开发环境
VB6与之前的VB版本不同,之前的VB所有版本的集成开发环境都是由标题栏和菜单栏组成。而VB6则不同,它是Visual Studio家族的一个组件,在保留Visual Basic 5.0优点的基础上,对开发环境进行了改进,VB6的标准栏和菜单栏是由工具栏、窗体设计器、控件箱、弹出式菜单、工程管理器窗口、属性窗口、对象浏览器、工程管理器、窗体布局窗口组成。同时,VB6的数据访问技术采用了新的数据访问技术,第一,VB6增加了ADO控件和数据库可视化的工具。不但能够有效且快速的访问本地及远程的数据库,而且还允许程序员在数据环境方面,除了可以创建可视化和操作ADO之外,还可以连接其命令,这些都为程序员对数据源的操作提供了极大的方便。第二,加强了Internet的功能,使Internet成为当前最强有力的开发工具之一。第三,VB6在智能化向导方面也增加了新的特性。
三、VB开发教学软件在计算机基础操作中的应用
(一)界面设计与文件结构
界面设计分为两步,先按照软件结构图设计好控件,然后再确定控件的属性。而文件结构则是,当设计好一套试题之后就建立相应的试题目录,题目少的情况可以应文本文件储存,题目多的话则用Access数据库来存储。教学软件开发工具均采用VB,一是因为VB与VC类的开发软件相比,除了更容易上手,并且开发的周期短、效率高。二是因为office软件里面的宏都是VBA,,而VBA只是VB的一个子集,如果使用VB开发的话,不但能够使两者更好地结合,并且还可以快速且有效的写出阅卷程序代码。
(二)开发教学软件的选题
当设计好教学软件的界面题目之后,才能够编写开发教学软件的功能模块代码。为了避免学生抽取的试题一样,可以将选题的按钮可以做成按钮控件数组。其次,选题因为使用了FSO复制文件、复制文件夹这两个方法,所以在对文件和文件夹进行创建、改变、移动、删除等操作,以及检测文件、文件夹的信息以及路径时,都需要用到FSO对象模型。
(三)实现了阅卷的功能
计算机教学中最常见的操作试题有Windows操作题、Word操作题、Excel操作题以及PowerPoint操作题。以Windows操作题为例,没有编写过测试教学软件的老师会觉得对操作题的阅卷很困难,也不知道学生有没有对试题进行操作。其实,Windows操作题的阅卷很简单,教学模拟软件有一个自动阅卷的功能,而开发软件的新建、删除、复制、剪切等操作就是用来判断学生做题的文件或者文件夹是否存在。而当学生做完测试题之后,点击“阅卷”按钮也可以得到反馈成绩,
四、基于VB6开发的计算机基础模拟软件考试系统
目前,有不少院校为了方便学生考试和老师教学,利用VB6开发系统的,模块和界面开发了计算机基础模拟软件,该模拟软件有操作题和客观题两部分。操作题的VB编程与后台的宏语言联系密切,而数据存储方面,也可以选择用VB文件系统对数据文件进行编程,VB文件系统在给数据加密的同时,也减小了系统的大小。
(一)基于VB6开发程序下的Windows操作题及系统打包技术
在VB6系统的FSO对象模型下,系统中最简单的部分就是Windows操作题,Windows操作题通过访问FSO对象模型的方法和属性,就可以青色生成试题内容及相应的评分。而系统打包则需要使用免费开源的安装制作软件Inno Setup,Inno Setup的外观不但小巧、简便,并且还能够快速有效地制作出Windows的标准安装界面。
(二)基于office对象模型开发的office操作题
在VB6程序设计开发系统中,所有office产品都被引入了office对象模型,并且office产品中也都装置了VBA程序代码以及宏记录器,因此,office对象模型可以利用VBA程序代码,实现对office操作题的自动评分。另外Word操作题、Excel操作题以及PowerPoint操作题的模块代码与Word的路径一直,所以,仅对Word操作题的评分原理进行阐述。
首先,基于VB6开发的计算机基础教学模拟软件会对考生文件下的Word文档进行检测,检测其是否存在,如果存在则会继续进行操作,如果不在则会退出本模块。当过程执行完之后,考生的成绩以及试题出现错误的部分都会保存到全局字符串变量中,最后由评分模块访问这个变量并显示Word操作题的所以信息。
(三)基于VB6开发程序下的客观题模块设计
观题模块下的加载客观题对于VB6开发程序下来讲是一个极具挑战性、技巧性的问题,问题的关键之处就在于加载客观题的控件是动态生产的。在VB6开发程序中,只有两种方法才能生成动态控件,一种是使用VB6之前的控件数组,第二种则是在使用VB6开发程序的同时,引入With Events变量,由于VB6程序不允许创建并使用With Events变量数组,所以,为了生产动态控件,只能使用第一种控件数组方案来显示加载客观题的内容。
五、总结
整体来看,VB6开发软件对计算机基础教学有很大的帮助,不但方便了老师对学生学习情况的了解,还培养了学生对学习的自主能力以及提高了学生的操作实践能力。
关键词 计算机软件 开发设计 难点措施
中图分类号:TP31 文献标识码:A
0引言
随着计算机信息化的应用越来越越广泛,对于软件的要求也越来越高。一套完整的计算机系统是由硬件和软件组成,而软件的质量优劣直接关系到计算机运行处理的水平及性能。软件的开发生存期一般包括分析、设计、测试以及运营维护。软件的设计开发就是根据软件设计的要求以及规范对需求项目系统进行模块结构的建立。
1我国的软件开发设计概述
当前,我国软件开发设计领域中,有很多不同的设计手法和设计支持工具,设计的成果也比较可观理想。但仍有较多的难题和状况。相对于一般软件的开发设计,实时软件的开发设计过程更为复杂,技术人员多采用面向对象法和数据流两种方法进行开发设计工作。经过软件开发设计技术人员的不断努力和创新,有了Ada和运用Petri网的方式进行软件的开发和设计。
2软件开发设计的难点
2.1软件需求分析不到位
在进行软件开发设计中,开发设计人员常常会对要求设计的项目分析的不够充分,导致分析不完整、不清晰,以至于出现太笼统的现象,不被可测试性的软件内容,导致出现不同的设计开发问题,影响到软件在实际应用中的效果,对软件的开发和设计进程有很大的影响。
2.2软件开发设计的规划不实际
对于软件的整个开发设计过程,其是相当的复杂。它是有不同的程序组合而成的一个项目工程。在软件开发的实际进行中,出现没有按照相关的规定规范进行,导致开发设计时间周期加大,或者对复杂的软件工程没有充足的时间进行,而是用少量时间进行的,以致于软件的实际运用质量大大降低。“慢工出细活”对于软件的开发设计是很好的体现,软件开发是一项复杂而又量大的工作,需要充足时间、精力投入到开发设计中去。
2.3软件的前期测试不充分
一套软件在正式推广和使用前,必须做好充分到位测试以及检验检测工作。然而在当前为了所谓的效益,在软件开发设计中,这块的工作没有到位,出现了众多问题。对企业的正常运营操作带来直接的影响。同时,对于客户对软件的个性化和自我功能的需求,这些新的程序功能加大了软件开发的的难度和复杂度,对软件的后续运作有较大的不利。因而,在软件开发设计完成上线使用中,尽量对软件不进行修改和增加,保证软件的整体性和稳定性。
3解决措施
3.1面向对象法
面向对象法可以有效的发现计算机软件开发设计的难点。在软件的运用中,软件多用于实体,比如:功能性的开关、传感器、信号传输和转换器等。面向对象的设计方法以实体和模块等进行软件的程序和功能开发设计。面向对象法,是应用非形式化的方式,让对象把其需要的功能罗列出来,再经简单的运行规则进行相关的处理工作,可以确定软件的属性和操作方式,得出对象所需的软件模型,可以有效的解决设计和开发中的难点和难题。
3.2模块化法
模块化的设计法是目前计算机开发和设计中常用的一种。此设计法可以有效的降低软件的设计复杂性,还可以对软件进行修改和增加。模块设计是把不同的软件工程和小程序组合设计的,可以有效的确保不同程序的独立性,模块设计是由不同分工的设计技术人员参与完成的,有利于软件的快捷性。
3.3数据流和数据结构设计
在众多的软件设计中,由于层次和使用领域模糊,出现设计难题。而数据流的设计法可以进行软件程序结构化处理和操作,主要利用采集到的信息数据进行设计开发,在数据设计中,可以完整的去顶软件的结构和独立性[3]。而数据结构的设计主要是用于软件的设计数据以层次结构表现出来。根据不同的结构、顺序、重复和选择进行,在具体设计中应对软件的数据结构进行分析调查,按照不同的结构进行描述,确定操作程序的设计,完成完整的软件开发设计。
4结语
随着计算机信息化和网络化的应用需求的增加,对计算机的软件设计要求也越来越高。而软件的设计开发直接关系到计算机的运行。准确运用好面向对象、模块化、数据流和数据结构的方法进行分析、设计、测试等,完全可以设计出优秀的软件,为我国的计算机软件开发业做出重要的贡献。
参考文献
[1] 李大鹏.关于计算机软件开发的语言研究[J].计算机软件和应用,2012,23,(6):65-66.
【关键词】智能家居 家电控制 系统开发 软件设计 研究
随着科技文化以及经济水平的不断提升,人们对舒适、快捷、安全的家居环境追求的渴望日益增加。而计算机软件设计开发的飞速发展为智能化家居理念,注入无穷的力量也带来了无限的希望。智能化家居也是近年来刚兴起的新理念,这一理念充分显示了人们对智能化居家环境的追求。智能化家居随着互联网的发展以及无线网络的出现,逐步进入无线网络控制时代。智能家居主要由无线网络、计算机、网络信息、网络通信以及系统化模块等综合运用于家居,形成的智能化家居控制系统。智能家居控制系统主要有智能化照明控制系统、智能化安保监控报警系统、智能化家电控制系统、智能化编程定时系统、智能化室内环境调控系统以及室内外远程操控系统等。下面我们就针对智能家居控制系统软件设计开发以及软件调试进行研究。
1 智能化家居控制系统的特色
随着智能化的不断发展,智能家居理念应运而生。智能家居这一理念的提出目的就是:利用多功能化的智能服务为家庭带来环保、舒适、便捷、安全的居家环境。这样的居家环境不仅能给人们带来高效舒适的生活,也能帮助家庭成员保持交流的畅通,优化家庭的生活方式,帮助我们合理安排时间节省时间,增强居家环境的安全性。这些目标、这些优点的进一步实现,无一不需要智能化控制系统来进行操控运行。因此智能化家居控制系统作为智能化家居的的核心,其重要性也是不言而喻了。
然而传统的智能化家居在远程操控上的具有控制效率低、控制方式单一等缺点。随着无线网络以及物联网的飞速发展,我们就能将检测系统控制系统以及互联网有机的结合在一起进行研究,弥补传统的智能家居在控制系统上的不足。智能化家居控制系统需要结合各种模块进行开发设计,下面我们就针对智能化家居的核心内容,智能化家居控制系统的模块分类、各大模块控制系统的软件设计开发等方面展开论述研究。
2 智能家居控制系统的分类以及软件设计研究
智能家居控制系统由软件和硬件系统结合构成,这里我们可以把硬件比作我们的身体躯干,软件就是我们的大脑。那么正常运行的基础是硬件,进行分析操控、命令的主要部分是软件系统控制。智能化家居控制系统主要分为照明控制系统、家电控制系统、环境控制系统、安保监控报警系统等。下面分别对各类控制系统进行分析以及各类智能家居控制系统的软件设计研究。
2.1 照明控制系统以及控制软件设计
一天内有一半时间属于夜晚,因此照明控制系统对于智能化家居控制系统来说是必不可少的。照明控制系统主要包含各类照明灯具、光敏感应器、声敏感应器、单片机系统、输入输出控制器、红外传感器以及电线等构成。
照明系统的核心就是单片机,在这里单片机是整个系统的终端控制芯片,可以进行数据采集分析以及数据命令来完成人们的智能化网络操作等。红外感应器以及光敏感应器是用来检测光的强度和是否有人,以此来产生分辨信息输入到单片机控制系统,来控制照明系统的开关。光敏和声敏器件可以构成一个对光强度和声控相结合的智能化照明模块。首先,要连接好控制线路,以及各个感应器的正确安装,然后通过串联、并联或者串并联相结合的方式,就可以令这几类照明系统的选择具有可操控性。可以通过控制系统的软件进行调控命令的,分别控制或者一起控制都是可供选择,可供调控的。
2.2 家电控制系统以及家电控制系统的软件设计
舒适的居家环境内,各类家电的使用是必不可少的。常用家电主要有空调、冰箱、电视、洗衣机、热水器以及各类厨具等等。现如今家电可谓是琳琅满目,品类众多,功能众多,让我们无法很好的选择品类,很好的运用其功能。这时我们就可以设计一款软件,配合相应的家电控制系统来完成对各类家电的智能化使用。
家电控制系统由各类家电、数据采集器、输入控制器、单片机系统、输出控制器、智能开关以及线路等相应器件构成。现今各类家电中,大多数家电已具有单独的智能化操控系统,如空调、电视、洗衣机、热水器等都有各自的智能化操控模块。因此对于家电控制系统我们要做的就是如何把这些单独的小模块给并入到一个整体之中。这时,数据采集器的作用就凸显出来了,我们可以通过系统终端命令,数据采集器进行分析调控,然后通过输入输出控制器经由单片机系统进行智能开关的终端控制。要想多个家电一起精确控制就必须把各个家电的位置进行地址编码,把位置编码输入到控制系统的芯片中,根据不同地址编码来精确到对哪个家电进行操控。再把这些小的模块进行串并联整合,通过数据命令进行编码解码来调控终端的数据,进行我们对家电的需求命令。把单独的小模块系统做好后就只需要调控连接在一起,就可以通过软件对终端进行控制了。
2.3 室内环境控制系统以及其软件设计
一个舒适的室内环境是生活的必要条件,那么如何能够营造出适合所有人的室内环境呢?这里我们就可以通过智能化室内环境控制系统来实现我们的想法。人对环境的要求也不尽相同,湿度、温度、氧含量等都是最重要的指标。因此智能化室内环境系统必须包含智能化空气湿度调节器,空{,空气清新器等电器,还要有湿度感应器、温度感应器、氧含量感应器等各类感应器,以及数据接收系统,单片机控制系统,输入、输出系统。
可以通过各个小器件的连接来构成智能化控制系统。控制系统在软件可由不同接口控制,来制定不同按键的不同功能。例如室内环境可由加湿、除湿、升温、降温、送风、开机、关机七个接口,七个按键进行最基本的控制。我们在软件上的设计只需把不同的器件进行相应的接口连接,然后通过不同的按键来产生相应指令数据进行传输调节控制。我们需要注意的就是如何让它们在一起运行而不会产生不兼容的问题。这些都需要我们在系统模块设计连接以及相应的软件开发过程中解决。
2.4 安保监控报警系统以及相应的软件设计
居家环境的一个很重要的影响因素就是安全性,这里我们就来说一下安保监控报警系统。毫无疑问,居家环境中安全永远是第一位的。安全性因素主要分为外来的和内在的两种。外来的安全性影响因素在安保监控报警系统中主要体现在防偷防盗功能上,可通过视频监控报警系统来实现。内在的安全性影响因素在安保监控报警系统中主要体现在防火防电等功能上,可通过可燃气体报警器、烟雾感应器等报警装置来实现。
视频监控系统模块由视频采集与编码、视频录像、远程传输这三部分构成。视频采集与编码一般采用mp4的压缩格式,然后对视频数据进行缓存,传输至 客户终端进行识别验证。这些缓存的视频也能让我们做到对自己家居环境的实时监控,如有偷盗发生,既能提前进行报警,也能留下不法分子的行窃罪证。可以设置软件程序联接至电话上,如遇强行破门破窗而入的情况进行识别,智能打电话到110报警电话以及业主电话上进行报警。
报警模块的软件设计主要是由家居内布置的各个探测器发出警报信息,在报警模块中报警信号分为开、关两中情况,系统由探测器的开关状态来决定是否需要报警。由于家居内报警探测器众多,需要对每一个报警探测器进行逐一位置编码,把位置编码信息输入到系统控制芯片中,这样如果系统接到报警信号的输入,就可以具体定位到哪个报警探测器的位置,也就可以确定需要识别的危险位置在哪儿,然后进一步识别分辨处理。家居内一般主要有消防报警装置,可燃气体报警装置等,通过软件程序的设置,把报警信号在控制系统中进行编写输出,智能报警给相关单位和业主。
3 总结
随着智能化的普及,智能家居理念应运而生,本文就智能家居控制系统软件设计研究展开相关论述分析。通过上文分别对智能化家居控制系统的特色,以及智能化家居控制系统的各大模块进行介绍分析。主要介绍了照明控制系统、家电控制系统、环境控制系统、安保监控报警系统等模块,还有对各个控制系统模块进行分析以及各类智能家居控制系统的软件设计等方面研究。
参考文献
[1]张小贝,周凤星.基于嵌入式控制器和 RS485的智能家居系统[J].电子测量技术,2012,35(08):62-65.
[2]周兴中,陈万林,刘林菊等.基于51单片机的智能家居监测系统硬件设计[J].计算机与信息技术,2012(02):12-13,17.
[3]陶莉,黄佩伟,温细金.基于RS-485 总线的智能家居系统[J].自动化仪表,2007(11):49-51,54.
[4]姜楠.基于STC89C51纹机的红外遥控智能家居系统设计[J].现代电子技术,2012,35(24):162-164.
[5]余文俊,凌志浩.一种物联网智能家居系统的研究[J].自动化仪表,2015,32(08):56-59.
[6]滕海坤,陆二庆.给予 RTSJ的智能家居系统网关设计[J].桂林理工大学学报,2011,31(01):148-151.
[7]袁敏.给予物联网的远程智能家居控制系统的设计[J].制造业自动化,2012(22):23-24.
[关键词]构件化 软件 可靠性
随着计算机技术的飞速发展,软件已经逐渐应用到各种安全关键领域,例如航空航天、核电、国防、工业控制、交通运输、金融等。这类软件通常都规模庞大、结构复杂,对可靠性和安全性有着极高的要求。长期以来,由于此类系统的软件失效和安全性问题,造成生命财产损失,甚至给环境造成严重灾难的事例层出不穷,这就使得软件的可靠性分析、评估和保障变得尤其重要。
一、软件构件概念
随着软件工程的发展,软件复用技术逐渐成为研究热点。基于构件的软件开发(Component-Based Software Development,CBSD)方法 ,改变了传统的基于“数据结构+算法”的开发模式,提出了基于“构件开发+构件组装”的开发新思路,使已有成果得以复用,因而得到了广大开发人员的推崇并迅速发展。软件构件,是指软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语境有明显依赖关系、可独立部署、可组装的软件实体。它由接口、实现和部署三大要素构成。其中,接口主要解释构件所能完成的功能,实现是让此构件运作的代码,部署是构件的存在形式,即为二进制代码或可执行文件。
基于构件的软件开发具有适用范围广、重用效率高的特点,其效率的发挥需要大量标准的构件群来支持,这就需要标准统一的构件封装技术规格和应用于具体领域的大量构件。这两个方面现在是构件化发展的阻碍。构件封装技术规格的统一需要资深软件公司和国际性的软件机构深化合作、统筹兼顾来制定实用、有效、科学的标准。领域构件群的创建需要学术组织和有责任有远见的软件公司加大投入,深化构件化软件开发的应用,在业界形成模范作用。而中小型软件公司应该建立自己的构件库,在开发中尽量应用构件化软件开发方法,总结经验,为构件化时代的到来和繁盛做准备。有了统一的规格标准和各个领域丰富的构件群,那么构件化的开发将极大提高软件开发效率,解决软件危机。
二、基于构件的软件开发过程
基于构件的开发,是指将软件系统的开发过程看作是在体系结构的指导下,用构件组装方式开发软件系统的软件开发方法。基于构件的软件开发过程可以概括为以下四个阶段:
1.问题域分析与建模( 问题分析阶段)
针对问题描述,通过领域工程的思想,进行问题域分析与建模。分析阶段的主要任务是通过对问题域的抽象,区分出共性问题和变性问题,分析的结果是将问题域进行形式化表示,即建立问题域模型,可采用UML模型来表示。
2.求解域模型设计( 构件设计阶段)
根据对问题域的分析与建模,可得出求解域模型,即系统的体系结构及系统所需构件。对于已存在的、可复用的构件,分析其接口是否需要扩展;对于需要新增的构件,通过合理的分析及设计,保证构件满足求解域的要求,并尽可能保构件的可复用性。
3.构件开发及组装( 系统开发阶段)
从构件库中选取满足需要的构件,扩展其接口使之应用于当前工程;对新开发的软件构件,不仅应该使其应用于当前工程,还要将其存储到构件库中,以便复用。通过组装得到完整的系统,经测试后可运行。
4.应用系统演化( 系统维护阶段)
基于构件的应用系统的演化实际上是构件升级、替换和扩充的过程,针对用户需求或实际运行效果进行软件的调整,以适应新的环境要求。
三、基于构件化设计的软件可靠性分析
1.可靠性分析基础
软件可靠性是指软件在规定的时间内软件不失效的概率。构件可以自行开发,可以购买商业构件,也可以从相关领域构件库中获取。虽然获取的构件一般都有相应的可靠性说明,但同一构件在不同的软件系统中所处状态不同,其可靠性也需要进行重新分析。在基于敏捷开发的构件化软件实践中,每一次软件版本,都是以构件测试为基础,用户必须对各构件进行使用性测试以发现软件失效。小规模、多版本,使用户可以在早期发现软件中与自己所提的需求不一致的地方,用户可以持续地参与到测试中来。用户通过现场使用并快速反馈,为敏捷团队修正开发方向提供依据,可以说迭代增量开发、持续集成、小版本这些实践都是自适应的。对当前版本进行现场使用测试,获得失效数据(测试成功与失败次数),可获得该版本可靠性的点估计。
2.可靠性分析
首先,它可以便于设计开发者之间相互理解和交流。只要系统是使用某种风格或模式的规范方法来组织,则别的设计者就很容易理解系统的体系结构。譬如某人把系统描述为“管道—过滤器”模式,则他不必给出细节,人们立刻明白系统是如何组织起来的,并在脑海中清晰地得到此系统的图像;
第二,使用软件体系结构促进了设计的复用。许多经过实践证明的软件结构可以用来解决许多相似类型的新问题,这对新软件的开发带来了便利和质量保证;
第三,使用软件体系结构也促进了显著的代码复用。对于体系结构中的不变部分,不同的系统可以共同应用同一段实现代码,从而提高了该段代码的应用价值;
第四,使用软件体系结构的标准风格和模式有利于支持互操作性,例如像CORBA这种面向对象的结构和基于事件机制的工具集成。
总之,使用软件体系结构的模式有利于软件开发者之间的交流和理解,有利于提高软件设计实施的效率和质量。软件体系结构的观念能否成熟到使软件设计开发发生根本性改变,关键在于各类体系结构、设计模式的完善和系统化。软件体系结构设计中很重要的成就之一就是抽象出了许多常见的软件系统构建模式。这些构建模式是软件系统设计人员多年工作经验的总结,它们将为软件设计的系统分析和设计工作提供丰富的参考资料。
软件体系结构的选择往往成为一个系统设计成败的关键。人们在开发研制软件的长期实践中积累总结了许多成功的经验。不同类型的功能需要不同类型的构件实现。
参考文献:
[1]杨芙清,梅宏. 构件化软件设计与实现[M]. 北京 :清华大学出版社,2008.
关键词:软件;抽取;需求
信息化产业经过几十年的发展和建设,正逐步从最初的用于解决局部问题的小型或简单软件,向复杂、成体系、网络化的企业级系统扩展。软件系统的构成不再只是模块,越来越多的是功能构件和子系统,使软件系统成为“系统的系统”,或叫复杂系统。如何构建可扩充、可裁剪、可生长的满足企业应用的大型软件系统,已成为软件业研究的重要课题之一。其中,复杂系统的结构设计是人们最关注的核心问题。
1 软件设计的需求分析
软件通常是因需求才进行设计开发,由用户方从解决业务问题的角度提出,均以专业的术语或事务性的语言描述。高质量、清晰准确的需求描述,可有效约束软件系统的结构设计和功能定位。边缘清晰、描述规范的要求,会在一定程度上降低软件设计和开发的成本,提高软件质量和开发效率。但是,需求的成长和变化,往往伴随软件的整个开发过程,这种现状使得软件设计的难度不断增加,程序开发也从传统的开发方法向敏捷编程转化。
用户基于一定的业务需要提出需求,通常不能直接指导软件的开发,只有经过软件设计者的分析提取,通过规范的技术语言描述,形成面向软件开发者的需求规格说明,才能指导软件的研制。抽取需求是软件设计师必须完成的工作,传统的需求抽取方法一般包括面谈、问卷、观察和业务文档研究等,这些方法简单、成本低,对业务逻辑清晰、封闭性较好的需求比较适合,而对复杂且很难封闭的需求,采用传统的抽取方法,则风险很大。在软件开发领域,需求抽取方法有原型法、联合应用开发法和快速应用开发法三种。
1.1 原型法
通过构造软件演示系统,即根据理解的需求,建立一个快速而粗糙的工作模型,由可视化方法获得用户的反馈。
1.2 联合应用开发法
是将领导、用户、开发人员、系统设计师等召集起来通过会议的方式,集中所有人的智慧,对要求进行分析抽取。
1.3 快速应用开发法
就是集前两种方法,加上最优方案的系统研制而进行的一种需求抽取方法,是一种快速软件开发方法。
以上是目前常被采用的需要抽取方法,但对于系统分析员或系统设计师来说,无论采用哪种方法,都必须面临提取关键需求、判断需求增长点和发展方向的问题。
2 需求分析对系统体系结构设计的影响
2.1 抽取影响软件结构的需求,是需求分析的核心
关键需求是软件结构设计的核心,而提取关键需求是软件结构设计师必备的技能。以一个数据录入软件为例,一般需要提供一个交互式界面,由用户键入所需数据,提交存储到文件或数据库里即可。但用户要求录入的数据项,应能随着业务的不断变化而进行增加或删减,可多人同时进行录入。同时,要求对存储的数据按照需要的方式进行查询调阅,甚至进行一定的复合计算或评估分析等。对于这样的需求,录入项不断变化、多人同时操作、存储要求等都是核心元素,这些元素将直接影响软件结构的设计。软件设计应考虑分布式并发机制和大量的数据存储访问要求。这些需求均与功能无关,但会影响软件结构的设计。数据库访问相关的软件,一般采用传统的C/S结构。当用户增加到一定量时,该结构会导致数据库服务器负载加重,甚至系统崩溃。为了适应这种变化,应采用多层结构,将用户操作与数据存储进行分离。采用多层结构,不仅可以缓解数据库服务访问压力,还能降低数据库变化给用户操作带来的影响。录入项的变化需求,潜在地存在着数据项扩充、界面调整等功能要求。一般情况下,完全适应这种变化的软件很难设计。为此,可把录入项作为配置要素,界面设计和数据存储项根据配置项进行定制,应用服务层要在接口设计上考虑数据项的扩充能力。具有这类需求的软件,一般由界面构造工具、录入界面、应用服务软件和数据库服务器构成。
在抽取关键需求的过程中,抽取与业务无关的需求非常重要。“与业务无关”指支撑业务功能运行且与业务处理逻辑无关的功能。传输服务是典型的与业务无关的功能,在任意基于网络运行的软件中,不可避免的需要信息传输功能的支持。抽取与业务无关的需求,需要分析人员有丰富的软件设计经验,这种公共需求的抽取,有利于开发过程中软件的重用,可降低开发成本。
2.2 关注需求中与规模发展相关的因素
软件设计应用规模的发展速度,是软件结构设计时应考虑的主要需求之一。规模是考验软件支撑能力的主要因素。规模的发展可能是用户量的膨胀,也可能是数据量的迅猛增长,或两者都有。软件能力的成长性设计,通常会使开发付出代价,这是由于一方面在设计初期没有考虑这种成长性,导致设计失败;另一方面,虽然考虑了成长性,但由于软件复杂度的增大,增加了开发成本和风险。因此,对并发和负载的设计,应在设计之前就要给予充分考虑。
2.3 捕捉需求的变化方向
确定需求的增长点是考验软件适应能力的关键。需求的变化和调整是客观存在的,软件设计者分析需求时,应考虑到需求中可能存在的变化点或变化趋势,以提高软件的适应能力和成长能力。需求的增长点通常隐含在企业发展和技术发展中,一类是业务发展引起的工作流变化或增长。这种软件结构应具备新业务处理软件的集成能力;一类是业务转向。原有的业务处理软件不能满足转向后的业务处理要求,存在改造、裁剪、新增能力等潜在需求。软件结构还应具备可裁剪、可扩充的能力,否则将会造成巨大的经济损失。
抓住需求的变化点,设计合适的体系结构,可增强软件的生命力。面对需求多变的现实,降低结构的耦合度是有效缓解软件适应能力的方法之一。但是,降低耦合度一般会带来效率或系统复杂度的上升。因此,小型软件选择这种方法应慎重。(下转第16页)(上接第13页)
综上所述,设计满足需求的软件结构,重点关注的是功能,而设计适应需求变化的软件结构,关注的往往是非功能性需求,这需要系统设计师除了具备丰富的经验和敏锐的洞察力外,还应花大量的时间和精力同用户不断沟通与交流,从中获取最需要的需求,以支持软件整体结构的设计。
参考文献:
关键词:软件成本估算;专家辅助系统;框架;装备软件;开发需求
中图分类号:TP393
文献标识码:A
文章编号:1009-2374(2009)17-0041-02
进行准确的装备软件成本估算是保证装备软件开发顺利进行的关键和必要手段,也是保证装备采购人员能够对装备软件进行准确定价,避免军费浪费。但是,当前对装备软件成本估算的手段单一,方法不多,不够精确。在装备软件的估算过程中,由于装备软件开发过程的诸多不确定性,导致在估算过程中必须要有具备深厚专业知识的专家人员,但是在产品开发的实际中,这种专业深厚的高水平专家人员比较少,完全依靠领域专家来进行估算成本代价太高,不切实际。因此,设想开发一套装备软件成本估算专家辅助系统,用于在开发过程中对装备软件的项目时间、成本进行估算,解决缺乏专业领域专家人员的情况下对装备软件进行估算。估算人员只需要输入开发软件的相关信息或者整个软件编码,经过系统的匹配和综合的估算,把估算结果显示于界面上,方便快捷。如图1所示:
一、开发背景
当前,装备软件成本估算主要存在估算的方法有限,精确度不够,直接影响了装备软件的设计开发和增加了采购成本。主要表现在两个方面:
1、装备软件的设计开发主要是依据军方立项,通过国家指定的军品生产厂方,依据确定的标准和要求进行的。但是大多数承制方缺乏专业领域知识深厚的专家,并且,装备软件的设计开发缺乏市场竞争,参与的企业少,规范的软件生产企业不多,对设计开发过程中的装备软件成本估算不足,因而直接影响了装备软件开发的顺利进行和产品质量。
2、在军方采购人员中,大部分人员是军校毕业后直接进入采购部门工作,既没有经过专业的理论培训也没有相关领域的经验,对软件的成本估算只懂皮毛甚至不懂,大部分是按照国家关于军品的微利补贴原则,以承制方的价格为基础进行采购,这样条件下的采购无疑是带有较大的盲目性,难以避免对军费的浪费。因此,如果能设计一套专家辅助系统,其意义较重大。
二、设想理论框架
装备软件成本估算专家辅助系统理论框架主要由两个部分组成。一个是存储各种算法和估算标准的数据库。该数据库由算法知识库、历史模型库、储存比较库、智能估算执行库组成。算法知识库主要是对当前各种关于装备软件成本估算的算法进行编程存档(LOG法、Delphi法、经验类比法、功能点估计法、COCOMO法等),主要提供给智能执行库的估算模型原则。历史模型库主要存储许多历史经典装备软件模型,收集尽可能多的模型,为估算软件提供近似匹配依据。智能估算执行库主要是完成对输入的估算程序调用算法知识库中的各种算法进行估算,同时对装备软件进行历史模型匹配,得到近似估算值,储存结果比较库主要是把各种估算结果存储下来并根据智能执行库的指令进行比较,最后对估算值进行按预定比例系数进行加权处理,得到最终估算结果经传输设备传出。另一个框架就是操作系统和人机交换框架,主要是操作系统对第一个框架内的各种数据进行维护管理,科学地组织和存储数据,高效地获取和维护数据,准确的物理寻址,并及时对数据进行更新,用户通过人机交互界面与系统打交道,把要估算的装备软件信息或者编码输入进计算机,调用第一个框架内的数据,获取知识,并进行推理,得到解释,并对数据库进行维护,并把估算结果显示出来。
三、开发人员框架
装备软件成本估算专家辅助系统的功能是完成对装备软件的成本估算,主要为解决厂方在进行软件项目开发时对软件成本的预算不准和军方在采购过程中对装备软件的知识不深厚导致对其成本估算不准确。在开发这个系统需要四类人员参与才能完成开发。第一类就是众多领域专家进行知识收集和整理,建立各种算法和模型;第二类就是知识工程师进行知识建模、形式化、编辑以及语法检查;第三类是开发软件工程师根据系统的目的和已建模型进行系统设计和调试;第四类是最终用户对系统进行软件成本估算。如图2所示:
四、开发需求
装备软件成本估算专家辅助系统首先要对目标用户的要求做出准确定位。即:装备软件成本估算专家辅助系统主要是供给厂方在进行装备软件项目开发和军方在对装备软件采购定价时用,因此,对厂方和军方最需要了解的是装备软件成本的组成和估算精确度的问题。由此可以确定该系统要达到的要求,以及用什么方式实现这些要求,这就需要组织大量的专业领域专家进行论证和算法研究及建模,收集更多的历史模型,方便地对模型进行建模管理、存取管理、运行管理、模型组合,能方便地对知识进行插入、修改、更新、查询等,及时对数据库进行维护和更新。
五、工作过程
首先,由众多领域专家进行知识的收集整理,进行各种算法的研究探讨,并对算法进行验证可行,此过程也称为抽象的过程;在此基础上,由知识工程师根据领域专家的各种算法进行数学建模,成为可以理论计算的模型,此过程就是把抽象到具体的过程;然后,由软件开发工程师根据已有的数学模型进行计算机编程,成为计算机可执行的程序编码并存储与计算机内,此过程就是把具体到应用的过程;在前三个过程结束后,实际工作中的用户只需要将相关信息输入进计算机便可以进行成本的估算了。用该系统进行成本估算主要有两种工作方式:一种是厂方进行装备软件项目的开发设计时,主要对该软件项目的成本进行预算;一种是针对军方采购人员进行采购是便于对装备软件的定价而进行成本估算。总的来说其原理是一样的。用户把需要估算的软件相关信息或者整个程序编码输入计算机,通过操作系统把相关信息传输到智能执行库,智能执行库根据接收到的相关信息进行分项估算,调用算法库中的相关算法结合相关的信息进行估算,把估算的结果存储在存储比较库中暂存,再根据历史模型库中的模型匹配进行概算,得到的结果也存储于存储比较库中暂存,最后智能执行库根据存储比较库中的暂存数据进行加权平均计算,将最后优算得结果经操作系统的指令直接传出到人机交互界面,供给用户参考。
六、结语
成本估算专家辅助系统的主旨是在缺乏专业领域专家人员的情况下,便于装备软件在开发设计时能准确对其成本进行预算和在采购时便于对装备软件定价而进行估算。文章中的理论框架为软件设计提供了清晰的结构,是开发装备软件成本估算专家辅助系统的基础。开发装备软件成本估算专家辅助系统在理论框架、人员框架、开发需求的指导下,通过详细设计、数据库设计、编码实现、测试等过程实现系统全部功能。开发该系统之前需要大量的工作才能完成,但是一旦该系统设计开发完成后,将对实际工作过程中具有重要现实意义。文中提出的框架结构和开发需求对于装备软件成本估算以及装备软件成本估算专家辅助系统设计研究具有很好的指导作用。
参考文献
[1]张家浩,白思俊,软件项目管理[M]机械工业出版社,2005
[2]李帜,林立新,曹亚波,功能点分析方法与实践,北京:清华大学出版社,2005
[4]任永昌,赵颖应用COCOMOI模型估算软件开发工作量渤海大学学报(自然科学版),2007,23(3)