您的当前位置:首页正文

软件开发的流程

2023-04-25 来源:好走旅游网


1.项目团队中的角色

较复杂的计算机系统的实现都需要一个团队来完成。一个团队的内部可分为不同的角色。根据项目的大小,一个成员可能扮演一个特定的角色,不同的成员也可能扮演相同的角色。

(1)按可行性与计划:项目经理、分析师和技术负责人。

(2)需求分析:项目经理、分析师和软件架构师。

(3)设计:项目经理、分析师、软件架构师和设计人员。

(4)开发:项目经理、分析师、软件架构师、设计人员和开发人员。

(5)测试:项目经理和测试人员。

(6)维护:项目经理和分析师。

一个项目团队同常包括如下人员。

1)项目经理

项目经理负责规划、激励、组织和管理团队,他主要决定每个团队成员要执行的任务,以及每个项目开发阶段应分配的时间。项目经理负责问题定义阶段、分析阶段、设计阶段、开发阶段、测试阶段、部署阶段和维护阶段的成功执行,并对此承担责任。他还负责带领团队完成指定的任务,以及审查可交付成果是否准确、批准可交付成果以及向管理层提供项目状态报表。

1

2)软件架构师

软件架构师创建软件骨架,负责表达清楚软件整体架构的设想、对各种备选架构方法概念化并进行实验、创建程序模块和这些模块所使用的数据结构,以及根据需求和假设验证该架构。

3)技术负责人

技术负责人负责规划、激励、组织和管理团队成员,并传授设计产品或应用程序所必须的技术和技能。

4)分析师

分析师确定系统中的问题,并决定新系统要生成的信息(输出信息)和提供给系统的数据(输入信息),然后找出一个或多个解决方案,并创建系统的各个模型来理解系统的功能和操作特点。

5)设计人员

分析师为软件设计人员提供系统的信息、功能和行为的表现,这些表现可转换为数据、结构、界面和组件级设计。设计人员需要描述待开发软件的所有方面。

6)开发人员/程序员

软件开发完成以后,有开发人员评估该软件的质量。开发人员根据设计人员指定的规范来创建用户界面,然后创建系统的原型。得到客户对原型的批准后,开发人员将添加必要的代码以使用原型为完备的系统。

2

7)测试人员

测试人员首先测试每个模块的功能,进而测试整个应用程序的功能。测试数据用于检测每个模块能否处理这些数据而不会出错。测试数据可能是从系统的现有记录中提取的真是数据,也可能是虚拟数据。然后,测试人员软件还需要使用测试数据来验证集成后的应用程序的功能。

2.软件工程师的角色

当今的IT界需要一类新型工程师,他们不仅要懂得计算机技术的就基本概念(计算机科学中传授的知识),还要具备运用这些概念来开发有用的、低成本的软件系统的技巧和能力。

软件工程师除了是一名优秀的程序员以外,还必须熟悉各种设计方法,能将用户的需求转化为需求规范,并能与用户就各个领域的应用程序进行交流。

在与用户交流的过程中,软件工程师必须能够根据每种模型可能面对的情形来指导用户做出选择。他还必须具备良好的沟通技巧和人际关系。软件工程师能与团队成员有效合作是非常重要的。

软件工程师需要关注软件系统的质量和性能。除了对软件应用程序和系统的分析、规范、设计和开发进行管理之外,软件工程师还需监督软件应用程序的维护和测试,以及复杂软件系统的集成。

在软件应用程序或系统的开发过程中,需要需要软件工程师参与的阶段有:在需求阶段中,软件工程师与客户协商,评估和分析客户的需求,讨论想要的最终结果,这就使得

3

所需的概念和设计方案能够在设计实现阶段得到进一步发展;设计阶段参与设计,并在开发阶段参与编码工作;最后,整个已完成的系统必须经过验证和测试,以确保其符合需求;质量保证过程贯穿于所有这些阶段之中,以确保过程的成功执行。

软件工程师主要负责管理整个软件的工程,通常与担任大多数详细编程和测试工作的软件开发人员和程序员协同工作。

3.软件开发过程

软件开发过程是为成功开发软件而总结出的一套基本开发步骤和阶段,基本上开发任何一套软件都需要经过这些阶段。

软件开发过程包括一下阶段:

(1)可行性研究与计划。

(2)需求分析。

(3)设计。

(4)开发。

(5)测试。

(6)维护。

4.软件开发过程模型

4

软件开发生命周期只是一般软件开发过程中都需要经历的一些阶段和步骤,但到了实际软件开发中,这些步骤如何具体实现,针对不同类型的软件,其实现也会有所不同,制作具体软件时,软件开发生命周期中这些开发步骤的是、具体实施方法称为软件开发模型。

软件开发过程模型有很多种,以下是最为典型和常见的一种类型——瀑布模型。

瀑布模型也称为“线性顺序模型”。该模型是最早的。也是简单的一种软件过程模型,适用与一些比较小的项目或需求非常明确的项目。如果在开发项目时发现曾经做过某个与之非常类似的项目,则特别适合使用瀑布模型来开发该软件。

瀑布模型其实就是将软件开发过程中的每个阶段逐步完成。在完成对每个阶段的开始点和结束点都做了很明确的规定,并产生明确的交付成果传递给下一阶段,并且只有完成了一个阶段后才可以开始进入下一个阶段。每个阶段还都会产生一定数量的文档,以提交给后面的各项活动和过程,如图所示。

5

1)可行性研究与计划

可行性研究与计划最主要的任务就是讨论和确定一个项目的可行性。我们首先了解软件项目的目的和客户的期望,也就是大体要求实现什么,然后估计软件的规模,并从技术可行性、操作可行性、社会可行性等几个方面分析项目的可行性。如果问题没有可行性的解,分析人员应该建议停止开发这项工程,以避免时间、资源、人力和金钱的浪费;如果问题可行,分析人员应该推荐一个较好的解决方案,并为工程制定一个初步的计划。

本阶段涉及的活动如下图所示。

2)需求分析

6

此阶段的主要目的是为了获取用户对软件功能的具体要求并加以分析。获取用户需求的方法主要有如下几个:

(1)与用户交流,向用户提问题,向用户群体发调查问卷。

(2)参观用户的工作流程,观察用户的操作。

(3)与同行、专家进行交流,听取他们的意见。

(4)分析已经存在的同类软件产品,提取需求。

(5)从行业标准、规则中提取需求。

(6)从Internet上查找相关资料。

当得到用户的需求以后,在加以分析,主要是分析所得到的需求是否有不清晰的地方,是否可以用软件来实现,是否存在矛盾和二义性等。

需求分析完毕时形成需求说明书,并准备进入软件的设计阶段。

3)设计

设计阶段的主要目的是设计如何把已经确定的需求转换成实际的软件,它包括以下方面:

(1)设计图形用户界面标准。在设计应用程序时,必须遵循应用程序在流程和观感方面的标准。这些标准用于为整个应用程序从外观上提供一致性。

7

图形用户界面与应用程序的外观有关。项目经理和团队成员在实际开发应用程序之前一定要对应用程序的整个外观进行可视化设计。这种可视化设计必须按照图形用户界面标准进行定义,以便使待开发的每个屏幕在外观和流程方面保持一致。各屏幕显示的颜色、字体样式、标题和标签的大小、页眉和页脚的外观、主题以及控件的位置和大小都在此定义。

(2)设计数据库。本阶段根据用户提供的需求考虑都需要哪些数据(例如网吧中需要保存卡号、计算机号、上网时间等),然后决定保存这些数据需要几张表格。

(3)设计过程模块。根据功能需求,分析实现用户所有的功能需要几个模块。

(4)设计编码标准。设计编码标准涉及一些命名规范的建立。编码标准有助于提高代码的可读性并使其易于维护。使用标准命名后,即使是非开发人员也能通过变量名、表单和模块名辨别其意图。

(5)构建原型。接着创建应用程序的原型,并展示各客户请求批准。设计人员将开发出的原新委委托给开发人员。原型是应用程序外观的模型,其屏幕允许客户查看应用程序的用户界面。如果使用浏览器界面,客户就可大致了解应用程序的浏览顺序。原型还可以帮助客户了解所完成的应用程序将要实现的功能。原型创建后,需得到客户的批准。客户必须批准以下几项:

1. 应用程序的浏览顺序。

2.应用程序的外观。

3.在完全开发以后应用程序将要执行的功能。

8

(6)分配和监督任务。项目开发工作启动时,项目经理需要对完成该项目所需的人力和时间进行预算并要为此制定一份任务表。

任务表用于记录以下各项:

1.完成该项目所需的人时数。

2.项目的计划起始日期。

3.项目的计划完成日期。

4.项目团队所需的成员数量。

5.分配给每个项目成员的模块名称和规范。

6.完成每个模块所需的时间。

7.进展状况。

(注:有了任务表,项目经理就能监督和跟踪项目开发的各个阶段,并能预见是否可能出现延期交货,从而主动地采取防范措施。)

4)开发

本阶段包括以下内容:

1.对在原型创建构建的用户界面进行最后的修改。

9

2.用数据库工具软件构建数据库。

3.编写代码。

5)测试i

在此阶段,项目经理根据客户需求规范来审核已开发的系统,从而确保该系统能够彻底解决问题定义中的问题。

此阶段的活动如下:

1.单元测试:主要测试软件的单元模块。

2.集成i测试:将软件的单元模块组合起来作为(部分)应用程序来测试。

3.数据验证测试:指测试软件对于输入的不同数据,是否能正确处理并按预期的方式运行。

4.安全性测试:尝试验证系统的内置保护机制能否实际地保护系统不被误用和擅自访问。它确保软件根据相关权限遵守命令使用、数据访问和访问要求的限制。

5.强度测试:要求以不正常的数量、次数或容量提供资源的方式来运行系统。

6)维护阶段

对已经完成开发系统的维护,这个阶段通常比较漫长,包括对用户的培训、软件缺陷的跟踪和升级准备等。

10

因篇幅问题不能全部显示,请点此查看更多更全内容