软件工程

  1. 对软件工程的理解
    软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
  2. 典型设计模式
    设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。
  • 单例模式
    这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,单例类只能有一个实例。
  • 命令模式
    命令模式是一种数据驱动模式,请求以命令的形式包裹在对象中,并传给调用对象,调用对象选择合适的对象处理该命令。
  • 工厂模式
    所有类型都放到一个工厂中生产,存在大量的if-else判断以及switch判断。
    工厂类通过判断逻辑决定创建哪一个类的实例。
  • 抽象工厂模式
    抽象工厂模式是围绕一个超级工厂创建其他工厂,接口是负责创建相关对象的工厂,每个生成的工厂都能按照工厂模式提供对象。
  • 观察者模式
    当对象间存在一对多关系时,则使用观察者模式。当一个对象被修改时,则会自动通知所有依赖它的对象。
  • 适配器模式
    适配器模式是作为两个不兼容的接口之间的桥梁。
  • 装饰者模式
    允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,同时添加一些额外功能。
  1. java接口和抽象类的区别
  • 一个类可以实现多个接口,但是却只能继承一个抽象类
  • 抽象类可以包含具体的方法,接口的所有方法都是公有抽象的
  • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
  • 抽象类可以定义构造函数,但是接口不行
  1. 软件测试的分类


    image.png
  • 功能测试
    检查实际软件的功能是否符合用户的需求。有逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试
  • 性能测试
    通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
    • 负载测试:指数据在超负荷环境中运行,程序是否能够承担
    • 压力测试:找到临界点, 压力测试又叫强度测试,它在系统资源特别低的情况下测试软件系统运行情况,目的是找到系统在哪里失效以及如何失效
  • 回归测试
    软件被修改后重新进行的测试(如重复执行上一个版本测试时的用例,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试)
  • 冒烟测试
    是指对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测试性
  • 随机测试
    是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
  1. 测试用例设计
  • 语句覆盖-最弱的逻辑覆盖
    测试用例将所有的可执行语句块覆盖
  • 分支覆盖
    使程序中每个判断的取真分支和取假分支至少执行一次
  • 条件覆盖
    覆盖程序中每个判断的每个条件的可能取值至少执行一次
  • 条件组合覆盖
    每个判断的所有可能的条件取值组合至少执行一次
  • 路径测试
    覆盖所有可能的路径
  • 基本路径测试
    分析程序控制流图的圈复杂度,导出基本可执行路径(独立路径),设计测试用例
  1. 远程过程调用和远程方法调用
  • RPC(Remote Procedure Call)用于调用远程系统中的过程(如函数),远程系统中的过程返回相应的结果。RPC调用实际上是一种称为客户桩的本地代理模拟了远程对象和方法的接口。
  • RMI(Remote Method Invocation)是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象。它使客户机上运行的程序可以调用远程服务器上的对象。
  • RPC可以用于一个进程调用另一个进程(很可能在另一个远程主机上)中的过程,从而提供了过程的分布能力。Java 的 RMI 则在 RPC 的基础上向前又迈进了一步,即提供分布式对象间的通讯。

你可能感兴趣的:(软件工程)