ToB企服应用市场:ToB评测及商务社交产业平台

标题: 软件工程快速入门(上) [打印本页]

作者: 万万哇    时间: 2023-5-19 20:06
标题: 软件工程快速入门(上)
1什么是SDLC?


软件开发生命周期(SDLCSoftware Development Lifecycle)是构建软件的系统过程,可确保构建软件的质量和正确性。 SDLC流程旨在生产满足客户期望的高质量软件。软件开发应在预定义的时间范围和成本内完成。
SDLC包含详细的计划,解释如何规划,构建和维护特定的软件。 SDLC生命周期的每个阶段都有自己的流程和可交付成果,可以进入下一阶段。
为什么选择SDLC?

这里是SDLC对于开发软件系统非常重要的主要原因。
SDLC阶段

整个SDLC流程分为以下几个阶段:

阶段1:需求收集和分析:

该要求是SDLC流程的第一阶段。它由高级团队成员根据业内所有利益相关者和领域专家的意见进行。在此阶段还要规划质量保证要求并识别所涉及的风险。
此阶段更清晰地描述了整个项目的范围以及触发项目的预期问题,机会和指令。
要求收集阶段需要团队获得详细和精确的要求。这有助于公司完成必要的时间表,以完成该系统的工作。
第2阶段:可行性研究:

完成需求分析阶段后,下一步是定义和记录软件需求。此过程在“软件需求规范”文档的帮助下进行,该文档也称为“SRS”文档。它包括在项目生命周期中应设计和开发的所有内容。
主要有五种可行性检查:
第3阶段:设计:

在第三阶段,系统和软件设计文档按照需求规范文档准备。这有助于定义整个系统架构。
该设计阶段作为模型下一阶段的输入。
在此阶段开发了两种设计文档:
高级设计(HLD)
详细设计(LLD)
阶段4:编码:

一旦系统设计阶段结束,下一阶段就是编码。在此阶段,开发人员通过使用所选编程语言编写代码来开始构建整个系统。在编码阶段,任务分为单元或模块,并分配给各种开发人员。这是软件开发生命周期过程中最长的阶段。
在此阶段,开发人员需要遵循某些预定义的编码指南。他们还需要使用编译器,解释器,调试器等编程工具来生成和实现代码。
第5阶段:测试:

软件完成后,将其部署在测试环境中。测试团队开始测试整个系统的功能。这样做是为了验证整个应用程序是否符合客户要求。
在此阶段,QA和测试团队可能会发现一些与开发人员沟通的错误/缺陷。开发团队修复了该错误并将其发送回QA进行重新测试。此过程一直持续到软件无错误,稳定并根据该系统的业务需求工作。
阶段6:安装/部署:

一旦软件测试阶段结束并且系统中没有任何错误或错误,则开始最终部署过程。根据项目经理提供的反馈,最终软件将被发布并检查是否存在部署问题。
阶段7:维护:

部署系统后,客户开始使用已开发的系统,发生以下3项活动
SDLC阶段的主要重点是确保继续满足需求,并确保系统继续按照第一阶段提到的规范执行。
参考资料

流行的SDLC模型

这里是SDLC生命周期的一些最重要的阶段:
瀑布是一种广泛接受的SDLC模型。在这种方法中,软件开发的整个过程分为不同的阶段。在该SDLC模型中,一个阶段的结果充当下一阶段的输入。
该SDLC模型是文档密集型的,早期阶段记录了后续阶段需要执行的操作。
增量模型不是单独的模型。它本质上是一系列瀑布循环。这些要求在项目开始时分为几组。对于每个组,遵循SDLC模型来开发软件。重复SDLC过程,每个版本都添加更多功能,直到满足所有要求。在此方法中,每个循环都充当先前软件版本的维护阶段。对增量模型的修改允许开发周期重叠。之后的循环可以在前一循环完成之前开始。
在这种类型的SDLC模型测试和开发中,阶段是并行计划的。因此,侧面有验证阶段,另一侧有验证阶段。 V-Model通过编码阶段加入。
敏捷方法是一种在任何项目的SDLC过程中促进开发和测试的持续交互的实践。在Agile方法中,整个项目分为小型增量构建。所有这些构建都是在迭代中提供的,每次迭代持续一到三周。
螺旋模型是风险驱动的过程模型。此SDLC模型可帮助团队采用一个或多个流程模型的元素,如瀑布,增量,瀑布等。
该模型采用了原型模型和瀑布模型的最佳特征。螺旋方法是设计和开发活动中快速原型设计和并发性的结合。
Big bang模型专注于软件开发和编码中的所有类型的资源,没有或很少计划。这些要求在它们到来时就被理解和实施。
此模型最适合与较小规模开发团队合作的小型项目。它对学术软件开发项目也很有用。这是一个理想的模型,其中要求是未知的或未给出最终发布日期。
小结

结论
2瀑布模型

什么是瀑布模型?

瀑布模型是一种将软件开发划分为不同阶段的顺序模型。 每个阶段都设计用于在SDLC阶段执行特定活动。 它由Winston Royce于1970年推出。

软件工程中瀑布模型的不同阶段

阶段活动需求收集阶段从客户收集要开发的软件系统的详细要求设计阶段规划编程语言、数据库或者项目的其他高级技术细节编码在设计阶段之后,它是建立阶段,这只是编码软件测试阶段测试软件以验证它是否按照客户端提供的规范构建。部署阶段在相应的环境中部署应用程序维护阶段可能需要根据客户要求更改代码何时使用SDLC瀑布模型

可以使用瀑布模型
瀑布模型的利弊

好处缺点在下一个开发阶段之前,必须完成上一阶段只能在阶段期间修复错误适用于需求定义明确的小型项目对于需求经常变化的复杂项目,这是不可取的应该在完成每个阶段之前执行质量保证测试(验证和验证)测试介入很晚精心编写的文档文档占用了开发人员和测试人员的大量时间项目完全依赖项目团队,客户干预最少客户的宝贵反馈不能包含在正在进行的开发阶段软件的任何变化都是在开发过程中进行的完成的软件中出现的微小变化或错误可能会导致很多问题3增量模型

什么是增量模型?

增量模型是一个软件开发过程,其中需求被分解为软件开发周期的多个独立模块。从分析设计,实施,测试/验证,维护开始逐步进行增量开发。

每次迭代都要经过需求,设计,编码和测试阶段。并且系统的每个后续版本都会将功能添加到先前版本,直到实现了所有设计的功能。

系统在交付第一个增量时投入生产。第一个增量通常是解决基本要求的核心产品,并在下一个增量中添加补充功能。一旦客户分析了核心产品,就会有下一个增量的计划开发。
增量模块的特征包括

需求分析:收集软件的要求和规格
设计: 在此阶段设计了一些高端功能
编码:在此阶段完成软件编码
测试:部署系统后,它将进入测试阶段
何时使用增量模型?

优点:
缺点:
4螺旋模型

什么是螺旋模型?

螺旋模型是瀑布模型和迭代模型的组合。螺旋模型中的每个阶段都以设计目标开始,最后由客户审查进度。 Barry Boehm在1986年的论文中首次提到螺旋模型。
Spiral-SDLC模型的开发团队从一小部分需求开始,并针对这些需求进行每个开发阶段。软件工程团队在每个不断增加的螺旋中增加了额外需求的功能,直到应用程序为生产阶段做好准备。

螺旋模型阶段

它包括估算迭代的成本,进度和资源。它还涉及了解系统分析员与客户之间持续通信的系统要求
什么时候使用螺旋方法?

螺旋模型的优缺点

好处
缺点
5RAD快速应用程序开发模型

什么是RAD(快速应用程序开发)模型?

RAD或Rapid Application Development流程采用瀑布模型;它的目标是在短时间内开发软件。
SDLC RAD模型具有以下阶段

它侧重于信息的输入输出源和目的地。它强调以小块形式提供项目;较大的项目分为一系列较小的项目。 RAD模型的主要特点是它专注于模板,工具,流程和代码的重用。

RAD模型的阶段

何时使用RAD Methodology?

SDLC RAD模型的优缺点

好处
缺点
模型瀑布增量模型螺旋模型Rad模型早期规划是是是没有回到早期阶段没有是是是处理大型项目不适当不适当适当不适当详细文档必要会,但不多是有限成本低低昂贵低需求规格开始开始开始时间盒发布灵活变革难简单简单简单用户参与只在开始时中间高只在一开始维护性最小促进可维护性典型易于维护持续时间长很长长短风险高低中到高风险低框架类型线性线性+迭代线性+迭代线性测试编码阶段完成后每次迭代后在工程阶段结束时编码完成后迭代没有是(因为并行开发)没有是可重用性最少可能在某种程度上在某种程度上是大体时间很长长长短工作软件可用性在生命周期结束时在每次迭代结束时在每次迭代结束时在生命周期结束时目的高保证快速发展高保证快速发展团队规模大团队不是大团队大团队小团队客户控制非常低是是是6原型模型

什么是软件原型模型?

原型方法被定义为软件开发模型,其中构建原型,测试,然后在需要时重新加工,直到实现可接受的原型。 它还创建了生成最终系统的基础。
软件原型模型在项目要求未知的情况下效果最佳。 它是一种在开发人员和客户端之间进行的迭代,试验和错误方法。
原型模型阶段


原型模型遵循以下六个SDLC阶段:
原型模型从需求分析开始。 在此阶段,详细定义了系统的要求。 在此过程中,对系统的用户进行访谈,以了解他们对系统的期望。
第二阶段是初步设计或快速设计。 在这个阶段,创建了一个简单的系统设计。 但是,它不是一个完整的设计。 它向用户简要介绍了系统。 快速设计有助于开发原型。
在此阶段,基于从快速设计收集的信息设计实际原型。 它是所需系统的小型工作模型。
在此阶段,建议的系统将提交给客户进行初步评估。 它有助于找出工作模型的优缺点。 评论和建议从客户收集并提供给开发人员。
如果用户对当前原型不满意,您需要根据用户的反馈和建议优化原型。
在满足用户指定的所有要求之前,此阶段不会结束。 一旦用户对开发的原型感到满意,就会根据批准的最终原型开发最终系统。
一旦最终系统基于最终原型开发,它就会经过全面测试并部署到生产中。 该系统进行日常维护,以最大限度地减少停机时间并防止大规模故障。
原型模型的类型

四种原型模型是:

快速一次性是基于初步要求。 它很快就被开发出来以显示需求在视觉上的外观。 客户的反馈有助于推动对需求的更改,并再次创建原型,直到需求基线为止。
在这种方法中,开发的原型将被丢弃,并且不会成为最终接受的原型的一部分。 该技术对于探索想法和获得客户需求的即时反馈非常有用。
在这里,开发的原型根据客户的反馈逐步完善,直到最终被接受为止。 它可以帮助您节省时间和精力。 这是因为从头开始为过程的每次互动开发原型有时会非常令人沮丧。
该模型对于使用未被充分理解的新技术的项目很有帮助。 它还用于复杂项目,其中必须检查每个功能一次。 当要求不稳定或在初始阶段不清楚时,这是有帮助的。
在增量型原型设计中,最终产品被抽取为不同的小型原型并单独开发。 最终,不同的原型被合并为一个产品。 此方法有助于缩短用户与应用程序开发团队之间的反馈时间。
极端原型方法主要用于Web开发。 它由三个连续阶段组成。
原型设计的最佳实践

在这里,您需要在原型制作过程中注意以下几点:
原型模型的优点

在这里,使用Prototyping模型是重要的优点/好处:
原型模型的缺点

这里是原型设计模型的重要缺点:
摘要

能力成熟度模型CMM

什么是CMM?

能力成熟度模型(Capability Maturity Model)用作衡量组织软件过程成熟度的基准。
CMM是在80年代后期在软件工程研究所开发的。 它是由美国空军资助的一项研究的结果,作为评估分包商工作的一种方式。 后来基于1991年创建的CMM-SW模型来评估软件开发的成熟度,其他多个模型与CMM-I集成在一起

什么是能力成熟度模型(CMM)级别?


不同级别的CMM会发生什么?

水平活动优点1级初始在第1级,该过程通常是混乱和临时的;能力的特征是基于个人而非组织; 未衡量进展;开发的产品通常是计划和超出预算;计划,成本,功能和质量目标的差异很大没有2级管理需求管理; 估算项目参数,如成本,进度和功能;衡量实际进度;制定计划和流程; 定义了软件项目标准;识别和控制产品,问题报告的变化等;项目之间的流程可能不同流程变得更容易理解;管理人员和团队成员花费更少的时间来解释事情的完成方式以及执行事务的时间;项目得到更好的估计,更好的计划和更灵活;质量已融入项目中;成本可能最初很高,但加班时间会下降;更多文书工作和文件Level-3定义澄清客户要求;解决设计要求,制定实施流程;确保产品符合要求和预期用途;系统地分析决策'纠正和控制潜在的问题流程改进成为标准;解决方案从“编码”发展到“工程化”;在整个项目工作中出现质量门,整个团队参与该过程;风险得到缓解,不会让团队感到意外4级定量管理统计管理项目的流程和子流程;了解流程绩效,定量管理组织的项目;优化整个组织的流程绩效;促进组织中的定量项目管理。5级优化及早发现并消除缺陷的原因;确定并部署新工具和流程改进,以满足需求和业务目标促进组织创新和部署;推动因果分析和解决方案下图给出了在不同CMM级别发生的情况的图示

实施CMM需要多长时间?

CMM是维护任何软件开发公司产品质量的最理想的流程,但其实施所需的时间比预期的要长。
CMM的内部结构

CMM中的每个级别都定义为关键过程域或KPA (key process area) ,级别1除外。 每个KPA都定义了一组相关活动,这些活动在共同执行时实现了一组对提高软件能力至关重要的目标
对于不同的CMM级别,有一组KPA,例如对于CMM模型-2,KPA是
同样,对于其他CMM模型,您有特定的KPA。 要了解KPA的实施是否有效,持久和可重复,它将根据以下基础进行绘图
CMM模型的局限性

为何使用CMM?

今天,CMM充当软件行业的“批准印章”。 它有助于以各种方式提高软件质量。
摘要
CMM于80年代末首次在美国空军引入,用于评估分包商的工作。 后来,通过改进版本,它被实现为跟踪软件开发系统的质量。
整个CMM级别分为五个级别。
8多层架构

什么是N-Tier?

N层应用程序是分布在分布式网络中的三个或更多个单独计算机之间的程序。
最常见的n层形式是3层应用程序,它分为三类。
此体系结构模型为软件开发人员提供了最大灵活性的可重用应用程序/系统。
N层中,“N”指的是正在使用的层数或层数,如 - 2层,3层或4层等 。 它也被称为“ 多层 架构”
n层架构是经过行业验证的软件架构模型。 它通过提供可伸缩性,安全性,容错性,可重用性和可维护性的解决方案,适合支持企业级客户端 - 服务器应用程序。 它可以帮助开发人员创建灵活且可重用的应用程序。
N层架构

此处描述了n层系统的图形表示 - 表示层,应用程序层和数据库层。

根据要求,这三层可以进一步细分为不同的子层。
一些应用这种架构的热门网站是
要记住一些常用术语,以便更清楚地理解概念。
N层架构的类型

有不同类型的N层体系结构,如3层体系结构,2层体系结构和1层体系结构。
首先,我们将看到3层架构,这非常重要。
3层架构

通过查看下图,您可以轻松识别3层架构有三个不同的层。

在这里,我们采用了一个简单的学生形式示例来理解所有这三个层次。 它包含有关学生的信息 - 姓名,地址,电子邮件和图片。
用户界面层或表示层
  1. private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
  2. {
  3. // Object of the Property layer
  4. clsStudent objproperty=new clsStudent();
  5. // Object of the business layer
  6. clsStudentInfo objbs=new clsStudentInfo();
  7. // Object of the dataset in which we receive the data sent by the business layer
  8. DataSet ds=new DataSet();
  9. // here we are placing the value in the property using the object of the
  10. //property layer
  11. objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());
  12. // In this following code we are calling a function from the business layer and
  13. // passing the object of the property layer which will carry the ID till the database.
  14. ds=objbs.GetAllStudentBsIDWise(objproperty);
  15. // What ever the data has been returned by the above function into the dataset
  16. //is being populate through the presentation laye.
  17. txtId.Text=ds.Tables[0].Rows[0][0].ToString();
  18. txtFname.Text=ds.Tables[0].Rows[0][1].ToString();
  19. txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();
  20. txtemail.Text=ds.Tables[0].Rows[0][3].ToString();
复制代码
业务访问层 -
这是业务层的功能,它接受来自应用层的数据并将其传递给数据层。
  1. // this is the function of the business layer which accepts the data from the
  2. //application layer and passes it to the data layer.
  3. public class clsStudentInfo
  4. {
  5.         public DataSet GetAllStudentBsIDWise(clsStudent obj)
  6.         {
  7.          DataSet ds=new DataSet();
  8.          ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function
  9.          return ds;
  10.         }
  11. }
复制代码
数据访问层
这是数据层功能,它从业务层接收数据并对数据库执行必要的操作。
  1. // this is the datalayer function which is receiving the data from the business
  2. //layer and performing the required operation into the database
  3. public class clsStudentData // Data layer class
  4. {
  5.         // object of property layer class
  6.         public DataSet getdata_dtIDUise(clsStudent obj)
  7.         {
  8.          DataSet ds;
  9.          string sql;
  10.          sql="select * from student where Studentld=" +obj.id+ "order by Studentld;
  11.          ds=new DataSet();
  12.         //this is the datalayer function which accepts the sql query and performs the
  13.         //corresponding operation
  14.                 ds=objdt.ExecuteSql(sql);
  15.                 return ds;
  16.         }
  17. }
复制代码
单层或单层架构:
它是最简单的一个,因为它等同于在个人计算机上运行应用程序。 运行应用程序所需的所有组件都在单个应用程序或服务器上。
表示层,业务逻辑层和数据层都位于一台机器上。
多层体系结构的优缺点

好处
缺点
N层架构技巧与发展

考虑到软件专业人员必须完全控制架构的所有层,有关n层架构的提示如下
小结:

https://www.softwaretestinghelp.com/introduction-to-performance-testing-loadrunner-training-tutorial-part-1/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4