西门子代理商-西门子经销商-西门子总代理
西门子代理商
西门子经销商
西门子总代理
1.2.2 软件工程的研究内容和基本原理
1.软件工程的研究内容
软件工程的主要研究内容是软件开发技术和软件开发过程管理两个方面。在软件开发技术方面,主要研究软件开发方法、软件开发过程、软件开发工具和技术。在软件开发过程管理方面,主要研究软件工程经济学和软件管理学。技术与管理是软件开发中缺一不可的两个方面。没有科学的管理,再先进的技术也不能充分发挥作用。
2.软件工程的基本原理
自从1968年“软件工程”正式提出并使用以来,从事软件工程研究的专家学者软件维护也是造成软件危机的原因。
2.解决软件危机途径
目前,计算机的应用日益广泛,世界上发达国家的许多企业将全部投资的10%以上用于计算机领域。但到目前为止,计算机的体系结构在硬件上仍然是冯·诺依曼计算机。实际中复杂、庞大的问题,只能由专门人员编制软件来解决。假设计算机能实现智能化,能进行推理和运算,正确解决用户所提出的问题,那么软件危机就会有根本性的缓解。然而新一代计算机体系结构的研制可能还需要一段时间。那么在目前计算机硬件条件下,要想解决软件危机必须解决以下问题。
(1)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念。
(2)要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法。尽快消除在计算机系统早期发展阶段形成的一些错误观念和做法。
(3)要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务。充分认识软件开发不是某种个体劳动的神秘技巧。
发和使用好的软件工具。正如机械工具可以“放大”人类的体力一样,软件工具也可以“放大”人类的智力,从而可以有效提高软件生产率。术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,提交给用户的软件质量差,在运行中暴露大量问题。
(4)软件产品可维护性差,软件开发人员在开发过程中按各自的风格工作,各行其是,没有统一、公认的规范和完整规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性差。
(5)软件成本在计算机系统总成本中所占的比例逐年上升。软件的发展跟不上硬件的发展。由于微电子技术的进步和生产自动化程度的不断提高,硬件成本逐年下降,然而软件开发需要大量人力,软件成本也随着通货膨胀以及软件规模和数量的不断扩大而持续上升。
(6)软件开发生产率提高的速度远远跟不上计算机应用速度普及深入的趋势。软件的发展跟不上用户的要求。软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提软件是一种特殊的产品,与传统的工业产品相比,它具有以下一些独特的特点。
(1)软件是一种逻辑产品,而不是具体的物理实体,具有抽象性,人们可以把它记录在纸上,保存在计算机内存、磁盘和光盘等存储介质上,但却无法看到软件本身的形态,必须通过观察、分析、思考、判断以及通过计算机的执行才能了解到它的功能和作用。
(2)软件产品的生产主要是开发研制,没有明显的制造
开发研制完成后,通过复制可以产生大量软件产品,所以对软件的质量控制,必须着重在软件开发方面下功夫。
(3)软件产品在使用过程中,不存在磨损、消耗、老化等问题。但软件在运行时,为了适应软件硬件、环境以及需求的变化而进行修改、完善时,会引入一些新的错误,从而使软件退化,在修改的成本变得让人们难以接受时,软件就被抛弃,生存期停止。
(4)软件产品的开发主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做的”,生产效率低。
(5)软件产品的成本相当昂贵,软件费用不断增加,软件的研制需要投入大量的人力、物力和资金,生产过程中还需对产品进行质量控制,对每件产品进行严格的检验。
(6)软件对硬件和环境有不同程度的依赖性,为了减少这种依赖性,在软件开发中提出了软件的可移植性问题。
(7)软件是复杂的。软件是人类有史以来生产的复杂度西门子高的工业产品,软件是一个庞大的逻辑系统。软件开发,尤其是应用软件的开发常常涉及其他领域的专门知识,这就对软件开发人员提出了很高的要求。团队之间的协作交流。
(4)有效的软件过程可以提高软件的维护性。软件工程是应用计算机科学、工程学、管理学及数学的原则、方法来创建软件的学科,它对指导软件开发、质量控制以及开发过程的管理起着非常重要的作用。本章介绍软件和软件工程的基本概念,包括软件、软件危机、软件工程方法学、软件过程和软件生存周期模型,传统软件工程与面向对象软件工程等,从而使读者对软件工程与软件开发技术有所认
(5)有效地定义如何管理需求变更,在未来的版本中恰当分都是从不
表示。2.2 瀑布模型
软件生命周期把整个生命周期划分为较小的阶段,给每个阶段赋予明确有限的任务,就能简化每一步的工作,使得软件开发更易控制和管理。采用有效的方法和技术来降低开发活动的复杂性。瀑布模型是一种严格按照生命周期定义进行软件开发的过程模型。2.2.1 瀑布模型的基本思想
瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,西门子好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段进入下一个阶段。
瀑布模型是由温斯顿·罗伊斯(Winston Royce)于1970年提出的,因为“瀑布模型”是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,西门子终得到软件产品,故而形象地称为“瀑布模型”。瀑布模型是一种被广泛采用的软件开发模型。配变更部分,使之平滑过渡。
(6)可以在不同的软件设计阶段平滑过渡,提高研发系统的可实施性。2.1.5 软件过程模型化
软件过程是复杂的,且像所有智力和创造性过程一样,依赖于人们的决策和判断。并不存在什么理想的软件过程。大多数机构有自己的软件开发过程。虽然有许多不同的软件过程,但所有软件过程都必须具有四种对软件工程来说是基本的活动,分别是:
(1)软件描述:必须定义软件的功能以及软件操作上的约束。