关于软件工程,我还有话说

软件工程,乃至于所有的工程,其目的都是完成设计目标,达到预期的目的。工程管理就是协调人、工具和过程,使之最终达到需要的结果。具体的说,就是让人使用一定的工具,按照一定的组织过程,最终完成任务的一个体系化的方法。这个大家都是认可的。但是……

但是有好多因素导致这么简单的一个体系化方法展开失败。第一个最主要的因素是工程目标本身。并不是说软件工程的目标有多么不清晰,多么难以琢磨,而是说,大多数人都没有意识到,软件系统是作为现实系统的一个对偶系统存在的,而且,一般情况下,软件系统总是对现存系统的某种改变而不是从0开始构造。所以,我们拿到一个目标以后,不考虑现实的状况而直接分解目标,给出方案的方式是极端错误的。

第二个因素是承接该工程的团队的特性。任何一个团队,都有自己的个性特点,都有自己习惯的过程,都有自己常用的工具,团队成员都是有个性,有弱点,知识结构不是完美的人。而大多数软件工程都希望把方案分派下去以后,所有的人都遵守定义好的过程,采用定义好的工具,在定义好的时间限度内完成。如果这些真的是预先定义好的,为什么需要人来参与?都是死的固定的东西,为什么不能用机器来完成?当然,工程方法总是需要格式化好的人,但是,这个对于程序员尤其不合适。软件工程的过程中,总是需要程序员的创造性劳动的,所谓创造性,就是不可规范的,不可预见的,突发的,跳跃的,甚至是灵光一现的思维活动。这如何能用工程规范出来?当然,我并不排除那种特别熟悉的,没有什么挑战性的项目可以部分的采用工程管理的方法进行。

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

相关推荐

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

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

69小石头的博客 1万+

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

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

十二月的猫 1万+

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

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

qq_43984062的博客 2437

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

文章目录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. 软件工程方法...

白水的博客 7553

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

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

胖大xian 2124

软件工程专业

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

Lyrix的博客 2733

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

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

x20020402的博客 3187

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

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

halo109的博客 1334

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

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

xzx_Name的博客 3976

【软件工程】第一章 软件工程概述 考试重点 复习记录

软件工程 考试重点记录 1、软件工程概述 软件工程的研究领域包括软件的开发方法,软件的生命周期以及软件的工程实践等。 2、软件危机与软件工程的起源 软件危机的出现 ​ 随着计算机应用的日益普及,软件的数量也开始急剧膨胀。在程序运行时发现的错误必须设法改正; 用户有了新的需求时必须相应地修改程序; 硬件或操作系统更新时,通常需要修改程序以适应新的环境上述种种软件维护工作,以令人吃惊的比例耗费资源。 ...

渐若窥宏大的博客 1459

软件工程概述

一、软件工程概述 二、软件工程的七条基本原理 三、软件工程的目标与常用模型 四、软件体系结构和工具的选择 五、软件开发方法综述 六、怎样培养软件工程的思维与方法 七、软件开发的发展变化 八、我们是否需要软件工程 九、我国软件工程发展的现状 十、我有一个梦 十一、软件工程的发展方向      软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、

howard的技术之路 2640

软件工程笔记一

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

m0_74027860的博客 1901

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 433

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

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

WHT869706733的博客 7832

即插即用系列(代码实践)| 2025 Strip R-CNN:大尺寸条形卷积——遥感目标检测新SOTA,专治细长目标(桥梁、船只)

摘要: 论文《Strip R-CNN: Large Strip Convolution for Remote Sensing Object Detection》针对遥感图像中细长目标(如桥梁、道路)检测难题,提出创新性解决方案。通过设计StripBlock模块,将传统方形卷积核替换为大尺寸条形卷积(水平1×19与垂直19×1组合),有效捕获长距离空间特征,同时减少背景噪声。结合CenterPooling增强目标中心定位,该模块可即插即用至现有网络,显著提升遥感检测任务(如DOTA数据集)的精度。代码已开源,

分享顶会顶刊论文即插即用模块 189

基于LUT表对鱼眼图像进行畸变校正

当然也可以进行图像的畸变校正操作,已知相机的焦距为fx/fy,光心为cx/cy,像素大小为p(单位mm/pixel)对于畸变校正结果图中像素点(u,v),其对应的原图中的像素坐标(u',v')的计算流程描述如下。1)假设无畸变相机成像模型的焦距和光心与原相机相同,计算得到无畸变相机成像模型中归一化平面坐标(X,Y,Z),其中X=(u-cx)/fx,Y=(v-cy)/fy,Z=1。这里x'/y'的单位为像素。

On my way 639

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

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

Ausgelebt的博客 1365

遗传算法(GA)全面解析:从生物基础到工程实践

本文全面解析了遗传算法(GA),从其生物基础到工程实践应用。遗传算法模拟自然进化过程,通过选择、交叉和变异等操作在解空间中高效搜索最优解。文章详细介绍了算法的生物学基础(达尔文进化论、孟德尔遗传定律)、基本概念(种群、个体、基因等)和核心思想。重点阐述了遗传算法的数学模型,包括编码机制、适应度函数设计、遗传算子(选择、交叉、变异)以及关键控制参数。最后提供了一个完整的Python实现示例,展示了遗传算法求解函数最大值问题的具体应用。该算法具有群体搜索、概率导向、无需梯度等特点,适用于各类复杂优化问题。

qq_42212808的博客 1176

什么是软件工程

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

kku101xyz的博客 4850

【Cesium开发实战】解决加载白膜数据位置不合适问题(地底或浮空)

解决白膜位置地底或者浮空问题。

莫言情怼的博客 569

多尺度仿真软件:Copasi_(1).Copasi概述

Copasi(Complex Pathway Simulator)是一款开源的多尺度仿真软件,专为生物化学、系统生物学和合成生物学领域的研究人员设计。它不仅能够模拟细胞内和细胞间的生化反应网络,还能处理代谢途径、信号传导途径和基因调控网络等多种复杂系统。Copasi提供了用户友好的图形界面和强大的命令行接口,支持多种仿真算法和分析工具,使用户能够高效地进行模型构建、仿真和分析。Copasi允许用户创建自定义报告,以便生成特定格式的仿真结果。用户可以通过图形界面或命令行创建自定义报告。

kkchenjj的博客 857

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

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

OceanStar的博客 2740

【PX4学习笔记】1. ROS及PX4环境搭建

环境 Ubuntu18.04 安装教程参考 https://www.guyuehome.com/8983 安装过程中问题的解决 问题1 rosdep init 错误的终极解决方法 注意etc/下的ros和rostep文件夹要自己建 问题2 Ubuntu安装ROS报错 sudo: rosdep:找不到命令 问题3(更好地解决了问题1、2)【推荐】 解决GitHub的raw.githubusercontent.com无法连接问题 问题4:GeographicLib的安装 教程中安装GeographicLib d

【人工智障 | 计算鸡视觉 | 机器孩】 8233

软件工程3.0和软件工程2.0的区别

随着AIGC技术的高速发展,以LLM(大型语言模型)为首的面向大模型的软件工程体系也被国内外提出,如GitLab Duo、Github Copilot X等,使得AI for SE的应用前景变得更加广泛。- 软件工程3.0:在3.0时代,软件开发的范式将发生很大的变化,软件研发人员的工作方式发生变化,对软件人员的要求更多体现在对业务的深度理解、系统性思维、逻辑思维等方面。- 软件工程3.0:在3.0时代,研发人员服务于大模型和大数据平台,包括模型创建、训练、调优、使用等,以模型和数据为本。

caridle的专栏 1853

KEPServerEX物联网网关(IoT Gateway)REST客户端代理(非原创)

(中文版)资料来源于【OPC-KEPServerEX学习KEPWare交流】905485143群的【455196383】【零下一度】 一。KEPServerEX物联网网关REST客户端代理演示 在KSE中,首先构建一个带有通道/设备/标签的模拟器系统。 例如,下面是三个随机项目。 直接到IoT网关插件,添加新代理。 从类型列表中选择REST Client。 终结点...

-雲飛兄-博客 5808

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Google软件工程:什么是软件工程

• 编程不等于软件工程。软件工程是在时间、规模和权衡决策上的系统性工程;• 软件工程的三个特性:可持续性、规模性和复杂性;海勒姆定律和左移策略。

qq_41854911的博客 833

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 关于x86系列CPU的段
下一篇: 线程池的传说
lifeNet
博客等级 码龄20年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值