• 软件工程(Software Engineering)


    一、软件工程概述

    1.软件生存周期

    软件: 包含程序、数据及相关文档
    软件工程: 涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。
    目的: 提高软件生产率、提高软件质量、降低软件成本。
    image.png
    文档的作用:

    • 提高软件开发过程能见度
    • 提高开发效率,便于发现错误和不一致性
    • 作为开发人员在一定阶段的工作成果和结束标志
    • 记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护
    • 提供对软件的运行、维护和培训的有关信息,便于相关人员和用户之间的协作、交流和了解
    • 便于潜在用户了解软件的功能、性能等各项指标,为它们选购符合自己需要的软件提供依据

    2.软件生存周期模型

    image.png
    瀑布模型:
    image.png
    螺旋模型:
    image.png
    喷泉模型:
    image.png

    3.软件开发方法

    软件开发方法:结构化方法、Jackson方法、原型化方法、面向对象开发方法
    image.png

    二、软件需求分析

    1.可行性分析

    image.png

    2.软件需求分析

    系统必须完成的事,以及必须具备的品质
    包括:

    • 功能需求:所开发的产品必须具备什么样的功能
    • 非功能需求:是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性、扩展性等
    • 设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明,例如必须采用国有自主知识版 权的数据库系统、必须运行在UNIX操作系统之下等

    三、软件设计

    1.软件设计原则

    软件设计原则: 抽象、模块化、信息屏蔽、模块独立
    软件设计任务与活动
    image.png

    2.内聚和耦合

    内聚:
    image.png
    耦合:
    image.png

    四、软件测试

    1.V模型

    image.png

    2.软件测试过程

    image.png

    3.黑盒测试与白盒测试

    image.png

    1. 语句覆盖: 被测试程序的每个语句至少执行一次。是一种很弱的覆盖标准
    2. 判定覆盖: 分支覆盖,判定表达式至少获得一次真、假值。判定覆盖比语句覆盖强。
    3. 条件覆盖: 每个判定语句中的每个逻辑条件的各种可能值至少满足一次。
    4. 路径覆盖: 覆盖所有可能的路径。
    5. 判定/条件覆盖: 每个条件所有可能的值(真/假)至少出现一次,且每个判定本身的判定结果(真/假)也至少出现一次。
    6. 条件组合覆盖: 每个判定中条件的各种可能值的组合都至少出现一次。

    4.测试原则与注意事项

    image.png

    五、软件运行与维护

    1.软件维护

    image.png
    image.png

    六、程序员职业素养

    1.软件工程基本原理

    1. 用分阶段的生命周期计划严格管理,将复杂问题简化处理
    2. 坚持进行阶段评审
    3. 记录软件每个版本的状态,实行严格的版本控制
    4. 采用现代程序设计技术,但不是最新的技术
    5. 结果能清除的审查
    6. 开发小组人员少而精
    7. 不断累积和改进软件过程实践经验和技术

    2.软件工程的最终目标

    image.png

    3.程序员的职业素养

    image.png

  • 相关阅读:
    springboot高校考勤小程序的设计与实现毕业设计-附源码131039
    源码级深度理解 Java SPI
    Flink中的时间和窗口
    竞赛 深度学习 opencv python 实现中国交通标志识别
    网文件传输工具选哪一个?推荐这几款
    初识C语言,新人介绍
    Vue学习笔记(一)——搭建自己的Vue项目及框架结构解释
    leetcode 刷题 log day 49
    游戏开发者如何能达到5万月薪?这太难了......
    阿里云国际站:阿里云linux扩充磁盘大小常见问题
  • 原文地址:https://blog.csdn.net/xcxcxcxx1/article/details/136772253