什么是软件工程?

对软件工程的认识   首先作为软件工程专业的一名大三学生,两年半以来学了C#,js等语言。说实话,我认为我自己学的并不好。作为一名文科生相对于理科生来说逻辑思路要少差一些,当然,不管什么原因,都不能阻止后天勤奋使人变优秀。接下来简单说一下我通过两年多的学习和网上查阅的资料对软件工程的理解。      软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确... 阅读详情

什么是软件工程?

      从上世纪90年代初起,计算学科(Computing)的发展远远超越了计算机科学的边界,形成了计算机科学、计算机工程、软件工程、信息系统与信息技术等若干独立学科。计算机工程从电子工程学科中分离出来,旨在研究计算机硬件的相关工程问题,而软件工程从计算机科学中的一个学科方向发展成为与之并重的一门独立学科,重点研究如何以系统的、可控的、高效的方式开发和维护高质量软件的问题。

 

1.软件工程的定义

     软件工程学科诞生后,人们为软件工程给出了不同的定义,例如最早的定义是由F.L. Bauer给出的,即“软件工程是为了经济地获得能够在实际机器上高效运行的、可靠的软件而建立和应用一系列坚实的软件工程原则”。而美国梅隆卡耐基大学软件工程研究所(SEI)给出的定义则是软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题。但目前普遍使用的软件工程定义是由IEEE给出的,即软件工程是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护。

      软件工程概念实际存在两层含义,从狭义概念看,软件工程着重体现在软件过程中所采用的工程方法和管理体系,例如,引入成本核算、质量管理和项目管理等,即将软件产品开发看作是一项工程项目所需要的系统工程学和管理学。从广义概念看,软件工程涵盖了软件生命周期中所有的工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的全部内容,即完成一个软件产品所必备的思想、理论、方法、技术和工具。

 

2.软件工程的内涵

      软件工程学科包含为完成软件需求、设计、构建、测试和维护所需的知识、方法和工具。软件工程不局限在理论之上,更重要在实践上,能够帮助软件组织协调团队、运用有限的资源,遵守已定义的软件工程规范,通过一系列可复用的、有效的方法,在规定的时间内达到预先设定的目标。针对软件工程的实施,无论是采用什么样的方法和工具,先进的软件工程思想始终是最重要的。只有在正确的工程思想指导下,才能制定正确的技术路线,才能正确地运用方法和工具达到软件工程或项目管理的既定目标。

 

3.软件工程是一门交叉性学科

      软件工程是一门交叉性的工程学科,它是将计算机科学、数学、工程学和管理学等基本原理应用于软件的开发与维护中,其重点在于大型软件的分析与评价、规格说明、设计和演化,同时涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等。从这个意义上看,软件工程可以看作由下列3部分组成。

  • 计算机科学和数学用于构造软件的模型与算法;
  • 工程科学用于制定规范、设计范型、评估成本以及确定权衡等;
  • 管理科学用于计划、资源、质量、成本等管理。

      例如,计算机辅助软件工程(Computer Aided Software Engineering,CASE)是一组工具和方法的集合,可以辅助软件生命周期各阶段进行的软件开发活动。CASE吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。这个例子也体现了这一点——软件工程是学科交叉的、集成和综合的领域。


 

4.软件工程学科范围

      如果从知识领域看,软件工程学科是以软件方法和技术为核心,涉及计算机的硬件体系、系统基础平台等相关领域,同时还要涉及一些应用领域和通用的管理学科、组织行为学科。例如,通过应用领域的知识帮助我们理解用户的需求,从而可以根据需求来设计软件的功能。 在软件工程中必然要涉及组织中应用系统的部署和配置所面临的实际问题,同时又必须不断促进知识的更新和理论的创新。为了真正解决实际问题,需要在理论和应用上获得最佳平衡。


原文(什么是软件工程?)






软件工程知识总结 软件工程是指在系统化、结构化和量化的方法下,对软件的开发、运行、维护和管理进行全面研究的学科和技术。它涵盖了软件开发的整个生命周期,从需求分析到设计、编码、测试、部署和维护,旨在提高软件质量、提高开发效率,并管理软件开发过程中的风险。:确保软件能够满足用户需求和预期功能。:制定软件系统的结构和组件,确保系统的灵活性、可维护性和性能。:根据设计开发软件,并进行系统的功能测试和性能测试,确保软件的质量和稳定性。:将软件发布到生产环境中,并持续监测、更新和修复软件,以确保其正常运行。 阅读详情

相关推荐

《软件工程》— 实用软件工程——习题答案

实用软件工程——课后习题答案 软件工程(英语:Software Engineering[1])1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经...

69小石头的博客 1万+

什么是软件工程

目录 软件的定义 软件工程的定义 软件开发 软件开发的本质 软件工程框架 目标 正确性 可用性 开销合宜 活动 (1)需求 (2)设计 (3)实现 (4)确认 (5)支持活动 原则 软件的定义 定义:计算机系统中的程序机器文档 程序是计算任务的处理对象和处理规则的描述 文档是为了便于了解程序所需的阐明性资料 另一种表述:Computor programs and associated documentation. Software products may be

kku101xyz的博客 4850

【软件工程】软件工程课程复习笔记

Software is complex=事情由很多部分组成,能够互相关联在一起。(而complicated 模糊的,即便分析也分析不出来,不能解释。防止产生温水煮青蛙的问题:1.小问题尽量考虑清楚,从而不至于导致大的缺陷2.负面反馈是一种积累,刚开始看上去问题不大,到后面就会太严重以至于不能解决。

qq_43984062的博客 2438

【软件工程】什么是软件工程

软件工程的视频看了一半了,看的也是一头雾水,看视频的时候我就在想软件工程究竟是什么,它是干什么的,有什么用呢?如果这个不了解清楚,我感觉我视频看了也是白看。就按照我这不将就的小脾气,我就要整明白这是个什么东西。什么是软件工程?从上世纪90年代初起,计算学科(Computing)的发展远远超越了计算机科学的边界,形成了计算机科学、计算机工程、软件工程、信息系统与信息技术等若干独立学科。计算机工程从电子

Java is the best language~ 6726

软件工程1:软件工程概念

一、软件工程的定义 IEEE: ​ 软件工程是:将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件《计算机科学技术百科全书》:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成...

胖大xian 2125

软件工程专业

软件工程专业16340111 本人学院目录 简介 二级学科 课程 就业 简介 软件工程是将工程应用于软件的设计、开发、实施、测试和维护的一种系统化方法。 软件工程的典型形式定义是: 1.研究、设计、开发和测试操作系统级软件、编译器和网络分发软件,用于医疗、工业、军事、通信、航空航天、商业、科学和通用计算应用。 2.科学和技术知识、方法和经验的系统应用,设计、实施、测试和文档软

Lyrix的博客 2733

软件工程基本概念

文章目录一,软件工程基本概念软件分类软件危机软件工程软件生命周期需求分析需求规格说明书(SRS)二,结构化分析方法数据流图(DFD)三,结构化设计方法软件设计的划分软件设计基本原理软件模块独立性概要设计**详细设计**四,软件测试静态和动态测试白盒和黑盒测试软件测试步骤五,程序的调试 一,软件工程基本概念 软件:程序,设计,文档。 软件分类 系统软件:操作系统,编译程序,汇编程序,网络软件,数据库管理系统。 应用软件:事务处理软件,工程与科学技术软件,实时处理软件,人工智能软件。 支撑软件(工具软件):需求

qq_50465499的博客 1万+

《软件工程》第一章 软件工程学概述

1.什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要包含两方面:如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品。 典型表现:1)软件开发成本和进度估算常常很不准确。2)用户对软件功能难以满足。3)软件产品质量无法保证。4)软件产品难以维护。5)软件缺少文档资料。6)软件成本在计算机系统总成本所占比例不断提高。7)软件开发生产率的提高赶不上人们需求的增长。 产生软件危机有两个方面的原因:1)内部因素与软

halo109的博客 1335

软件工程 第一章 软件工程概述

软件工程总结:第一章 软件工程概述

qq_51247800的博客 2360

WorkBuddy任务对话上下文管理:Token、compact与上下文窗口实战指南

在大语言模型应用中,Token作为文本处理的最小单位,直接决定上下文窗口的消耗速度,而上下文窗口则限定了单次对话可承载的信息总量。当对话超出窗口限制时,compact压缩机制会触发有损摘要,导致关键约束丢失或工具调用结果被稀释。合理管理上下文不仅能提升多步骤任务的稳定性,还能显著降低Token成本与响应延迟。在文档处理、代码开发、多步自动化等场景中,通过主动压缩、状态外置、分段喂入等策略,可有效避免任务后期遗忘、版本混乱等问题。本文围绕WorkBuddy的上下文管理机制,从Token与compact的底层原

weixin_29055699的博客 396

STM32低功耗模式下ADC采样抖动的5个隐藏陷阱及解决方案(实测避坑)

本文深入探讨了STM32低功耗模式下ADC采样抖动的5个常见陷阱及解决方案,包括多通道采样电压跃迁、外设开关信号稳定、低功耗模式与ADC时钟同步、输入阻抗失配以及基准电压稳定性问题。通过实测数据和优化代码示例,帮助工程师有效规避ADC采样数据抖动问题,提升物联网设备的测量精度和稳定性。

weixin_30316097的博客 383

【软件工程】一篇入门软件工程

软件工程包括什么项目管理层面的内容技术研发层面的内容软件工程学范畴内的知识点了解软件工程(用工程方法、工程思想完成软件开发)的实际操作流程了解工程问题如何解决采用高质量的环境及工具,使软件能够按照某种能够反映软件开发规律的规范/模式来开发。研究规范/模式。这个规范/模式能够体现软件开发过程的自然规律,并通过遵循开发过程的自然规律达到提升软件质量/开发效率的效果。从词汇本意出发软件工程= 软件+工程定义一:用系统化、工程化方法解决软件开发问题从问题论角度出发。

十二月的猫 1万+

别再为OpenBCI_GUI安装发愁了!保姆级教程带你从Processing配置到成功运行(附常见错误解决)

本文提供了一份详细的OpenBCI_GUI安装教程,涵盖从Processing配置到成功运行的全过程,特别针对常见错误提供了解决方案。通过环境搭建、软件依赖安装、源码处理及首次运行实战,帮助用户高效完成数据可视化工具的部署与使用。

weixin_28366475的博客 272

软件工程导论—软件与软件工程

文章目录1. 软件与软件危机1.1. 软件的概念和特点1.2. 软件规模的分类与发展阶段1.3. 软件危机1.3.1. 软件危机的表现1.3.2. 软件危机产生的原因1.3.3. 软件危机如何解决2. 软件工程学2.1. 软件工程学的概念2.2. 软件工程项目的基本目标2.3. 软件工程的八项原则2.4. 软件工程的本质特征2.5. 软件工程的七条基本原理3. 软件工程方法学3.1. 软件工程方法...

白水的博客 7558

万字详解YOLOv8网络结构Backbone/neck/head以及Conv、Bottleneck、C2f、SPPF、Detect等模块

YOLOv8是由Ultralytics开发的最先进的目标检测模型,推升了速度、准确性和用户友好性的界限。YOLO这一缩写代表“你只看一次”(You Only Look Once),通过在一次网络传递中同时预测所有边界框,提升了算法的效率和实时处理能力。相比之下,其他一些目标检测技术需要经过多个阶段或过程来完成检测。YOLOv8在流行的YOLOv5架构上进行了扩展,在多个方面提供了改进。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 14万+

Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较

C语言的++、–运算符在此不讨论。 文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较 1、前置后置增减运算符重载的形式 自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载

二进制君 5834

软件工程导论——(为什么要学习软件工程?软件工程能学到什么?如何学习软件工程?)

一、软件的定义软件是程序和所有使程序正确运行所需要的相关文档和配置信息。二、软件的特征1、软件是无形的2、软件副本制作简单3、软件无磨损三、软件的发展四、软件的分类基于软件功能的划分系统软件、支撑软件、应用软件。基于软件工作方式的划分实时处理软件、分时软件、交互式软件、批处理软件。基于软件规模的划分微型软件、小型软件、中型软件、大型软件、巨大型软件、极大型软件。基于软件失效的影响进行划分基于软件服务对象的范围进行划分定制软件 、产品软件。五、软件危机。

x20020402的博客 3187

17track单号查询逆向分析

这就说明该网站很有可能存在其它检测点,而检测本地替换最大可能的就是检测了代码格式化或者代码长度。也一样,要么导致网站卡死,要么会导致网页加载异常,这里可能就难到不少人了,让我们一步一步解决。而这个站主要是检测了代码格式化,无限循环检测造成了网站卡死,经多次测试发现检测点共三处。方法中代码很长,但是经调试后发现,它其实只返回一个固定的值,这里直接写死即可。同样的,虽然看起来很长,但是跟过之后就会发现流程很简单,这里主要就是对。追加了一些值,是一条很长的语句,整理代码。,核心流程也很简单,稍微跟一下就出来了,

pyzzd的博客 1625

[软件工程] 软件工程概念

软件工程概念一、软件工程的介绍(一)软件工程的两个定义(二)软件工程的发展已经历了四个重要阶段:1、第一代软件工程 — 传统的软件工程2、第二代软件工程 — 对象工程3、第三代软件工程 — 过程工程4、第四代软件工程 — 构件工程二、软件工程的本质特征:三、软件工程的7条基本原理:四、软件工程方法学(一)软件工程方法学1.传统方法学2.面向对象方法学(1)面向对象方法学4个要点:(2)面向对象方法...

xzx_Name的博客 3980

【从零开始学习 UVM】1.2、UVM 概述 —— UVM Installation(UVM 安装)

【从零开始学习 UVM】1.2、UVM 概述 —— UVM Installation(UVM 安装)

努力,加油每一天鸭~ 1947

MounRiver Studio(MRS)使用技巧:添加头文件目录;增加代码分组

MounRiver Studio(MRS)使用技巧:添加头文件目录

cheng___yi的博客 1812

【软件工程】第一章软件工程引论

平台和应用是软件发展的外在驱动力工程是对技术(或社会)实体的分析、设计、建造、验证和管理。工程是一种组织良好、管理严密、各类人员协同配合、共同完成工作的学科。它具有以下特征:以价值为目标高度的组织管理性多种学科的综合高度的实践性1968年,NATO会议上首次提出了“软件工程”的概念,标志着软件开发开始转向工程化。软将工程就是为了经济地获得可靠的且能在实际机器上高效运行的软件而建立和使用的工程原理。

Ausgelebt的博客 1365

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

软件工程笔记一

概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。IEEE: 软件工程是开发、运行、维护和修复软件的系统方法。

m0_74027860的博客 1902

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

软件工程教程:第1章软件工程概述 课后习题

《软件工程教程》(第2版)主编:吴迪马宏茹丁万宁电子科技大学出版社 一、选择题 (1)在下列选项中,(D)不是软件的特征 A.系统性与复制性 B.可靠性与一致性 C.抽象性与智能型 D.有形性与可控性 (2)与计算机科学的理论研究不同,软件工程是一门(B)学科。 A.理论性 B.工程性 C.原理性 D.心理性 (3)下列选项中,(C)不是软件生存周期模型 A.螺旋模型 B.增量模型 C.功能模型 D.瀑布模型 (4)软件生存周期中时间最长的阶段是(D) A.需求分析...

WHT869706733的博客 7833

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

软件工程:到底应该怎么理解软件工程

由来 当软件的规模越来越大,复杂度不断增加,软件项目开发维护过程中的问题就逐步暴露出来:软件产品质量低劣、软件维护工作量大、成本不断上升、进度不可控、程序人员无限度地增加。所以在 60 年代,“软件危机”的概念被提出来。 为解决软件危机,由此出现了一门新兴的工程学科:软件工程。软件工程就是要用工程化的方法去规范软件开发,让项目可以按时完成,成本可控,指令有保证 演化史 开发软件本质上也是像盖房子一样,是从无到有创造的过程。工程化的方式,就是你分步骤(过程),采用科学的方法,借助工具来做产品。 于是参考建筑工

OceanStar的博客 2741
上一篇: 什么是软件工程?
下一篇: git 入门学习与运用教程
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值