软件工程导论(第6版)

  • 格式:doc
  • 大小:57.50 KB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章、软件工程学概述

软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。

2.如何维护数量不断膨胀的已有软件。

具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。

2.用户对“已完成的”软件系统不满意的现象经常发生

3.软件产品的质量往往靠不住。

4.软件常常是不可维护的。

5.软件通常没有适当的文档材料。

6.软件成本在计算机系统总成本中所占的比例逐年上升。

7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。

软件配置:程序、文档和数据。

软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。

软件:是程序、数据及相关文档的集合。

程序:是能够完成预定功能和性能的可执行的指令序列。

数据:是使程序能够适当地处理信息的数据结构。

文档:是开发、使用和维护程序所需要的图文资料。

软件工程:指导计算机软件开发和维护的一门工程学科。

软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。2.软件工程的中心课题是控制复杂性。3.软件经常变化。4.开发软件的效率非常重要。5.和谐地合作是开发软件的关键。6.软件必须有效地支持它的用户。7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。

软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。2.坚持进行阶段评审。3.实行严格的产品控制4.采用现代程序设计技术。5.结构应能清楚的审查。6.开发小组的人员应该少而精。7.承认不断改进软件工程实践的必要性。软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。

软件工程方法学(包括传统方法学、面向对象方法学)包含三个要素:方法、工具和过程。

方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题。

工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。

工程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

面向对象方法学:把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。

面向对象方法学具有下述四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件。

2.把所有对象都划分成类。

3.按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。

4.对象彼此间仅能通过发送消息互相联系。

面向对象方法学的优点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。

软件生命周期:软件定义、软件开发和运行维护。软件定义:问题定义、可行性研究和需求分析。软件开发:总体设计,详细设计,编码和单元测试,综合测试。

1.问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”。

2.可行性研究:这个阶段回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”

3.需求分析:确定目标系统必须具备哪些功能。

4.总体设计:这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。

5.详细设计:这个阶段应回答的关键问题是:“应该怎样具体地实现这个系统呢?”

6.编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。

7.综合测试:这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求。

8.软件维护:关键任务是通过各种必要的维护活动使系统持久地满足用户的需要。

软件工程过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

生命周期模型:规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

生命周期模型包括:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、

瀑布模型的特点:1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.质量保证的观点。

快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。

增量模型:它分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件一个构件地向用户提交产品。

螺旋模型:基本思想是使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。(使用于内部开发的大规模软件项目)

喷泉模型:是典型的面向对象的软件过程模型之一。

面向对象方法学的四个要点:面向对象方法= 对象+ 类+ 继承+ 用消息通信

第二章、可行性研究

可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。

对每种解法都应该仔细研究它的可行性,一般说来,至少应该从下述3个方面研究每种解法的可行性:

1)技术可行性2)经济可行性3)操作可行性

可行性研究最根本的任务:是对以后的行动方针提出建议。

典型的可行性研究有下述一些步骤:1.复查系统规模和目标。2.研究目前正在使用的系统3.导出新系统的高层逻辑模型

4.进一步定义问题

5.导出和评价供选择的解法

6.推荐行动方针

7.草拟开发计划

8.书写文档提交审查。