1.3 软件工程产品分类及来源
许多人把软件等同于计算机程序,其实这种理解是很狭隘的。软件工程应该包括:程序和所有使程序正确运行所需要的相关文档和数据信息。一个专业化开发的软件系统通常远不止一个程序。系统通常包含一些单独的程序,用于设置这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档。
1.3.1 软件工程产品分类
软件工程人员关心的是软件产品(即能卖给客户的软件)的开发。软件产品有以下两类:
1.通用软件产品
该类软件产品由软件开发机构制作,在市场上公开销售,可以独立使用。软件产品有桌面操作系统、杀毒软件、手机应用软件、数据库软件、字处理软件、绘图软件以及工程管理工具等。还包括用于特定目的的应用产品,如图书馆信息系统、网上电子商务系统、财务系统等。
2.定制软件产品
这些产品受特定的客户委托,由软件承包商专门为这类客户开发。由于市场上的成熟软件系统其功能无法满足企业个性化需求或价格过高,产品存在特殊的行业特性等原因,需要根据企业的具体情况、具体要求而定制开发软件。定制软件相比于通用软件,可以大大提高资金使用率、提高员工的工作效率、降低成本、同现有业务接轨。这类软件的典型代表是企业ERP系统。企业资源计划即ERP(Enterprise Resource Planning),由美国Gartner Group公司于1990年提出。企业资源计划是MRP II(企业制造资源计划)下一代的制造业系统和资源计划软件。除了MRP II已有的生产资源计划、制造、财务、销售、采购等功能外,还有质量管理,实验室管理,业务流程管理,产品数据管理,存货、分销与运输管理,人力资源管理和定期报告系统。目前,在我国,ERP所代表的含义已经被扩大,用于企业的各类软件,已经统统被纳入ERP的范畴。它跳出了传统企业边界,从供应链范围去优化企业的资源,是基于网络经济时代的新一代信息系统。它主要用于改善企业业务流程,以提高企业核心竞争力。
这两类产品的一个重要区别在于:在通用软件产品中,软件描述由软件开发者自己完成,而定制软件产品,其软件描述通常是由客户给出,开发者必须按客户要求进行开发。然而随着社会信息化程度不断提高,这两类产品之间的界限也正在变得越来越模糊。现在更多的公司通常从一个通用软件产品开始进行定制处理,以满足特别客户的具体需求。
1.3.2 软件工程项目来源
软件工程项目开发简而言之就是为了满足人们日益增长的生活工作需要,软件开发人员通过一系列的手段获取用户的需求,然后通过分析,遵循一定的开发原理,采取相对应的方法,最终产生用户所想要的软件。在现实生活中,软件工程开发项目的来源主要有以下三种:
1.新产品研发类项目
软件公司通过市场调研之后,认为某产品将会有巨大的市场空间,而软件公司在人力资源、设备资源、抵抗风险、资金和时间上都具备开发该产品的能力,于是决定立项,这类软件产品被称为“新产品研发类项目”,也可称为“非订单软件”。新产品研发类项目受市场定位、用户迫切需求获取、环境、研发创新能力等因素的影响,如果不了解用户场景、不了解用户的实际困难,往往很难进行。创新性是新产品开发计划的主要特点,也是开发的宗旨。创新,首先要满足用户的需要。它包括:新的市场盈利点、新的用户定位、新的性能、新的功能、新的原理和结构等。一切都是根据用户的新需要,作为创新的宗旨。
2.合同类项目
该类软件项目来源主要是软件开发公司与固定的用户签订软件开发合同。软件开发合同是指软件企业与用户针对软件开发项目依法进行订立、履行、变更、解除、转让、终止以及审查、监督、控制等一系列行为的总称。其中订立、履行、变更、解除、转让、终止是合同管理的内容;审查、监督、控制是合同管理的手段。这类软件产品被称为“订单软件”。在合同类项目签订过程中,主要有以下环节构成:
(1)招标与投标
招标是一种国际上普遍运用的、有组织的市场交易行为,是贸易中的一种工程、货物、服务的买卖方式。招标是招标人(买方)发出招标公告或投标邀请书,说明招标的工程、货物、服务的范围、标段(标包)划分、数量、投标人(卖方)的资格要求等,邀请特定或不特定的投标人(卖方)在规定的时间、地点按照一定的程序进行投标的行为。
投标是与招标相对应的概念,它是指投标人应招标人特定或不特定的邀请,按照招标文件规定的要求,在规定的时间和地点主动向招标人递交投标文件并以中标为目的的行为。
对于一个小型软件项目的开发或产品实施,一般可由销售人员直接签订合同。对于一个大中型软件项目,在签订合同之前,一般由发标单位进行招标,软件企业的市场销售人员获取招标信息后,立即反馈给企业销售中心,销售中心和软件研发中心人员迅速进行可行性分析。若可行,市场销售人员抓紧公关,技术支持人员马上组织有关的售前工程师,按照投标书的编写参考指南,制定投标书,参加竞标。
(2)投标策略
投标报价竞争的胜负,不仅取决于竞争者的经济实力和技术水平,而且还决定于竞争策略是否正确和投标报价的技巧运用是否得当。投标报价的主要方法有:不平衡报价、计日单价报价、多方案选择报价等。投标书的篇幅较长,少则几十页,多则几百页。由于投标单位很多,一个单位的讲标时间有限,所以讲标的内容只能是投标书的精华部分,所以要突出重点,抓住关键,打动人心。并且要用多媒体等技术手段进行展示。讲标效果直接影响中标概率。讲标人不但要气质高雅,而且要业务精通,口才好,表达能力强,时间与节奏掌握好,最好是本行业领域的业务专家。
(3)中标
中标是指投标人被招标人按照法定流程确定为招标项目合同签订对象,一般情况下,投标人中标的,应当收到招标人发出的中标通知书。中标后,经过技术谈判和商务谈判,才能正式签订合同。合同正文和合同附件都很重要,都具有法律效应。
(4)下达任务的方法
软件企业已与用户签订了项目合同,同时《项目立项建议书》已通过项目评审,作为特殊情况,软件组织的上级下达了某项目的指令性软件开发计划。例如,跨组织跨部门的某个大系统项目,它的系统总体设计组分配给软件的需求。
合同管理必须是全过程的、系统性的、动态性的。全过程就是由洽谈、草拟、签订、生效开始,直至合同失效为止。软件合同签订后,一般由总工程师从研发部门指定专门的技术人员,配合业务人员做好技术方案。
3.产品升级类项目
该类软件项目根据市场及用户的反馈,由研发部经理或总工程师确定是否进行同一个产品的不同版本升级研发。市场及用户反馈一般来源于企业对产品已有用户做的使用情况调查、对本企业产品及同类产品进行的市场调研分析,企业售后服务部门从客户处得到已有产品的使用报告或问题(故障)报告等。