- 忽视软件开发前期的需求分析。
- 开发过程中缺乏统一的、规范化的方法论的指导。
- 文档资料不齐全或不准确。
- 忽视用户之间、开发组员之间的交流。
- 忽视测试的重要性。
- 不重视维护或由于上述原因造成维护工作困难。
- 从事软件开发的专业人员对这个产业认识不充分,缺乏经验。
- 没有完善的质量保证体系。
软件的生命周期是指从设计该产品的构想开始,到软件的需求认定、软件设计、软件实现、产品测试与验收、投入使用的以及产品版本不断更新,到最终该产品被市场淘汰的全过程。
- 可行性研究
- 需求分析
- 软件设计
- 编码
- 软件测试
- 软件维护 定义(可行性研究、需求分析)、开发、维护
- 瀑布模型(不确定有没有划这个重点) 优点:过程模型简单,执行容易 缺点:无法适应变更。
- 快速还原模型
- 增量模型
优点:
(1)、将待开发的软件系统模块化,分批次提交软件产品,使用户可以及时了解软件项目的进展。
(2)、以组件为单位进行开发,降低软件开发的风险。
(3)、开发顺序灵活
缺点:
要求待开发的软件系统可以被模块化。- 螺旋模型 将瀑布与快速结合起来,忽略了风险分析
测试现行,驱动开发
- 技术可行性
- 操作可行性
- 经济可行性
步骤:
- 需求获取
- 分析建模
- 需求描述
- 需求验证
核心是数据字典
1、功能建模
思想是用抽象模型的概念,按照软件内部数据传递和变换的关系,自顶向下逐层分解,直到找到满足功能要求的可实现的软件为止。
数据流图(简称DFD图)就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。
2、数据建模
3、行为建模
4、数据字典
1、层次方框图
2、Warnier图(具体图形课本57,58页)
1、模块化(高内聚低耦合)
2、抽象
3、逐步求精
4、信息隐藏
响应时间<3秒
可用性和域(没有百度,不确定是不是这个域)用性
解决“怎么做”的问题(需求分析:解决“做什么”)
概要设计阶段:要完成体系结构设计、数据设计及接口设计
详细设计阶段:要完成过程设计
特点:封装、继承、多态
基本概念(重点看1,3)
1、面向对象:按人们认识客观世界的系统思维方式,采用基于对象的概念建立模型,模拟客观世界分析、设计、实现软件的办法。
2、对象:即指现实世界中各种各样的实体。
3、类:类是具有相似内部状态和运动规律的实体的合计。
面向对象的软件工程方法的优势
1、符合人类的思维习惯
2、稳定性好
3、可复用性好
4、可维护性好
通常要建立3种模型:
数据结构(对象模型)、执行操作(动态模型)、数据值变化(功能模型)
建立对象模型:
1、划分主题
2、确定类与对象(确定对象和对象之间的关联)
3、确定属性
4、确定服务
注:需要画图的没有总结,看课本