谈谈对软件工程的理解

在阅读了《软件工程实践这的研究方法》之后,对软件工程有了一定的了解和掌握。接下来,谈一谈我对软件工程的大致理解。
既然谈论软件工程那么肯定要知道他的定义是啥,我个人的理解,软件工程就是按照工程学的管理方式,有组织、有计划的,在一定的质量基础、时间限度和成本范围内,实现功能明确的软件系统。而且,软件工程在企业范围内运行,一定需要企业资源的支持,要与企业的经营、决策、管理体系联系在一起,才能够被踏踏实实的落实下来。
在软件工程中,软件团队是一个很重要的部分。个人技术固然很重要,但放在整个软件工程中也显得微不足道。接下来就是软件本身的开发,一个软件的诞生最先的就是需求分析,只有先把需求分析完成好后程序员才能去根据需求分析设计和实现代码。在软件的完成后则需要对其进行测试,对软件的质量有所保证,软件稳定之后才能发布。所以说软件工程专业是一门研宄用工程化方法构建和维护有效的、实用的和高质量的软件的学科。而且它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等各个方面。 在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。再者,在现在的各个行业中几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们在高效工作的同时,也提高了生活质量。在早期的软件工程,他的发展是理清软件工程过程的各种活动,提出软件生命周期的概念和软件开发的瀑布模型,制定软件生命周期中主要活动的质量标准。而现在不一样了,现今的软件工程专业涵盖了很多个知识域:软件工程过程:管理软件工程过程的目的是,实现一个新的或者更好的过程。软件工程过程关注软件过程的定义、实现、评估、測量、管理、变更、改进以及过程和产品的度量。软件工程过程分为,①围绕软件生存周期过程的技术和管理活动,即需求获取、软件开发、维护和退役的各种活动。②对软件生存周期的定义、实现、评估、度量、管理、变更和改进软件需求(建模过程):软件需求描述解决现实世界某个问题的软件产品,及对软件产品 的约束。软件需求涉及需求抽取、需求分析、建立需求规格说明和确认,涉及建模、软件开发的技术、经济、时间可行性分析。软件需求直接影响软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程和软件质量等。软件设计(建模过程):设计是软件工程最核心的内容。设计既是“过程”,也是这个过程的“结果”。软件设计由软件体系结构设计、软件详细设计两种活动组 成。它涉及软件体系结构、构件、接口、以及系统或构件的其它特征,还涉及软件 设计质量分析和评估、软件设计的符号、软件设计策略和方法等。软件构造:通过编码、单元测试、集成测试、调试、确认这些活动,生成可 用的、有意义的软件。软件构造除要求符合设计功能外,还要求控制和降低程序复 杂性、预计变更、进行程序验证和制定软件构造标准。软件构造与软件配置管理、 工具和方法、软件质量密切相关。评审技术:在开发软件工程工作产品时可能会犯错误,这并不是羞耻的事—只要在产品交付最终用户之前,努力、很努力地发现并纠正错误即可。技术评审是在软件过程早期查错最有效的机制。人员:软件工程师和同事一起进行技术评审,也叫同行评审软件测试:测试是软件生存周期的重要部分,涉及测试的标准、测试技术测试度量和测试过程。测试不再是编码完成后才开始的活动,测试的目的是标识缺陷和问题,改善产品质量。软件测试应该国绕整个开发和维护过程。测试在需求阶段就应该开始,測试计划和规程必须系统,并随着开发的进展不断求精。正确的软件工程质量观是预防,避兔缺陷和问题比改正好。代码生成前的主要测试手段是静态技术(检查),代码生成后采用动态技术(执行代码)。测试的重点是动态技术,从程序无限的执行域中选择一个有限的测试用例集,动态地验证程序是否达到预期行为。软件工程管理:运用管理活动,如计划、协调、度量、监控、控制和报告,确保软件开发和维护是系统的、规范的、可度量的。它涉及基础设旌管理;项目管理度量和控制计划三个层次。度量是软件管理决策的基础。近年来软件度量的标准、测度、方法、规范发展较快软件工程工具和方法:软件开发工具是以计算机为基础的,用于辅助软件生存周期过程。通常,工具是为特定的软件工程方法设计的,以减少手工操作的负担、使软件工程更加系统化。软件工具的种类很多,从支持个人到整个生存周期。软件工具分为:需求工具、设计工具、构造工具、测试工具、维护工具、配置管理工具、工程管理工具、工程过程工具、软件质量工具等。软件工程方法支持软件工程活动,使软件开发更加系统,并能获得成功。软件开发方法不断发展。当前,软件工程方法分为:①启发式方法,包括结构化方法、面向数据方法、面向对象方法和特定域方法;②基于数学的形式化方法;③用软件工程多种途径实现的原型方法,原型方法帮助确定软件需求、软件体系结构,用户界面等。软件质量:软件质量贯穿整个软件生存周期,涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。软件配置管理:为了系统的控制配置变更,维护整个系统生命周期中配置的致性和可追踪性,必须按时间管理软件的不同配置,包括配置管理过程的管理、软件配置鉴别、配置管理控制、配置管理状态记录、配置管理审计、软件发布和交付管理等产品度量:产品度量关注的是软件工程工作产品具体的、可测量的属性,帮助软件工程师认识他们所开发的软件的设计和构造。对计算机软件开发而言,定性要素总是存在的。软件工程师需要客观标准以帮助指导数据、体系结构、界面和构件的设计。测试人员需要定量指标以帮助选择测试用例及其目标。产品度量为分析、设计、编码和测试能更客观地执行和更定量地评估提供基础。软件项目管理:在软件从初始的概念演化为可运行的实现的过程中,项目管理涉及对人员、过程和所发生事件的策划和监控。人员:在软件项目中,每个人或多或少都做着“管理”工作。但是,管理活动的范围各不相同。软件工程师管理他的日常活动,计划和监控技术任务。项目经理计划和监控软件工程师团队的工作。高级管理者协调业务和软件专业人员之间的关系。构造计算机软件是一项复杂的任务,尤其是当它涉及很多人员长期共同工作的时候。这就是为什么软件项目需要管理的原因。风险管理:很多问题都会困扰软件项目,风险分析和风险管理就是辅助软件团队理解和管理不确定事物的活动。风险是潜在的一它可能发生也可能不发生。但是,不管发生还是不发生,都应该去识别它,评估它发生的概率,估算它的影响,并制定它实际发生时的时应急计划。软件维护:软件产品交付后,需要改正软件的缺陷、提高软件性能或其他属性、使软件产品适应新的环境。软件维护是软件进化的继续。软件维护要支持系统快速地、便捷地满足新的需求。基于服务的软件维护越来越受到重视。软件维护是软件生存周期的组成部分。然而,历史上维护从未受到重视。情况有了改变,软件组织力图使软件运营时间更长,软件维护成为令人关注的焦点

你可能感兴趣的:(笔记)