软件工程(张海藩)的复习资料

由于过几天要考软件工程了,所以把软件工程比较重要的内容进行整理归纳

1

软件危机产生的本质原因;

!!软件日益庞大

什么是软件工程?

软件工程是:

(1)将系统化的、规范化、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。

(2)在(1)中所述方法的研究

软件工程方法学三要素?

方法、工具、过程

软件生命周期分为哪三大时期?八个阶段?

软件定义、开发、运行维护三个时期

  1. 问题定义
  2. 可行性研究
  3. 需求分析
  4. 总体设计
  5. 详细设计
  6. 编码和单元测试
  7. 综合测试
  8. 软件维护

前五个过程模型各自特点;

  1. 瀑布模型  阶段间具有顺序性和依赖性 推迟实现的观点 质量保证的观点
  2. 快速原型模型 快速建立一个能反应用户主要需求的原型系统,让用户先试用,然后提出修改意见,开发人员再快速修改原型系统
  3. 增量模型  分批的逐步向用户提交产品,整个软件产品被分解成许多个增量构建
  4. 螺旋模型  看作是在每个阶段之前都增加了风险分析过程的快速原型模型
  5. 喷泉模型  以用户需求为动力,以对象为驱动,面向软件开发过程迭代和无缝的特性

 

第 2章

数据流图(网上能查到,基本上只要记住至少需要一个输入流和一个输出流就可以)

第 3章

获取需求的方法

  1. 访谈 2.问卷调查 
    3.现场考察 4.资料查阅 5.市场调研

结构化分析建立哪三个模型?

数据模型(实体关系图ERD)、

功能模型(数据流图DFD,至少需要一个输入流和一个输出流)、

行为模型(状态迁移图STD)

第 5章

结构化方法学总体设计原理

1.模块化(把程序划分成独立命名且可单独访问的模块)

2.抽象 
(事物之间存在共性,将其进行集合和概括起来,暂时忽略他们其中的差异)

3.逐步求精 (为了能集中精力解决主要问题而尽量推迟对问题细节的考虑)

4.信息隐藏和局部化 (一个模块内的信息,对于不需要的模块来说,是不能访问的,将一些关系密切的软件元素放得比较靠近彼此)

5.模块独立(前四种的直接结果)

耦合与内聚的基本概念

耦合:对一个软件结构内不同模块之间互连程度的度量

内聚:标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展

耦合和内聚是两个很相似的概念

几种耦合的定义

数据耦合(低耦合):如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据

控制耦合(中等程度的耦合):如果传递的信息中有控制信息

特征耦合:当整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素

公共环境耦合:若一组模块都访问同一个公共数据环境,随着耦合的模块个数的增多,复杂程度也随之增强

内容耦合(最高程度):

一个模块直接访问另一个模块的内部数据;

或者一个模块不通过正常入口转到另一模块内部;

七种内聚的定义

功能内聚  完成一个单一的功能

顺序内聚  按照顺序执行

通信内聚  使用同一个输入数据或产生同一个输出数据

过程内聚  处理元素相关,以特定的次序执行

时间内聚  同一时间执行

逻辑内聚  逻辑上相同或相似的一类

偶然内聚  关系松散,一个模块的各成分之间毫无关系

从上到下,性能逐渐递减

第 6章

盒图

PAD图

 

 

第 7章

测试的分类,阶段,目标,好的测试,成功的测试,

黑盒测试:知道产品应该具有的功能,通过测试检验是否每一个功能都能正常使用

白盒测试:知道产品的内部工作过程

逻辑覆盖测试

语句覆盖,使每个语句都执行一次

判定覆盖  每个判定的每种可能的结果都至少执行一次

条件覆盖  每个条件都取到各种可能的结果

如上图

如果是语句覆盖: 那么我们只需要让其经过 sacbed就可以

那么就可以是 A=2 B=0 X=2

如果是判定覆盖:那么我们需要能够覆盖 sacbed,以及 sabd

那么就可以是A=2 B=0 X=2

以及 A=0 B=0 X=0

如果是条件覆盖的话:那么我们需要在a点满足A>1,A<=1,B=0,B≠ 0

在b点我们要满足 A=2 A≠2 X>1 X<=1

那么就可以是  A=2 B=0 X=1

以及 A=1 B=1 X=2

等价类划分的

把所有可能的输入数据划分成若干个等价类,以减少必须设计的测试用例的数目

边界值分析

处理边界情况时程序最容易发生错误

故障推测

很大程度上靠直觉和经验(。。。)

 

 

第 8章

软件提交后,为什么还要改变?

因为在软件测试的时候不可能暴露出一个大型软件系统中所潜藏的错误

四种类型的维护

完善性维护:扩充功能和改善性能而进行的修改

纠错性维护:开发阶段已经发生而系统测试阶段尚未发现的错误

适应性维护:软件适应信息技术变化和管理需求变化而进行的修改

预防性维护:为了改进应用软件的可靠性和可维护性

第 9,10,11,12章

面向对象分析建立哪三个模型?

对象模型,动态模型,功能模型

类与类之间的关系识别

关联、依赖、泛化、实现

面向对象设计通常分解为几个子系统?

人机交互、问题域、任务管理、数据管理

第13章

软件项目管理的概念

通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,已达到既定目标的过程

估算软件规模的方法;

代码行技术:依照以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数

功能点技术:根据软件信息域的特性和软件复杂度的评估结果

做进度计划的方法;

估算开发时间

Gantt图(甘特图)

工程网络

估算工程进度

关键路径

机动时间

人员组织三种形式;

主程序员组(多数缺乏经验)

民主制程序员组

现代程序员组

配置管理的概念

一种标识、组织和控制修改的技术

软件配置项

软件生存周期各个阶段活动的产物经审批后

基线

软件工程活动从一个环节转入另外一个环节时对阶段产品或组件的标识

原文地址:https://www.cnblogs.com/linyujin/p/10224363.html

时间: 2024-07-30 16:47:05

软件工程(张海藩)的复习资料的相关文章

Android复习资料

转载:http://blog.csdn.net/huachao1001/article/details/53156582 在10月份开始就没有再参与校招了,面试过程真的很累,有时现场等面试一等就是几个小时.加上毕业论文开题的压力,所以没有继续参加各个公司笔面试了.过去几个月中,复习时也曾经到处搜资料.搜真题.毕竟从小到大考试都是有教科书复习,有老师划重点.现在找工作都没有这些,只有靠自己.所以特别理解准备找工作的小伙伴们空有好好复习的决心,花了很多时间却没有复习多少知识,因为在搜资料过程需要很多

计算机三级网络技术备考复习资料zhuan

计算机三级网络技术备考复习资料   第一章  计算机基础 分析:考试形式:选择题和填空题,6个的选择题和2个填空题共10分,都是基本概念 1.计算机的四特点:有信息处理的特性,有广泛适应的特性,有灵活选择的特性.有正确应用的特性.(此条不需要知道) 2.计算机的发展阶段:经历了以下5个阶段(它们是并行关系):大型机阶段(46年ENIAC.58年103.59年104机).小型机阶段.微型机阶段(2005年5月1日联想完成了收购美国IBM公司的全球PC业务).客户机/服务器阶段(对等网络与非对等网络

.net 复习资料

.Net复习资料 一.填空题 (1) ASPX网页的代码储存模式有两种,它们是___和___代码分离模式. 答案:代码分离模式,单一模式 (2) 当一个Web控件上发生的事件需要立即得到响时,应该将他的        属性设置为true. 答案: AutoPostBack (3) 请将下列数据(nn)在TextBox控件中显示出来. Double  nn = 4512.6; TextBox1.Text = 答案: nn.ToString() (4)当需要将TextBox控件作为密码输入框时(要求

2019考研数学汤家凤张宇李永乐复习资料

2019考研复习资料 张宇 2019张宇概率论与数理统计9讲.pdf 2019张宇线性代数9讲.pdf 2019张宇高等数学18讲.pdf 张宇带你学-概率与数理统计-浙大四版.pdf 张宇带你学-线性代数-同济六版.pdf 张宇带你学-高等数学-同济七版(上).pdf 汤家凤 2019考研数学 复习大全 数学二 汤家凤.pdf 2019考研数学接力题典1800 数学一 解答册.pdf 2019考研数学接力题典1800 数学一 题目册.pdf 2019考研数学接力题典1800 数学二 解答册 汤

免费送2016高中学习资料同步复习资料

[历年+模拟试题分类汇编][发布800份]没拿到的速度了[大家在qq客户端,手机qq,和我聊天的地方回复"资料"两个字,完成任务,就能够拿到资料了.资料每天分享.]每天送学习资料 加入易梦网校+学习系统请联系客服QQ:1517757127 还送学习视频.拿到资料的后,不会解压的同学联系技术Q:1517757127,帮你解压!!! 本信息由SKYCC组合营销软件发出.

三面腾讯,已拿offer!分享复习经验和后台开发面经(附赠复习资料)

紧张的准备了一个多月,终于拿到最想要的offer啦!这一个多月刷了挺多题,也看了许多笔经面经 复习过程 项目准备: leetcode:刷完剑指之后每天会刷2-4道leetcode java基础: 主要刷面经.重点掌握垃圾回收机制 操作系统: 之前没学过,用几天时间看了一下最重要的进程线程.死锁.消费者生产者.哲学家问题.银行家算法 计算机网络:花几天时间复习了一下,重点复习tcp(三次握手四次挥手拥塞控制流量控制).udp.https 数据库: 重点了解了索引的实现以及引擎的区别 数据结构和算法

DTD复习笔记(复习资料为菜鸟教程里的DTD教程)

DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 为什么使用 DTD? 通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述. 通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据. 而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据. 您还可以使用 DTD 来验证您自身的数据 假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYP

JAVA宇宙无敌复习资料

一.java基础: 1.java简介 (1)java历史 (2)重要概念 javaSE(标准版) javaEE(企业版) javaME(微型版) JDK(java开发工具包)JRE(java运行环境)IDE(集成开发环境) - JavaSE(javaPlatform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.java se 包含了支持 Java Web 服务开发的类,并为 Java P

集合复习资料

参考 Java 学习之集合类(Collections) Java集合总览 JavaSE(Java基础)