软件生存周期?
从软件开始立项起,到废弃不用止,称这一周期为软件的生命周期 life cycle.
软件生命周期一般被划分为:计划、开发、运行 3 个时期。
软件生存周期的主要活动?
1、需求分析:弄清用户需要用计算机来解决什么问题。
2、软件分析:在系统需求模基础上,从工发人员的视角对软件的需求模型进行分析,那间与需求模型一致的、与实现无关的软件分析模型,它既是对软件系统逻辑模型的描述,也是下一步进行软件设计的依据。
3、软件设计:将软件分析模型转变为考虑具体实现技术和平台的软件设计模型。一般又可细分为 a.总体设计(概要设计)b.详细设计。其中总体设计包括确定软件的总体结构和其他全局性的设计原则等。详细设计是确定软件的每一个部件的数据结构和操作。
4、编码:按照选定的程序设计语言和可得利用软件构件包,把设计文档翻译为源程序。(与前两个阶段相比难度较小,一般程序员即可担任)
5、软件测试:测试是为了提高软件质量的重要手段。按照不同的目的,测试可细分为多个 层次。针对模块/对象的单元测试编码是同时进行的,还要执行集成测试、确认测试(包括α测试与β测试)、系统测试等步骤。软件测试通常要软件测试师来担任,工作在编写”测试报告“,包括测试计划、测试用例、测试结果等内容。
6、运行维护:软件维护,使软件在整个生命周期内都能满足用户的需求,并延长其使用寿命。
软件生命周期划分几个阶段?
软件生命周期可划分为:系统需求、软件需求、概要设计、详细设计、编码纠错、测试和预运行、运行维护等7个阶段。
软件过程是什么?软件开发模型是什么?
广义地说,人们随时间的流逝而进行的各种活动均可称为过程。特定地说,软件过程可理解为围 绕发所进行的一系列活动。在早些时候,人们常常把软件过程称为”软件开发模型“。
传统的软件过程(线性)有哪些?
1、瀑布模型:基于软件生存周期的线性开发模型。它的各个阶段和软件生命周期基本一致,各阶段之间还有顺序性、依赖性。顺序性:必须要前一个阶段完成之后,后一个阶段才能开始。依赖性:前一个阶段的输出文档是后一个阶段的输入文档。
2、快速原型模型:先建立一个能够反映用户主要需求的砶,让用户实际看一下未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进;然后将原型反复改进,直至建立完全符合用户要求的新系统。
软件演化模型(非线性)?
1、增量模型(渐增):可看成瀑布模型与原型模型的结合。一次开发一个软件的一个增量部分,每一个增量部分可以用瀑布模型也可以用原型模型开发。如:一个文字处理软件,第一次可能只做基本的文件管理与文档编辑功能,第二次可以做更完善的文档编辑功能和生成功能,第三次可以完成拼写检查与方法检查等。
2、螺旋模型(迭代):目前最常用的,最合适大型软件的开发。结合了瀑布模型与快速原型模型基础上演变而成。周而复始地进行计划、风险分析、建立原型、用户评审活动,一步步确定最终原型。
3、构件集成模型:以上讲的四个模型可用面向对象开发模型,也可用面向过程开发模型,但这里的构件集成模型只能用面向对象的软件开发。构件就是一人类的实现,它可以实例化来供程序系统所用的部件。构件集成模型就是利用预先封装好的构件来构造应用软件系统的过程。
形式化方法模型?
1、转换模型:将形式化软件开发和程序自动生成技术相结合的一种发模型。它采用严格的数学方法来表示软件需求规格说明书,然后进行一系列自动或半自动的程序变换,最终将需求规格说明书转换为计算机系统能够接受的目标程序系统。(1、用一种形式语言生成需求规格说明书;2、从用户需求到目标系统的实现与程序转换3、测试)
2、净室模型:是一种形式化的增量开发模型。其基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷工”洁净“的状态下实现软件的制作。
统一过程和敏捷过程?
统一过程:描述软件开发中各个环节应该做什么、怎么做、什么时候做以及为什么要做,描述了一组以某种顺序完成的活动。其结果是一组有关系统的文档,例如模型和其他一些描述,以及对最初问题的解决方案等。
敏捷过程:一种以人为核心以迭代方式秩序渐进开发的方法,其软件开发的过程称为“敏捷过程”。在这一过程中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大的项目分为多个相互联系的但也可以独立运行的小项目,并分别完成,在此过程中软件一直处于可用状态。
软件可行性研究?
可行性研究:目的是弄清待开发的项目是不是可能实现和值得进行,通常由系统分析员完成,并需写出可行性论证报告。可行性论证其实是在高层次上进行的一次大大简化了需求分析与设计。但它的目的不是去解决用户提出的问题,公是确定这项开发是否值得进行,分析它存在哪些风险。换句话说,在投入大量资金前研究成功的可能性,减小可能出现的风险。
可行性研究的内容:经济可行性、技术可行性、运行可行性、法律可行性。
可行性研究的步骤:从理解系统所需解决的问题的范围和目标开始,1、调查研究当前系统、2、导出新系统的解决方案3、提出推荐方案4、编写可行性报告
软件风险分析:尽可能量化不确定性的程度及每个风险导致的损失程度,为软件开发的实施计划提供参考。
项目实施计划:制定软件计划是计划时期的最后一项工作,在软件已完成可行性分析、用户确定进行开发后进行。针对不同的工作目标,软件计划可分为以下7种主要类型:1、项目实施计划、2、质量保证计划3、软件测试计划4、文档编制计划5、用户培训计划6、综合支持计划7软件分发计划。项目实施计划是一种管理文档,供软件开发单位使用。