软件工程基础知识
一、概述
软件工程是指应用计算机科学技术、数学及管理科学等原来,以工程化的原则和方法来解决软件问题的工程,其目的的提高软件生产率,提高软件质量,降低软件成本。软件工程涉及软件开发、维护、管理等多方面的原来、方法、工具和环境。
软件工程学分为可分为软件开发技术和软件工程管理技术。软件开发技术包含软件开发方法学、软件工具、软件工程环境。软件工程管理包含软件工程管理学、软件经济学。
二、计算机软件分类
计算机软件是指计算机系统中的程序和文档。程序是计算任务的处理对象和处理规则的描述。文档是为例便于了解程序的阐述性资料。
按照软件的应用领域,可将计算机软件分为十大类:
1.系统软件:系统软件是指一整套服务于其他程序的程序
2.应用软件:应用软件是指解决特定业务需要的独立应用程序。
3.工程/科学软件:这类软件通常带有"数值计算"的软饭特征。涵盖了广泛的应用领域,从天文学到火山学,从自动应力分析到航天飞机轨道动力学,从分子生物学到自动制造业。
4.嵌入式软件:嵌入式软件存在于某个产品或系统中,可实现和控制面向最终使用者和系统本身的特性和功能。
5.产品线软件:产品线软件关注有限的特定专业市场(如库存控制产品)或大众消费品市场(例如,文字处理、多媒体、娱乐、数据库管理等)
6.Web应用:web应用(WebApp)是一类以网络为中心的软件,其概念涵盖了宽泛的应用程序产品。
7.人工智能软件:人工智能软件利用非数值算法解决计算和直接分析无法解决的复杂问题,这个领域包括机器人、专家系统、模式识别、人工神经网络、定了证明和博弈。
8.开放计算:无线网络的快速发展将促成正在的普适计算、分布式计算的实现。软件工程师所面临的挑战是如何开发系统和应用软件,以使移动设备、个人电脑和企业应用可以通过大量网络设备进行通信。
9.网络资源:现在,万维网已经快速发展为一个计算引擎和内容提供平台。软件工程师面临的新任务是构建一个简单而智能的应用程序,为全世界的最终用户市场提供服务。
10.开源软件:开源软件是指开发源代码的应用程序,使用很多人能够为软件开发做贡献,这种方式正在逐步成为一种趋势。
三、软件生成周期
与其他事物一样,一个软件产品或软件系统也要经理孕育、诞生、成长、成熟、衰亡的许多阶段,一般称为软件生命周期。
软件生命周期可分为:
1.可行性分析与软件开发计划:
该阶段主要确定软件开发目标及其可行性。必须要回答的问题是:要解决什么问题?该问题有可行的解决办法吗?若有解决的办法,则需要多少费用?需要多少资源?需要多少时间?要回答这些问题,就要进行问题定义、可行性分析、制定项目开发计划。
该阶段需要产生的主要文档有可行性分析报告和项目开发计划
2.需求分析
需求分析阶段的任务不是具体解决问题,而是准确的确定软件系统必须要做什么,确定软件系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型。该阶段的参加人员有用户、项目负责人和系统分析师。该阶段的主要文档有软件需求说明书
3.概要设计
概要设计阶段是根据需求说明书的内容,设计软件的结构,明确软件由哪些模块组成,模块的层次结构是怎样的,调用关系是怎样的,每个模块的功能是什么。同时设计该项目的总体数据结构和数据库结构。
该阶段主要文档有概要设计说明书。
4.详细设计
该阶段主要任务是对每个模块完成的功能进行具体的描述,把功能描述转变成精确的、结构化的过程描述。该阶段的主要文档有详细设计文档。
5.编码
编码阶段的任务就是把每个模块的控制结构转换成计算机可接受的程序代码,通过某种特定的程序语言表示的源程序清单
6.测试
测试是保证软件质量的重要手段,主要方法是在设计的测试用例的基础上检查软件的各个组成部分。该阶段产生的主要文档有软件测试计划、测试用例和软件测试报告。
7.维护
软件维护是软件生命周期中时间最长的阶段。已交付投入使用的软件即进入维护阶段,在软件运行的过程中可能由于各方面的原因需要对它进行修改,以保持软件持续可运行。
四、软件过程
软件成熟度模型CMM
CMM将软件过程改进分为5个成熟度级别:
1.初始级:特点是杂乱无章,没有明确定义的步骤,项目完成完全依赖个人的努力和英雄式人物的作用。
2.可重复级:建立基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。
3.已定义级:软件过程已经有文档化、标准化并综合成整个软件开发组织的标准软件过程。
4.已管理级:指定软件过程和产品质量的度量标准。软件过程的产品质量开发组织的成员所理解和控制。
5.优化级:加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈过程下能持续不断的改进。
能力成熟度模型集成CMMI是若干过程模型的综合和改进,提供了两种表示方法:阶段式模型和连续式模型
阶段式模型:1.初始化:过程不可预测缺乏控制
2.已管理的:过程为项目服务
3.已定义:过程为组织服务
4.定量管理:过程已度量和控制
5.优化的:集中于过程改进
连续式模型:
1.未完成的:过程域未执行
2.已执行的:其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标
3.已管理的:其共性目标集中于管理的过程的制度化。
4.已定义级:其共性目标集中于已定义的过程的制度化。
5.定量管理的:其共性目标集中于定量管理的过程的制度化。
6.优化的:使用量化手段改变和优化过程域。
五、软件过程模型
原文地址:https://blog.csdn.net/qq_38599266/article/details/143606388
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!