西门子TP1900
工程也需要不断创新发展。在传统的软件开发过程中,软件使用者对软件的需求确定后则按照传统软件工程开发模型进行软件设计,需求的改变则可能会导致软件架构的改变,这种改变会对软件设计影响巨大。而在云计算背景下,需求可能是在不断地变化,比如刚开始预期的使用人数只有一万人,但是当软件上线之后发现该软件很受欢迎,使用人数达到了百万级,大大超过了之前软件设计容量,于是通过云计算,可以对软件的运行环境进行动态扩充,只要对软件稍作修改便下面是软件工程的七条原理:
1.用分阶段的生命周期计划严格管理
这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。
玻姆认为,在整个软件生命周期中应指定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。
2.坚持进行阶段评审
统计结果显示:大部分错误是在编码之前造成的,大约占63%,错误发现得越晚,改正它要付出的代价就越大,要差2到3个数量级。因此,软件的质量保证工作不能等到编码结束之后再进
诉我们,需求的改动往往是不可避免的。这就要求要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又称基准配置管理。当需求变动时,其他各个阶段的文档或代码随之相应变动,以保证软件的一致性。
4.采纳现代程序设计技术
从20世纪六七十年代的结构化软件开发技术,到西门子近的面向对象技术,从和、第二代语言,到第四代语言,人们已经充分认识到:方法大于气力。采用先进的技术既可以提高软件开发的效率,又可以减少软件维护的成本。
5.结果应能清楚地审查
软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。许多人把软件等同于计算机程序,其实这种理解是很狭隘的。软件工程应该包括:程序和所有使程序正确运行所需要的相关文档和数据信息。一个专业化开发的软件系统通常远不止一个程序。系统通常包含一些单独的程序,用于设置这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档。1.3.1 软件工程产品分类
软件工程人员关心的是软件产品(即能卖给客户的软件)的开发。软件产品有以下两类:
1.通用软件产品
构制作,在市场上公开销售,可以独立使用。软件产品有桌面操作系统、杀毒软件、手机应用软件、数据库软件、字处理软件、绘图软件以及工程管理工具等。还包括用于特定目的的应用产品,如图书馆信息系统、网上电子商务系统、财务系统等。
2.定制软件产品
这些产品受特定的客户委托,由软件承包商专门为这类客户开发。由于市场上的成熟软件系统其功能无法满足企业个性化需求或价格过高,产品存在特殊的行业特性等原因,需要根据企业的具体情况、具体要求而定制开发软件。定制软件相比于通用软件,可以大大提高资金使用率、提高员工的工作效率、降低成本、同现有业务接轨。这类软件的典型代表是企业ERP系统。企业资源计划即ERP(Enterprise Resource Planning),由美国Gartner Group公司于1990年提出。企业资源计划是MRP II(企业制造软件公司通过市场调研之后,认为某产品将会有巨大的市场空间,而软件公司在人力资源、设备资源、抵抗风险、资金和时间上都具备开发该产品的能力,于是决定立项,这类软件产品被称为“新产品研发类项目”,也可称为“非订单软件”。新产品研发类项目受市场定位、用户迫切需求获取、环境、研发创新能力等因素的影响,如果不了解用户场景、不了解用户的实际困难,往往很难进行。创新性是新产品开发计划的主要特点,也是开发的宗旨。创新,首先要满足用户的需要。它包括:新的市场盈利点、新的用户定位、新的性能、新的功能、新的原理和结构等。一切都是根据用户的新需要,作为创新的宗旨。
开发公司与固定的用户签订软件开发合同。软件开发合同是指软件企业与用户针对软件开发项目依法进行订立、履行、变更、解除、转让、终止以及审查、监督、控制等一系列行为的总称。其中订立、履行、变更、解除、转让、终止是合同管理的内容;审查、监督、控制是合同管理的手段。这类软件产品被称为“订单软件”。在合同类项目签订过程中,主要有以下环节构成:
(1)招标与投标
招标是一种国际上普遍运用的、有组织的市场交易行为,是贸易中的一种工程、货物、服务的买卖方式。招标是招标人(买方)发出招标公告或投标邀请书,说明招标的工程、货物、服务的范围、标段(标包)划分、数量、投标人(卖方)的资格要求等,邀请特定或不特定的投标人(卖方)在规定的时间、地点按照一定的程序进行投标的行为。
投标是与招标相对应的概念,它是指投标人应招标人特定或不特定的邀请,按照招标文件规定的要求,在规定的时间和地点主动向招标人递交投标文件并以中标为目的的行为。
对于一个小型软件项目的开发或产品实施,一般可由销售人员直接签订合同。对于一个大中型软件项目,在签订合同之前,一般由发标单位进行招标,软件软件企业已与用户签订了项目合同,同时《项目立项建议书》已通过项目评审,作为特殊情况,软件组织的上级下达了某项目的指令性软件开发计划。例如,跨组织跨部门的某个大系统项目,它的系统总体设计组分配给软件的需求。
合同管理必须是全过程的、系统性的、动态性的。全过程就是由洽谈、草拟、签订、生效开始,直至合同失效为止。软件合同签订后,一般由总工程师从研发部门指定专门的技术人员,配合业务人员做好技术方案。
3.产品升级类项目