IT计算raybet雷竞技竞猜app机]软件开发技术

2024-02-21

  raybet雷竞技竞猜app[IT计算机]软件开发技术brbr第 1 讲 软件开发概念br11 软件工程的产生 软件工程的产生 12 软件生存周期 软件生存周期 13 软件开发方法 软件开发方法 15 软件开发工具brbr返回主目录brbr 11软件工程的产生 软件工程的产生 软件工程的产生brbr111软件的特点 软件的特点br“软件”一词是20世纪60年代才出现的, 其定义为计算 机程序及其说明程序的各种文档。在该定义中,“程序”是 计算任务的处理对象和处理规则的描述;“文档”是有关计 算机程序功能、设计、编制、使用的文字或图形资料。 软件 与硬件一起构成完整的计算机系统,它们是相互依存的,缺 一不可的。 软

  1.1软件工程的产生1.2软件生存周期1.3软件开发方法1.5软件开发工具返回主目录1.11.1.1软件的特点“软件”一词是20世纪60年代才出现的,其定义为计算机程序及其说明程序的各种文档。在该定义中,“程序”是计算任务的处理对象和处理规则的描述;“文档”是有关计算机程序功能、设计、编制、使用的文字或图形资料。软件与硬件一起构成完整的计算机系统,它们是相互依存的,缺一不可的。软件是一种特殊的产品,它具有下列一些特性:软件是一种逻辑产品,它与物质产品有很大的区别raybet雷竞技竞猜app。软件产品是看不见摸不着的,因而具有无形性。第1章绪论它是脑力劳动的结晶,综以程序和文档的形式出现,保存在计算机存储器的磁盘和光盘介质上,通过计算机的运行才能体现它的功能和作用。软件产品的生产主要是研制。其成本主要体现在软件的开发和研制上,软件开发研究完成后,通过复制就产生了大量软件产品。软件产品不会用坏,不存在磨损、消耗问题。软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做”的。软件费用不断增加,软件成本相当昂贵。软件的研制工作需要投放大量的、复杂的、高强度的脑力劳动,它的成本非常高。1.1.2软件生产的发展自从第一台计算机诞生以来,就开了软件的生产,到目前为止,已经过了程序设计、程序系统和软件工程三个时代。程序设计时代(1946~1956年)程序设计时代的生产方式是个体手工劳动,使用的工具是机器语言、汇编语言;开发方法是追求编程技巧,追求程序运行效率,使得程序难读、难懂、难修改;硬件特征是价格贵、存储容量小、运行可靠性差;软件特征是保有程序、程序设计概念,不重视程序设计方法。程序系统时代(1956~1968年)程序系统时代的生产方式是作坊式的小集团合作生产,生产工具是高级语言;开发方法仍旧靠个人技巧,但开始提出了结构化方法;硬件特征是速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长;软件特征是程序员数量猛增,其他行业人员大量进入这个行业,由于缺乏训练,开发人员素质差。这时已意识到软件开发的重要性,大量软件开发的需求已提出,但开发技术没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件的开发,因此产生了头锐的矛盾,导致软件危机的产生。软件工程时代(1968年至今)软件工程时代的生产方式是工程化的生产,使用数库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件;硬件特征是向超高速、大容量、微型化以及网络化方向发展;软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机。1.1.3软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量和可靠性有显著的提高,生产成本有显著下降,为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术一直未能满足发展的要求。软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计算很难制定。主观盲目制定的计算,执行起来和实际情况有很大差距,使得开发经费一再突破。由于对工作量和开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确表达。开发工作开始后,软件人员和用户又未能及进交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,使开发失败。开发的软件可维护性差。开发过程没有统一的、公认的规范,软件开发人员按各自的风格工作,各行其事。开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行进发现错误也很难修改,导致维护性差。开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。这种不可靠的软件,轻者会影响系统正常工作,重者会发生事故,造成生命财产的重大损失。软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。1968年美国航空公司订票系统达到30万条指令;IBM360OS第16版达到100万条指令,花了5000个人年;1973年美国阿波罗计划达到1千万条指令。这些庞大软件的功能非常复杂,体现在处理功能的多样性和运行环境的多样性。有人曾估计,软件设计与硬件设计相比,其逻辑量要多达10~100倍。对于这种庞大规模的软件,其调用关系、接口信息复杂,数据结构也复杂,这种复杂程度超过了人所能接受的程度。软件开发的管理困难。由于软件规模大,结构复杂,又具有无形性,导致管理困难,进芳控制困难,质量控制困难,可靠性无法保证。软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。软件开发技术落后。20世纪在60年代,人们注重一些计算机理论问题的研究,如编译原理、操作系统原理、数据库原理、人工智能原理、式语言理论等,不注重软件开发技术的研究,用户要求的软件复杂性与软件技术解决复杂性的能力不相适应,它们之间的差距越来越大。生产方式落后。软件仍然采用个体手工方式开发,根据个人习惯爱好工作,无章可循,无规范可依据,靠言传身教方式工作。开发工具落后,生产率提高缓慢。软件开发工具过于原始,没有出现高效率的开发工具,因而软件生产率低下。在1960~1980年期间,计算机硬件的生产由于采用计算机辅助设自动生产线等先进工具,使硬件生产纺提高了100万倍,而软件生产率只提高了2倍,相差十分悬殊。1.1.4为了克服软件危机,人们从其他产业的工程化生产得到启示,于是在1968年北大西洋公约组织的工作会议上首先提出“软件工程”的概念,提出要用工程化的思想来开发软件。从此,软件生产进入了软件工程时代。软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。该定义说明了软件工程是计算机科学中的一个分支,其主要思想是在软件生产中用工程化的方法代替传统手工方法。工程化的方法借用了传统的工程设计原理的基本思想,采用了若干科学的、现代化的方法技术来开发软件。种工程化的思想贯穿到需求分析、设计、实现,直到维护的整个过程。软件工程的性质软件工程是涉及计算机科学、工程科学、管理科学、数学等领域的一门综合性的交叉学科。计算机科学中的研究成果均可用于软件工程,但计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统。软件工程要用工程科学中的观点来进行费用估算、制定进度、制定计划和方案;要用管理科学中的方法和原理进行软件生产的管理;要用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,明用户需求的形式化模型等。软件工程是一门工程性学科,目的是成功地建造一个大 型软件系统。 所谓成功,是要达到以下几个目标: 付出较低的开发成 达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按进完成开发任务, 及进交付使用;开发的软件可靠性高。 软件工程的内容软件工程研究的主要内容是指软件开发技术和软件开发管 理两个方面。在软件开发技术中, 它主要研究软件开发方法、 软件开发过程、软件开发工具和环境。在软件开发管理中, 它主要是研究软件管理学、软件经济学和软件心理学等。 软件工程面临的问题软件工程有许多需要解决的棘手问题,如软件费用、 由于软件生产基本上仍处于手工状态,软件是知识高度密集的技术的综合产物,人力资源远远不能适应这种迅速增长的 软件社会要求,所以软件费用上升的势头必然还将继续下去。 软件可靠性是指软件系统能否在既定的环境条件下运行燕实现所期望的结果。在软件开发中,通常要花费40%的代价进 行测试和排错,即使这样还不能保证以后不再发生错误,为了 提高软件可靠性,就要付出足够的代价。 统计数据表明,软件的维护费用占整个软件系统费用的2/3,而软件开发费用只占1/3。 软件维护之所以有如此大的花费,是因为已经运行的软件 还需排除隐含的错误,新增加的功能要加入进去,维护工作又 是非常困难的, 效率又是非常低下的。因此,如何提高软件 的可维护性,减少软件维护的工作量, 也是软件工程面临的 主要问题之一。 计算机的广泛应用使得软件的需求量大幅度上升,而软件的生产又处于手工开发的状态,软件生产率低下,使得各国都 感到软件开发人员不足。这种趋势将仍旧继续下去。所以, 如何提高软件生产率,是软件工程又一重要问题。 提高软件的重用性,对于提高软件生产率、降低软件成本 有着重要意义。当前的软件开发存在着大量的、重复的劳动, 耗费了不少的人力资源。软件的重用有各种级别,软件规格说 明、软件模块、软件代 软件文档等都可以是软件重用的单位。 软件重用是软件工程中的一个重要研究课题,软件重用的理论 和技术至今尚未彻底解决。 软件生存周期是借用工程中产品生存周期的概念而得来的。引入软件生存周期概念,对于软件生产的管理、进度控制有着 非常重要的意义,可使软件生产有相应的模式、相应的流程、 相应的工序和步骤。 软件生存周期是指一个软件从提出开发要求开始直到该软 件报废为止的整个时期。把整个生存周期划分为若干阶段,使 得每个阶段有明确的任务,把规模大、结构复杂和管理复杂的 软件开发变得容易控制和管理。 软件生存周期的各阶段有不同的划分。软件规模、种类、 开发方式、开发环境以及开发使用的方法都影响软件生存周期 的划分。在划分软件生存周期的阶段时,应遵循的基本原则是 各阶段的任务应尽可能相对独立,同一阶段各项任务的性质尽 可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段 之间的联系,有利于软件项目开发的组织管理。 通常,软件生存周期包括可行性分析和项目开发计划、需2024雷竞技raybet