预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第一章绪论 软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关 文档的完整集合。 软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原 理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前 能够得到的最好的技术方法结合起来。软件危机:是指在计算机软件的开发和维护 过程中所遇到的一系列严重问题。主要是两个问题:1.如何开发软件,怎样满足对软 件的日益增长的需求。2.如何维护数量不断膨胀的已有软件。主要表现:1.对软件 开发成本和进度的估计不准确2.用户不满意3.软件质量不高、可靠性差4.软件常 常不可维护、错误难以改正5.缺乏适当的文档资料6.软件成本占系统总成本的比 例逐年上升7.软件开发速度跟不上计算机发展速度 产生软件危机的原因 1.与软件本身的特点有关:软件不同于硬件,它是计算机系统的逻辑部件而不是 物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡 量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。 2.软件不易于维护:(1软件维护通常意味着改正或修改原来的设计,客观上使软 件较难维护。(2软件不同于一般程序,它的规模大,不易于维护。 3.在软件开发过程中,或多或少地采用了错误的方法和技术。 4.对用户需求没有完整准确的认识,就匆忙着手编写程序。 解决软件危机的途径:⑴研制新一代体系结构的智能计算机,以改变软件的实现 方式,降低软件的复杂性。目前尚未研制成功。⑵采用工程化、规范化的开发方法 来指导软件的开发:这就是产生“软件工程学”的背景,并在70年代形成了结构化分 析、设计方法。⑶在求解方法上采用面向对象的软件设计方法。即在软件开发中, 以客观世界的问题空间入手进行软件设计,以减少求解方法空间与客观世界问题空 间存在的“鸿沟”。 “生命周期法”的起源:软件工程采用的“生命周期法”,就是从时间角度对软件开 发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个 阶段有相对独立的任务,然后再逐步完成每个阶段的任务. 生命周期划分的原则:任务的性质尽可能相同,从而降低每个阶段任务的复杂性, 简化不同阶段之间的联系,有利于软件开发过程的组织管理。 生命周期的划分:软件生命周期一般分为:软件定义(问题定义、可行性研究、需 求分析、软件开发(总体设计、详细设计、编码和测试、软件使用与维护等三个时 期八个阶段。问题定义:“要解决什么问题?”可行性研究:“上一个阶段所确定的问题 是否有行得通的解决办法”目的:用最小的代价在尽可能短的时间内确定问题是否能 够解决需求分析:“系统必须做什么”对待开发软件提出的需求进行分析并给出详细 的定义、编写软件需求规格说明书、提交管理机构评审概要设计:把各项需求转换 成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些 需求相对应详细设计:对每个模块要完成的工作进行具体的描述,为源程序编写打下 基础、编写设计说明书,提交评审。编码:把软件设计转换成计算机可以接受的程序 代码,即写成以某一种特定程序设计语言表示的“源程序清单”、写出的程序应当是 结构良好、清晰易读的,且与设计相一致的软件测试:单元测试:查找各模块在功能和 结构上存在的问题并加以纠正组装测试:将已测试过的模块按一定顺序组装起来,按 规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使 用软件维护改正性维护:运行中发现了软件中的错误需要修正适应性维护:为了适应 变化了的软件工作环境,需做适当变更完善性维护:为了增强软件的功能需做变更 软件工程三要素:过程(为软件工程的过程和方法提供自动化或半自动化的工具 支持、方法(完成项目的技术手段(传统方法学、面向对象方法学和工具(为软件工程 的过程和方法提供自动化或半自动化的工具支持 软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素.方法支 撑过程和工具、过程和工具促进方法学的研究。将系统的、规范的、可量化的方法 运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。 传统方法学(生命周期方法学原理:采用结构化技术来完成软件开发的各项任务, 并使用适当的软件工具或软件工程环境来支持结构化技术的运用,即把软件生命周 期的全过程依次划分为若干阶段,然后顺序地完成每个阶段的任务。 软件的生存周期及其开发模型:一、瀑布模型:优点:通过设置里程碑,明确每阶 段的任务与目标。可为每阶段制定开发计划,进行成本预算,组织开发力量。通过阶 段评审,将开发过程纳入正确轨道。严格的计划性保证软件产品的按时交付。缺点: 缺乏灵活性,不能适应用户需求的改变。开始阶段的小错误被逐级放大,可能导致