软件工程
软件工程的三次作业是重点
课后的选择题和判断题
软件工程概述
软件分类
- 微型
- 小型
- 中型
- 大型
- 超大型软件
软件危机定义
指人们再开发和维护软件过程中所遇到的一系列问题,这些问题会导致软件的终止
软件三要素 #填空题
- 工具
- 过程
- 方法
软件工程的目的 #填空题
软件工程是借鉴传统过程的原则和方法,以提高质量、降低成本为目的
软件开发方法
四种开发方法是:
- 结构化方法
- 面向数据结构方法
- 面向对象方法
- 形式化方法
结构化分析的指导思想 #填空题
结构化方法是采用自顶向下、逐步求精的指导思想
面向数据结构方法 #填空题
从目标系统的输入、输出数据入手
面向对象方法 #填空题
面向对象的设计和面向对象的分析
面向对象的核心 #选择题
对象模型
软件过程
软件生命周期
- 可行性分析
- 确定项目的可行性
- 需求分析
- 确定做什么
- 描述详细的需求内容
- 总体设计
- 怎么做
- 设计数据说明
- 详细设计
- 具体怎么做
- 设计内部实现细节
- 编码
- 具体编码,实现程序
- 测试
- 可用性
- 发现软件产品中存在的软件缺陷
- 运行和维护
软件过程模型
模型的分类
- 瀑布模型
- 快速原型模型
- 增量模型
- 螺旋模型
- 喷泉模型
瀑布模型
- 是一种线性的开发模型
- 具有不可回溯性
- 优点
- 过程模型简单
- 执行容易
- 缺点
- 无法适应变更
快速原型模型
- 优点
- 开发速度快
- 客户反馈意见及时
- 不利于开发人员创新
增量模型
- 优点
- 将每个模块作为增量组件(模块化)
- 分批次提交
螺旋模型 #填空题
结合了瀑布模型和快速原型模型 的优点
增加了风险分析
用于风险较大的大型软件项目开发的过程模型
优点
- 将风险分析扩展到各个阶段
- 大幅度降低了软件开发的风险
缺点 - 控制和管理比较复杂
- 可操作性不强
- 对管理人员要求高
喷泉模型
- 特点
- 迭代性
- 无间隙性
可行性研究与项目开发计划
软件开发计划是软件工程中的一种管理型文档
技术可行性是最关键的部分
开发效益包括经济效益与社会效益两部分
结构化分析
行为状态转换图、数据流图、ER 图 #应用题
行为状态转换图 #应用题
- 初始状态 实心圆
- 一个初态
- 结束状态 空心园
- 可以多个
- 可以没有
- 事件 文字下面是直线箭头
- 状态 圆角矩形
数据流图 #应用题
- 外部实体 矩形
- 数据流 (直线箭头)
- 数据变化:加工(泡泡)
- 数据存储: (两道横线)
ER 图实体关系图 #应用题
- 实体 圆形
- 关系 菱形
- 联系 无相边
- 1:1
- 1:n
- M:n
两个任务 #简答题
- 首先是需求分析的建模阶段: 建立系统的分析模型
- 其次是需求分析的描述阶段 : 将需求文档化,通过软件需求规格说明书的方式表达出来
三个原则 #简答题
- 需求分析是一个过程,它应该贯穿系统的整个生命周期,而不仅仅属于软件生命周期早期的一项工作
- 需求分析应该是一个迭代的过程。需求很难一步到位,应该随着项目的深入不断变化的
- 对需求进行量化: 需求的表述应该具体、清晰、而且是可测量的
需求分析的步骤
- 需求获取
- 分析建模
- 需求描述
- 需求验证与评审
结构化设计
以软件需求规格说明书为基础,设计软件系统的整体结构,确定每个模块的实现算法
- 解决了怎么做的方案
面向对象方法与 UML
UML 是什么
是一种工具,可以用于各行各业
4+1 视图 #填空题
- 逻辑视图
- 实现视图
- 过程视图
- 部署视图
- 用例视图
UML 建模分为几种 #填空题
- 动态建模
- 状态图
- 顺序图
- 活动图
- 协作图
- 静态建模
- 包图
- 类图
- 对象图
- 用例图
- 构件图
- 部署图
用例图 #应用题
- 参与者 小人
- 用例 圆形
- 联系 箭头
- 包含
<<include>>虚线箭头 - 扩展
<<extend>>虚线箭头 - 泛化 实线空心箭头
- 包含
- 边界 方框
类图 #应用题
- 类名 : 首字母大写
- 类型
+id:int- ~ 包
#受保护的
- 操作
getId():int
对象图 #应用题
- 对象名 :
对象名:类名首字母大写 - 属性
id:int=1 - 没有操作
包图 #应用题
面向对象分析
面向对象分析原则
- 定义有实际意义的对象
- 模型的描述要规范、准确
- 共享性
- 封装性
软件实现
编程语言的分类
- 机器语言
- 汇编语言
- 高级语言
java、C++、python - 超高级语言
编码风格和规范
- 版权和版本声明
- 程序板式,具有良好的可读性,易读性
- 注释
- 命名规范
- 数据说明
- 语句构造
- 输入输出
- 效率
软件测试
概念
发现软件中的错误和缺陷
但是不能发现所有的错误
测试的模型
- V 模型
- W 模型
- H 模型
黑盒测试
关注输入 和 输出
白盒测试
关注内部的逻辑结构
测试顺序
- 单元测试
- 集成测试
- 系统测试
- 验收测试
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小小程序员!
