一、获取技术知识
- 理解系统建模
- 学习建模
- 在软件生命周期的不同阶段进行建模
- 了解如何使用工具 CASE←商用(计算机辅助软件工程)starUML
二、软件工程是解决问题的活动
- 分析:了解问题的本质,将问题分解成碎片
- 合成:将碎片组成一个大结构
- 为了解决问题我们使用
- 技术(方法): 使用一些明确定义的符号产生成果的规范过程
- 方法论: 应用于软件开发的技术集合,并通过哲学方法进行统一
- 工具: 用于完成某种技术的仪器或自动化系统
三、软件工程的定义
- 软件工程是一系列技术,方法和工具的集合,有助于生产:
- 高质量的软件系统
- 在给定的预算范围内
- 在给定的截止日期之前
四、影响软件系统质量的原因
- 复杂度
- 系统过于复杂,以至于没有一个程序员能够理解他了
- 引入一个错误修复会导致另一个错误
- 变化
- 软件系统的“熵”随着每次更改儿增加:每个实现的改变都会侵蚀系统的结构,从而使下一次更改的成本昂贵(软件动力学第二定律)
- 随时间推移,成本变高从而无法推动系统完成预期任务
五、面对复杂的系统
- 抽象
- 处理复杂性的固有的人为限制 7+-2现象(人短时间只能记住5-9个概念)
- 分块:对象的集合
- 忽略不必要的细节
- 系统模型
- 对象模型:系统的结构是怎么样的
- 功能模型:系统有哪些功能
- 动态模型:系统如何对外部事件作出反应
- 任务模型
- PERT伯特图表:任务之间的依赖关系
- 日程
- 组织图
- 问题模型
- 已解决和未解决的问题,客户的限制,解决方案
- 分解
- 一种用于掌控复杂性的技术
- 功能分解(按功能一层一层分解(偏底层))
- 概念
- 系统分解为模块
- 每个模块都是应用域中的主要处理步骤
- 模块可以分解成更小的模块
- 缺陷
- 功能遍布整个系统
- 维护者必须了解整个系统才能对系统进行一次更改
- 后果: 代码难以理解
- 复杂且无法维护的代码用户界面通常很尴尬且不直观
- 概念
- 面向对象分解
- 概念
- 系统分解成类
- 每个类都是应用域中的主要抽象
- 类可以分解为更小的类
- 类的识别(对于面向对象建模至关重要)
- 基本假设
- 新软件系统的类(绿地)
- 识别现有系统的类(再造)
- 创建基于类的借口(接口工程)
- 有哪些限制?根据系统的用途
- 基本假设
- 概念
- 分层分级
感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
- 最新
- 最热
只看作者