软件工程笔记【计算机复试问答版】

本文详述了软件工程的基础知识,包括软件工程的定义、目的和生命周期。讨论了瀑布模型、快速原型、增量模型、螺旋模型、喷泉模型等开发模型,以及敏捷开发的特点。在设计部分,阐述了模块设计原则,比较了结构化与面向对象设计方法。在测试方面,解释了软件测试的主要内容、方法和过程,区分了黑盒测试与白盒测试的应用。
摘要由CSDN通过智能技术生成

概念

1.软件工程定义

把系统化、工程化的方法运用于软件的开发、运行、维护当中

  • 首先答定义
  • 再答背景:为什么出现-》软件危机-是什么
  • 最后可说三要素

2.软件工程的目的?三要素?

解决软件危机(软件生产跟不上需求) 提高质量(可靠迁移易维护)和效率

过程(可复用的框架)、方法(怎么做)、工具

3.软件生命周期or软件开发步骤?

问题定义-可行性分析——软件开发: 需求分析-概要设计-详细设计-编码实现-测试——运行维护

4.软件开发有哪几种模型?哪些适用于面向对象?

1)瀑布模型(包括V模型) 按线性固定次序进行开发,进度慢且不灵活

2)快速原型 先快速开发出原型,用户试用提意见,修改原型直到满足需求

3)增量模型 n个版本即为n个增量,每个增量经历设计编码测试

4)螺旋模型 重视风险分析,适用大型项目

5)喷泉模型 迭代、无缝

敏捷开发: 大项目切成独立运行的小项目,并分别完成

喷泉模型和统一软件过程(RUP)适用于面向对象

设计

5.软件(模块)设计遵循什么原则?

  1. 模块化 2)抽象 3)信息隐藏(数据、方法隐蔽,只提供接口) 4)模块独立(高内聚低耦合)

6.结构化方法和面向对象设计方法的区别?各自有什么图?

结构化——自顶向下、逐步求精,软件分解为子模块,再分解为小模块,信息通过函数处理

面向对象——基于对象和类间的继承、聚合(a类使用b类的对象)关系来构造系统,通过对象的属性和方法来传递信息流,而封装性和多态性(同一接口,不同实现)使得程序更灵活、易于重用

结构化面向对象
功能数据流图用例图
数据结构E-R图领域模型图
详细设计阶段系统结构图协作图、类图

7.什么是内聚性、耦合性,为什么要高内聚低耦合?

耦合:不同模块间的关联程度 内聚:一个模块内部各元素结合的紧密程度

因为各模块相互独立,便于维护、修改、可迁移可重用、

可靠性更高、出错时易处理

测试

1.软件测试的主要内容?

1)对外-验证——保证软件能实现需求

2)对内-确认——软件以正确的逻辑运行

2.软件测试有哪些常用方法/分类?

静态测试、动态测试

黑盒测试、白盒测试、灰盒

阶段——单 集 系 验

3.黑盒测试和白盒测试的区别是什么?各有哪些常用方法?

黑盒测试——只测试接口输入输出是否正确,不管程序内部结构

​ 等价类划分法:、边界值分析:、错误推测、因果图法

白盒测试——检查程序源代码和内部逻辑结构,测试内部逻辑正确性

​ 逻辑覆盖法、基本路径法

4.软件测试的过程阶段是怎样的?

1)单元测试 ——对模块进行独立测试

2)集成测试——把模块组装起来进行测试

3)确认测试 是否满足用户要求

4)系统测试(包含压力测试)——在真实运行环境下进行测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值