软件工程过程与生命周期模型概述

需积分: 0 0 下载量 77 浏览量 更新于2024-01-14 收藏 48KB DOCX 举报
软件工程是一门以工程化方法开发、维护和管理软件的学科,它涉及到软件开发的各个方面,包括需求分析、设计、编码、测试、部署和维护等。为了更好地组织和管理软件开发过程,软件工程提出了一系列的过程和模型。 在软件工程中,软件过程是指一组活动和任务的集合,用于将软件需求转化为最终的软件产品。软件过程包含了四种基本的过程活动:软件规格说明、软件开发、软件确认和软件演进。 在软件规格说明过程中,开发团队与客户进行沟通,明确软件需求和规格。开发团队通过分析用户需求,确定软件的功能、界面等规格说明。 在软件开发过程中,开发团队根据软件需求和规格说明进行系统设计、编码和测试等活动。开发团队将需求转化为可以运行的软件产品,并对其进行调试和测试。 在软件确认过程中,开发团队与客户一起对软件进行验证和确认,以确保软件符合用户的需求和规格说明。此过程是对软件进行最终的测试和修复bug的阶段。 在软件演进过程中,开发团队对已发布的软件进行维护和升级。此过程包括对软件的更新、bug修复和性能优化等活动,以确保软件能够持续满足用户的需求。 常用的软件生命周期模型有瀑布模型、演化模型、螺旋模型、增量模型和喷泉模型。每个模型都有自己的特点和适用场景。瀑布模型是最常见的一种模型,它以线性的方式进行软件开发,各个阶段有严格的先后顺序。演化模型和螺旋模型适用于大型和复杂的软件开发项目,通过迭代的方式来逐步完善软件。增量模型和喷泉模型则更加注重软件的功能和需求的快速交付。 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要表现为两个方面的问题,一是如何开发软件以满足不断增长、日趋复杂的需求;二是如何维护数量不断膨胀的软件产品。软件工程的出现解决了软件危机的问题,通过建立一个系统的软件开发过程,可以更好地管理和控制软件开发的各个阶段,以确保软件能够按照规定的时间、成本和质量要求交付。 总而言之,软件工程是一门综合性的学科,涵盖了软件开发的方方面面。软件工程过程定义了一组彼此相关的活动,用于将软件需求转化为最终的软件产品。常用的软件生命周期模型有瀑布模型、演化模型、螺旋模型、增量模型和喷泉模型。软件危机是软件开发和维护过程中遇到的严重问题,而软件工程的出现解决了这些问题。通过合理的软件工程过程和模型,可以更好地组织和管理软件开发过程,提高软件开发的效率和质量。
2012-01-03 上传
简答题: 复习题一 软件生存周期模型的概念理解,常见的模型有哪些?请简单介绍?各有什么特点? 答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。 典型的生命周期模型有: 1.瀑布模型;2.快速原型;3.增量模型;4.螺旋模型 5.喷泉模型 (这5个都是书上详细介绍的); 6.微软模型;7.统一过程;8.敏捷过程;9.阶段交付模型;10.延后实现的阶段交付模型 11.智能模型(大家只需选择前面5个作为重点哈) 瀑布模型 瀑布模型是将软件生存周期各个活动规定为自上向下,按照线性顺序连接的若干阶段的模型。该模型支持结构化的设计方法,但它是一种理想的线性开发模式,缺乏灵活性,无法解决软件需求不明确或不准确的问题。 特点:(1)阶段间具有顺序性和依赖性 (2)推迟实现的观点 (3)质量保证的观点 快速原型 快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。 增量模型增量模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发出来的。该模型有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。4.螺旋模型 螺旋模型是一种风险驱动的模型。螺旋模型适合于大型软件的开发,它吸收了软件工程“演化”的概念,包括需求定义、风险分析、工程实现及用户评估四个阶段,螺旋模型由上述四个阶段组成的迭代模型,迭代的结果必须尽快收敛到客户允许的或可接受的目标范围内5.喷泉模型 喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。6.基于知识的模型 基于知识的模型又称智能模型,它把瀑布模型和专家系统结合在一起。该模型在开发的各个阶段都利用相应的专家系统来帮助软件人员完成开发工作,使维护在系统需求说明阶段开始。该模型还处于研究实验阶段,还未达到实用阶段。6.变换模型 这是一种适合于形式化开发方法的模型。从软件需求形式化说明开始,经过一系列变换,最终得到系统的目标程序。 智能模型: 智能模型是基于知识的软件开发模型,它综合了上述若干模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用归约和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。 多态性的概念,怎样实现多态性? 答:多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。 静多态可以通过模板和函数重载来实现,动多态则是通过继承、虚函数(virtual)、指针来实现 什么是类聚性?内聚性有哪些类型?哪种内聚是最高程度的内聚? 答:内聚性指的是在一个子程序中,各种操作之间互相联系的紧密程度。 类聚性类型: 功能内聚 10分 顺序内聚 9分 通信内聚 7分 过程内聚 5分 时间内聚 3分 逻辑内聚 1分 偶然内聚 0分 由上可知:功能类聚是最高程度的类聚 以下是详解: 偶然内聚:指一个模块内的各处理元素之间没有任何联系。(公共汽车内的人群) 逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。(警察局里的警察) 时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。(交响乐团的演奏员) 通信内聚:指模块内所有处理元素都在同一个数据结构上的操作。或者指各处理使用相同的输入数据或者产生相同的输出数据。顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能的元素的输出就是下一功能元素的输入。(我们可以想像纺织厂中从纺纱到织布的各个操作形成的一个模块,就是一种顺序内聚) 功能内聚:这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可,模块已不可再