更新时间:2023-03-21 17:24:24
传统的软件工程方法一般都具有结构化样式,包含多个程序构件,需要将问题概括定义。然后对该问题的解决方法的工程实施过程进行必要性和可能性的综合分析,分析此工程方法所要满足的要求,在分析基础上对应用方法进行系统性建构。建构整体完成后,再分层次进行详细的内容建构,总体建构及层次建构完成后,就可编写软件代码,最后检测软件性能是否能够满足要求,以便对不合理之处与弊端进行修复以及维护。在这样一个复杂的过程中,需求分析是关键步骤,只有了解需求,将大众需求切实反映在软件中,才能开发出成功的产品。其次,系统建构也非常重要,从整体建构到层次建构,都应以需求为基准进行设计,再结合相关软件数据,具体问题具体分析。可供选择的建构方法有这样几种:数据流动图像、数据关系图、状态图等。结构图主要应用在建构程序中,是系统建构的常用方法,程序图表的编码方式则在层次建构中经常使用到。
2现代工程方法的内容与特点
现代软件工程方法之所以超出传统方法,主要是因为它针对的是具体对象,即面向的是具体存在的问题和弊端,这一点,完全克服了传统软件工程方法的缺点和不足。现代软件工程方法包含五部分,分别是分析、设计、编码、测试、维护。这几部分虽与传统工程方法大同小异,但细比较便可发现现代工程方法的优点。在分析部分,传统工程方法主要是笼统地分析,没有具体的面向对象,而现代工程方法则是分析现实事件的具体问题,因此,具体问题的性质可以更好地反映事件的性质。在设计部分,面向对象主要是系统中的具体时间。传统软件工程方法单一无序的状态使得设计的软件没有突破,没有适应发展的迁移性,现代软件开发方法摒弃这种自发式状态,采用更为先进的模块式开发方法,引进先进技术,维护系统正常运行,同时能及时对软件问题进行修复。模块式开发方法更适合现代经济的高速发展,更能适合大众需求的日新月异,更能满足不同群体的需求。这种方法具有超强的适应性,因此更具有稳定性,一旦软件出现问题,能及时修复,一旦有新的需求出现,也能及时优化性能更新换代,大大降低了软件开发失败的风险。富含高技术的方法还可以整合计算机资源实现资源共享,而且只要将模块定义,在系统允许下可以重复利用。
3现代工程方法的有效运用
3.1现代软件方法的适用局限性
软件体系结构决定着软件适用的工程方法,主要依靠数据库进行数据分析的软件体系结构是指软件的分层结构,比如C/S结构。现如今,传统的数据库管理系统还具有相当的适用性,其在现代数据管理系统还未成形的今天仍然发挥着举足轻重的作用。传统的数据管理系统在数据存储、数据共享、数据保障以及故障维护等方面都有着很好的效果。特别值得注意的是在结构化语言查询方面,其不但不会损害整体性查询,在高水平查询上同样能够完美实现,这是现代管理系统不占优势的地方。现代管理系统优势凸显于具体的数据储存与操作方面,比如表结构的处理方法,传统软件工程方法在运用时会有所扩展,导致表述模糊。
3.2现代软件开发的工程理念
软件应用脱离了早前的局限性,在各行各业都得到有效应用,餐饮业、服务业以至于医疗卫生业都能将软件运用发挥到极致,大大提高了行业的生产效率,取得了前所未有的效果。同时,利用软件的资源与信息共享功能可以在各行业建立标准的操作规范,统一行业的操作程序。只有在软件开发过程中树立现代软件开发的工程理念,才能顺利进行软件开发和应用。以医疗卫生业为例,通过大量引进现代软件进行信息管理和操作,不仅规范了医护人员的诊断操作行为和疾病检查,还可以对疾病及时有效地进行监督和管理。引进的软件不仅仅局限于资料信息的管理系统,还有与影像资料存储与共享、通信内容等相关的信息管理软件。以病理信息管理的软件开发为例,这种软件的主要作用就是将病理分析情况如实收入软件中,从而对该数据资料进行长期有效的存储。这种软件的操作简单易学、分工明确,是模块化处理方式的最简单应用。需求性直接决定软件实用与否,因此,在开发之前,必须对软件的需求性和实施的可能性进行详细的调查研究与分析。如果软件公司开发新产品之前没有进行需求和可行性分析,必然导致软件的适用性不足以应对大众需求,不能够很好地适应具体情况,给开发者造成不必要的损失。此外,在软件开发时,开发公司应该对整个工作进行协调一致的规划安排,各工作人员应明确分工,尽量规避工作中出现环节空缺或重复的情况,避免开发过程中出现混乱不堪的状况。
4结语
现代化社会的发展,软件工程广泛应用到嵌入式系统、人机界面、翻译器、电子邮件及数据库和各项操作系统中。在此基础上,还受到了航空、工业、政府部门及银行等各个行业的大力追捧,大大减少了各行业工作人员的工作总量,有效提高了他们的工作效率,并促使人民群众的生活质量得到提高,带动了社会经济的发展。软件工程的开发离不开软件工程师,根据领域的不同又分成系统测试员、分析员、工程师及程序员等,统称为软件工程师。他们肩负着对费用合理、质量良好的软件产品的开发,通常情况下,其主要以产品的可靠性、安全性、可维护性、实用性、功能性等指标来衡量软件产品的整体质量。
2软件工程开发技术
2.1软件标准化应用技术
软件标准化应用技术又分成软件标准和软件过程标准,其是软件构件和软件重用技术开发与发展的先决条件,可有效保障软件工程产业的健康发展。软件标准化应用技术直接关系到软件工程各项指标能否达到相关标准,其也是衡量软件工程成熟度的重要条件。国际标准化工程和系统工程委员会详细指出了软件工程的标准结构,加之美国国防部关于软件标准相关内容的提出,并列成为当代软件工程的两大重要标准。
2.2软件构件和软件重用技术
软件构件和软件重用技术一直是软件工程开发中的重要环节。软件重用是开发和研究软件的必要手段,构件作为一项基础条件有着不可小觑的重要作用。其中,软件重用技术可让软件工程师从大量写代码的工作中解脱出来,促使其更好的投入到更具适用性软件系统的开发中,从而确保空间和相关问题的一致性。软件构件技术是实现重用技术的前提,两者相辅相成,互相促进。这一过程中,各类开发工具是软件开发和应用的依托,如集成开发环境、构件库管理及运行环境等。
2.3中间件技术的采用
中间件平台作为软件系统开发和运行的支撑,是实现构件技术的前提。中间件适用于合适的平台上,加速软件的隔离和抽象,最终形成构件。因此,中间件技术在软件行业中备受青睐,根据分布对象、通信、事务处理、调用远程过程、访问中间件这五大类进行划分,具有划时代的意义。
3软件工程开发过程
3.1用户需求分析
用户需求分析即为在构建或改变软件系统时,应根据新系统的定义、范围及功能等内容进行用户群体需求分析,并综合分析数据准确把握系统定位,以开发出优质的系统软件。该过程中,协调需求分析员和软件工程师之间的关系是十分关键的,两者强强合作后,应首先找准目标用户群,并针对用户的实际需求确定系统软件的各项功能,最终制定出最佳系统开发方案。
3.2软件系统分析
软件系统分析主要是指归纳和整合需求调查中的各项数据和相关资料,并针对软件内部实际管理和信息处理情况进行分析。软件系统分析的主要目的是为了落实用户的相关需求,并寻求出最具适用性的解决方法,其是软件设计过程中不可或缺的组成部分。
3.3软件测试
在整个软件系统进入使用之前,软件测试是最为重要的环节之一,在进行软件测试时,不仅能对软件的需求进行分析,还能对软件的功能及性能进行验证。软件测试是指,根据运用软件的测试方法和测试工具,按照测试流程及测试方案,对被测试软件的功能与性能进行检测。在对软件进行测试的过程中,编程人员可以按照不同的软件和不同的架构编写出各种测试系统以及测试方案和工具,以控制将有可能出现的问题。在软件开发的整个过程中,都要紧抓各个开发环节及时进行同步的测试内容,并且针对测试中发现的问题加以解决,同时完善相关的开发程序。在此之后进行重复测试,在反复测试中不断完善各种问题,直到软件最终成为完整产品。
4软件工程开发的基本特征与应用情况
4.1明确性
软件工程在进行软件设计时就已经根据人们多种多样的需求制定了明确的目标。软件工程设计的任务是在工程实施或者产品投产之前,为这项工程或产品提供各种需求的标准,这一任务正是体现了软件工程中“需求分析”的特点,并且需求分析的质量对软件开发的成败有着直接影响。在这个阶段中,开发技术人员需要不断的与用户进行沟通和交流,完全明确软件开发项目的概念,最终形成一个完整的、清晰的、明确的开发目标。
4.2完整性
在用户或者服务器系统的应用中,保证信息准确无误的重要条件是数据及数据处理的完整性。因此,在软件开发的过程中,确保数据及数据处理完整性的逻辑要求是最为严密的。例如,有时在处理一个事物的过程中,会修改多个表格数据,如果在修改中发生了任何细小错误,都必须放弃整个处理过程,而不是其中的一个过程,然后返回最开始的阶段,以确保操作的完整性,从而保证了数据及数据处理的完整性。
4.3规范性
应用软件的开发工作在不同人员进行修改时需要能较为容易的接手,因此开发应用软件必须保证规范性。由于软件在开发的过程中需要按照一定的规则进行对象组合,所以能符合标准。但是如果是群体开发软件,由于每个程序员的想法及工作习惯都不相同,因此不容易符合标准,而软件开发的标准极为重要,必须保证其规范性,所以在软件开发的过程中,程序员之间需要多沟通交流,确保软件的顺利开发。
4.4易维护性
由于在软件开发的过程中,对象组合具有继承性,在对祖先对象进行修改时,也会对其继承对象造成直接影响,提高了软件程序在一定程度上的维护性。并且,逻辑规定和语法规定相同,群体开发软件不会因为个人特有的思想与工作习惯受到影响,从而使软件开发的维护性得到了保证,也提高了相互之间互相弥补的可能性。
4.5创新性
科学技术需要发展,发展离不开创新。随着工程技术的不断创新,软件开发出的产品在满足人们高要求的同时不断进步,为了获得广大用户的信任与支持,系统分析员在进行系统分析时,应当全方位了解广大用户的需求,针对用户的各种需求提出可行性方案,并且在不断的与用户交流中完善与改进方案,在如此反复中完成整个设计开发的过程。
5结束语
1软件开发信息管理系统设计工具及简介
1.1VisualStudio系统开发工具
VisualStudio2008由微软公司开发,主要是面向Vista系统,Office办公软件以及Web2.0的开发工具,本系统的开发基于Web2.0,因此将VisualStudio2008作为主要开发工具无可厚非。并且,VisualStudio2008可以根据开发人员的需求进行工作效率的设定,想较于其他开发工具,这是非常人性化的;其次VisualStudio2008可以借助MicrosoftOfficeSystem将SQLServer2005数据库完美地集成使用;最后VisualStudio2008可以满足绝大多数项目下发单位对系统程序开发的需求。
1.2SQLServer数据库语言工具
SQLServer2005由微软公司开发研制,于2005年推出,它是一个性能十分杰出的数据库平台,它的架构决定了它的稳定性能,可以用于大型联机事务处理、大型资料数据转存、电子商务资料仓储等。总而言之,SQLServer2005的特点为:(1)丰富的图形管理工具,在使用SQLServer2005数据库时可以实现系统管理、操作的直观性展示;(2)数据库动态化自动管理与优化特点;(3)支持网络接入,可以联网进行网络数据互传;(4)数据库编程接口更为广泛,可以适应使用不同开发程序的开发人员的操作使用;(5)具有良好的数据伸缩性和稳定性;(6)数据库管理方式十分简单,标识更加清晰易懂。
1.3本系统将要用到的开发技术
1.3.1IBatis.NET技术
本技术是一种“半自动化”的ORM实现。具体来说就是在数据库运行管理中自动生成对应的SQL并调动相应的JDBC接口加以执行,这个技术中的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现来说的。换一种通俗的说法就是,ibats在开发过程中不会给相关人员自动生成SQL,具体的SQL方案需要开发人员主动编写,然后通过相关技术将SQL中所需执行参数映射到制定的POJO上。
1.3.2AJAX技术
AJAX技术指的是一种创建交互式网页应用的网页开发技术,旨在方便程序开发和管理人员进行开发项目的远程管理。
1.3.3jQuery技术
jQuery技术是一个优秀的Javascript框架,它的宗旨就是写更少的代码,执行更多的程序。它的快速、简介文档说明较为详细等特点被越来越多的应用程序开发人员所使用。
2进行软件开发信息管理系统开发的必要性
进行软件开发信息管理系统研发的必要性可以分为程序功能性需求和软件可行性需求,这针对的不只是该系统的适用方,更加方便的是软件开发企业对员工进行工作进度管理。
2.1功能性需求分析
软件开发信息管理系统将包含以下功能满足软件开发企业管理与开发人员工作需求:(1)文档管理,开发文档一般由项目负责人上传,上传后会在系统后台标注具体时间文件大小和操作人员,方便企业管理人员进行开发项目文件管理;(2)项目管理模块,研发本系统的核心目标就是实现软件开发任务的组织管理,实时统计开发人员的日常工作量与项目进度,及时进行问题反馈与BUG上传修复工作,从而完成项目测试与评价工作;(3)数据库管理,数据库对于软件开发团队十分重要,相关工作人员都需要定时定量进行开发数据回传工作,并且管理人员应该按照权限大小进行数据库权限统配调整,从而督导工作人员完成项目开发工作。
2.2可行性需求分析
信息管理系统开发可行性分析主要分为:(1)技术可行性,这方面主要是考察现阶段对该程序的软件、硬件是否满足程序开发需求的考量,从技术可行性角度分析,该系统是完全可行的;(2)操作可行性分析,由于所使用的开发架构和相关开发技术的简要操作性,这方面完全满足信息管理系统使用操作简易要求。
3信息管理系统总体设计
3.1信息管理系统架构设计
3.1.1表示层
本系统基于Web系统,相关人员对软件开发过程中的进度跟踪、文档管理等功能的操作实现可以通过指定网址进行查看。但在查看之前需要进行相关账号的注册验证。
3.1.2业务逻辑接口层
所谓业务逻辑,就是将客户和内部工作人员进行系统自动甄别,让全部人员进行制定查看相关任务的完成程度,降低系统程序的耦合度,提高系统运行效率。
3.1.3业务逻辑层
本层的作用是将业务逻辑进行封装调试,提高系统代码使用效率。
3.1.4数据访问层
该层主要作用就是进行文件数据的各种查看操作。
3.1.5数据交汇层
根据不同人员对数据的需求不同,表示层可以直接连接到数据交汇层,进行数据的快速上传和下载,方便对整个系统数据库的使用。
3.2信息管理系统数据库设计
3.2.1数据库逻辑设计
信息管理系统的数据库不是每一个人的都一样,而是需要进行权限级别划分,具体的数据库逻辑设计为:项目管理员最高级,其次是研发小组组长,最后是研发人员。并且,在这个系统中,如果遇到数据权限的调整,需要进行逐级审批,如国研发小组组长所能提供的权限可以满足相关人员的数据需求,则项目管理员无需进行二次审批。并且每次权限审批和数据下载都会在系统中留下痕迹,时间、操作人员、IP地址等等信息都会记录在案。
3.2.2数据库物理设计
信息管理系统数据库物理设计如下:(1)Popedom权限分为权限编号(PopodomID)、拒绝访问编号(DenayID)、知识库资源编号(LibraryDocumentID)、拒绝访问类型编号(PopedomType)等,他们的字段长度都是四个单位,字段类型都是int;(2)KeywordID关键字则分为主键、外键、关键字三部分;(3)Classify分为分类编号、分类名称、上级分类编号、创建人编号、创建时间等。
4软件开发信息管理系统具体设计方案
软件开发信息管理系统分为:系统用户操作使用模块、开发任务管理模块、开发任务管配划分模块、开发项目成员管理模块、信息管理系统权限管理模块、软件开发信息资源分类管理模块等,具体设计如下:
4.1系统用户操作使用设计
系统用户操作界面模块设计包括的是软件开发发包人、开发企业相关领导、软件开发项目主要负责人及相关管理人员,这三方面的用户操作界面完全不一。软件开发发包人操作管理界面主要突出的该项目的时间进度、研发情况、其中所能体现的主要功能、预计开发效果管理等,在此其中还需要加入的是用户评价和反馈系统,主要用于发包人对软件开发效果的,满意度管理和相关BUG的反馈;开发企业领导操作界面主要体现的是所有项目的发包人信息、承办人信息、以及研发人员具体负责工作单元信息,主要进行发包人和开发人员中间调配作用出现;软件项目开发管理人员及相关工作人员的界面更加不一,管理者需要进行整个系统的统一管理涉及到权限管理和资料库管理等,工作人员则是主要针对自己负责的软件开发单元的界面,用于资料传输和技术交流。本模块包含了两个操作部分,分别是添加和删除。完成相关操作时需要以admin身份登陆系统,在删除系统用户时需要进行二次确认,并且这个“删除”也仅仅是将数据库中相关文件的IsEnable置为false;如需添加用户时则需要进行用户姓名、账号密码、所属单位(部门)、联系方式上传到系统中,由管理员进行审核通过,方可添加新的系统用户。本模块包含了两个控制模板:(1)UserInfo,对象属性包含十一个设置属性,分别是主键UID、用户名UserName、登陆名LoginName、用户密码Password、部门编号DID、联系电话TEL、电子邮箱Email、联系地址ADD、性别SEX、角色编号/用户编号RID、以及用来识别身份是否有效的IsEable等;(2)UserRole,需要进行相关用户设置,包括姓名、电话、系统昵称。
4.2开发任务管理模板设计
开发任务管理模块设计主要针对的是与软件开发发包人所联系的软件开发企业负责人,他们需要将发包人的软件预期效果和具体要求以文字的形式上传到系统,以供具体负责人进行下载讨论。本TaskTemplate模块仅包含一个属性,其中TaskTemplateID为主键,剩下的则是TaskTemplateName(任务模板名称)、ProjectStage(任务所处状态完成/未完成)、CreateName(任务创建负责人)、CreateTim(任务创建时间需精确到分钟)、WorkLoad(任务量)、IsEable(指令有效确认)、TaskType(任务类型,通常可以分为对公、对私等)。
4.3开发任务管配划分模块设计
开发任务管配划分模块,这部分主要是软件开发小组组长进行软件开发单元任务的下达所用,因为每个人的技术侧重点不同,这个模块设计主要是方便管理人员针对工作人员的工作特点进行任务分配,从而加快软件开发进度,提高软件开发质量。开发任务管配划分模块流程为:(1)新项目添加;(2)项目任务分配表,具体到工作完成小组及个人;(3)相关人员进行系统内查看己方开发任务信息及需要完成部分;(4)相关文件的上传及下载,如已完成任务则需要项目创建人员/项目经理的综合评定若通过则视为任务完成,不通过则需要进行修改和再次发起评审申请。
4.4开发项目成员管理部分设计
开发项目成员管理模块设计旨在帮助企业管理人员进行企业内部人员调配,主要功能体现为:人员增加、离职,工作部门调动,人员待遇调整等。
4.5信息管理系统权限管理模块设计
权限管理模块主要是针对不同级别的工作人员权限不一所涉及,最高权限为企业负责人,其次是各开发项目负责人,然后是各开发小组组长,最后是开发技术人员。总的目的就是方便企业进行内部管理与信息交流。
4.6软件开发信息资源分类管理模块设计
资源分配管理模块和权限管理模块有着相同的架构,权限管理主要突出的系统内部权限,而资源管理主要进行的信息管理系统的内部资源调度权限分配,这是权限管理模块的延伸部分,有着差别的地方在于,资源权限模块可以进行权限请求,然后请求信息将在第一时间传递给上部管理人员从而及时获得批复。本文以软件开发信息管理为研究背景,采用VisualStudio2008应用程序作为主要开发平台,利用相关技术对系统管理、项目设置、项目管理、数据库管理等模块进行了分析和研究,从而对软件开发信息管理系统完成了设计,才疏学浅,在系统的设计和研发过程中遇到了诸多问题,借助了大量中英文资料,找到了解决办法,最后给完成了较为完整的管理系统应用程序。
参考文献
[1]张帆.解析计算机软件开发信息管理系统的设计与实现[J].信息通信,2018(10):146-147.
[2]钱人俊.软件开发信息管理系统的设计与实现分析[J].计算机产品与流通,2018(02):35.
1.1现有会计软件数据难以共享
目前,会计核算软件开发公司有300多家,经过财政部评审的会计核算软件已有40多个,加上各省市级评审的也达到200多个。这些商品化会计软件种类众多,但其功能却大同小异,通用性差,模块集成化程度不高,不能满足不同层次用户的需要。单机版会计软件中的会计数据的共享是通过传送数据文件的方式来实现,不是采用数据库服务器的方式,无法真正实现数据库资源的共享。会计信息化主要是通过网络技术支持的,信息化要求数据是高度共享与传输,会计数据不能实现共享或者共享有缺陷,都不是信息化所要求的会计软件。
1.2会计软件开发模式的局限性
软件公司开发会计软件,软件开发者往往并非专业的财务会计工作者,他们基本上没参与过企业财务需求与管理过程,对财会业务的特征和业务流程掌握不透,所知道的会计业务知识是企业共性的会计知识,所以各会计软件开发公司都特别强调各自的会计软件开发模式和优点,这样就造成大部分会计软件兼容性不好,使用方法上也存在差异,给用户使用带来了很大不便。软件商在开发软件时不采用标准,软件开发商为了突出自己软件的特色,会别出心裁地开发出各自软件的特色,致使会计软件多而杂乱,导致不同会计软件的数据接口没标准,使用方法不一致,造成报表汇总不统一、数据查询不方便。
1.3会计软件的业务数据处理流程不适应信息化的要求
会计电算化阶段的会计软件处理流程基本上是模拟手工会计的处理流程而设计的,不适应信息化的要求。目前市场上主流会计软件基本上是C/S模式,该模式通常应用于局域网中。该模式开发的软件基本上使用在用户固定的环境,客户端需要安装用户软件才可以使用,不适合面向一些不可知的用户。维护成本高,软件每一次升级,所有客户端的用户程序都需要升级,费时费力,很不适应信息化发展应用的要求,限制了企业信息化的步伐。国内目前大部分ERP(财务)软件产品即属于此类结构。
2会计信息化环境中的会计软件开发的研究
2.1会计软件的开发要适应社会信息化的大背景
社会信息化是信息化的高级阶段,社会一切活动领域都要全面实现信息化。随着互联网的诞生与发展,人类进入了信息化社会。会计信息化是在会计核算、会计监督、会计预测与决策等方面的全面信息化,要根据信息管理的原理和技术对会计流程和会计模型进行架构,使之符合信息化的要求。Internet技术环境的发展,为促进会计信息化的发展创造了良好的条件。会计软件是ERP的一部分,会计软件的发展要与ERP和企业信息化的发展相适应。
2.2适应移动互联网的发展,开发移动会计软件
移动互联网是信息化的关键环节,全球信息化又给移动互联网的发展提供了新环境和新机遇。企业要实现会计信息化,就要开发适合在移动平台上使用方便的会计软件。通过移动互联网,用户使用移动会计软件通过输入密码、指纹认证等安全环节登录会计数据服务器端,完成数据业务的办理,真正实现信息化的无缝连接。
2.3采用B/S模式开发会计软件,才会符合会计信息化的要求
B/S(Browser/Server)即浏览器/服务器,它是建立在广域网基础上的,是随着Internet技术的产生而发展的,是对C/S模式的一种变化或者改进的软件开发模式。B/S模式的使用,使得浏览器技术实现原来需要复杂专用软件才能实现的强大功能,节约了开发成本。B/S模式的程序和数据存放在服务器端,以浏览器作为软件客户端的统一界面。用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,主要事务逻辑在服务器端实现。该模式的软件面向不同层次的用户群,使用地域分散,C/S无法作到这点,运行环境与操作系统平台基本没有关系,这样有利于企业信息化的实现。3.4会计软件访问人员的普及,杜绝资金腐败问题腐败的本质归根到底是资金问题,会计软件如何做到监管作用。在软件中,可以考虑将所有的原始会计数据(票据)都以图片的形式存储,一旦输入,就不能改动,不再是冷冰冰的财务数据显示。软件开发商在开发网络会计软件时考虑利用软件进行会计职能监督,在软件中采用基于角色的访问控制(RBAC模型),设置不同用户角色。针对不同角色人员设置不同的权限,可以让单位不同角色的员工登录查询会计数据,其他部门的(政府监管部门)人也可以注册审核后登录软件系统,实施监督。
3结论
软件工程中的主要探究内容就是凭借先进科学技术来为计算机软件的开发提供指导的服务,其追求的目标就是凭借投资的最小化而取得回报的最大化,在为人们提供科技服务时可以凭借计算机软件的高质量而做到最好。在涉及范围方面软件工程作为一门边缘学科是极为广泛的,其包含了多个学科领域,其中主要有经济学、心理学、人体工程学以及系统工程等。可以对这些学科的研究结合的基础上,使得在软件工程中开发出的软件更加的人性化。
2软件工程的应用技术
软件重用技术与构件技术、标准件技术以及中间件技术是软件工程中普遍都会用到的技术。在软件工程中会用到的最重要的手段就是软件重用技术,而构件技术则是软件工程的基础与核心,因此这两个技术也是软件工程在研发领域中的长期研究重点,如果能在软件工程中把软件重用技术运用好,就可以达到减少软件工程开发人员的低层次工作,使其在高层次的大构件耗费更多精力的目的。除以上两个以外,就是标准化技术了。其拥有着软件标准以及软件过程标准双面性质。标准化技术在软件工程中也发挥着较为重要的作用,这表现在其不仅可以满足软件重用以及构件技术的发展需求,还可以为周围软件产业的健康发展提供支撑,也可以作为软件工程的成熟标志。最后要说的就是中间件技术了,其于软件工程技术中所发挥的作用也是不可或缺的,软件工程领域的关注焦点和发展关键就是软件工程技术。中间件按照功能来划分就可以分为五大类,即为通信、数据库访问、分布对象、事务处理与远程过程调用。中间件技术可以对软件工程中重用以及构件技术的发展产生较大的影响。原因是软件工程中重用及构件化开发应用的有利支撑就是不同层次上的中间件平台。而且构件技术的现实化基础就是中间件技术,只有通过适配的中间件,才有凭借隔离以及抽象处理把软件变为构件的可能。
3软件工程的应用特点
3.1目标明确
在软件工程进行应用开发时就已经已经明确了目标,即为了对人们的需求进行满足。在软件工程的实施前其任务就是明确产品的需求标准,这就是软件工程分析需求以明确目标的过程,在需求分析上的质量会直接影响到软件开发的成功与否。在这个过程中开发人员会通过和用户间的不断交流,最终明确客户的需求,了解其软件工程中的实施目标。
3.2具有规范性
为了使软件工程中的应用开发工作可以在被他人接手时较为容易,因此软件工程在应用中都具有这规范性,尤其是在群体软件开发工作中,标准规范是十分重要的,因此软件工程在开发中都是根据一定规则进行对象组合的,以使其能拥有规范性。这种规范标准在实际上就是开发人员之间的沟通桥梁。
3.3具有易维护性
软件工程的开发软件在应用中有具有较强的可维护性,因为的其在软件工程中的后期继承对象可以因对初期对象的改变而产生变化。容易维护的特点可以使软件工程开发中的成本大大的降低,因此这样的易维护性的出现,在很大比例上是由于对软件工程开发成本的控制。
3.4创新性
任何技术的开发或进步都离不开创新。因此软件工程中开发的应用软件也都具备着创新性,只有这样才能在科技与经济不断发展的今天,对人们日益变化的需求进行满足,同时也跟上时代的脚步。
4软件工程在开发与应用中应注意的因素
4.1快速变化的用户需求
在软件工程的开发过程之中,就会出项在软件工程工作总不希望出现的问题,即用户不断对以前的要求进行修改或者是不断的对软件开发提出新要求。这种情况是不可避免的,因为受限于对新事物的认识过程,所有人都不可能直接就提出一个全面及准确的要求。因此在软件工程的开发与应用中应对用户需求的快速变化特别注意,在软件工程实施前向用户说明其中的规律,在一定条件下对用户的合理要求进行满足。
4.2用户的心理因素
在软件工程的开发与应用中主要会对其产生影响的用户心理因素就是抵触情绪。这种心理因素往往都是来自于怀疑先进技术的用户,这种抵触的心理因素体现在他们的行动中就是消极或者是漠然。在软件工程实施前的了解需求及明确目标方面,就应对此特别注意,要使其认识到现代计算机软件的发展趋势,了解软件工程的开发会带来的巨大经济效益,已达到了解用户真正需求,从而使用户掌握先进软件技术的目的。
5结语
关键词:软件开发;风险管理
0引言
风险无处不在,它在任何软件开发项目中都有可能发生。风险有几种形式:自然灾害、安全漏洞、人力资源缺失、第三方供应商问题、金融危机、不稳定的商业环境和项目失败。因此,在进行软件开发前,工程师应该制定一个风险管理计划。该计划涉及风险评估和风险控制,工程师应列出软件开发过程中可能发生的问题,并列出这些问题的解决方案。这样,即使软件开发过程中遇到问题,风险管理可以帮助把有害影响最小化,从而避免软件开发项目的失败。然而,并不是每个人都关注风险管理,人们也很容易忽视风险管理的影响。实际上,风险管理对于软件开发项目非常重要,因为风险是影响项目成功的重要因素。因此,本文试图通过对文献的分析,找出一些有效的风险管理方法,让开发人员了解风险管理的意义。
1文献综述
风险管理是项目成败的关键因素,也是项目管理的本质。因为风险管理可以帮助开发人员发现项目的威胁,并将其最小化(Alhawarietal.,2012)。此外,成功的风险管理可以帮助项目经理按时交付项目(Grantetal.,2006)。有效的风险管理需要找到风险,而不是否认风险、隐藏风险(GrayandLarson,2008)。风险管理有五个主要阶段,即风险规划、风险识别、风险评估、风险响应、风险监控与沟通(Lester,2014)。项目团队应该关注风险响应、监控和沟通。响应意味着控制,它指的是制定一个风险管理计划,将风险识别并按级别排序。监控包括标记一个已知的可能发生的风险,并改变该风险的可能性。沟通包括让项目团队中的所有人都知道风险管理的结果。风险响应、监控和沟通对于风险管理过程是必要的。项目团队聚在一起讨论并制定最新的风险管理计划,能提高按时完成项目的机会。Otniel、Nicolae、Claudiu(2012)提出通过对软件开发项目的分析,发现项目管理的本质是风险管理,而风险管理的方法有多种,最有价值的方法是评估方法和管理方法。评估方法将风险管理视为事后评估过程,该方法旨在找出导致项目失败的原因。
2分析
2.1风险管理的意义
风险管理是项目管理过程的关键因素之一。有些风险是不可避免的,但风险管理可以解决问题。风险管理的主要功能是,如果在项目开发过程中发生较大的风险,风险管理将有助于控制风险,减少对项目的负面影响,以避免项目失败。它还可以帮助项目团队按时完成项目。然而,有些人认为在软件开发项目的过程中进行风险管理是浪费时间和不必要的。我不同意他们的观点,因为风险是影响软件开发项目成功的一个重要因素,有效的风险管理可以处理风险,而不是让项目一定成功。
2.2软件开发项目中风险管理的基本步骤
软件开发项目中风险管理有五个主要步骤。首先,开发团队应该制定风险计划,在风险管理过程中准备好所有的事情,例如定义项目经理和项目团队成员的角色和职责。下一步是识别和分类风险,然后在软件开发项目中标记这些风险。在此之后是风险评估,它与风险分析类似,项目团队成员应该深入了解风险。风险响应是这5个步骤中最重要的,在这5个步骤中,软件开发的项目团队成员应该找到应对风险的解决方案。最后是风险监控和沟通步骤,这一步意味着对风险进行沟通和报告,让所有开发项目团队成员了解关于风险管理过程的最新信息。
3风险管理的两种有效方法
项目风险管理的两种方法:评估方法和管理方法。评估方法是一个事后评价过程。该方法的目的是列出、分析和总结过去项目中发生的一些风险,这些信息可以用来避免当前项目的失败。在开始软件开发项目风险管理之前,开发团队成员应该收集已知的风险因素,然后将这些风险因素放入当前的开发项目中。在完成当前软件开发项目之后,他们还需要从这个项目中收集新的风险因素,然后为下一个项目输入这些新的风险因素,最后进入一个循环。评估方法的优点是软件工程师能够意识到一些可能存在的风险,并在进行软件开发之前制定出相应的解决方案。虽然这种方法可以带来一些效果,但是不能完全处理项目开发过程中可能发生的所有风险。此外,评估方法对项目风险管理成功的贡献是间接的,因为从评估方法收集的信息只用于未来的项目。管理方法是由识别、分析、控制和监视事件组成的过程。这种方法在所有项目开发过程中都是持续的。软件工程师通过改进项目计划、预算和设计来进行风险管理。这种方法的目的是找出如何处理风险以防止项目失败。在这种方法中,不需要提前预知风险,风险管理存在于整个项目的开发过程中。然而,我认为如果将评估方法和管理方法结合起来,将是一种很好的管理风险的新方法。由于评估方法有一个致命的弱点,即风险是一个随机事件,在项目过程中,团队成员可能会遇到一些新的风险,这时评估方法并不能解决新出现的风险。所以做风险管理的项目工程师不能只使用一种方法。
4结束语
关键词:CDIO;计算机类专业;毕业设计质量
1引言
毕业设计是每一位大学生在校期间的最后一门综合实践课程[1]。其主要目的是对一些实际工程问题进行有针对性的研究与实践,将学生在大学期间所学的理论知识和技能进行综合运用,从而提高他们运用知识的能力和解决实际问题的能力。计算机类专业是一个典型的工科专业。其专业人才培养目标是要培养学生具备较强的计算机实践动手能力。因此毕业设计质量的高低可以直接反映出学生在计算机实践动手能力方面的强弱[2-3]。为了提高学生毕业设计的质量,必须针对传统教学模式中存在的问题进行改革。CDIO工程教育模式是由构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)这四个英语单词的首字母组合而得。该模式是近代国际工程教育改革的重要成果,同时也是“做中学”和“基于项目教育和学习”的集中概括[4-5]。CDIO工程教育模式是通过将从产品研发到产品运行的整个过程贯穿于教学过程中,从而让学生以主动、实践、课程之间有机联系的方式来学习工科课程。虽然CDIO工程教育模式拥有先进的理念并在国外取得了成功,但是我国的教师们不能只是停留在让学生机械地按照CDIO模式去实施,而是要在现有条件的基础上结合学校的实际情况充分调动学生的自主性,让学生学会主动地参与学习。在这种情况下,本文通过分析传统教学中存在的问题和具体做法,在实践中探索出一种基于CDIO工程教育模式的提高计算机类专业毕业设计质量的方法。
2目前存在的问题
2.1毕业选题不恰当
在学生开始进行毕业设计前,通常由指导教师自行拟出毕业设计的题目,学生再根据毕业设计的题目来选择指导老师。指导老师拟出的毕业设计题目主要有两种类型:一类是软件设计类的课题,即生产实践类和社会应用类的题目;另一类是理论研究类的课题,即指导老师根据自己的科研情况确定与之相关的科学理论研究类的题目。毕业设计题目的选择按照先来先选的规则,即先来的学生优先选择题目,后来的学生则只能从剩下的题目中选择。这样做的结果是最后可能会剩下一些较难的题目,如理论研究类的课题。学生接触理论研究类的课题较少,因此这类课题难度较大,学生不擅长也不太愿意选择,但又没有其他的题目可供选择。也就是说,学生只能被动地适应指导教师的要求,而不是根据自己的实际情况来选题。
2.2开发过程不规范
在毕业设计的过程中,许多学生选定题目后,往往没有按照软件开发的过程首先对拟解决的问题进行实际的问题调研、可行性研究和需求分析,而是直接忽略这些阶段,马上根据自己的主观意识直接进入软件开发时期。部分学生没有对所要开发的软件进行前期的整体规划,经常是想到什么就做什么,甚至有些阶段的工作只做了一半又开始做另一个阶段的工作。甚至有部分学生直接跨越前期的软件设计,直接进行编码实现。这种无序的开发过程进行,使得待开发软件的体系结构混乱、功能代码重复开发,导致最终开发出来的系统目标不明确、需求不合理,没有现实意义。这对于提高学生适应未来的工作岗位的能力毫无帮助。此外,还有一部分学生在完成编码后只是简单地进行了测试。他们在测试正常后就以为毕业设计任务完成,可以等待答辩了。正是由于学生对软件测试过程的不重视,未多次反复地进行软件测试,使得在毕业答辩现场运行系统的时候,出现多个意想不到的错误,甚至系统直接崩溃导致无法运行,从而严重影响了毕业设计的质量。
2.3论文撰写不合理
通常学生都是在完成系统开发后才开始撰写毕业论文。毕业论文字数一般要求8000字以上。对于学生来说,完成毕业论文比开发系统更困难。正是由于系统开发存在无序问题,在没有经过软件定义的情况下直接进行编码实现,导致学生不知道毕业论文该写什么内容、如何写。因此在毕业论文中大篇幅粘贴开发工具的介绍和使用来凑字数,导致毕业论文重复率远高于学校的最高标准,从而不能按时参加毕业答辩。有的学生在毕业论文中搞不清楚写作的顺序,论文杂乱无章,主次不分,严重影响了答辩小组对毕业设计的评分。
3具体实施方法
针对计算机类专业毕业设计过程中存在的上述问题,本文结合CDIO模式总结出毕业设计各阶段与CDIO模式各阶段的对应关系,如图1所示。同时提出了CDIO模式在计算机类专业毕业设计的具体实施方法。
3.1构思自主
确定合适的毕业设计题目是学生能够高质量地完成毕业设计的基础。毕业设计题目的来源应立足于解决学生身边遇到的实际问题,同时注重提高学生发现问题、研究问题、分析问题和创新的能力。若学生在自行拟定毕业设计题目的过程中遇到困难,指导教师可以引导他们根据自己的兴趣爱好,从身边比较熟悉的领域来自拟题目,从而有信心完成毕业设计,并以饱满的热情投入到毕业设计中。当学生拟定题目后,指导教师只需对毕业设计题目从内容、规模和可行性等方面进行审核。选题完成后,学生需要根据毕业设计题目来进行问题定义、可行性研究和需求分析,明确要解决什么问题、系统是否值得开发、系统要实现什么功能等,通过查阅和收集与该课题相关的资料来解决这些问题。由于毕业设计题目来源于学生感兴趣和熟悉的领域,因此他们在完成软件定义时期的任务时会更加用心和游刃有余。
3.2设计规范
在毕业设计过程中,学生在软件设计和编码阶段遇到的困难主要来自于技术,如体系结构的设计、数据结构的设计和算法的设计等。当学生遇到困难时,指导教师可以指导他们在需求分析的基础上提出多种设计方案,首先通过对设计模型的分析和评估,然后根据实际的系统需求在提出的多种设计方案中选择合适的设计方案进行下一个阶段的开发活动。在整个开发过程,需要同时进行毕业论文的撰写工作。由于毕业论文撰写的主要内容就是系统实现的全过程,其结构框架实际上就是按照软件生命周期的先后次序。因此当学生按照软件生命周期进行毕业设计后,他们也会更明白毕业论文的撰写应该先写什么、后写什么、每一章节具体应该写什么内容。这样,整篇论文条理清晰,主次分明,论述正确,质量也大为提升。
3.3实现目标
软件开发时期的最后一个阶段就是软件测试。软件测试的目的就是为了发现错误。在进行软件测试的过程中,指导教师应该指导学生提前做好测试计划,设计足够多的测试用例。测试用例包括合理的数据和不合理的数据。在测试过程中,需要把每一个测试结果记录下来,若发现错误则要定位错误并改正,若没有发现错误则要确认是否正确地实现了系统既定的目标。通过反复测试,可以提高系统的质量,使得系统在答辩前能够及时发现错误,并进行改正,同时加深对系统的理解,增强学生顺利通过答辩的信心。
3.4运作正常
毕业答辩虽然只有短短的十几分钟,但是对于学生而言,却是检验他们四年来学习成果的重要时刻。在毕业答辩的过程中,答辩小组的教师首先会让学生演示系统,然后再根据演示的系统提出相关的问题,最后学生回答问题。因此,系统的正常运行非常重要,一旦系统运行错误,参与答辩的学生会非常着急,但又无法在较短的时间内解决问题,导致下一环节的问题回答得更加不好。这样,会给答辩小组的教师留下非常不好的印象,答辩分数也会大打折扣。
4结束语
1毕业设计中存在的问题
笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题:
1.1选题的盲目性
选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。
1.2缺少软件的系统分析
软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。
1.3软件设计过程杂乱无章
软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。
1.4开发过程中文档不完备
根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。
2用软件工程思想指导学生进行毕业设计
2.1以可行性研究指导选题
可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。
2.2重视软件的需求分析
需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。
2.3规范毕业设计过程
软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。
2.4重视文档的写作
软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。
3结束语