软件工程笔记之期末复习(简答)
软件工程笔记
- 一、问题定义
- 1. 软件的定义(产品):
- 2. 软件的分类:
- 3. 软件工程方法学:
- 4. 软件危机:
- 5. 产生软件危机的原因:
- 6. 消除软件危机的途径:
- 7. 软件工程的定义:
- 8. 软件工程的三要素:
- 9. 软件过程模型:
- 10. 软件生命周期:
- 二、可行性研究
- 1. 逻辑模型:
- 2. 可行性研究的过程实质:
- 3. 研究每种解法的可行性:
- 三 、需求分析
- 1. 分析模型:
- 2. 从哪些方面验证软件需求的正确性:
- 3. 采用自顶向下逐层分解,*抽象、分解*
- 4. 分析方法:
- 四、总体设计
- 1. 什么是总体设计:
- 2. 设计原理:
- 3. 指导思想:
- 4. 耦合:
- 5. 内聚:
- 6. 层次图:
- 7. HIPO:
- 8. 结构图(SC):
- 五、详细设计
- 1. 什么是结构化设计?
- 2. 人机界面设计:
- 3. 过程设计的工具:
- 4. 程序复杂度:
- 5. 流图(程序图):
- 六、实现
- 1. 软件测试准则:
- 2. 黑盒测试(功能测试) :
- 3. 白盒测试(结构测试):
- 4. 测试步骤:
- 5. 调试途径:
- 七、维护
- 八、面向对象方法学
- 1. 面向对象思想:
- 2. 模型:
- 3. 面向对象的核心特征:
- 4. 抽象是面向对象领域发现类的主要方法:
- 5. 面向对象方法指导思想:
- 6. 活动图和流程图的区别:
- 7. 时序图:
- 九、面向对象设计
- 1. 设计准则:
- 2. 面向对象设计中最主要的工作:
一、问题定义
1. 软件的定义(产品):
软件= 程序十数据十文档
- 程序: 按事先设计的功能和性能需求执行的指令序列
- 数据: 是程序能正常操纵信息的数据结构
- 文档: 与程序开发、维护和使用有关的图文材料
2. 软件的分类:
- (按软件功能)
- 系统软件
- 支撑软件
- 应用软件
3. 软件工程方法学:
- 传统方法学(结构化方法)
- 面向对象方法学
4. 软件危机:
软件危机:在计算机软件的开发和维护 过程遇到的一系列严重问题
5. 产生软件危机的原因:
- 客观原因:软件本身特点
- 逻辑部件
- 规模庞大
- 主观原因:不正确的开发方法
- 忽视需求分析
- 错误认为: 软件开发=程序编写
- 轻视软件维护
6. 消除软件危机的途径:
- 软件工程:适网于大型、复杂、多人协作开发的情形,“化繁为简”。
7. 软件工程的定义:
定义:(1)应用系统化的、学科化的、定量的方法,来开始、运行和维护软件,即将工程应用到软件。
(2)对(1)中各种方法的研究。
目标:(易维护性)在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应性强、可移动,可重用的软件。
8. 软件工程的三要素:
方法、工具、过程
9. 软件过程模型:
- 传统软件过程模型
- 瀑布模型:自上而下,相互衔接的固定次序。线性模型,强调文档;
- 原型模型:目标不明确;
- 增量模型:需求可能发生变化,具有较大风险,希望尽早进入市场;
- 现代软件过程模型
- 基于构件的开发模型
- 统一过程模型
- 敏捷开发过程
- 如何选择过程模型
- 如何选择
- 案例分析
10. 软件生命周期:
问题定义->可行性研究->需求分析->总体设计->详细设计->编码->测试->维护
二、可行性研究
(确定问题是否值得去解决)
1. 逻辑模型:
- 系统流程图(数据在系统各个部件中的加工过程)
- 数据流图 (基本功能)自顶向下,逐步分层
- 数据字典(数据信息)
2. 可行性研究的过程实质:
可行性研究的过程实质上是 压缩简化的系统分析和设计的过程
3. 研究每种解法的可行性:
- 技术可行性
- 经济可行性
- 操作可行性
三 、需求分析
(做什么?)
结构化分折法是面向数据流的分析方法
明确系统的功能;
对目标系统提出 完整、准确、清晰、具体的要求;
1. 分析模型:
- 数据模型(E-R图)(数据库) :相对稳定的
- 功能模型(数据流):描述系统功能
- 行为模型(状态转换图):通过描绘系统的状态 以及引起系统状态转换的事件,表示系统的行为。
方框层次图、IPO图
2. 从哪些方面验证软件需求的正确性:
- 一致性
- 完整性
- 现实性
- 有效性
3. 采用自顶向下逐层分解,抽象、分解
4. 分析方法:
- 结构化分析方法(SA)
- 面向对象分析方法(OOA)
四、总体设计
1. 什么是总体设计:
总体设计又称(概要设计或者初步设计),主要解决怎么做?系统如何实现
2. 设计原理:
- 模块化
- 抽象
- 逐步求精
- 信息隐藏和局部化
- 模块独立
3. 指导思想:
高内聚,低耦合
4. 耦合:
- 数据耦合(尽量使用)
- 控制耦合(少用,分解)
- 特征耦合(少用)
- 公共环境耦合(限制使用)
- 内容耦合(禁止使用)
5. 内聚:
- 低内聚 :
- 偶然内聚
- 逻辑内聚
- 时间内聚
- 中内聚:
- 过程内聚
- 通信内聚
- 高内聚:
- 顺序内聚
- 功能内聚
6. 层次图:
上层调用下层
矩形框 – 模块
连线 – 调用关系
7. HIPO:
带编号的层次图
8. 结构图(SC):
五、详细设计
具体实现
1. 什么是结构化设计?
如果一个程序的代码块仅仅通过顺序、选择、循环3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
2. 人机界面设计:
认识用户、色彩搭配、设计问题、设计指南、设计过程
设计问题:
- 系统响应时间
- 用户帮助设施
- 出错信息处理
- 命令交互
3. 过程设计的工具:
- 程序流程图(结构或非结构化)
- 盒图(结构化)又称为N-S图
- PAD图(问题分析图) (结构化)
- 判定表
- 判定树
- Jackson图
4. 程序复杂度:
McCabe方法
5. 流图(程序图):
六、实现
(编码和测试)
注释行的数量占整个源程序的1/5~1/3
1. 软件测试准则:
- 早开始
- Pareto原理 (2、8原则)80%错误由程序中20%模块造成
- 从小到大 小规模一大规模
- 充分覆盖,
- 第三方测试
2. 黑盒测试(功能测试) :
- 等价类划分法
- 边界值分析法
- 错误猜测法
- 因界图法
3. 白盒测试(结构测试):
- 逻辑覆盖法
- 路径测试法
- (冒烟测试)
4. 测试步骤:
单元测试-> 集成测试-> 系统测试->验收测试
集成测试分为:自顶向下和自底向上
自顶向下分析分为:深度优先 和 广度优先
5. 调试途径:
- 蛮干法
- 回溯法
- 原因排除法(对分查找法、归纳法、演绎法)
七、维护
八、面向对象方法学
(面向对象分析方法)
1. 面向对象思想:
数据和处理封装在一起
2. 模型:
模型 | 工具 | 功能 |
---|---|---|
对象模型 | 类图(静态图) | 做事情的实体 |
动态模型 | 什么时候做? | |
功能模型 | 用例图 | 做什么 |
3. 面向对象的核心特征:
封装、 继承、多态
4. 抽象是面向对象领域发现类的主要方法:
5. 面向对象方法指导思想:
面向对象方法指导思想————软件系统是由多个对象组成,对象间通过消息相互交流,共同协作,以完成系统功能。
6. 活动图和流程图的区别:
活动图:着重描述的是对象活动的顺关系所遵循的规则,是面向对象的 ,描述系统的行为;
流程图:着重描述的是处理过程,是面向过程的;
7. 时序图:
时序图是交互图的一种,可以动态验证类模型的可行性。
九、面向对象设计
系统设计
对象设计
1. 设计准则:
- 模块化
- 抽象
- 信息隐藏
- 弱耦合
(1)交互耦合
(2)继承耦合 - 强内聚
(1)服务内聚:一个服务完成一个功能
(2)类内聚:一个类完成一个用途
(3)一般-特殊内聚 - 可重用
2. 面向对象设计中最主要的工作:
面向对象设计中最主要的工作是建立对象模型、然后通过动态模型和功能模型去完善对象的操作(服务)
软件工程笔记之期末复习(简答)相关推荐
- 最优化理论笔记及期末复习(《数值最优化》——高立)
目录 一.预备知识 二.无约束最优化方法的基本结构 三.凸集和凸函数 四.负梯度方法和Newton型方法 五.共轭梯度法 六.约束最优化问题的最优性理论 七.罚函数方法 八.期末复习 8.1 知识点复 ...
- 数据结构笔记(期末复习,持续更新)
目录 一.绪论 1.数据结构基本概念 2.算法定义与特征 二.线性表 1.线性表的定义 2.顺序表的存储结构 3.链式存储结构 三.栈和队列 1.栈的基本概念 2.队列的基本概念 3.循环队列 四.字 ...
- 《软件工程导论》期末复习知识总结
第一章 软件工程概论 软件:是计算机程序.方法.规则.相关的文档以及运行计算机系统时所必需的数据的总和(狭义定义:软件=程序+数据+文档) 软件的特性:软件是复杂的.软件是不可见的.软件是不断变化的和 ...
- 《人机交互:软件工程视角》期末复习提纲
第八章由于懒了,没写.有几个公式需要记忆一下. 一.概论 交互:人与计算机之间的直接或间接的通讯. 人机交互的目的:从尊重用户的角度来改善用户和计算机之间的交互,从而使计算机系统更加容易使用. 人机交 ...
- 模式识别-期末复习简答题(87个知识点、问题集锦|已完结)
单选题.判断题.简答题.计算题.综合题 ① 课前测的题目 ② 87个知识点 1.什么是模式?监督模式识别和非监督模式识别的典型过程分别是什么? 模式:指需要识别且可测量的对象的描述 监督模式识别:分析 ...
- 陈玉福算法设计与分析期末考试题-简答部分
陈述算法在最坏时间下的时间复杂度和平均时间复杂度:这两种评估算法复杂性的方法各自有什么意义?陈述算法在最坏时间下的时间复杂度和平均时间复杂度:这两种评估算法复杂性的方法各自有什么意义? ...
- 计算机组成与系统结构名词解释,北京邮电大学 计算机系统结构(体系结构) 期末复习 术语解释...
北邮 体系结构 期末复习 简答题(名词解释) 1. 计算机系统结构:机器语言程序员所看到的传统机器级所具有的属性,它包括概念性结构和功能特性两个方面. 2. 计算机组成:指的是计算机系统结构的逻辑实现 ...
- 信息安全概论期末复习
信息安全概论 期末复习 简答题 三个安全目标: 安全目标主要包括保密性(confidentiality).完整性(integrity) 和可用性(availability). 保密性:保密性是指信息能 ...
- Android期末复习篇_传智课后习题以及答案(选择、填空、判断、简答、编码题)
写在前面 此为移动应用开发传智课后习题及答案,供期末复习使用,注意 答案仅供参考 加粗题目为强调 题型涉及:选择.判断.填空.简答.编程题 另8章习题及答案汇总:Android期末复习篇_8章节练习题 ...
最新文章
- Perl的Hash一个小细节
- Netflix实用API设计 1:Protobuf FieldMask实践
- 【SpringCloud】Feigin:伪装
- Syslinux引导文件名与菜单解释
- win7任务栏计算机图标,Win7系统任务栏怎么添加显示桌面图标 显示桌面图标如何放到win7任务栏...
- 野火stm32呼吸灯程序_说一说STM32启动过程
- java 蓝桥杯算法训练 筛选号码(题解)
- 质量不同的球java编程_荐非常经典的java编程题全集-共50题(1-10)...
- Docker1.12.6+CentOS7.3 的安装
- 酷狗php 技术题目,广州酷狗php面试题(赋答案)
- RN开发系列<8>--Redux(1)入门篇
- 吉林大学超星学习通02(1)
- Python 安卓群控随机修改机型
- Apple Configurator 2使用教程: 修复或恢复搭载 Apple M1芯片的 Mac!
- 积分第一中值定理与伏汝兰尼(Froullani)积分
- 中国传统节日介绍——中秋节
- android自适应屏幕翻转,Android中正确自适应屏幕翻转
- 漫画主动学习:人工智能居然被PUA了?
- Java获取访问者真实的IP地址
- 云服务器文件同步,和云服务器同步文件
热门文章
- 程序员的训练日记:编程也是一项耐力活动
- html5按钮自动特效,HTML5 svg和CSS3 22种炫酷鼠标点击按钮特效
- 04-爬虫利器Fiddler
- JDBC——ClassNotFoundException报错
- 【oracle】 一千条记录查200到300的记录怎么查
- 双极性根升余弦信号qpsk_【MATLAB】【通信原理】QPSK的调制与解调
- C/C++在VS2015下使用CURL下载文件
- C#实现windows设备管理器的“卸载设备”和“扫描检测硬件改动”,解决Realsense无法连接的问题。
- Python 之天天向上的魔力
- 散人霸业iOS客户端技术支持