软工总结——生命周期各阶段所需文档

简介: 软工总结——生命周期各阶段所需文档

  软工这门学科给了我一个新的视角,软件开发原来不仅仅是编码而已,还有很多其他复杂的工作。软件工程是指指导计算机软件开发和维护,要科学的掌握这门方法就要熟知和运用12个软工文档。

  我把软件工程分成了三个阶段:前期的需求、计划分析、中期的设计和测试,最后后期的维护与管理。

软件工程 — 前期

计划分析阶段

  在项目开始时,往往要先进行系统定义,确定系统硬件、软件的功能和接口。系统定义要充分理解问题,对问题的解决办法进行论证;评价问题解决办法的不同实现方案;表达解决方案,以便进行复审。

01.可行性研究报告

image.png

02.项目开发计划

目的 对开发机房收费系统的费用、时间、进度、人员组织、硬件设备的配置、开发环境和运行环境的配置进行说明,为下一步开发做准备。
预期读者 项目开发人员和管理人员

需求分析阶段

 软件需求分析任务:借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。

 步骤:1.深入描述软件的功能和性能。2.确定软件设计的约束和软件同其他系统元素的接口细节。3.定义软件的其他有效性需求

 分析法流程:当前系统模型化——物理模型抽象化——现有的逻辑模型中加入现有的需求——把逻辑模型实例化物理模型——具体化目标系统


 这个阶段要编辑的文档有:软件需求说明书;数据要求说明书;初步的用户手册;修改、完善与确定软件开发实施计划

03.软件需求说明书

image.png

06-2.数据要求说明书

目的 把数据分成静态和动态,规范使用数据
预期读者 开发人员和数据库管理人员

11.初步用户手册

目的 描述用户的输入和软件的输出结果,以及部分功用途、和运行环境与使用方法。
预期读者 开发人员、用户

软件工程 — 中期

设计阶段

需求分析阶段结束后,系统必须“做什么”的结论已经明确了,下一步就要考虑如何实现系统的需求。

 设计阶段包含软件设计与程序设计,这两种设计都要基于面向对象技术。


 软件设计过程为:

 1.制定规范

 2.软件系统结构的总体设计

 3.处理方式设计

 4.数据结构设计

 5.可靠性设计

 6.编写概要设计阶段的文档

 7.概要设计评审-概要说明书和数据库说明书,完善用户手册


 传统的软件工程采用结构化设计(SD),且采用自顶向下,逐步细化的方法。


 结构化包含了模块化,就是把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,一般采用耦合性和模块内聚度量模块的独立性。独立性越强,耦合级别越低。

每个模块之间还具有模块内聚的特性,表现模块的紧密程度,功能内聚最优。

 抽象化:软件系统进行模块设计时,可有不同的抽象层次。

 层次1(高层次抽象):用问题所处环境的术语来描述这个软件。

 层次2:任务需求的进一步细化,这个层次不能直接实现,未给出”怎么做“的信息。

 层析3:程序过程表示,以2D绘图生产任务,下一步就进入编程阶段。


 结构化设计方法:首先研究、分析和审查数据流图;根据数据流图决定问题类型:变换型或事物型;根据数据流图推导出初始的结构图;然后不断修改这俩图,对数据字典细化补充;制定测试计划。

04.概要设计说明书

目的 说明整个系统的体系结构,以及需求用例的各个功能点在结构中的体现,为系统的详细设计人员进行详细设计师的输入参考文档。
任务 确定设计方案和结构设计
预期读者 开发人员

05.详细设计说明书

目的 为了得出系统的精确描述,设计出程序的蓝图,式程序员根据此蓝图写出代码。
任务 过程设计、接口设计和数据设计
预期读者 开发人员

06.数据库设计说明书

目的 提供了数据库设计的可视性以及软件支持所需的信息,应用于机房收费系统的开发前期,主要叙述了用户对项目的一些要求,进一步确定软件的功能和性能,对每个功能标准进行定位,为后期数据库设计指引方向,也可以为系统程序设计提供借鉴与参照。
预期读者 开发人员和数据库管理人员

测试阶段

 软件分析、设计过程中难免存在各种各样的错误,需要通过测试查找错误,以保证软件的质量。

 软件确认结束时应完成的文档有:测试分析报告、经修改并确认的用户手册和操作手册、项目开发总结。


 测试的目的:

 测试是程序的执行过程,目的在于发现错误

 一个好的测试用例在于能发现至今未发现的错误

 一个成功的测试是发现了至今未发现的错误的测试

 测试的原则:

 1.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭

 2.测试用例应有测试输入数据和对应的预期输出结果这两部分组成

 3.程序员用避免检查自己的程序

 4.在设计测试用例时,应包含合理输入条件和不合理的输入条件

  软件开发是自顶向下,逐步细化的过程,测试过程是依相反顺序安排的自底向上,逐步集成的过程。

07.测试计划

目的 描述测试活动的范围、方法、资源和进度。目的就是尽可能多的找到系统中的漏洞,并且设计出测试用例,对系统进行测试。
测试用例 黑盒测试、白盒测试
预期读者 开发人员、测试人员

08.测试分析报告

image.png

09.项目开发总结报告

目的 项目开发基本已经完成,此项目开发总结报告,是在分析我们在开发过程总结经验和教训,为我们以后的开发项目积累经验,从而减少成本。
预期读者 所有参与项目相关人员

10.操作手册

目的 编写操作手册的目的是让使用此软件的人了解整个操作步骤和正确使用系统,保证系统的安全性和完整性。
预期读者 开发人员,用户等。

11.用户手册

目的 编写本文档的主要目的是给使用者提供一个使用指南,以便为首次使用该该系统的用户说明使用方法,以及给正在使用或即将使用的用户在使用的过程中遇到的问题提供解决的办法。
预期读者 开发人员,用户等。

12.开发进度报告

  对项目的开发进度,耗资和当前状态进行跟进,以及经费进行总结并且实时列出下个月的计划,从而实现时间金额资源的充分利用,至此软工文档就结束了。

软件工程 — 后期

 软件后期的维护与管理同样重要,三种维护类型分别是:改正性维护——占20%、适应性维护——占25%、完善性维护——占50%、还有其他维护占5%

 维护的策略是:

 1.改正性维护:开发周期间未能发现的遗留错误

 2.适应性维护:指软件适应运行环境的改变而进行的一类维护;因硬件或支持软件改变引起的变化;将软件移植到新机器上;软件适用对象的较少改变

 3.完整性维护:提高软件性能和软件可维护性而对软件修改的过程。

 4.预防性维护:为了给未来的改变奠定更好的基础而修改软件的维护活动。


 项目管理过程:

1.启动一个软件项目 在指定软件项目计划前,必须明确项目的目标和范围,考虑候选的解决方案,表明技术和管理上的要求。

2.度量 未来了解产品开发的技术过程和产品本身 作用是为了有效地定量进行管理

3.估算 在软件项目管理过程中关键的活动就是定制项目计划 在做计划必须就需要的人力(以月为单位)、项目持续时间(以年或月为单位)、成本(以元为单位)作出估算

4.进度安排 预先对进度如果计划? 工作怎么样就位? 如何识别定义好的任务?

5.跟踪和控制 一旦建立了开发进度安排,就可以开始着手追踪和控制活动;由项目管理人员负责追踪在进度安排中标明的每一个任务,还可以对资源重新定向,对任务重新安排,做最坏的结果。


相关文章
|
8月前
|
监控
2、软件项目跟踪和监督过程——所有表集合
2、软件项目跟踪和监督过程——所有表集合
80 0
|
3月前
|
监控 数据可视化 安全
软件生命周期是什么?包括哪些阶段?各阶段的目标和任务是什么?
在数字化时代,软件如同空气般无处不在,其生命周期涵盖从需求分析到退役的多个阶段,如同生物的成长过程。本文详细介绍了软件生命周期各阶段的目标与任务,并探讨了瀑布模型、迭代模型和敏捷模型等常见生命周期模型。未来,随着技术和业务的不断演变,软件生命周期管理将面临更多挑战与机遇,需不断学习先进方法和技术,以满足用户需求。
1219 0
|
8月前
|
算法 Java 程序员
技术更新迭代与“八股文”知识库的清理与更新
随着互联网技术的不断更新迭代,曾经被认为是“标准答案”的观点和方法已经逐渐失去适应当前需求的能力,甚至被视为过时的做法。就拿最近的技术圈新闻来讲,在新的JDK版本中,Java编程引入了许多新的特性、工具和方法,使其变得更加简洁、高效和强大,但是之前的旧特性和方法也有许多被废弃了,比如曾经比较经典的偏向锁已经被废弃了,因此,个人觉得是时候对“八股文”进行一次知识库的清理和更新了。那么本文就来分享一下关于偏向锁被废弃以及个人对此的看法,并回顾一下自己的“八股文”知识库,以及技术更新迭代地时候我们要保持及时更新自己的知识储备。
123 2
技术更新迭代与“八股文”知识库的清理与更新
带你读《基于数据资产全生命周期估值与实践报告》——序言
带你读《基于数据资产全生命周期估值与实践报告》——序言
如何进行需求评审后续跟踪和更新?附模板
如何进行需求评审后续跟踪和更新?附模板
158 0
|
前端开发 API 数据库
第五阶段项目
api Dao UserDaoImpl Service Controler pom文件
126 0
|
图形学 计算机视觉
3D建模入门学习方法,制作过程的六个主要阶段讲解
从来没有接触过建模的小白们是否都很好奇 自己最喜欢的3D电影或者是游戏角色 比如说《哪吒之魔童降世》里面的哪吒 《王者荣耀》里面的人物等等 都是怎样制作出来的呢?
154 0
3D建模入门学习方法,制作过程的六个主要阶段讲解
|
测试技术
软件测试面试题:测试生命周期,测试过程分为几个阶段,以及各阶段的含义及使用的方法?
软件测试面试题:测试生命周期,测试过程分为几个阶段,以及各阶段的含义及使用的方法?
200 0
|
XML JavaScript 前端开发
前端培训-中级阶段(3)- DOM文档对象模型(2019-6 -27期)
前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。 前面我们已经基本掌握常规的语法语义,以及基本的使用方法。接下来我们讲深入进去了解其中内在的原理。
115 0
前端培训-中级阶段(3)- DOM文档对象模型(2019-6 -27期)
|
JSON 前端开发 JavaScript
前端培训-中级阶段(30)- Promise对象
前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。 上一篇是令人吐槽的ES6,这一篇就有意思的多了。 异步操作我们不陌生,浏览器的UI事件、AJAX、Worker、setTimeout、setInterval 等等都是异步操作。 那么在执行异步操作时我们都会放入一个回调,这里有个名词叫什么来着?回调地狱。 哈哈当我们用 Promise 来处理的时候就简洁多了,可以链式操作。
176 0
前端培训-中级阶段(30)- Promise对象