【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试

特别提醒:此篇文章仅针对砂砖的软工考试!

再特别提醒!!!考试中的题目来自老师上课讲的,并无出入。如果考试内容不符 ,哥们也不知道说啥了。
在这里插入图片描述
在这里插入图片描述

写在前面:完整pdf版见Github Github-Trae1ounG
示例:

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第1张图片

如果对你有用麻烦点赞收藏加关注,并给我的仓库点一个Star!
谢谢!
Github-Trae1ounG

软工考题:
阅读题5分 1-3章
阅读题5分 4-6章
阅读5分 7-9章
编程20 4-7章
三道简答5分
简答一:软件工程概述
简答二:软件过程
简答三:项目管理(18章)
五道分析题(10分)
分析题一:用例图
分析题二:活动图
分析题三:顺序图
分析题四:类图
分析题五:白盒/黑盒?

概念题:

软件工程概述

软件的概念和特点

软件危机的概念和产生的原因

软件工程的定义、三要素、应用软件工程的原因

  • 软件的概念和特点

    • 软件=程序+文档+数据
    • 程序是按事先设计的功能和性能需求执行的指令序列
    • 数据:是程序能正常操作信息的数据结构
    • 文档:与程序开发、维护和使用有关的图文材料
    • 特征
      • 软件是开发的或者是工程化的,并不是制造的
      • 软件生产是简单的拷贝
      • 软件会多次修改
      • 软件开发环境对产品影响较大
      • 软件开发时间和工作量难以估计
      • 软件的开发进度几乎没有客观衡量标准
      • 软件测试非常困难
      • 软件不会磨损和老化
      • 软件维护易产生新的问题
  • 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。

  • 项目超出预算

    v 项目超过计划完成时间

    v 软件运行效率很低

    v 软件质量差

    v 软件通常不符合要求

    v 项目难以管理并且代码难以维护

    v 软件不能交付

  • 产生软件危机的原因

    • 客观:软件本身特点
      • 逻辑部件
      • 规模庞大
    • 主观:不正确的开发方法
      • 忽视需求分析
      • 错误认为:软件开发=程序编写
      • 轻视软件维护
  • 软件工程是一门指导计算机软件开发和维护的工程学科。软件工程是一门交叉性学科

  • 应用软件工程的原因:

    • 软件工程概念的提出:其目的是倡导以工程的原理、原则和方法进行软件开发,以解决软件危机
  • 软件工程可定义为三元组: <目标,原则,活动>

    (1)给出了软件所涉及软件工程的工程要素

    (2)给出了各要素之间的关系

    (3)给出了软件工程学科所研究的主要内容

  • 软件工程目标

目标:

生产具有正确性、可用性以及开销合宜的产品。

-正确性:

• 意指软件产品达到预期功能的程度。

-可用性:

• 意指软件基本结构、实现及文档为用户可用的程度。

-开销合宜:

• 指软件开发、运行的整个开销满足用户要求的程度

  • 软件工程的活动

活动:-生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。主要包括需求、设计、实现、确认和支持等活动

(a)需求:

定义问题,即建立系统模型

(b)设计:

-在需求分析的基础上,给出系统的软件设计方案。

-设计包括总体设计(也称为概要设计)和详细设计:

  • 总体设计建立整个软件体系结构
    • 包括子系统、模块(或构件)以及相关层次的说明、每一模块(或构件)的接口定义
    • 体系结构类型可分为:层次模块体系结构、C/S体系结构、以数据库为中心的体系结构、管道结构和面向对象的结构等
  • 详细设计针对总体设计结果,给出体系结构中每一模块或构件的详细描述

©实现:

把设计结果转换为可执行的程序代码

(d)确认

-确认活动贯穿于整个开发过程.

-实现完成后的确认,保证最终产品满足用户的需求。

(e)支持活动:

-支持活动包括修改和完善。

-它为系统的运行提供完善性维护、纠错性维护和适应性维护。

  • 软件工程的发展已经历了四个重要阶段
    • 传统的软件工程
    • 对象工程
    • 过程工程
    • 构件工程
      【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第2张图片

软件过程

软件生命周期概念、软件过程概念、常见的几种软件过程模型:瀑布、增量、原型、螺旋、敏捷等,比较各自优缺点

软件生命周期

  • 软件生命周期

软件产品或软件系统从设计、投入使用到被淘汰的全过程

包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、维护

软件过程

软件过程是在工作产品构建过程中,所需完成的工作活动、动作和任务的集合。

活动主要实现宽泛的目标,与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系

动作包含了主要工作产品生产过程中的一系列任务。

任务关注小而明确的目标,能够产生实际产品

软件过程模型

软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第3张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第4张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第5张图片

①瀑布模型
1、按照软件生命周期的各个阶段,依次向下,逐步求精的方式完成软件项目;

2、每一阶段都有每一阶段明确的任务,每一阶段的完成都有相应的文档生成,
3、为下一阶段提供依据。
优点: 能够逐步稳定的使项目向前发展。
缺点: 无法解决软件需求不明确或者变动的问题。
1、在项目生命周期的后期才能看到最终的成果,用户不能提前了解到软件产品的实际效果。
2、当需求发生变化时,整个软件项目需要从头再来,增加了软件的周期成本。
3、通过很多的强制完成日期和里程碑,来跟踪各个项目阶段,容易使软件项目质量收到影响。

②增量模型

  • 增量:满足用户需求的一个子集,能够完成一定功能、小而可用的软件。

通过对用户的需求,建立一个满足用户核心功能的产品,并投入使用,在使用的过程中,用户根据实际需求,提出新的需求(增量)。开发人员再将新的需求逐步增加到现有的系统中。

  • 增量模型结合了原型模型的基本要素和迭代的特征,采用了基于时间的线性序列,每个线性序列都会输出该软件的一个“增量”
  • 每个增量的开发可用瀑布或快速原型模型

优点:
1、用户可以很快的体验到软件产品,并且投入使用创造价值。
2、可以针对实际的使用情况增加新的比较明确的需求,也减少了用户学习使用的时间
3、减少软件项目的开发风险。
缺点:
1、每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增量

2、软件必须具备开放式体系结构(困难)

3、 易退化成边做边改的方式,使软件过程控制失去整体性


3、 快速原型模型:

原型:一个部分开发的产品,使客户和开发人员能够对计划开发系统的相关方面进行检查

原型化的目的:

  • 明确并完善需求,如演示原型
  • 研究技术选择方案,如技术验证原型

1、根据用户的需求快速建立一个原型系统,该原型能够满足用户的部分需求,用户根据原型,提出新的需求或者原需求的修改,一旦需求建立,原型系统将被丢弃。
优点:
1、通过快速 原型的建立,让用户试用,使用户的需求更加明确,降低了用户需求确定的难度。
2、通过原型,可以很快的让用户体验到产品的功能,并激发用户产生新的需求。

减少需求不明带来的风险

缺点:
1、注重需求的确定和功能的实现,而容易忽略产品的质量
2、一旦用户对原需求发生较大改变,需要产生新的模型
3、要求技术人员在短时间内制造原型模型,技术要求比较高

适用于目标客户不懂计算机

4 螺旋模型

把开发活动和风险管理结合起来控制风险

1、是快速原型模型和瀑布模型的结合,并且加入了风险分析;

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第6张图片

适用于需求不明确或者需求可能发生变化的大型复杂的软件系统。

支持面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。

喷泉模型

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第7张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第8张图片

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第9张图片

基于构件的开发模型

考虑的焦点是集成,而非实现

构件/组件(Component)

  • 系统中模块化的、可更换的部分
  • 实现特定的功能
  • 对实现进行封装,暴露一组接口
    【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第10张图片

统一过程模型

基于面向对象方法学

• 使用统一建模语言UML(Unified Modeling Language)

敏捷开发

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第11张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第12张图片
选择过程模型
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第13张图片

项目管理

项目管理四要素:人员、产品、项目、过程(概念)

软件度量有哪些方法

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。

软件项目管理的4P要素

人员、产品、项目、过程
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第14张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第15张图片

过程(Process)

根据项目特征选择合适的过程模型

根据过程模型进行项目分解

项目(Project)

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第16张图片

软件度量概念及面向规模的度量

软件项目管理的成熟化也需要度量与数字化,目的是持续改进软件过程,并用于项目估算、质量控制、生产率评估等。

软件项目度量的内容

▪ 生产率度量

▪ 质量度量

行业及组织的历史数据是软件项目度量的基础

软件项目度量的方法

面向规模的度量

通过对质量和(或)生产率的测量进行规范化而得到的,这些测

量是根据开发过的软件的规模得到的。

千行代码( KLOC ): 这些代码指的是源代码,通过源代码的

行数来直观度量一个软件程序有多大规模

生产率(PM):PM = L / E, L表示代码总量(单位:KLOC),E

表示软件工作量(单位:人月)

每千行代码的平均成本( CKL ):CKL = S / L,S为软件项目总

开销 , L表示代码总量(单位:KLOC)

代码出错率(EQRl):EQRl = Ne / L,Ne表示代码出错的行数,

L表示代码总量(单位:KLOC)

文档与代码比(Dl):Dl = Pd / L,Pd表示文档页数, L表示代

码总量(单位:KLOC)

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第17张图片

优点

▪ 简单易行,自然直观

缺点

▪ 依赖于程序设计语言的表达能力和功能

▪ 软件开发初期很难估算出最终软件的代码行数

▪ 对精巧的软件项目不合适

▪ 面向功能点的度量

▪ 用软件的功能表示软件的规模

▪ 应用最广泛的是功能点(Function Point, FP)法

▪ 项目开发初期就可估算出

▪ 功能点计算目前主要基于经验公式
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第18张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第19张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第20张图片
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第21张图片

▪ 优点

▪ 与程序设计语言无关, 在开发前就可以估算出软件项目的规模

▪ 不足

没有直接涉及算法的复杂度,不适合算法比较复杂的软件系统;

▪ 功能点计算主要靠经验公式,主观因素比较多

面向对象的度量

面向用例的度量

软件项目估算

概念

项目启动之前,软件团队应该估算将要做的工作、所需要的资源、成

本、从开始到完成的时间,也即是对这些内容进行预测

策略

项目度量方法为项目估算提供了依据与有效输入

尽量把估算推迟到项目的后期进行

根据已经完成的项目进行估算

【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第22张图片

基于经验的软件估算

COCOMO经验估算模型——概述

项目进度计划

定义:对项目进行任务划分,定义任务之间的依赖关系,并进行时间

估算和资源分配,确保以最佳的时间与成本输出满足质量要求的产品
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第23张图片

关键路径

关键路径(critical path) :

在任务网络图中,从项目开始到项目完成有许多条路径,路径上所有

弧权重之和最大的路径(路径最长)叫关键路径。

非关键路径(noncritical path):

在整个任务网络图中非最长的路径都叫非关键路径。
【软件工程】什么?你还在复习软工但是不知道背哪里?速看!--电子科技大学2023年期末考试_第24张图片

你可能感兴趣的:(软件工程,软件工程,java,经验分享,github,pdf)