【前言】
软件工程是研究软件开发模型、软件开发方法、软件支持过程和软件管理过程的一门学科,主要在视频中通过讲解来理解各知识点的作用!
【一】软件工程简述
软件工程的发展与历史:20世纪60年代中期到70年代中期出现维护成本增大问题,导致“软件危机”,从而引出软件工程。软件工程的生命周期一般为五个阶段:需求捕获、系统分析与设计、系统实现、测试维护。
“建模”是开发系统前的必要工作,就像盖房子一样,如果你想给小狗盖一个窝,你手头上有一堆木材、一把锤子、一些钉子,你可能只需要稍微计划一下,用几个小时就做好了,而且稍微有点差错也不会影响使用。但是如果你要盖一座大楼呢,单单的计划就不会奏效了,这是你就会需要用模型来体现建筑的一些需求。所以软件工程中的建模是非常重要的,一般建模的目标是为了便于开发人员展现系统,允许开发人员制定系统结构或行为,提供指导开发人员构造系统的模板,记录开发人员的决策等。并且建模时要遵循四大原则:选择建立什么样的模型对如何发现和解决问题具有重要影响、每个模型可以有多种不同的表达方式、最好的模型总是能够切合实际、孤立的模型是不完整的。
软件工程
【二】软件工程视频总结
视频主要讲解了软件开发和软件工程的管理这两方面的内容。其中,软件开发按照软件工程开发的生命周期,主要有六大部分:可行性分析、需求分析、软件设计(概要设计,详细设计)、编码、测试、运行维护。
<产生的文档>
1、可行性研究报告
由项目组长编写,给项目经理等上级看,其中包括经济,技术,社会因素等可行性分析,是否具备开发的条件。
2、项目开发计划
由项目组长编写,给开发小组,项目经理,上级和客户看
3、软件需求说明书
给开发人员和用户看。
4、概要设计说明书
给开发人员。项目经理,验收维护人员,客户看
5、详细设计说明书
给开发人员,项目经理,验收维护人员。
6、数据库设计说明书
给开发人员看
7、测试计划
给测试人员和客户看
8、测试分析报告
给软件开发者看
9、用户手册
给用户看
【三】组织结构
(1)软件需求
软件需求描述解决现实世界某个问题的软件产品,及对软件产品的约束。软件需求涉及需求抽取、需求分析、建立需求规格说明和确认,涉及建模、软件开发的技术、经济、时间可行性分析。软件需求直接影响软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程和软件质量等。
(2)软件设计
设计是软件工程最核心的内容。设计既是"过程",也是这个过程的"结果"。软件设计由软件体系结构设计、软件详细设计两种活动组成。它涉及软件体系结构、构件、接口、以及系统或构件的其它特征,还涉及软件设计质量分析和评估、软件设计的符号、软件设计策略和方法等。
(3)软件构造
通过编码、单元测试、集成测试、调试、确认这些活动,生成可用的、有意义的软件。软件构造除要求符合设计功能外,还要求控制和降低程序复杂性、预计变更、进行程序验证和制定软件构造标准。软件构造与软件配置管理、工具和方法、软件质量密切相关。
(4)软件测试
测试是软件生存周期的重要部分,涉及测试的标准、测试技术、测试度量和测试过程。测试不再是编码完成后才开始的活动,测试的目的是标识缺陷和问题,改善产品质量。软件测试应该围绕整个开发和维护过程。测试在需求阶段就应该开始,测试计划和规程必须系统,并随着开发的进展不断求精。正确的软件工程质量观是预防,避免缺陷和问题比改正好。代码生成前的主要测试手段是静态技术(检查),代码生成后采用动态技术(执行代码)。测试的重点是动态技术,从程序无限的执行域中选择一个有限的测试用例集,动态地验证程序是否达到预期行为。
(5)软件维护
软件产品交付后,需要改正软件的缺陷、提高软件性能或其他属性、使软件产品适应新的环境。软件维护是软件进化的继续。软件维护要支持系统快速地、便捷地满足新的需求。基于服务的软件维护越来越受到重视。软件维护是软件生存周期的组成部分。然而,历史上维护从未受到重视。情况有了改变,软件组织力图使软件运营时间更长,软件维护成为令人关注的焦点。
(6)软件配置管理
为了系统的控制配置变更,维护整个系统生命周期中配置的一致性和可追踪性,必须按时间管理软件的不同配置,包括配置管理过程的管理、软件配置鉴别、配置管理控制、配置管理状态记录、配置管理审计、软件发布和交付管理等。
(7)软件工程管理
运用管理活动,如计划、协调、度量、监控、控制和报告,确保软件开发和维护是系统的、规范的、可度量的。它涉及基础设施管理;项目管理;度量和控制计划三个层次。度量是软件管理决策的基础。近年来软件度量的标准、测度、方法、规范发展较快。
(8)软件工程过程
管理软件工程过程的目的是,实现一个新的或者更好的过程。软件工程过程关注软件过程的定义、实现、评估、测量、管理、变更、改进,以及过程和产品的度量。软件工程过程分为,①围绕软件生存周期过程的技术和管理活动,即需求获取、软件开发、维护和退役的各种活动。②对软件生存周期的定义、实现、评估、度量、管理、变更和改进。
(9)软件工程工具和方法
软件开发工具是以计算机为基础的,用于辅助软件生存周期过程。通常一个QMS的过程方法的实施,工具是为特定的软件工程方法设计的,以减少手工操作的负担、使软件工程更加系统化。软件工具的种类很多,从支持个人到整个生存周期。软件工具分为:需求工具、设计工具、构造工具、测试工具、维护工具、配置管理工具、工程管理工具、工程过程工具、软件质量工具等。
软件工程方法支持软件工程活动,使软件开发更加系统,并能获得成功。软件开发方法不断发展。当前,软件工程方法分为:①启发式方法,包括结构化方法、面向数据方法、面向对象方法和特定域方法;②基于数学的形式化方法;③用软件工程多种途径实现的原型方法,原型方法帮助确定软件需求、软件体系结构,用户界面等。
(10)软件质量
软件质量贯穿整个软件生存周期,涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。
【四】思维导图
【小结】学习是一个反复的过程,学过去了不代表会了,会了不代表你掌握了,所以要重复学习,反复钻研!总结博客是复习的方法之一,希望本文能给大家有所帮助!