软件工程笔记(完整版)

上传人:xmg****18 文档编号:118955816 上传时间:2020-01-01 格式:DOC 页数:38 大小:172KB
返回 下载 相关 举报
软件工程笔记(完整版)_第1页
第1页 / 共38页
软件工程笔记(完整版)_第2页
第2页 / 共38页
软件工程笔记(完整版)_第3页
第3页 / 共38页
软件工程笔记(完整版)_第4页
第4页 / 共38页
软件工程笔记(完整版)_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《软件工程笔记(完整版)》由会员分享,可在线阅读,更多相关《软件工程笔记(完整版)(38页珍藏版)》请在金锄头文库上搜索。

1、. . . . .第一章 软件工程概述1. 软件危机 (software crisis):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。即“两低一高” 问题:质量低、效率低、成本高。软件危机也成为“软件萧条(depression)”或“软件困扰(afflication)”2. 软件危机主要表现 1)开发成本和进度估计不准 2)用户对“已完成的”软件系统不满意 3)软件质量往往靠不住 4)软件常常是不可维护的 5)软件通常没有适当的文档资料 6)软件成本逐年上升 7)软件开发生产率滞后于硬件和计算机应用普及的趋势3. 产生软件危机的原因 1)与软件本身的特点有关 a. 软件不同于硬件

2、,是逻辑部件而不是物理部件 缺乏可见性 难于测试 管理和控制开发过程困难 不会因使用时间过长而被“用坏” 难以维护 b.软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上升 2)和软件开发与维护的方法不正确有关 a.对软件开发和维护有关的错误认识和作法 忽视软件需求分析的重要性 认为软件开发就是写程序 轻视软件维护 b. 对软件开发过程与方法的认识与应用 软件开发要经历一个漫长的时期(编程占10-20%) 程序仅是完成软件配置的一个组成部分 软件开发方法要有利于软件维护 4. 软件的特点 (1)软件是无形的(intangible) (2)软件副本的大批量生产轻而易举 (3

3、)软件业是劳动密集型的 (4)一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件 (5)软件本身很容易修改。但由于它的复杂性,又很难正确地修改 。(6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退化5. 消除软件危机的途径1)对计算机软件的正确认识 2)认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 3)推广使用成功的软件开发技术和方法 4)开发和使用更好的软件开发工具总之, 为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。6. 对“工程”的理解:大事情,施工的过程,工

4、程学科。施工的过程:分析设计 实现 维护7. 软件的概念 经典定义:软件 = 程序 + 文档 + 数据软件是计算机程序及其有关的数据和文档的完整集合。计算机程序是能够完成功能的可执行的指令序列数据是程序能适当处理的信息,具有适当的数据结构软件文档是开发、使用和维护程序所需要的图文资料8. 软件工程的概念 概括地说,软件工程是指导计算机软件开发和维护的工程学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 目标:项目成功(BFC,Better、Faster、

5、Cheaper)9. 软件工程的本质特征 (1)软件工程关注于大型程序的构造 (2)软件工程的中心课题是控制复杂性 (3)软件经常变化 (4)开发软件的效率非常重要 (5)和谐地合作是开发软件的关键 (6)软件必须有效地支持它的用户 (7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品10. 软件工程的基本原理 (1)用分阶段的生命周期计划进行严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性11. 软件工程方法学 通常把在软件生命周期全过程中使

6、用的一整套技术的集合称为方法学(methodology),也称为范型(paradigm)。1) 传统方法学(结构化方法学):SA,SD,SP,ST2) 面向对象方法学:OOA,OOD,OOP,OOTS:结构化,structuredOO:面向对象,Object OrientedA:分析,AnalysisD:设计,DesignP:编程,ProgrammingT:测试,Test12. 软件工程方法学三要素,这就是方法、工具和过程。其中:1)方法是完成软件开发任务的技术方法,回答“如何做”的问题; 2)工具是为方法的运用提供自动的或半自动的软件支撑环境; 3)过程规定了完成各项任务的工作阶段、工作内容

7、、产品、验收的步骤和完成准则。第二章 软件过程1. 过程(process):ISO9000把过程定义为,把输入转化为输出的一组彼此相关的资源和活动。2. 软件过程(Software Process): 是为了获得高质量软件所需要完成的一系列任务的框架(Framework),它规定了完成各项任务的工作步骤。3. 软件生命周期 软件生命周期由软件定义、软件开发、和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。(三个时期八个阶段) 三个时期八个阶段: 三个时期:软件定义、软件开发、运行维护 八个阶段:(1)问题定义 (2).可行性研究 (3).需求分析 (4).概要设计 (5).详细设计

8、 (6).编码和单元测试 (7).综合测试 (8).软件维护 4. 软件开发模型(在课本的1433页,了解一下)1) 瀑布模型 (Waterfall)2) 快速原型模型Prototype3) 增量模型(Incremental Models) 4) 喷泉模型5) 螺旋模型6) 统一过程(rational unified process,RUP)7) 敏捷过程8) 极限编程(extreme programming,XP)9) 能力成熟模型(capability maturity model,CMM)第三章 结构化的分析(SA)1. 需求分析:发现、求精、建模、规格说明、复审的过程。 发现:获取需求

9、,完备、正确、有效 求精:细节 建模:形式化描述规格说明:详述复审:批准2. 需求分析的准则 1) 必须理解和表示问题的信息域,根据这条准则应该建立数据模型。 2)必须定义软件应完成的功能,这条准则要求建立功能模型。 3)必须表示作为外部事件结果的软件行为,这条准则要求建立行为模型。 4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。3. 需求获取的方法 1) 访谈 正式的:事先准备好的 非正式的访谈:开放的,头脑风暴,情景分析 2) 面向数据流自顶向下求精 3) 简易的应用规格说明技术 4) 快速建立软件原型4. 分析建模 结构化分析实质上是一种创建模型的活动。 通过需求分

10、析而建立的模型必须达到下述的三个基本目标:描述用户的需求。为软件设计工作奠定基础。定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品。5. 模型(Model):是为了理解事物而对事物作出的一种抽象,是对事物的书面上的无歧义文字或图形的描述.5.1. 模型是对问题的简化。5.2. 要从多个角度认识事物。 6. 分析模型: 数据模型(实体联系图)、功能模型(数据流图)、行为模型(状态转换图)。 7. 需求分析成果:软件需求规格说明8. 实体-联系图(ER图,entity-relationship diagram)(P41,要求会画)(1)数据模型的主要成分:数据对象,数据对象

11、的属性,数据对象彼此间相互连接的关系数据对象:对软件必须理解的复合信息的抽象。属性:定义了数据对象的性质。联系:数据对象彼此之间相互连接的方式称为联系,也称为关系。类型:一对一联系、一对多联系、多对多联系。联系也可以有属性。(2)实体-联系图的符号表示: 实体 属性 联系9. 数据流图(DFD,Data Flow Diagram):描绘信息流和数据从输入移动到输出的过程中所经受的变换(书本P4347,要会画)10. 数据字典(DD:,Data Dictionary):是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合(书本P4951,要会画)11. 状态转换图(SD,State Diagram):通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。用于建立行为模型。状态:是任何可以被观察到的系统行为模式。状态规定了系统对事件的响应方式事件:是在某个特定时刻发生的事情,是引起系统做动作或(和)转换状态的控制信息。(书本P4749)第四章 结构化设计 架构性能 DFD 环境 功能 将来 分析 设计 过程 ERD DD 数据 STD 接口( 五大需求) 数据 (四大设计)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号