《软件工程导论》学习笔记 —— 第一章 软件工程学概述
2014-09-02 21:55
736 查看
1.3 软件生命周期
软件生命周期:软件定义、软件开发、软件维护(运行维护)。
软件定义阶段通常可以进一步分为 3 个阶段:问题定义、可行性研究和需求分析 。
软件开发阶段通常由 4 个阶段组成:总体设计、详细设计、编码和测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
软件维护阶段不再划分子阶段。
1. 问题定义
问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”
通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。
2. 可行性研究
这个阶段需要回答的关键题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”
可行性研究应该比较简洁,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。
3. 需求分析
这个阶段需要回答的关键问题是:“为了做解决这个问题,目标系统必须做什么?”
用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求;软件开发人员知道怎样用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。因此,系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。
通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。
这一阶段的一项重要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明书(specification)。
4. 总体设计
这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”
总体设计又叫概要设计。
首先,应该设计出实现目标系统的几种可能方案。通常至少应该设计出低成本、中等成本和高成本 3 中方案。用适当的表达工具描述每种方案,分析每种方案的优缺点,推荐一个最佳方案。此外,还应该制定出实现最佳方案的详细计划。
其次,如果客户接受推荐的最佳方案,则应该设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。
5. 详细设计
这个阶段必须回答的问题是:“应该怎样具体地实现这个系统呢?”
详细设计又叫模块设计。在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。
这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代码。
6. 编码和单元测试
这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
程序员需要选择一种适当的程序设计语言,把详细设计的结果翻译成相应的程序,并且仔细地测试编写出的每一个模块。
7. 综合测试
这个阶段的关键任务是通过各种类型的测试和调试使软件达到预定的要求。
最基本的测试是集成测试和验收测试。
做什么? => 行不行? => 实现哪些? => 大概怎么做? => 具体怎么做? => 实现和测试 => 综合测试 => 运行维护
相关文章推荐
- 《C#并发编程经典实例》学习笔记-第一章并发编程概述
- 清华大学《操作系统》学习笔记——第一章:操作系统概述
- 【网络学习】第一章 概述---五层和协议
- C语言程序设计 第一章C语言概述.1
- 第一章 概述
- [学习笔记]Silverlight4 RIA 开发全程解析[项目全程记录]----第一章FitnessTrackerPlus应用程序概述
- 第一章 Java程序设计概述
- 学习笔记-[Maven实战]-第一章:Maven简介
- 第一章:面向对象开发方法概述
- 《DOS命令一日通》第一章 引论,DOS概述
- 计算机网络_学习笔记 第一章 概述
- 第一章-概述
- Java语言程序设计--基础篇(第八版)第一章概述
- 《深入理解Linux内核》学习笔记——第一章
- C++学习笔记--第一章 C++概述
- [OpenGL红宝书]第一章 OpenGL概述
- 第一章 概述
- 学习笔记:第一章——计算机网络概述
- TCP/IP详解卷1:第一章(概述)
- 第一章--概述