软件工程概述

软件的定义

软件是计算机程序、规程、以及运行计算机系统可能需要的相关文档和数据

或者说 软件是包括程序、数据和文档的完整集合

软件是一种具有抽象的逻辑实体

软件的开发是一种逻辑思维成熟的过程,而无明显的制造过程

软件的分类

按照划分方式的不同

系统软件

应用软件

中间件软件

或者

通用软件

定制软件

可配置软件

软件危机

是指由于落后的软件生产方式无法适应迅速增长的计算机软件需求

从而导致软件开发过程中出现一系列严重问题的现象

原因

一方面是由于软件本身存在着复杂性,另一方面是因为软件开发和维护所使用的方法不合理

软件工程

三要素:方法 工具 过程

软件声明周期模型

瀑布模型

增量模型(对待需求不明确的项目)

演化模型(对待需求不明确的项目)

喷泉模型(面对对象)

螺旋模型(风险考虑 大型软件开发)

V模型和W模型(并没有克服瀑布模型缺点)

原形方法(能够逐步明确用户需求,适应需求变化)

软件需求分析

先行步骤

系统分析

可行性分析

需求建模

原则

问题的信息域必须表示和理解

软件将完成的功能必须定义

软件的行为必须表示

数据建模

功能和行为建模

面对对象需求分析方法

OOA/OOD

用例图->系统顺序图

用例图->领域模型

系统顺序图,领域模型->系统操作契约

领域建模

用例建模

用例图

- 角色

- 基础用例

- 包含用例

- 拓展用例

系统顺序图

结构化需求分析方法

数据流图+数据词典

软件设计的原则

模块的独立性

内聚性,指模块自身的属性

内聚类型(内聚性由弱到强)

巧合内聚(语句复用)

逻辑内聚(传送子模块控制参数,进而选择功能)

时间内聚

过程内聚(举例:判断文件权限,执行读取)

通信内聚(信息内聚)(使用相同的数据缓存区)

序列内聚(一个子模块的输出是另一个的输入)

功能内聚

模块的耦合性(耦合性由强到弱)

内部耦合

公共耦合

外部耦合

控制耦合

标记耦合

数据耦合

非直接耦合(由上级模块进行控制)

面对对象设计原则

单一指责原则

开闭原则

里氏替换原则

依赖倒置原则

接口隔离原则

组合/聚合复用原则

面对对象设计方法

模型层次化

控制器层

业务逻辑层

持久层

设计用例实现方案

结构化设计方法

变换型数据流和变换型系统结构

事务性数据流与事务型系统结构图

变换映射

由变换型数据流图到系统初始结构图

事务映射

由数据流图推导事务型系统结构图

变换-事务混合型的系统结构图

软件实现

程序设计方法

结构化程序设计方法

面对对象程序设计方法

程序设计风格

源程序文档化

数据说明

语句结构

输入和输出

错误处理

软件测试

测试用例

测试目的

是为了发现错误

系统测试步骤

单元测试

集成测试

确认测试

系统测试

验收测试

测试用例设计方法

白盒测试

黑盒测试

软件维护

改正性维护

适应性维护

完善性维护

预防性维护

软件项目管理

一些例题

1、 面向对象设计需要做哪些工作?这些工作对应的成果模型是什么? (5 分)

面向对象设计主要包括三方面的工作:软件体系结构设计(1 分)、用例实现方

案设计(1 分)和用户界面设计(1 分)。

成果:以 UML 包图表示的软件体系结构(0.5 分)、以交互图(或协作图、或时

序图)和类图表示的用例实现(0.5 分)、针对复杂对象的状态图(0.5 分)、用以

描述流程化处理过程的活动图(0.5 分)

概要设计:

1、 系统的动态结构设计:基于 SSD 中每个系统事件对应的交互图(或

者序列图或者协作图都可以),以及针对具有多个方法对象的状态

图;(2 分)

2、 系统的静态结构设计:基于用例的所有交互图中的对象,得到的分

层结构类图;(2 分)

详细设计:

针对每个对象的方法使用活动图或者程序流程图进行的内部逻辑设计;

什么是模块的耦合性?请列举至少 3 种降低耦合性的方法

耦合性是模块之间的相对独立性(互相连接的紧密程度)的度量

方法:

-模块间多传输数据信息 -降低接口复杂 -模块的通信信息放入缓存区

3、UML 用模型来描述系统的结构(静态特征)以及行为(动态特征),请

针对静态和动态两类特征,每类至少列举 2 种对应的 UML 图

静态:类图,对象图(类图的实例化)

动态:顺序图,状态图,协作图,活动图

留学韩国的小明新交一韩国女友如花,交往期间发生了如下事件:(1)小

明希望如花学会中华散打技能; (2)如花习武期间,去年整容的鼻子不幸塌陷,

需要重新修补;(3)毕业后如花随小明回北京,由于水土不服,如花卧病,经

多次调理后康复并习惯中国生活; (4)如花学习更高深的九阳神功,重构内力

以增强体制。假设把如花比作软件,请说明以上四类事件分别对应于哪一类

软件维护工作。

1. 完整性维护

2. 改正性维护

3. 适应性维护

4. 预防性维护

请列举出软件生命周期中贯穿的软件工程过程的六个基本活动

1. 系统分析/可行性分析

2. 需求分析

3. 软件设计

4. 程序编写

5. 软件测试

6. 运行维护

什么是用例?对于用户来说,为什么用例方法比传统需求分析中的功能特性列表更有效?

用例是用来描述参与者使用系统完成目标的一组成功场景和失败场景的集合

北邮 复习 软件工程_软件工程的一些基本概念总结(北邮版本)相关推荐

  1. 北邮 复习 软件工程_软件工程专业最厉害的32所大学,共分4个档次,第一档当之无愧!...

    每一年的高考中,那些热门大学和热门专业都是最吸引人眼球的.读一所热门的大学,读一个热门的专业,就能赢在大学的起跑线上.2019年的高考就要来了,今年又会有哪些专业成为热门专业呢?在众多的专业中,有个专 ...

  2. 北邮 复习 软件工程_软件工程专业考研——上交、北邮、南大对比分析

    由于互联网的极速发展,软件工程专业逐渐成为考研的热门专业,同学们在择校上还是会有一些迷茫,接下来必尚考研为同学们对上海交通大学.北京邮电大学和南京大学的软件工程专业考研分析吧! 上海交通大学位于上海市 ...

  3. 北邮 复习 软件工程_软件工程期末复习北邮

    1 / 7 1 .软件是一种( 逻辑实体 ) ,而不是具体的物理实体,因而它具有抽象性. 2 .需求分析研究的对象是软件项目的( 用户 / 客户 / 功能 + 性能 / 功能 )要求. 3 .需求分析 ...

  4. python 软件工程_软件工程实践之 django/python

    outline 本文包括以下内容:outline django: 一个搭建后端服务的工具箱.framework: django vs flask/tornado/spring/laravel rest ...

  5. python编程基础人邮版答案_《Python Web 编程》(人邮出版社)作业答案下载

    全部作业答案: 链接:https://pan.baidu.com/s/1bm73IFUUfkBl0HHhYovehQ  提取码:bus6 01 Django 基础 链接:https://pan.bai ...

  6. 利益相关者软件工程_如何向利益相关者解释用户体验的重要性

    利益相关者软件工程 With the ever increasing popularity of user experience (UX) design there is a growing need ...

  7. 软件工程_绘制系统业务流程图

    软件工程_绘制系统业务流程图 实验目的: 1.掌握结构化分析方法 2.掌握业务流程分析方法和业务流程图的绘制 实验内容: 案例一:总务办公管理系统 案例二:火车票预订系统 实验过程与结果: 案例一:总 ...

  8. 软件工程_东师站_第六周作业

    1. PSP Date Type Job Start Int(min) End Total(min) 20160407 编码 抢答器重构 19:00 30 20:50 80   站立会议 " ...

  9. 现代软件工程_团队项目_阿尔法阶段_前端知识共享_2017.11.21

    现代软件工程_团队项目_阿尔法阶段_前端知识分享 更加舒适浏览格式 http://blog.csdn.net/bowean HTML基础(一) 本文参考了[http://www.w3school.co ...

最新文章

  1. NLP专题论文解读:从Chatbot、NER到QA系统...
  2. 机器学习——详解KD-Tree原理
  3. Fishe向量Fisher Vecotr(二)
  4. 理解矩阵 的一些评论
  5. 很多字段的数据要插入另一张表_一文看懂数据库设计之逻辑设计,值得收藏
  6. python基础应用_【复习】mysql+python基础应用(20190815)
  7. where 1=1低效?
  8. docker配置 nacos_Nacos - 阿里开源配置中心
  9. 的主机名_如何在Mac 上更改电脑的名称或本地局域网主机名?
  10. (117)System Verilog类继承详解
  11. RabbitMQ添加新用户并支持远程访问
  12. javascript特效
  13. 专业计算机怎么关机,Win10如何使用快捷键来关机?_win10专业版技巧
  14. 逆火软件测试工资,世界级人体工学设计:HyperX Pulsefire FPS逆火鼠标评测
  15. [转载]快速提高你修养的100句话,值得你珍藏
  16. OPENCV(七)对啤酒盖进行缺陷检测
  17. windows 删除服务_哪些Windows 10 系统服务可以安全禁用?
  18. 数字图像处理:像素间的一些基本关系
  19. iOS OC消除黄色警告⚠️ (不断的更新中...)
  20. 王者荣耀交流协会第6次Scrum立会

热门文章

  1. win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)
  2. git Rebase 代替合并
  3. MyBatis 源码分析 - 缓存原理
  4. foreach迭代ArrayList时,真的不能删除元素吗?
  5. 《博士五年总结》及我其它过去的博客文章
  6. Mahout推荐算法API详解
  7. 云计算的学习路线是什么?云计算的应用场景分析
  8. 用Jmeter做微信小程序项目接口测试【案例】
  9. JPA使用指南 javax.persistence的注解配置
  10. [蓝牙] 6、基于nRF51822的蓝牙心率计工程消息流Log分析(详细)