软件工程复习大纲

首先,还是熟悉的推一下别人的,避免自己弄少了,推荐:

软件工程期末复习+考试总结(湖中大)_软件工程段考-优快云博客

要准备好老师的PPT,这篇文章和上面的文章来复习。题目优先看PPT。

然后,发现这别人的啥都有了,剩下的只需要把PPT看看,再把题目复习一下就可以了。

大题只会在书上的4/5/6三章里出,PPT里也有案例,不会很难,我就不写了。

目录

一、概论

1.1引言(不重要)

1.2软件与软件危机(选择)

1.2.1软件的定义

1.2.2软件的特点

1.2.3软件的分类

1.2.4软件的发展历史(不重要,可以看看)

1.2.5软件危机的定义(选择)

1.2.6软件危机的原因(选择)

1.2.7软件危机的表现形式(可能考选择,了解)

1.2.8怎么消除软件危机(选择)

1.3软件工程

1.3.1软件工程的定义和目标(选择)

1.3.2软件工程的研究内容(大概率不考,了解)

1.3.3软件工程的基本原理

1.3.4软件工程三要素(了解,看一下PPT)

1.3.5软件工程的发展史(了解)

1.3.6软件质量特性(了解)

二、软件过程模型

2.1软件过程的定义(选择,大概率考)

2.2软件生命周期(选择)

例题:

2.3过程模型(加粗部分一定要认真看)

2.3.1瀑布模型

2.3.2快速原型模型

2.3.3增量模型(渐增模型)

例题:

2.3.4迭代(演化)模型

2.3.5螺旋模型

例题:

2.3.6喷泉模型(不好出题,大概率不考)

2.3.7Rational 统一过程模型

例题:

2.3.8模型对比(选择)

例题:

三、敏捷开发方法(这章属实折磨人)

3.1极限编程(选择)

例题:

四、可行性分析(选择)

4.1可行性分析的目的(选择)

4.2项目立项的过程

4.3可行性研究的任务(选择)

五、需求工程

5.1需求的分类

5.2软件需求工程的定义(选择)

六、结构化分析

6.1结构化分析方法概述(选择,必考)

例题:

6.2数据流图(大题)

6.2.1数据流图的基本符号(理解,最好看得懂)

例题:

6.3数据字典(理解,去看PPT)

6.4E-R 图(PPT案例,但多半是不用全画,会抠字填空)

6.5状态转换图(理解,去看PPT)

七、结构化设计

7.1软件设计的意义和目标(选择)


一、概论

1.1引言(不重要)

1.2软件与软件危机(选择)

1.2.1软件的定义

软件 = 程序+数据+文档(开发、使用和维护程序需要的所有文档)

1.2.2软件的特点

软件具有:

复杂性:代码多而复杂

不可见性:从代码很难看出功能问题

演化性:实现功能的增加等

1.2.3软件的分类

这张图太过完美,截下来懒得写,但是很重要,背下来

1.2.4软件的发展历史(不重要,可以看看)

1.2.5软件危机的定义(选择)

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

1.2.6软件危机的原因(选择)

客观原因:缺乏“可见性”、软件维护常常伴随着功能的改变、软件规模庞大

主观原因:

忽略需求分析的重要性:越急越搞不好。

没有意识到软件的定义是包含程序、数据和文档。

对于软件开发过程中的变更没有进行有效的管理。

没有注重软件的维护。

1.2.7软件危机的表现形式(可能考选择,了解)

用户需求不明确、软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难

1.2.8怎么消除软件危机(选择)

1.加强软件开发过程的管理(这点可以分为下面的两点)

        首先应该对计算机软件有一个正确的认识

        充分认识到软件开发不是个体的劳动,应该是团队协作完成的项目

2.推广项目开发中成功的技术和方法、研究更好更有效的技术和方法

3.开发和使用更好的软件工具

1.3软件工程

1.3.1软件工程的定义和目标(选择)

软件工程是一门交叉学科,目的是为了消除软件危机

如果选择中出现:目标是在给定成本、进度的前提下,开发满足用户要求的软件产品也是对的。

1.3.2软件工程的研究内容(大概率不考,了解)

软件开发技术和软件工程管理

1.3.3软件工程的基本原理

工程是将理论知识用于实践的科学,方便更加有效地解决实际问题,适用于大规模的设计和建造

工程化方法的特点:

注重问题的分解与合并

注重建模

1.3.4软件工程三要素(了解,看一下PPT)

过程、方法、工具。

1.3.5软件工程的发展史(了解)

1.3.6软件质量特性(了解)

什么是好的软件:功能质量、结构质量、过程质量(这里了解一下)

二、软件过程模型

2.1软件过程的定义(选择,大概率考)

过程:一组将输入转化为输出的相互关联或相互作用的活动

软件过程:是为了获得高质量软件而实施的一系列活动(这个大概率考)

2.2软件生命周期(选择)

总的来说,这个生命周期就是软件孕育的过程,各阶段都包括计划、开发、运行与维护三个时期。

软件定义:问题定义、可行性分析、需求分析
软件开发:概要设计、详细设计、编码、软件测试
软件维护:通过必要维护活动使系统持久满足用户要求

看一下PPT就可以了,比较好出题的只有这个:

软件维护的关键任务和维护类型:

例题:

1、在系统交付给用户后,为了改进图形界面的维护行为属于(  )

A、改正性              B、适应性                 C、完善性           D、预防性

答案:C

在软件维护中,由于企业的外部市场环境和管理需求的变化而导致的维护工作,属于(  )维护。

A、改正性              B、适应性                 C、完善性           D、预防性

答案:B

2.3过程模型(加粗部分一定要认真看)

2.3.1瀑布模型

收集需求->分析->设计->编码->测试->维护

特点:开发阶段严格按照线性方式进行,每个阶段都有相关的里程碑和交付产品,而且需要确认和验证。

阶段具有顺序性和依赖性:前一阶段结束是后一阶段的开始,前一个阶段输出文档,后一个阶段输入文档。

推迟实现观点:通过前期的系统分析和系统设计,推迟程序的物理实现以保证前期工作扎实。

质量保证观点:每个阶段都要有完整、准确的文档,每个阶段结束前需要对文档进行评审。

实际上这种模型过于理想化,所以现实会具有反馈环

使用场景:需求能被很好的定义和确认。

2.3.2快速原型模型

在瀑布模型的基础上,让需求分析可以反复的进行,同时不断修改原型,有的原型会抛弃,有的则是在其基础上改进。

优点:通过原型准确获取需求,也是线性的,每个阶段需要质量保证小组的仔细验证。

缺点:没有系统分析和设计,可靠性和性能难以保证,让客户觉得开发成本很低

2.3.3增量模型(渐增模型)

就是将功能分批交付,一次搞一部分。

风险更大的增量模型:提出需求后并行开发各类增量。

优点和使用场景看

软件工程期末复习+考试总结(湖中大)_软件工程段考-优快云博客

例题:

1、以下关于增量模型的说法,正确的是(  )

A、需求可以被准确的定义

B、可以快速构建核心产品

C、每个增量必须进行风险评估

D、不适用于商业开发

答案:B

2.3.4迭代(演化)模型

瀑布模型循环版,每次交付完后再迭代出新的增量,就是进阶的意思。

2.3.5螺旋模型

用于风险较大的大型软件项目,融合了瀑布模型和快速原型模型,同时加入了风险分析

它把开发过程分为:制定计划、风险分析、实施工程和客户评估4个阶段

优缺点和使用场景看

软件工程期末复习+考试总结(湖中大)_软件工程段考-优快云博客

例题:

关于螺旋模型,下列说法错误的是(  )

A、将风险分析扩展到每个阶段中,降低了风险

B、它是风险驱动的,要求开发人员有良好的风险分析能力

C、它不适用于大型项目

D、它包含维护周期,开发与维护之间没有本质区别

答案:C

2.3.6喷泉模型(不好出题,大概率不考)

软件工程期末复习+考试总结(湖中大)_软件工程段考-优快云博客

2.3.7Rational 统一过程模型

统一过程模型(RUP)是基于UML的一种面向对象软件开发模型,集中了多个软件开发模型的优点,采用迭代和增量递进的开发策略,究极大杂烩版本。

它的突出特点是:由用例驱动,以架构为核心,采用迭代和增量的开发策略。

由四个阶段组成:先启阶段、细化阶段、构建阶段、移交阶段

优点还是看。

在UP(统一过程,没有R)的生命周期中共有4个里程碑

(1)目标里程碑。 目标里程碑对应着先启阶段的结束,当开发者可以明确软件系统的目标和范围时即达到了该里程碑。

(2)架构里程碑。 架构里程碑是UP生命周期中的第二个里程碑,在这个里程碑前,开发者需要确定稳定的系统架构。

(3)能力里程碑。 当系统已经足够的稳定和成熟并完成Alpha测试后,认为达到了第3个里程碑。

(4)发布里程碑。

例题:

答案:B

2.3.8模型对比(选择)

例题:

1、现有一个已经有过开发经验的大型项目需要开发,宜采用(   )进行开发。

A、原型模型              B、螺旋模型                 C、瀑布模型           D、迭代模型

答案: C

解析:原型模型是快速原型模型,只能这么理解,毕竟没教啊

2、要开发一个需求明确的超大型项目,最不宜采用(   )进行开发。

A、原型模型              B、螺旋模型                 C、瀑布模型           D、迭代模型

答案:A

三、敏捷开发方法(这章属实折磨人)

总的来说,这种开发方法是一种关注合作的方法,每个人都需要与其他人交流来确定下一步方向,而且需要使用可视化管理的方式,将每个人的工作进度以每日或者每周的方式进行汇报。

通过逐步修改,也就是迭代的思维使制作的软件自适应需求,达到完成项目的同时做出尽量好的作品。

这个我无能为力,实在不知道他考啥。

建议直接看PPT

3.1极限编程(选择)

这个,看

软件工程期末复习+考试总结(湖中大)_软件工程段考-优快云博客

一共就那么多,都有可能出选择,而且很好出。

例题:

1、以下关于极限编程(XP)中结对编程的叙述中,不正确的是(   )。

A.支持共同代码拥有和共同对系统负责

B.承担了非正式的代码审查过程

C.代码质量更高

D.编码速度更快

答案:A

2、极限编程(XP)的十二个最佳实践不包括(   )

A.小的发布

B.结对编程

C.持续集成

D.精心设计

答案:D

四、可行性分析(选择)

4.1可行性分析的目的(选择)

用最小的代价最短的时间来确定问题是否可以解决

4.2项目立项的过程

4.3可行性研究的任务(选择)

去吧,去看软件工程期末复习+考试总结(湖中大)_软件工程段考-优快云博客

那里什么都有了,你们已经不需要我了o(╥﹏╥)o

五、需求工程

5.1需求的分类

业务需求:根据问题,提出期望和目标

用户需求:用户可以使用系统完成什么

系统需求:功能需求是需求的主体。

5.2软件需求工程的定义(选择)

概念:所有需求处理活动的总和。它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终描述出软件被应用后与其环境互动形成的期望效应。

其他的看

软件工程期末复习+考试总结(湖中大)_软件工程段考-优快云博客

六、结构化分析

6.1结构化分析方法概述(选择,必考)

例题:

1、在采用结构化方法进行系统分析时,根据分解与抽象的原则,按照系统中数据处理的流程,用 (   )来建立系统的逻辑模型,从而完成分析工作。
A. E-R 图
B. 数据流图
C. 程序流程图
D. 软件体系结构

答案:B

6.2数据流图(大题)

6.2.1数据流图的基本符号(理解,最好看得懂)

去看PPT

例题:

在结构化分析中,用数据流图描述(17)。当采用数据流图对一个图书馆管理系统
进行分析时,(18)是一个外部实体。

(17)
A.数据对象之间的关系,用于对数据建模
B.数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用
于对功能建模
C.系统对外部事件如何响应,如何动作,用于对行为建模
D.数据流图中的各个组成部分

(18)
C.借书证
D.借阅
A.读者
B.图书
答案:B    A

PPT上软考真题要会做,在6.1.1

6.3数据字典(理解,去看PPT)

6.4E-R 图(PPT案例,但多半是不用全画,会抠字填空)

6.5状态转换图(理解,去看PPT)

七、结构化设计

7.1软件设计的意义和目标(选择)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值