软件工程概述考点整理.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

软件工程概述考点整理

软件及其本质特性

软件的概念

指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求;

数据结构,使得程序可以合理利用信息;

软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。

软件=程序+数据+文档

软件是逻辑的而非物理的系统元素,因此,软件具有完全不同的特性:软件不会“磨损”。

软件的失效曲线图

软件的特性

无形性

成本主要体现在软件的开发和研制上

软件不会被用坏,只能被淘汰

软件生产方式原始

软件成本昂贵

软件的本质特性

复杂性:软件是人类思维和智能的一种延伸,他比任何以往的人类的创造物都要复杂的多

一致性

软件不能独立存在,需要依附于一定的环境(如硬件、网络以及其他软件)

软件必须遵从人为的惯例并适应已有的技术和系统

软件需要随接口不同而改变,随时间推移而变化,而这些变化是人为设计的结果

可变性

人们总是认为软件是容易修改的,但忽略了修改带来的副作用

不断的修改最终导致软件的退化,从而结束其生命周期

不可见性

软件是一种“看不见、摸不着”的逻辑实体,不具有空间的形体特征

开发人员可以直接看到程序代码,但是源代码并不是软件本身

软件以机器代码的形式运行,但是开发人员无法看到源代码是如何运行的

软件的分类

按功能划分

系统软件:与计算机硬件紧密配合以使计算机各个部分与相关软件及数据协调、高效工作的软件。如操作系统、数据库管理系统等

支撑软件:协助用户开发软件的工具性软件

应用软件:在特定领域内开发、为特定目的服务的一类软件

按规模划分

微型 1人 1~4周 0.5k

小型 1人 1~6月 1k~2k

中型 2~5人 1~2年 5k~50k

大型 5~20人 2~3年 50k~100k

甚大型 100~1000人 4~5年 1M(=1000K)

极大型 2000~5000人 5~10年 1M~10M

按工作方式划分

实时处理软件:在事件或数据产生时,立即处理,并及时反馈信息

分时软件:允许多个联机用户同时使用计算机的软件

按服务对象的范围划分

项目软件:定制软件

产品软件:面向市场

按使用频度划分

一次使用的软件

频繁使用的软件

失效的影响划分

高可靠性软件

一般可靠性软件

软件的发展

第一阶段(20世纪50-60年代):程序设计阶段,此时硬件已经通用化,但软件生产却是个体化。由于程序规模小,几乎没有什么系统化的方法可遵循。

第二阶段(20世界60年代中-70年代末):程序系统阶段,多道程序设计、多用户系统引入了人机交互的新概念。这个阶段出现了“软件作坊”,被开发的软件可以在较宽范围内应用,此时软件维护的花费快速增长,更严重的是多程序的个体化特性使得他们根本不能维护,由此出现了“软件危机”

第三阶段(20世界70年代~80年代末):软件工程阶段,以软件的产品化、系列化、工程化、标准化为特征的软件产业发展起来。

第四阶段:不再着重单台计算机和计算机程序,而是针对计算机和软件的综合影响。

软件危机

软件危机的含义

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(20世纪60年代末70年代初);这些问题绝不仅仅是不能正常运行的软件才具有的,实际上几乎所有的软件都不同程度地存在这些问题

软件危机的表现

软件开发没有真正的计划性,对软件开发进度和开发成本的估计常常不准确。

对软件需求信息的获取常常不充分,软件产品往往不能真正满足用户的实际需求。

缺乏良好的软件质量评测手段,导致软件产品的质量常常得不到保证。对软件的可理解性、可维护性认识不够,软件的可复用性,可维护性不如人意。

软件开发过程没有实现“规范化”,缺乏必要的文档资料或文档资料不合格、不准确。

软件危机产生的原因

用户需求不明确

软件未开发出来之前,用户自己也不清楚软件开发的具体需要;

用户对软件开发需求的描述不精确,有遗漏,存在二义性,甚至矛盾和错误;

在软件开发的过程中,用户还曾提出修改软件功能、界面、支持环境等方面的要求;

软件开发人员对用户需求的理解与用户的要求有差异。

缺乏正确的理论指导

软件开发缺乏有力的方法学和工具支持。软件开发不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。

过分依靠程序设计人员的技巧和创造性,加剧了软件开发产品的个性化。

软件开发复杂度越来越高

软件开发不仅在规模上快速发展,而且其复杂性也急剧增加。

软件开发产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”的概念是相对的,一旦人们采取先进的组织形式、开发方法和工具,会大大提高软件开发的效率和能力,新的、更大的、更复杂的问题又会摆在人们的面前。

软件开发规模越来越大

随着软件开发应用范围的扩展,大型软件开发项目需要组织一定的人

文档评论(0)

A女汉子~小郭 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档