首页 > 其他分享 >对软件工程的理解

对软件工程的理解

时间:2024-09-24 21:35:46浏览次数:1  
标签:需求 工程师 大楼 软件工程 开发 软件 理解

定义

软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
-- 引用自知乎

理解

相比传统的编程,软件工程引入了成熟的设计模式、需求管理、测试方法和迭代开发等理念,确保软件的稳定性、扩展性和可维护性。我认为可以将软件工程比作建筑工程:

  • 需求分析:确定蓝图
    就像建筑师需要先了解客户的需求,明确房子的功能、大小和风格,软件工程师在开始写代码之前也要了解系统的需求和目标。这是整个项目的基础,决定了未来的方向。
  • 设计:构建框架
    建造大楼前,建筑师要绘制详细的设计图,工程师要确定结构的布局。同样,在软件开发中,系统的设计阶段相当于为软件构建架构,决定模块如何组织,数据如何流动等。
  • 编码:搭建房屋
    设计完成后,建筑工人开始实际施工。在软件工程中,编码就是建造这个“房子”的过程,把各个模块按照设计方案实现出来。代码是软件的“砖块”,每一块都需要精心雕琢,保证整体的稳固。
  • 测试:检查建筑质量
    大楼建好后,需要检查是否符合规范,是否坚固、安全。同样,软件工程师会进行各种测试(单元测试、集成测试、功能测试等),确保软件按照预期工作,没有“漏洞”或“裂缝”。
  • 维护:定期维修与升级
    大楼建成后,还需要定期维护,修复损坏的部分或进行改造,使它更适应新的需求。软件也是如此,发布之后并不意味着结束,工程师们会持续维护、修复,并根据用户反馈和新需求进行功能扩展和优化。

总体来看,软件的开发是一个环环相扣的设计和实施过程,在整个系统开发过程当中,系统分析和设计是重中之重,它们很大程度上决定着软件开发的周期以及寿命;此外,优秀的开发团队和开发过程的合理控制也是软件成功开发关键要素之一,就像建造一座大楼需要建筑师、电工、管道工等各类专家的合作,软件工程也是如此,不同的开发者、设计师、测试人员、项目经理都需要紧密配合,才能确保项目按时、高质量完成。

标签:需求,工程师,大楼,软件工程,开发,软件,理解
From: https://www.cnblogs.com/zhangsiyao618/p/18430065

相关文章

  • 简单易懂理解:数仓——拉链表
    1.什么是拉链表拉链表就像衣服的拉链一样重要,实用性非常强,使用频率非常高。所谓的拉链,就是历史记录,记录一个事物的开始到结束所变化的所有信息。“拉链表是一种针对数据仓库设计中表存储数据的方式而定义的数据模型,它有点类似于快照,‌它通过记录每个数据项的生效日期和失效......
  • nVisual到底能为机房运维管理解决哪些问题?
     一、nVisual是什么?nVisual是一套运维管理软件,以可视化的方式记录机房内设备信息、物理位置、物理连接关系等,通过nVisual可以建立完善的设备档案。能真实还原机房平面图、还可画机柜布置图、不仅可以管理设备还可以管理设备端口和链路,同时还可以管理室外管井、管段、光缆、光交箱......
  • 对软件工程的理解
      软件工程是指导计算机软件开发和维护的一门工程学科,它采用工程的概念、原理、技术和方法来确保软件的高质量和有效维护。通过学习,我对软件工程有了更深入的理解,主要体现在以下几个方面:1.软件工程的必要性  软件工程的出现是为了解决软件开发和维护过程中遇到的一系列严重......
  • .net core开源工作流程框架elsa源码阅读之容器的理解
    官方文档:https://v3.elsaworkflows.io/这个框架的依赖注入容器,底层是靠原生的IServiceCollection,没有使用其他的三方容器;然后在这个基础上,作者进行了封装。主要是用了Module类和继承了IFeature接口的类完成了依赖注入容器的封装。Module是用来管理feature和依赖的。Module我称......
  • 经济学中讲到发国难财的乘人之危和抢劫有区别,发国难财是给人的多一种选择,但是我们如何
    在疫情期间,低价收购口罩并高价卖出的行为确实引起了广泛的关注和讨论。为了深入理解这一行为,我们可以从以下几个方面进行分析:首先,我们要明确“发国难财”与“抢劫”这两个概念的本质区别。虽然二者都可能涉及在不寻常的市场环境下谋取不正当利益,但它们的动机、手段和后果有......
  • 深入理解装饰器模式:动态扩展对象功能的利器
    装饰器模式(DecoratorPattern)是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整的前提下,提供额外的功能。装饰器模式通过创建一个装饰类包装原有的类,从而在不改变原有类的基......
  • 说一下你对ajax的理解,如何实现一个ajax请求
    ajax即Asynchronous JavascriptandXML的缩写,指的是通过javascript的异步通信,从服务器获取XML文档从中提取数据,再更新当前网页的对应部分,而不用刷新整个网页。创建Ajax请求的步骤1.创建一个XMLHttpRequest对象2.在这个对象上使用open方法创建一个Http请求,open方法所需......
  • 【C++高阶】深入理解C++ I/O流:标准库中的隐藏宝石
    ......
  • TCP协议三次握手的个人理解
    TCP协议的核心是可靠的数据传输,而保证传输是可靠的那就要求客户端和服务端双方都具备正常的收发功能。基于此,第一次握手的时候,当服务端接收到这个SYN请求时,表明客户端要进行TCP连接,同步序列号seq=x,那么从服务端的角度来看:1、客户端的发送能力是正常的;服务端接收到请求后,那么也......
  • 浅谈软件工程
    基本概念软件工程是指导计算机软件开发和维护的一门工程学科,将合理的管理技术和前沿的技术方法结合起来,经济地开发出高质量的软件并有效地维护。软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。——1......