没有合适的资源?快使用搜索试试~ 我知道了~
软件工程复习笔记
5星 · 超过95%的资源 需积分: 30 26 下载量 179 浏览量
2019-02-22
12:23:42
上传
评论 6
收藏 191KB DOC 举报
温馨提示
试读
19页
自己的期末复习笔记,针对于不会软件工程的同学,一周内提分
资源推荐
资源详情
资源评论
第一章 软件工程概述
1. 软件危机 (software crisis):是指在计算机软件的开发和维护过程中所遇到的一系列严重
问题。即“两低一高” 问题:质量低、效率低、成本高。
软件危机也成为“软件萧条(depression)”或“软件困扰(afflication)”
2. 软件危机主要表现
1)开发成本和进度估计不准
2)用户对“已完成的”软件系统不满意
3)软件质量往往靠不住
4)软件常常是不可维护的
5)软件通常没有适当的文档资料
6)软件成本逐年上升
7)软件开发生产率滞后于硬件和计算机应用普及的趋势
3. 产生软件危机的原因
1)与软件本身的特点有关
a. 软件不同于硬件,是逻辑部件而不是物理部件
缺乏可见性
难于测试
管理和控制开发过程困难
不会因使用时间过长而被“用坏”
难以维护
b.软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上升
2)和软件开发与维护的方法不正确有关
a.对软件开发和维护有关的错误认识和作法
忽视软件需求分析的重要性
认为软件开发就是写程序
轻视软件维护
b. 对软件开发过程与方法的认识与应用
软件开发要经历一个漫长的时期(编程占 10-20%)
程序仅是完成软件配置的一个组成部分
软件开发方法要有利于软件维护
4. 软件的特点
(1)软件是无形的(intangible)
(2)软件副本的大批量生产轻而易举
(3)软件业是劳动密集型的
(4)一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件
(5)软件本身很容易修改。但由于它的复杂性,又很难正确地修改 。
(6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退
化
5. 消除软件危机的途径
1)对计算机软件的正确认识
2)认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员
协同配合、共同完成的工程项目
3)推广使用成功的软件开发技术和方法
4)开发和使用更好的软件开发工具
总之, 为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
6. 对“工程”的理解:大事情,施工的过程,工程学科。
施工的过程:分析®设计® 实现® 维护
7. 软件的概念
经典定义:软件 = 程序 + 文档 + 数据
软件是计算机程序及其有关的数据和文档的完整集合。
计算机程序是能够完成功能的可执行的指令序列
数据是程序能适当处理的信息,具有适当的数据结构
软件文档是开发、使用和维护程序所需要的图文资料
8. 软件工程的概念
概括地说,软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的
管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有
效地维护它,这就是软件工程。
目标:项目成功(BFC,Better、Faster、Cheaper)
9. 软件工程的本质特征
(1)软件工程关注于大型程序的构造
(2)软件工程的中心课题是控制复杂性
(3)软件经常变化
(4)开发软件的效率非常重要
(5)和谐地合作是开发软件的关键
(6)软件必须有效地支持它的用户
(7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造
产品
10. 软件工程的基本原理
(1)用分阶段的生命周期计划进行严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
11. 软件工程方法学
通常把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也
称为范型(paradigm)。
1) 传统方法学(结构化方法学):SA,SD,SP,ST
2) 面向对象方法学:OOA,OOD,OOP,OOT
S:结构化,structured
OO:面向对象,Object Oriented
A:分析,Analysis
D:设计,Design
P:编程,Programming
T:测试,Test
12. 软件工程方法学三要素,这就是方法、工具和过程。其中:
1)方法是完成软件开发任务的技术方法,回答“如何做”的问题;
2)工具是为方法的运用提供自动的或半自动的软件支撑环境;
3)过程规定了完成各项任务的工作阶段、工作内容、产品、验收的步骤和完成准则。
第二章 软件过程
1. 过程(process): ISO9000 把过程定义为,把输入转化为输出的一组彼此相关的资源
和活动。
2. 软件过程(Software Process): 是为了获得高质量软件所需要完成的一系列任务的框架
(Framework),它规定了完成各项任务的工作步骤。
3. 软件生命周期
软件生命周期由软件定义、软件开发、和运行维护三个时期组成,每个时期又可进一步
划分成若干个阶段。(三个时期八个阶段)
三个时期八个阶段:
三个时期:软件定义、软件开发、运行维护
八个阶段:(1)问题定义 (2).可行性研究 (3).需求分析 (4).概要设计 (5).详细设计
(6).编码和单元测试 (7).综合测试 (8).软件维护
4. 软件开发模型(在课本的 14—33 页,了解一下)
1) 瀑布模型 (Waterfall)
2) 快速原型模型 Prototype
3) 增量模型(Incremental Models)
4) 喷泉模型
5) 螺旋模型
6) 统一过程(rational unified process,RUP)
7) 敏捷过程
8) 极限编程(extreme programming,XP)
9) 能力成熟模型(capability maturity model,CMM)
第三章 结构化的分析(SA)
1. 需求分析:发现、求精、建模、规格说明、复审的过程。
发现:获取需求,完备、正确、有效
求精:细节
建模:形式化描述
规格说明:详述
复审:批准
2. 需求分析的准则
1) 必须理解和表示问题的信息域,根据这条准则应该建立数据模型。
2)必须定义软件应完成的功能,这条准则要求建立功能模型。
3)必须表示作为外部事件结果的软件行为,这条准则要求建立行为模型。
4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
3. 需求获取的方法
1) 访谈
正式的:事先准备好的
非正式的访谈:开放的,头脑风暴,情景分析
2) 面向数据流自顶向下求精
3) 简易的应用规格说明技术
4) 快速建立软件原型
4. 分析建模
结构化分析实质上是一种创建模型的活动。
通过需求分析而建立的模型必须达到下述的三个基本目标:
描述用户的需求。
为软件设计工作奠定基础。
定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产
品。
5. 模型(Model):是为了理解事物而对事物作出的一种抽象,是对事物的书面上的无歧义
文字或图形的描述.
5.1. 模型是对问题的简化。
5.2. 要从多个角度认识事物。
6. 分析模型: 数据模型(实体联系图)、功能模型(数据流图)、行为模型(状态转换
图)。
7. 需求分析成果:软件需求规格说明
8. 实体-联系图(ER 图,entity-relationship diagram)(P41,要求会画)
(1)数据模型的主要成分:数据对象,数据对象的属性,数据对象彼此间相互连接的
关系
数据对象:对软件必须理解的复合信息的抽象。
剩余18页未读,继续阅读
资源评论
- 狙神哥哥2019-02-22谢谢,找了很久了
一如故往
- 粉丝: 162
- 资源: 42
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功