欢迎来到天天文库
浏览记录
ID:15296454
大小:143.50 KB
页数:13页
时间:2018-08-02
《第一讲 软件与软件工程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一讲软件与软件工程第一节软件关键的概念:软件、软件角色、软件特点、软件分类、软件危机、软件问题、软件神话、遗留软件与软件进化。软件定义:软件是多种术语和对象的集合,并将这些术语和对象有效地配置在一起。一般包括程序、文档和数据。软件在整个社会体系中一般承担两种角色:软件首先作为一种服务社会的产品,提供计算的能力;产生、管理、获取、修改、显示或传送信息的功能其次软件也可以作为其他产品的承载工具,如支持或直接提供系统功能;控制其他的软件(如操作系统);辅助通讯(如网络软件);帮助建立其他软件(如软件工具)。软件的特点:软件是被工程化的逻辑系
2、统;软件一般没有磨损;软件具有不同于一般实物系统的复杂性;软件分类:传统分类:系统软件;应用软件;工程和科学软件;嵌入式软件;专用产品软件;Web应用软件;人工智能软件;现代分类:随处计算软件(Ubiquitouscomputing,无线网络wirelessnetworks为代表);网络源软件(Netsourcing,,thewebasacomputingengine);开源软件(免费开放的源代码对于所有感兴趣的人,是希望但也存在许多问题);数据挖掘(DataMining);网格计算(Gridcomputing);认知机器(Cognit
3、ivemachines);软件新经济研究;软件危机:软件危机是指在软件发展过程中遇到的一系列严重问题。这些问题不是在解决具体问题时遇到的,而是软件开发过程所面临的具有普适性的问题。主要的典型表现有:1.对软件开发成本和进度的评估常常很不准确。2.用户对“已完成的”软件系统不满意3.软件产品的质量无法保障4.软件难以维护5.相关的开发文档不健全6.软件的重要性在不断提高7.软件开发的工作量的提高8.软件需求越来越复杂软件问题:为什么需要这么长的时间去获取一个可用的软件;为什么软件开发的费用这么高;为什么不能在将软件提交给我们的用户之前,发
4、现所有的软件错误并解决它们;为什么需要花费那么多的时间和努力来维护已经在运行的系统;为什么无论在软件被开发还是在维护阶段我们都那么困难来度量它;软件神话:所谓软件神话主要是针对三类人来说:软件管理者、软件客户和软件开发者。分析人们日常理解中的一些误区。例如:管理者角度有些人认为:对于软件开发有一些通用的能够适应所有需要的准则或程序,可满足所有的开发需求。实际情况是:这种理想是不现实的,即使有这种理想的东西存在,他也是不可用的。因为软件是一种社会性和变化性非常强的产品。有些人认为:如果软件产品的开发周期拖后了,可以通过增加人手来加快软件的
5、开发速度,并尽快完成产品。实际情况是:软件产品的开发不同于普通机器的生产过程。一般来说,直观的感觉通过增加人手可以有效地提高劳动生产效率,但软件的开发,对于新加入的人来说还需要对其进行有效的培训和熟悉需求要求的过程,因此综合考虑各种因素,简单地添加人手是不能很好地解决问题,有时还时工程进一步拖延。有些人认为:通过从第三方采购软件项目,就可以轻松地什么都不用做地完成项目。实际情况是:如果你不能够自己管理和控制软件,那你将永远不能够掌握用户,以及和第三之间的无休止的争吵。用户角度:有些人认为:一般对于需求的描述就足够开始编写程序了,详细的细
6、节将由程序开发人员在开发过程中补充完善。实际情况是:在需求描述中综合且稳定的描述并不总是存在的。用户的需求往往描述的非常模糊,有时甚至充满冲突,只有保证一定的沟通时间才能够将需求正确的理解清楚。有些人认为:项目的需求在不断的改变,但由于软件是灵活的因此这种变化可以轻易地被在软件中进行调整。实际情况是:对于这种变化在软件开发的早期可能比较容易调整,但如果到了软件开发的后期,这种变化有时将是致命的,有可能将导致整个软件的重新开发。开发者角度:有些人认为:一旦我们编写完程序,并使他们上线运行,那么我们的工作就完成了实际情况是:实际的工业数据显
7、示,大约有60%到80%的软件产品提交给用户后还需要进行扩展。有句话说的好,你开始编写代码越快,而你将花费越长的时间来结束它。有些人认为:直到程序运行,我多没有办法来评估我的软件的好坏。实际情况是:软件的测试和度量技术都是对软件进行评估的好工具。有些人认为:仅仅可运行的软件产品才是用户需要的东西。实际情况是:一个工作程序仅仅整个软件配置中各类元素之一,文档和相关的一些数据对于软件开发将更加重要。有些人认为:在编写软件过程中,还要编写文档和进行一些与编程无关的活动是浪费时间。实际情况是:编写文档和其他的一些工作将有效地减少重复工作的时间,
8、加快工程的进度。遗留软件与软件进化:所谓遗留软件是指多年之前开发的,能够继续被修改以满足商业需要和计算平台的系统,对于这些系统的增殖处理常常是让一些大的组织头痛的事情,系统的维护费用和风险都将增大。软件的“
此文档下载收益归作者所有