您现在的位置是:首页 >技术交流 >软件工程领域知识网站首页技术交流

软件工程领域知识

初心JAVA 2024-06-17 11:28:25
简介软件工程领域知识

1、软件工程基础知识

1、软件生存周期
可行性分析与项目开发计划

  • 《可行性分析报告》《项目开发计划》

需求分析

  • 《软件需求说明书》

概要设计

  • 设计软件的结构,明确软件由哪些模块组成,这些模块的层次结构是怎样的,这些模块的调用关系是怎样的,每个模块的功能是什么。同时还要设计该项目应用系统的总体数据结构和数据库结构,即应用系统要存储什么样的数据,这些数据是怎样的结构,它们之间有什么关系
  • 《概要设计说明书》

详细设计

  • 对每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述,即该模块的控制结构是怎样的,先做什么,后做什么,有什么样的条件判定,有些什么重复处理等,并用相应的表示工具把这些控制结构表示出来
  • 《详细设计文档》

编码

测试

  • 《软件测试计划》《测试用例》《软件测试报告》

维护

2、软件过程(开发)模型

  • 瀑布模型:软件生存周期按顺序进行,以文档为驱动、适合于软件需求很明确的软件项目的模型。
  • 增量模型
  • 演化模型(原型模型、螺旋模型)
  • 喷泉模型:一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法
  • 基于软件的开发模型
  • 形式化方法模型
  • 统一过程模型
  • 敏捷方法:通过“尽可能早地、持续地对有价值的软件的交付”使客户满意

3、系统设计

系统设计方法:

  • 面向数据流的结构化设计方法
  • 面向对象的分析方法

4、测试

  • 单元(模块)测试
  • 集成测试:测试所有模块。自顶向下集成测试、自底向上集成测试、回归测试、冒烟测试
  • 确认测试
  • 系统测试:恢复测试、安全性测试、压力测试、性能测试、部署测试

测试方法:

  • 静态测试:程序没有运行
  • 动态测试:黑盒测试法和白盒测试法
    • 黑盒:也称为功能测试,在不考虑软件内部结构和特性的情况下,测试软件的外部特性
    • 白盒:也称为结构测试,根据程序的内部结构和逻辑设计测试用例,对程序的路径和过程进行测试

2、结构化开发方法

试题一

先看图,再看说明,前三题的答案都在说明中,第四题是扩展题。

数据流图:DFD,一种便于用户理解、分析系统数据流程的图形工具,它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等

基本图形元素:

  • 数据流:
    • 一个箭头,上面有数据流的名称
    • 起点或终点必须有一个是加工;有以下几种:加工->加工、加工->数据存储、数据存储->加工、外部实体->加工、加工->外部实体
  • 加工:
    • P1、P2
    • 圆角矩形或缺了口子的圆
    • 至少有一个输入数据流和输出数据流;黑洞:只有输入没有输出;白洞:只有输出没有输入;灰洞:输入不足以产生输出
  • 数据存储:
    • D1、D2
    • 两条横线或缺个口子的矩形
    • 提供输入和输出数据,存储加工的数据或提供数据给加工,主要是和加工产生联系。一般是某某表或某某文件
  • 外部实体:
    • E1、E2
    • 矩形
    • 当前系统的人、物或外部系统

父图:上下文数据流图,只有外部实体和数据流
子图:0层数据流图,对父图的一个细分

试题二

考察点:

  • 数据库设计
    • 需求分析
    • 概念模型:ER图
    • 逻辑结构:关系模式

ER图:

  • 菱形:联系
  • 矩形:实体
  • 椭圆:属性

实体:

  • 弱实体:双边矩形,必须依赖另一个实体而存在,如顾客和收货地点,顾客存在收货地点才存在
  • 子实体:矩形加两条竖线

属性:

  • 如果属性名下有下划线,则表示该属性是主键
  • 简单属性:原子的、不可再分的
  • 复合属性:如通信地址,可以分为省市区

关系:

  • 两个实体:1对1、1对多、多对多
  • 两个以上实体:1:1:1、1:1:多、1:多:多、多:多:多

关系模式:

  • 对关系的描述,即二维表
  • 关系名(属性名1、属性名2、…、属性n)

实体向关系模式的转换:

  • 1对1:关系放到任意一方
  • 1对多:关系放到多的一方
  • 多对多:关系单独抽出来
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。