导读:1什么是SDLC?.软件开发生命周期(SDLCSoftware Development Lifecycle)是构建软件的系统过程,可确保构建软件的质量和正确性。.SDLC流程旨在生产满足客户期望的高质量软件。软件开发应在预定义的时间范围和成本内完成。.SDLC包含详细的计划,解释
软件开发生命周期(SDLCSoftware Development Lifecycle)是构建软件的系统过程,可确保构建软件的质量和正确性。 SDLC流程旨在生产满足客户期望的高质量软件。软件开发应在预定义的时间范围和成本内完成。
SDLC包含详细的计划,解释如何规划,构建和维护特定的软件。 SDLC生命周期的每个阶段都有自己的流程和可交付成果,可以进入下一阶段。
这里是SDLC对于开发软件系统非常重要的主要原因。
整个SDLC流程分为以下几个阶段:
该要求是SDLC流程的第一阶段。它由高级团队成员根据业内所有利益相关者和领域专家的意见进行。在此阶段还要规划质量保证要求并识别所涉及的风险。
此阶段更清晰地描述了整个项目的范围以及触发项目的预期问题,机会和指令。
要求收集阶段需要团队获得详细和精确的要求。这有助于公司完成必要的时间表,以完成该系统的工作。
完成需求分析阶段后,下一步是定义和记录软件需求。此过程在“软件需求规范”文档的帮助下进行,该文档也称为“SRS”文档。它包括在项目生命周期中应设计和开发的所有内容。
主要有五种可行性检查:
在第三阶段,系统和软件设计文档按照需求规范文档准备。这有助于定义整个系统架构。
该设计阶段作为模型下一阶段的输入。
在此阶段开发了两种设计文档:
高级设计(HLD)
详细设计(LLD)
一旦系统设计阶段结束,下一阶段就是编码。在此阶段,开发人员通过使用所选编程语言编写代码来开始构建整个系统。在编码阶段,任务分为单元或模块,并分配给各种开发人员。这是软件开发生命周期过程中最长的阶段。
在此阶段,开发人员需要遵循某些预定义的编码指南。他们还需要使用编译器,解释器,调试器等编程工具来生成和实现代码。
软件完成后,将其部署在测试环境中。测试团队开始测试整个系统的功能。这样做是为了验证整个应用程序是否符合客户要求。
在此阶段,QA和测试团队可能会发现一些与开发人员沟通的错误/缺陷。开发团队修复了该错误并将其发送回QA进行重新测试。此过程一直持续到软件无错误,稳定并根据该系统的业务需求工作。
一旦软件测试阶段结束并且系统中没有任何错误或错误,则开始最终部署过程。根据项目经理提供的反馈,最终软件将被发布并检查是否存在部署问题。
部署系统后,客户开始使用已开发的系统,发生以下3项活动
SDLC阶段的主要重点是确保继续满足需求,并确保系统继续按照第一阶段提到的规范执行。
这里是SDLC生命周期的一些最重要的阶段:
瀑布是一种广泛接受的SDLC模型。在这种方法中,软件开发的整个过程分为不同的阶段。在该SDLC模型中,一个阶段的结果充当下一阶段的输入。
该SDLC模型是文档密集型的,早期阶段记录了后续阶段需要执行的操作。
增量模型不是单独的模型。它本质上是一系列瀑布循环。这些要求在项目开始时分为几组。对于每个组,遵循SDLC模型来开发软件。重复SDLC过程,每个版本都添加更多功能,直到满足所有要求。在此方法中,每个循环都充当先前软件版本的维护阶段。对增量模型的修改允许开发周期重叠。之后的循环可以在前一循环完成之前开始。
在这种类型的SDLC模型测试和开发中,阶段是并行计划的。因此,侧面有验证阶段,另一侧有验证阶段。 V-Model通过编码阶段加入。
敏捷方法是一种在任何项目的SDLC过程中促进开发和测试的持续交互的实践。在Agile方法中,整个项目分为小型增量构建。所有这些构建都是在迭代中提供的,每次迭代持续一到三周。
螺旋模型是风险驱动的过程模型。此SDLC模型可帮助团队采用一个或多个流程模型的元素,如瀑布,增量,瀑布等。
该模型采用了原型模型和瀑布模型的最佳特征。螺旋方法是设计和开发活动中快速原型设计和并发性的结合。
Big bang模型专注于软件开发和编码中的所有类型的资源,没有或很少计划。这些要求在它们到来时就被理解和实施。
此模型最适合与较小规模开发团队合作的小型项目。它对学术软件开发项目也很有用。这是一个理想的模型,其中要求是未知的或未给出最终发布日期。
结论
SDLC是一个用于构建软件的系统过程,可确保所构建软件的质量和正确性
SDLC流程为标准的一系列活动和可交付成果提供了框架
七个不同的SDLC阶段1)需求收集和分析2)可行性研究:3)设计4)编码5)测试:6)安装/部署和7)维护
高级团队成员进行需求分析阶段
可行性研究阶段包括在项目生命周期中应设计和开发的所有内容
在设计阶段,系统和软件设计文档是根据需求规范文档准备的
在编码阶段,开发人员通过使用所选编程语言编写代码来开始构建整个系统
测试是下一阶段,用于验证整个应用程序是否按照客户要求运行。
当软件测试阶段结束时,安装和部署面开始,并且系统中没有任何错误或错误
维护面中涉及的错误修复,升级和参与操作
瀑布,增量,敏捷,V型,螺旋,大爆炸是一些流行的SDLC模型
SDLC包含详细的计划,解释如何规划,构建和维护特定的软件
瀑布模型是一种将软件开发划分为不同阶段的顺序模型。 每个阶段都设计用于在SDLC阶段执行特定活动。 它由Winston Royce于1970年推出。
阶段 | 活动 |
---|---|
需求收集阶段 | 从客户收集要开发的软件系统的详细要求 |
设计阶段 | 规划编程语言、数据库或者项目的其他高级技术细节 |
编码 | 在设计阶段之后,它是建立阶段,这只是编码软件 |
测试阶段 | 测试软件以验证它是否按照客户端提供的规范构建。 |
部署阶段 | 在相应的环境中部署应用程序 |
维护阶段 | 可能需要根据客户要求更改代码 |
可以使用瀑布模型
好处 | 缺点 |
---|---|
在下一个开发阶段之前,必须完成上一阶段 | 只能在阶段期间修复错误 |
适用于需求定义明确的小型项目 | 对于需求经常变化的复杂项目,这是不可取的 |
应该在完成每个阶段之前执行质量保证测试(验证和验证) | 测试介入很晚 |
精心编写的文档 | 文档占用了开发人员和测试人员的大量时间 |
项目完全依赖项目团队,客户干预最少 | 客户的宝贵反馈不能包含在正在进行的开发阶段 |
软件的任何变化都是在开发过程中进行的 | 完成的软件中出现的微小变化或错误可能会导致很多问题 |
增量模型是一个软件开发过程,其中需求被分解为软件开发周期的多个独立模块。从分析设计,实施,测试/验证,维护开始逐步进行增量开发。
每次迭代都要经过需求,设计,编码和测试阶段。并且系统的每个后续版本都会将功能添加到先前版本,直到实现了所有设计的功能。
系统在交付第一个增量时投入生产。第一个增量通常是解决基本要求的核心产品,并在下一个增量中添加补充功能。一旦客户分析了核心产品,就会有下一个增量的计划开发。
需求分析:收集软件的要求和规格
设计: 在此阶段设计了一些高端功能
编码:在此阶段完成软件编码
测试:部署系统后,它将进入测试阶段
优点:
缺点:
螺旋模型是瀑布模型和迭代模型的组合。螺旋模型中的每个阶段都以设计目标开始,最后由客户审查进度。 Barry Boehm在1986年的论文中首次提到螺旋模型。
Spiral-
SDLC模型的开发团队从一小部分需求开始,并针对这些需求进行每个开发阶段。软件工程团队在每个不断增加的螺旋中增加了额外需求的功能,直到应用程序为生产阶段做好准备。
它包括估算迭代的成本,进度和资源。它还涉及了解系统分析员与客户之间持续通信的系统要求
风险分析
在规划和最终确定风险缓解策略的同时,确定潜在风险
工程
它包括在客户现场测试,编码和部署软件
评估
由客户评估软件。此外,还包括识别和监控诸如进度滑点和成本超支等风险
好处
缺点
RAD或Rapid Application Development流程采用瀑布模型;它的目标是在短时间内开发软件。
SDLC RAD模型具有以下阶段
它侧重于信息的输入输出源和目的地。它强调以小块形式提供项目;较大的项目分为一系列较小的项目。 RAD模型的主要特点是它专注于模板,工具,流程和代码的重用。
好处
缺点
模型 | 瀑布 | 增量模型 | 螺旋模型 | Rad模型 |
---|---|---|---|---|
早期规划 | 是 | 是 | 是 | 没有 |
回到早期阶段 | 没有 | 是 | 是 | 是 |
处理大型项目 | 不适当 | 不适当 | 适当 | 不适当 |
详细文档 | 必要 | 会,但不多 | 是 | 有限 |
成本 | 低 | 低 | 昂贵 | 低 |
需求规格 | 开始 | 开始 | 开始 | 时间盒发布 |
灵活变革 | 难 | 简单 | 简单 | 简单 |
用户参与 | 只在开始时 | 中间 | 高 | 只在一开始 |
维护性 | 最小 | 促进可维护性 | 典型 | 易于维护 |
持续时间 | 长 | 很长 | 长 | 短 |
风险 | 高 | 低 | 中到高风险 | 低 |
框架类型 | 线性 | 线性+迭代 | 线性+迭代 | 线性 |
测试 | 编码阶段完成后 | 每次迭代后 | 在工程阶段结束时 | 编码完成后 |
迭代 | 没有 | 是(因为并行开发) | 没有 | 是 |
可重用性 | 最少可能 | 在某种程度上 | 在某种程度上 | 是 |
大体时间 | 很长 | 长 | 长 | 短 |
工作软件可用性 | 在生命周期结束时 | 在每次迭代结束时 | 在每次迭代结束时 | 在生命周期结束时 |
目的 | 高保证 | 快速发展 | 高保证 | 快速发展 |
团队规模 | 大团队 | 不是大团队 | 大团队 | 小团队 |
客户控制 | 非常低 | 是 | 是 | 是 |
原型方法被定义为软件开发模型,其中构建原型,测试,然后在需要时重新加工,直到实现可接受的原型。 它还创建了生成最终系统的基础。
软件原型模型在项目要求未知的情况下效果最佳。 它是一种在开发人员和客户端之间进行的迭代,试验和错误方法。
原型模型遵循以下六个SDLC阶段:
原型模型从需求分析开始。 在此阶段,详细定义了系统的要求。 在此过程中,对系统的用户进行访谈,以了解他们对系统的期望。
第二阶段是初步设计或快速设计。 在这个阶段,创建了一个简单的系统设计。 但是,它不是一个完整的设计。 它向用户简要介绍了系统。 快速设计有助于开发原型。
在此阶段,基于从快速设计收集的信息设计实际原型。 它是所需系统的小型工作模型。
在此阶段,建议的系统将提交给客户进行初步评估。 它有助于找出工作模型的优缺点。 评论和建议从客户收集并提供给开发人员。
如果用户对当前原型不满意,您需要根据用户的反馈和建议优化原型。
在满足用户指定的所有要求之前,此阶段不会结束。 一旦用户对开发的原型感到满意,就会根据批准的最终原型开发最终系统。
一旦最终系统基于最终原型开发,它就会经过全面测试并部署到生产中。 该系统进行日常维护,以最大限度地减少停机时间并防止大规模故障。
四种原型模型是:
快速一次性是基于初步要求。 它很快就被开发出来以显示需求在视觉上的外观。 客户的反馈有助于推动对需求的更改,并再次创建原型,直到需求基线为止。
在这种方法中,开发的原型将被丢弃,并且不会成为最终接受的原型的一部分。 该技术对于探索想法和获得客户需求的即时反馈非常有用。
在这里,开发的原型根据客户的反馈逐步完善,直到最终被接受为止。 它可以帮助您节省时间和精力。 这是因为从头开始为过程的每次互动开发原型有时会非常令人沮丧。
该模型对于使用未被充分理解的新技术的项目很有帮助。 它还用于复杂项目,其中必须检查每个功能一次。 当要求不稳定或在初始阶段不清楚时,这是有帮助的。
在增量型原型设计中,最终产品被抽取为不同的小型原型并单独开发。 最终,不同的原型被合并为一个产品。 此方法有助于缩短用户与应用程序开发团队之间的反馈时间。
极端原型方法主要用于Web开发。 它由三个连续阶段组成。
在这里,您需要在原型制作过程中注意以下几点:
在这里,使用Prototyping模型是重要的优点/好处:
这里是原型设计模型的重要缺点:
能力成熟度模型(Capability Maturity Model)用作衡量组织软件过程成熟度的基准。
CMM是在80年代后期在软件工程研究所开发的。 它是由美国空军资助的一项研究的结果,作为评估分包商工作的一种方式。 后来基于1991年创建的CMM- SW模型来评估软件开发的成熟度,其他多个模型与CMM-I集成在一起
水平 | 活动 | 优点 |
---|---|---|
1级初始 | 在第1级,该过程通常是混乱和临时的;能力的特征是基于个人而非组织; 未衡量进展;开发的产品通常是计划和超出预算;计划,成本,功能和质量目标的差异很大 | 没有 |
2级管理 | 需求管理; 估算项目参数,如成本,进度和功能;衡量实际进度;制定计划和流程; 定义了软件项目标准;识别和控制产品,问题报告的变化等;项目之间的流程可能不同 | 流程变得更容易理解;管理人员和团队成员花费更少的时间来解释事情的完成方式以及执行事务的时间;项目得到更好的估计,更好的计划和更灵活;质量已融入项目中;成本可能最初很高,但加班时间会下降;更多文书工作和文件 |
Level-3定义 | 澄清客户要求;解决设计要求,制定实施流程;确保产品符合要求和预期用途;系统地分析决策’纠正和控制潜在的问题 | 流程改进成为标准;解决方案从“编码”发展到“工程化”;在整个项目工作中出现质量门,整个团队参与该过程;风险得到缓解,不会让团队感到意外 |
4级定量管理 | 统计管理项目的流程和子流程;了解流程绩效,定量管理组织的项目; | 优化整个组织的流程绩效;促进组织中的定量项目管理。 |
5级优化 | 及早发现并消除缺陷的原因;确定并部署新工具和流程改进,以满足需求和业务目标 | 促进组织创新和部署;推动因果分析和解决方案 |
下图给出了在不同CMM级别发生的情况的图示
CMM是维护任何软件开发公司产品质量的最理想的流程,但其实施所需的时间比预期的要长。
CMM实施不会在一夜之间发生
这不仅仅是一个“文书工作”。
典型的实施时间是
CMM中的每个级别都定义为关键过程域或KPA (key process area) ,级别1除外。 每个KPA都定义了一组相关活动,这些活动在共同执行时实现了一组对提高软件能力至关重要的目标
对于不同的CMM级别,有一组KPA,例如对于CMM模型-2,KPA是
同样,对于其他CMM模型,您有特定的KPA。 要了解KPA的实施是否有效,持久和可重复,它将根据以下基础进行绘图
今天,CMM充当软件行业的“批准印章”。 它有助于以各种方式提高软件质量。
摘要
CMM于80年代末首次在美国空军引入,用于评估分包商的工作。 后来,通过改进版本,它被实现为跟踪软件开发系统的质量。
整个CMM级别分为五个级别。
N层应用 程序是分布在分布式网络中的三个或更多个单独计算机之间的程序。
最常见的n层形式是3层应用程序,它分为三类。
此体系结构模型为软件开发人员提供了最大灵活性的可重用应用程序/系统。
在N层中,“N” 指的是正在使用的层数或层数,如 - 2层,3层或4层等 。 它也被称为“ 多层 架构” 。
n层架构 是经过行业验证的软件架构模型。 它通过提供可伸缩性,安全性,容错性,可重用性和可维护性的解决方案,适合支持企业级客户端 - 服务器应用程序。 它可以帮助开发人员创建灵活且可重用的应用程序。
此处描述了n层系统的图形表示 - 表示层,应用程序层和数据库层。
根据要求,这三层可以进一步细分为不同的子层。
一些应用这种架构的热门网站是
要记住一些常用术语,以便更清楚地理解概念。
分布式网络: 它是一种网络体系结构,位于网络计算机上的组件仅通过传递消息来协调和传递其操作。 它是位于不同节点的多个系统的集合,但在用户看来是单个系统。
客户端 - 服务器体系结构: 它是一种体系结构模型,其中客户端(一个程序)从服务器(另一个程序)请求服务, 即 它是通过因特网或通过内联网提供的请求 - 响应服务。
在此模型中, 客户端 将作为一组程序/代码,通过网络执行一组操作。 另一方面, Server 是一组另一个程序,它根据请求将结果集发送到客户端系统。
* 在此,客户端计算机向终端用户提供从服务器请求服务或资源的接口,另一方面服务器然后处理该请求并将结果显示给最终用户。
* 客户端 - 服务器模型的一个例子 - ATM机。 银行是用于在大客户数据库内处理应用程序的服务器,并且ATM机器是具有用户界面的客户端,具有一些简单的应用程序处理。
平台: 在计算机科学或软件行业中,平台是应用程序可以运行的系统。 它由硬件和软件组合而成,具有内置指令,供处理器/微处理器执行特定操作。
数据库: 它是一种有组织的信息集合,因此可以轻松访问,管理和更新。
有不同类型的N层体系结构,如3层体系结构,2层体系结构和1层体系结构。
首先,我们将看到3层架构,这非常重要。
通过查看下图,您可以轻松识别3层架构 有三个不同的层。
在这里,我们采用了一个简单的学生形式示例来理解所有这三个层次。 它包含有关学生的信息 - 姓名,地址,电子邮件和图片。
用户界面层或表示层
private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
// Object of the Property layer
clsStudent objproperty=new clsStudent();
// Object of the business layer
clsStudentInfo objbs=new clsStudentInfo();
// Object of the dataset in which we receive the data sent by the business layer
DataSet ds=new DataSet();
// here we are placing the value in the property using the object of the
//property layer
objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());
// In this following code we are calling a function from the business layer and
// passing the object of the property layer which will carry the ID till the database.
ds=objbs.GetAllStudentBsIDWise(objproperty);
// What ever the data has been returned by the above function into the dataset
//is being populate through the presentation laye.
txtId.Text=ds.Tables[0].Rows[0][0].ToString();
txtFname.Text=ds.Tables[0].Rows[0][1].ToString();
txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();
txtemail.Text=ds.Tables[0].Rows[0][3].ToString();
业务访问层 -
这是业务层的功能,它接受来自应用层的数据并将其传递给数据层。
业务逻辑充当客户端层和数据访问层之间的接口
所有业务逻辑 - 如数据验证,计算,数据插入/修改都是在业务逻- 辑层下编写的。
它使客户端和数据层之间的通信更快捷,更容易
定义完成任务所需的正确工作流活动。
// this is the function of the business layer which accepts the data from the //application layer and passes it to the data layer. public class clsStudentInfo { public DataSet GetAllStudentBsIDWise(clsStudent obj) { DataSet ds=new DataSet(); ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function return ds; } }
数据访问层
这是数据层功能,它从业务层接收数据并对数据库执行必要的操作。
// this is the datalayer function which is receiving the data from the business
//layer and performing the required operation into the database
public class clsStudentData // Data layer class
{
// object of property layer class
public DataSet getdata_dtIDUise(clsStudent obj)
{
DataSet ds;
string sql;
sql="select * from student where Studentld=" +obj.id+ "order by Studentld;
ds=new DataSet();
//this is the datalayer function which accepts the sql query and performs the
//corresponding operation
ds=objdt.ExecuteSql(sql);
return ds;
}
}
单层或单层架构:
它是最简单的一个,因为它等同于在个人计算机上运行应用程序。 运行应用程序所需的所有组件都在单个应用程序或服务器上。
表示层,业务逻辑层和数据层都位于一台机器上。
好处
缺点
考虑到软件专业人员必须完全控制架构的所有层,有关n层架构的提示如下
https://www.softwaretestinghelp.com/introduction-to-performance-testing- loadrunner-training-tutorial-part-1/
上一篇:Uber SRE 实践:运维大型
下一篇:umich cv-3-2