• 软件工程概述


    软件工程概述

    软件工程指的是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产效率、提高软件质量、降低软件成本。

    1. 计算机软件

    计算机软件指的是计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。

    按照软件的应用领域,将计算机软件分为以下十类,包括:

    ①系统软件;②应用软件;③工程科学软件;④嵌入式软件;⑤产品线软件;⑥Web应用软件(Web APP);⑦人工智能软件;⑧开放计算;⑨网络资源;⑩开源软件。

    2. 软件工程基本原则

    美国著名的软件工程专家B.W.Boehm于1983年提出了软件工程的七条基本原理,包括:

    ①用分阶段的生命周期计划严格管理;

    ②坚持进行阶段评审;

    ③实现严格的产品控制;

    ④采用现代的程序设计技术;

    ⑤结果应能清楚地审查;

    ⑥开发小组的人员应少而精;

    ⑦承认不断改进软件工程实践的必要性。

    3. 软件生存周期🌟🌟🌟🌟🌟

    同任何事物一样,一个软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期。软件生存周期包括以下七个方面:

    3.1 可行性分析与项目开发计划(确定软件开发目标及其可行性,产出可行性分析报告、项目开发计划)

    这个阶段主要确定软件的开发目标及其可行性。参与该阶段的人员有用户、项目负责人、系统分析师。产生的文档有可行性分析报告、项目开发计划

    3.2 需求分析(确定软件系统要做什么,产出软件需求说明书)

    该阶段的任务不是具体的解决问题,而是要确定软件系统要做什么,确定软件系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型。参与该阶段的人员有用户、项目负责人、系统分析师。产生的文档主要是软件需求说明书

    3.3 概要设计(将确定下来的功能转换成需要的体系结构,产出概要设计说明书)

    该阶段开发人员把确定的各项功能需求转换成需要的体系结构。概要设计就是设计软件的结构,明确软件由哪些模块组成,这些模块层次结构是怎样的,调用关系是怎样的,每个模块的功能是什么。参与该阶段的人员有系统分析师、软件设计师。产生的文档主要是概要设计说明书

    3.4 详细设计(对每一个模块进一步详细具体的描述,产出详细设计文档)

    该阶段的主要任务是**对每个模块的功能进一步详细、具体的描述。**参与该阶段的人员有软件设计师、程序员。产生的文档主要是详细设计文档

    3.5 编码(根据模块编码实现功能,产出源程序)

    把每个模块的控制结构转换成计算机可接受的程序代码,即写成某种特定程序设计语言表示的源程序清单。

    3.6 软件测试(测试软件功能和性能,产出软件测试计划、测试用例、测试报告)

    测试是保证软件质量的重要手段。参加测试的人员通常是另一部门(或单位)的软件设计师或系统分析师。产生的文档主要是软件测试计划、测试用例、测试报告

    3.7 后期维护(生命周期最长的阶段)

    软件维护是软件生存周期中时间最长的阶段。软件已交付且正式投入使用后,便进入维护阶段。对软件进行修改的原因包括:

    • 运行中发现隐含的错误而需要修改;(纠正错误)
    • 为了适应变化的(或变化后的)工作环境而修改;(适应环境变化)
    • 需要对软件功能进行扩充、增强而进行的修改;(功能增强)
    • 为将来软件维护活动做预先准备。(维护准备)

    4.软件过程🌟🌟🌟

    软件开发中遵循一系列可预测的步骤(即路线图),该路线图称为软件过程。过程是活动的集合,活动是任务的集合,软件过程有三层含义:

    • 个体含义:指某产品、系统在生存周期中的某一类活动的集合,如开发过程、管理过程等。
    • 整体含义:指软件产品、系统在所有上述含义下的软件过程的总体。
    • 工程含义:指解决软件过程的工程。
    4.1 能力成熟度模型(CMM)

    CMM是对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步提高。CMM将软件过程的改进分为五个成熟度级别。

    4.2 能力成熟度模型集成(CMMI)

    CMMI提供了两种表示方法:阶段式模型和连续式模型。

    4.2.1 阶段式模型

    结构类似于CMM,它关注组织的成熟度。CMMI-SE/SW/IPPD 1.1版本中有五个成熟度等级。

    在这里插入图片描述

    • 初始级:过程不可预测且缺乏控制。
    • 已管理级:过程为项目服务。
    • 已定义级:过程为组织服务。
    • 定量管理级:过程已度量和控制。
    • 优化级:集中过程改进。
    4.2.2 连续式模型

    关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级(简称CL)。CMMI中包括六个过程域能力等级。

    在这里插入图片描述

    • CLO-未完成级:过程未被执行或未被充分执行。
    • CL1-已执行级:过程已被执行,但未达到所要求的目标或标准。
    • CL2-已管理级:过程已在管理控制之下,并被证明能够满足组织所设定的目标或标准。
    • CL3-已定义级:过程被定义,并被证明能够满足设定的目标或标准,同时该过程记录文档。
    • CL4-定量管理级:过程已被量化管理,并被证明能够满足设定的目标或标准,同时该过程记录文档。
    • CL5-优化级:过程已被优化,并被证明能够满足设定的目标或标准,同时该过程记录文档。
    4.3 统一过程(UP)

    统一过程(Unified Process,UP)是一种软件过程工程方法,也被称为软件开发过程。它是一种迭代和增量的开发过程,以用例和风险为驱动,以架构为中心,使用UML方法和工具支持。

    • 起始阶段(Inception Phase):此阶段的里程碑是生命周期目标(Lifecycle Goal),主要任务是确定项目的范围和目标,评估风险和可行性。
    • 精化阶段(Elaboration Phase):此阶段的里程碑是生命周期架构(Lifecycle Architecture),主要任务是细化需求,设计和架构。
    • 构建阶段(Construction Phase):此阶段的里程碑是初始运作功能(Initial Operational Functionality),主要任务是实现核心功能,进行单元测试。
    • 移交阶段(Transition Phase):此阶段的里程碑是产品发布(Product Release),主要任务是进行集成测试,修复错误,进行系统测试,最后发布产品。
    • 产生阶段(Production Phase):此阶段没有特定的里程碑,主要任务是将产品投入生产环境,进行维护和升级。

    软考学习笔记,欢迎纠错与探讨,不喜勿喷!😘


  • 相关阅读:
    R语言 ggdendro_谱系图
    如何编辑pdf?推荐福昕高级pdf编辑器
    记一次(flink on yarn) 提交任务的排错之旅(yarn队列、namenode、resourcemanager、flink job全崩盘)
    第一次使用马哈鱼血缘分析工具(SQLFlow)
    如何选择图像标注工具?
    es分布式全文搜索引擎介绍、下载和安装、索引操作、文档操作
    Java中的设计模式在代码重构中的应用
    5 运算符、表达式和语句
    机器学习 泰坦尼克号——灾难中的机器学习
    org.activiti.engine
  • 原文地址:https://blog.csdn.net/weixin_57486248/article/details/132642499