1、问题定义____________________________________________________________
“要解决的问题是什么?”。关于问题性质、工程目标和规模的书面报告,讨论出一份双方都满意的文档。
问题定义阶段必须回答的关键问题:“要解决的问题是什么?”如果不知道问题是什么就试图解决这个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果很可能是毫无意义的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽视的一个步骤。
通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。通过对系统的实际用户和使用部门负责人的访问调查,分析员扼要地写出他对问题的理解,并在用户和使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不精的地方,改正理解不正确的地方,最后得出一份双方都满意的文档。
问题定义阶段是软件生存周期中最简短的阶段,一般只需要一天甚至更少的时间。
2、可行性研究____________________________________________________________
高层逻辑模型。成本/效益分析。解决办法。
这个阶段要回答的关键问题:“对于上一个阶段所确定的问题有行得通的解决办法吗?”为了回答这个问题,系统分析员需要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。
可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。
在问题定义阶段提出的对工程目标和规模的报告通常比较含糊。可行性研究阶段应该导出系统的高层逻辑模型(通常用数据流图表示),并且在此基础上更准确、更具体地确定工程规模和目标。然后分析员更准确地估计系统的成本和效益,对建议的系统进行仔细的成本/效益分析是这个阶段的主要任务之一。
可行性研究的结果是使用部门负责人做出是否继续进行这项工程的决定的重要依据,一般说来,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。可行性研究以后的那些阶段将需要投入要多的人力物力。及时中止不值得投资的工程项目,可以避免更大的浪费。
3、需求分析____________________________________________________________
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。
用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样使用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。因此系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法描述表示系统的逻辑模型。
在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。系统分析员通常都是计算机软件专家,技术专家一般都喜欢很快着手进行具体设计,然而,一旦分析员开始谈论程序设计的细节,就会脱离用户,使他们不能继续提出他们的要求和建议。较件工程使用的结构分析设计的方法为每个阶段都规定了特定的结束标准,需求分析阶段必须提供完整准确的系统逻辑模型,经过用户确认之后才能进入下一个阶段,这就可以有效地防止和克服急于着手进行具体设计的倾向。
4、总体设计____________________________________________________________
概要设计:包含总体设计+数据库设计等。
这个阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题?”
首先,应该考虑几种可能的解决方案。列如,目标系统的一些主要功能是用计算机自动完成还是用人工完成;如果使用计算机,那么是使用批处理方式还是人机交互方式;信息存储使用传统的文件系统还是数据库……。通常至少应该考虑下述几类可能的方案:
低成本的解决方案。系统只能完成最必要的工作,不能多做一点额处的工作。
中等成本的解决方案。这样的系统不仅能够很好地完成预定的任务,使用起来很方便,而且可能还具有用户没有具体指定的某些功能和特点。虽然用户没有提出这些具体要求,但是系统分析员根据自己的知识和经验断定,这些附加的能力在实践中将证明是很有价值的。
高成本的“十全十美”的系统。这样的系统具有用户可能希望有的所有功能和特点。
系统分析员应该使用系统流程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应该在充分权衡各种方案的利弊的基础上,推荐一个较好的系统 (最佳方案),并且制定实现所推荐的系统的详细计划。如果用户接受分析员推荐的系统,则可以着手完成本阶段的另一项主要工作。
上面的工作确定了解决问题的策略以及目标系统需要哪些程序,但是,怎样设计这些程序呢?结构设计的一条基本原理就是程序应该模块化,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。总体设计阶段的第二项主要任务就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描绘软件的结构。
5、详细设计
6、编码和单元测试
7、综合测试
最基本的测试是集成测试和验收测试。验收测试按照规格说明书的规定(通常在需求分析阶段确定)
8、软件维护
分享到:
相关推荐
总而言之,软件工程流程图是软件开发过程中的关键文档,它以图形化的方式呈现了软件开发的全貌,帮助团队成员理解项目的进度、任务分配和依赖关系,确保项目能够按照既定的目标高效进行。在实际工作中,开发团队可能...
总的来说,《软件工程过程课件PPT》是一份全面的教程,涵盖了软件工程的核心理念、主要活动和实践策略,对于想要深入理解软件开发流程的学习者极具价值。通过学习这些内容,不仅可以提升个人技能,也有助于在实际...
《软件工程流程图 GB标准详解》 在软件工程领域,流程图是一种常用且重要的图表工具,它能够清晰地展示程序或系统的工作流程,便于理解和分析。中国的国家标准(GB)为流程图的绘制提供了规范和指导,确保了不同...
软件工程过程模型
在软件开发领域,软件工程过程模型是至关重要的概念,它定义了从需求分析到软件维护等一系列有序的活动。本章主要介绍了软件工程过程模型的基本概念和技术基础,包括多个过程模型和相关技术。 2.1 软件工程的技术...
软件工程过程与软件工程管理是现代信息技术(IT)领域中不可或缺的重要组成部分。它们不仅贯穿于软件开发的整个生命周期,而且在确保软件质量和项目成功方面发挥着至关重要的作用。一个完整的软件工程过程从项目的...
界面关系图和工作流程图是软件工程过程资料模板界面设计说明书样本的界面关系图和工作流程图部分,旨在对软件工程过程资料模板界面设计说明书样本的界面关系图和工作流程图进行详细介绍。本节将对软件工程过程资料...
2. 软件工程过程:软件工程过程是软件工程的核心,它定义了一组关键过程域,用于管理和控制软件工程项目。 3. 软件过程模型:软件过程模型是软件工程过程的模型,它定义了一组关键过程域,用于管理和控制软件工程...
涉及软件工程整个流程的管理文档模板,一共9个文档。1.可行性研究报告、2.软件需求说明书、3.概要设计说明书、4.详细设计说明书、5.项目开发计划、6.模块开发卷宗、7.数据库设计说明书、8.开发进度月报、9.项目开发...
本资源是针对软件工程学生,可以用于《软件工程》期末考试等考试复习时使用,大纲比较明确。请不要用于其他用途,盗版必究!
《软件工程流程开发文档》是一份详尽阐述软件开发全过程的关键资料,涵盖了从需求分析到测试验收的各个环节。这份文档对于任何从事软件开发工作的人来说,都具有极高的学习和参考价值。下面,我们将深入探讨其中涉及...
本资料聚焦于“软件工程流程图”,特别是信息系统的分析与设计。 首先,我们需要了解软件开发的生命周期方法,也称为瀑布模型。这是一种线性的开发模型,每个阶段依次进行,前一阶段完成后才能进入下一阶段。生命...
在当今信息技术快速发展的时代,软件工程过程管理成为了软件开发项目能否成功的关键。《软件工程过程管理》作为一份详尽的指导文档,不仅仅是对基础理论的阐述,更是对实际操作的深刻洞察。它为项目经理、程序经理、...
软件工程过程资料模板-详细设计说明书.zip程序开发文档软件开发文技术档下载软件工程过程资料模板-详细设计说明书.zip程序开发文档软件开发文技术档下载软件工程过程资料模板-详细设计说明书.zip程序开发文档软件...
在软件开发过程中,软件工程是一门至关重要的学科,它涵盖了从...通过研究“软件工程实例订票系统”的相关文档,我们可以学习到如何在实际项目中规范地执行软件工程流程,这对于提升开发效率和软件质量具有重要意义。
软件工程过程是软件开发中不可或缺的一个核心环节,它涵盖了软件产品的整个生命周期,从需求分析、设计、编码、测试到维护的一系列步骤。在软件工程过程中,主要可以分为四个关键部分: 1. **产品过程(工程与模型...