软件工程期末总复习

第一章 软件工程概述

什么是软件:程序+数据+配套文档

软件危机概念:计算机软件开发过程中所遇到的一系列严重问题

软件危机的产生原因:计算机应用范围扩大,软件开发需求急剧增长

软件工程的定义:指导计算机软件开发和维护的工程学科,使用最好最合适的技术,经济地开发出高质量软件

软件工程三要素:方法(开发/管理方法),工具(硬件/软件),过程(活动集)

习题知识点:

1.不属于软件特点的是:软件使用不涉及知识产权

2.软件危机的产生主要原因是:软件规模日益庞大

3.软件工程三要素:方法,工具,过程

4.“软件工程”术语是在1968年NATO会议被首次提出

5.软件工程基本目标是开发足够好的软件

6.软件由程序、数据、文档组成

7.下面选项中,软件工程材料不属于软件工程学科要研究的

8.开发软件所需高成本和产品低质量有着尖锐矛盾,这种现象称为:软件危机

9.人数增加生产效率不加是因为参与人员之间通信困难

10.软件工程的出现主要原因是软件危机的出现

第二章 软件过程 

软件生命周期定义:软件从定开发义到(软件定义时期)、使用到维护(软件开发时期和软件维护时期)、最终被弃用的整个时期(结束使用)

软件生命周期的三周期八阶段,以及各个阶段的基本任务: 

(传统的)软件过程模型(每一种模型知道它的特点)

瀑布模型:书上第一种模型

        适用于功能性能明确、完整、无重大变化的系统开发

        优点:提升了软件开发质量和效率

        缺点:过程不可逆,逆过程代价过大;实际开发中很难严格按照该模型进行(很少能按着一套流程一步一步来)

快速原型模型(原型化模型):书上第二种模型

        瀑布模型的改进模型,在瀑布模型的基础上增加了原型构建阶段(就是听取用户建议)

        解决了什么问题?用户说不清楚需求,通过实践了解目标系统概貌

        优点:更为准确、减少后期返工,用户参与性强,需求越来越清晰

        缺点:为了演示功能往往采用不合适的算法或系统,不考虑长期维护性和整体质量

增量模型:书上第三种模型

        瀑布模型的改进模型,分解系统,以用户看得见的功能为增量单位实现迭代式开发,一次完成一个增量,

        解决了什么问题?在较短时间内完成一部分功能供用户使用。

        优点:渐增完成,能在较短时间向用户提交可完成部分的产品;用户更能学习和适应(不停在版本迭代中学会使用系统软件),减少全新软件对用户的冲击(给小学生用IDEA)

        缺点:对软件体系结构要求较高,可能出现不能集成的风险(两个功能放一起就跑不起来);容易退化成边做边改模型(客户b话多)。

螺旋模型:书上第四种模型

        快速原型模型的改进模型,每个阶段都增加了风险分析

        优点:减少了测试过多过少的风险;融入了迭代的思想;避免错误的积累

        缺点:适用于大规模软件项目(做个贪吃蛇要什么风险分析);一般只适用于内部开发的项目

喷泉模型:书上第五种模型

        面向对象的软件开发方法为基础(因为是近些年提出的),生命周期各阶段间没有明显边界

        优点:逐步完善需求;节省开发时间;迭代开发

        缺点:需要大量开发人员(每个阶段都要很多人,并且这些阶段贯彻开发周期),对文档要求严格(人太多了不好交流)。

(现代的)统一过程模型和和敏捷过程模型(掌握每一种特点)

统一过程模型:

        迭代式开发(不迭代很难保证用户要什么)、管理需求(确定需求的时间很长)、使用基于组件的体系结构(有点像增量)、可视化建模、验证软件质量、控制软件变更

敏捷过程模型:

        特点:各阶段都有体现测试

        核心价值观:

        个体交互胜于过程和工具

        可使用的软件胜过面面俱到的文档

        客户合作胜过合同谈判

        响应变化胜过遵循计划

软件过程改进与CMM(了解概念和作用)

CMM是什么:能力成熟度模型

CMM的概念:评价软件机构的软件过程能力成熟度的模型

作用:提高软件质量,让软件项目免受时间和费用超支的苦

五个等级:

        1)初始级:无秩序、混乱,成功依赖于个人或小组。(什么都没有)

        2)可重复级:建立了基本的管理过程,制定了必要的纪律。(有基本的了)

        3)已定义级:文档化、标准化。所有项目使用标准的软件过程开发和维护。(标准化了)

        4)已管理级:对软件过程和产品都有定量控制。(标准化且量化)

        4)优先级:过程的量化反馈和现金的新思想、新技术促使过程不断改进。(最牛逼)

习题知识点:

1.瀑布模型适用于需求被清晰定义的情况

2.增量模型是一种需要快速构造核心产品的好方法

3.原型化模型适用于客户需求难以被清除定义

4.敏捷开发的优点不包括:遵循严格受控的过程和详细的项目规则

5.包含风险分析的是:螺旋模型

6.软件过程是:软件开发活动的集合

7.CMM在优化级使用定量分析不断改进和管理软件过程

8.瀑布模型把软件生命周期划分为:软件定义、软件开发、运行和维护三个阶段

9.以用户为动力、以对象作为驱动力的模型是喷泉模型

10.需求分析阶段主要任务是:获得系统完整的功能和性能需求

第四章 软件需求工程 

软件需求的定义:从用户角度和开发者角度阐述需求,编写需求文档

需求工程过程(要知道每一步做了什么):

        需求获取:听取客户需求,观察用户行为

        需求分析:将需求分析和整理

        需求规格说明:编写文档说明书

        需求验证:采用评审和审议的手段对说明文档验证

        需求管理:在软件生命周期中有效地管理和控制需求的变更

面向对象的需求分析:用例建模法(画)、活动图(不画s)建模法(知晓概念)

        活动图:实质上是一种流程图

        组成:

                动作状态(活动):不能有入口和出口动作,不能有内部转移

                活动状态:可以有出口和入口动作,可以有内部转移

                动作流:所有动作状态之间的转换流

                分支与合并:转换的一部分

                分叉与汇合:将动作流分为多个分支,同步这些并发分支

                泳道:将活动划分为若干组,每一组指定给负责这些活动的对象

                对象流:表示对象之间彼此操作与转换,许下念头表示

面向数据流的建模法(会画)P118

        数据流图(DFD):自顶向下逐层分解,先画第一层,再画第二层

        第一层:最宽泛的一层

        第二层:在第一层的基础上细分,把能加的都加了

习题知识点:

1.需求分析最终结果是形成需求规格说明书文档

3.参与者之间可以存在泛化关系

7.需求规格说明描述了:计算机系统的功能、性能和约束

15.DFD基本符号不包括数据字典

16.需求验证应该从一致性、现实性、完整性、有效性方面进行验证

第五章 软件系统建模 

统一建模语言:UML

定义:是一种定义良好的、易于表达的、功能强的建模语言

会画图,用例图世面得

第七章 软件设计与实现

该画的图会画,了解基本概念

状态图不需要画,但是要掌握基本概念

软件模块化设计(了解概念)

面向对象设计有哪些:类模型设计、交互模型设计、状态模型设计、数据管理部分设计、构建部署部分设计

总体设计(软件模块化设计、只需要了解):

        什么是模块化:把软件划分为独立命名、独立访问的模块,不同模块具有不同职能

        如何衡量模块好坏:模块间的耦合和模块内的内聚,理想状态是高内聚(模块内部紧密程度),低耦合(模块之间的互联程度)

详细设计(程序流程设计、数据库设计、人机交互界面设计):

        什么是详细设计:对总体设计模块结构图种每个模块的处理流程进行设计

程序流程图

判定表

判定树

第八章 软件测试

什么是软件测试:为了发现错误而执行程序或者系统的过程

目的:在软件投入运行之前,尽可能发现软件中潜在的问题,向用户提供一个高质量的软件

白盒测试技术

什么是白盒测试:以程序内部逻辑为依据,选取足够多的测试用例,尽可能发现程序中的错误

基本路径测试法(P204,掌握怎么用,画图,算复杂度)

        P205页的图学会怎么用和怎么画

        P207页两种计算方法:边数-节点+2      判定节点+1

黑盒测试技术

什么是黑盒测试:以程序的功能作为依据进行测试

第九章 软件演化

什么是软件演化: 开发和维护的综合

4类维护(课上习题):

软件再工程:现有软件基础再工程 

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值