【“软件工程”基础概念学习】

server/2025/1/15 15:10:13/

基础和相关概念

英文:Software Engineering
  • :物体内部的组织疏松,受外力作用后容易改变形状
  • 软件
    1. 计算机系统的组成部分,是指挥计算机进行计算、判断、处理信息的程序系统。通常分为系统软件和应用软件。
    2. 借指某项活动中的人员素质、能力。
  • 程序:事情进行的先后次序;指计算机程序。
  • 程序控制:通过事先编制的程序需实现的自动控制。广泛应用于控制各种生产和工艺加工过程。
  • 系统:同类事物按一定关系组成的整体;有条理的;有系统的。
  • 系统工程
    1. 管理科学上运用数学和计算机技术等对一个系统内部的规划、设计、研究、实验、应用等环节进行组织管理,以求得最佳效益的措施。
    2. 指牵涉很多方面,需要统一筹划解决的复杂而庞大的工作任务。
  • 系统论:研究系统的一般模式、结构、性质和规律的理论。也指研究系统思想和系统方法的哲学理论。
  • 应用
    • 动词:使用;
    • 属性词:可供直接在生产或生活中运用的。
  • :物体内部组织紧密,受外力作用后不容易改变形状。
  • 硬件:计算机系统的组成部分,是构成计算机的各个元件、部件和装置的统称。借指生产、科研、经营等过程中的机器设备、物质材料等。
  • 工程
    1. 土木建筑或其他生产、制造部门用比较大而复杂的设备来进行的工作,如土木工程、机械工程、化学工程、采矿工程、水利工程等,也指具体的建设工程项目;
    2. 泛指某项需要投入巨大人力和物力的工作。

问题

软件软在哪里?
  • 易于修改和更新:需求、技术不断变化。
  • 抽象性:软件抽象出接口,操控硬件。
  • 没有物理形态:存在于内存、磁盘等介质中。
硬件硬在哪里?
  • 不可变性:一旦制造、功能固定。
  • 执行效率:硬件在特定任务中通常效率较高。
  • 物理构造:硬件是物理存在、需要具体材料和设计。

软件工程定义

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

定义中的基础概念

  • 研究:探求事物真相、性质、规律等;考虑或商讨意见、问题。
  • 规范:约定俗成或明文规定的标准。
  • 规范化:使合于一定的标准。
  • 定量
    • 动词:测定物质所含各种成分数量;
    • 动词:规定数量;
    • 名词:规定的数量。
  • 过程:事情进行或事物发展所经过的程序。
  • 开发:以荒地、矿山、森林、水力等自然资源为对象进行劳动,以达到利用的目的;开拓;发现或发掘人才、技术等供利用。
  • 维护:维持保护,使免于遭受破坏。
  • 经过时间考验:亲身经历、借鉴经历。
  • 管理
    • 动词:负责某项工作,使顺利进行;保管和料理;照管并约束。
  • 技术
    • 名词:人类在认识自然和利用自然的过程中积累起来并在生产劳动中体现出来的经验和技巧;
    • 泛指其他操作方面的技巧;指技术装备。

问题

软件工程的系统性体现在哪里?
  • 从需求分析、设计、编码、测试、部署到维护,每个阶段都被视为一个系统的一部分,它们相互依赖,共同构成了软件开发的全过程。
软件工程的规范化体系体现在哪里?
  • 遵循规范化和标准化的开发流程。这些流程包括项目管理、需求管理、配置管理、风险管理等。
软件工程的可定量体现在哪里?
  • 项目进度量化、成本估算与控制、软件规模度量、缺陷密度和质量管理、风险评估与管理、用户满意度与反馈量化。
软件工程的开发和维护过程是什么?
  • 开发:需求分析、设计、编码、测试、部署和交付;
  • 维护:问题报告和跟踪、缺陷修复、软件更新和升级、预防性维护。
软件工程的管理和技术如何结合?
  • 管理有什么?

    1. 项目计划:制定明确的项目目标、范围、时间表和资源需求,为软件开发提供清晰的指导。
    2. 资源配置:根据项目需求,合理分配人力、物力、财力等资源,确保开发过程的顺利进行。
    3. 进度控制:通过监控项目进度,及时发现和解决潜在问题,确保项目按时完成。
    4. 风险管理:识别、分析和应对软件开发过程中的风险,降低项目失败的可能性。
    5. 质量保证:建立有效的质量保证体系,确保软件产品符合质量标准和用户需求。
  • 技术有什么?
    软件工程的技术主要涉及需求分析、设计、编码、测试等方面。这些技术是软件开发的基础,决定了软件产品的质量和性能。

    1. 需求分析:通过深入了解用户需求,明确软件需要实现的功能和性能要求。
    2. 设计:根据需求分析结果,设计软件的总体架构、模块划分和接口定义等。
    3. 编码:按照设计文档,编写符合编码规范和最佳实践的程序代码。
    4. 测试:对软件进行单元测试、集成测试、系统测试和验收测试等,确保软件的质量和稳定性。

-软件工程管理和技术的结合
软件工程管理和技术的结合体现在以下几个方面:

  1. 计划阶段的技术评估:在制定项目计划时,需要对技术可行性进行评估,确保所选技术能够满足项目需求。这包括评估技术的成熟度、稳定性、可维护性等方面。
  2. 资源配置的技术需求:在资源配置阶段,需要根据技术需求合理分配资源。例如,对于技术难度较高的任务,需要分配具有相应技能的开发人员。
  3. 进度控制的技术监控:在进度控制过程中,需要密切关注技术实现的进度和质量。通过定期的技术评审和测试,及时发现和解决技术问题,确保项目按时完成。
  4. 风险管理的技术应对:在风险管理过程中,需要识别技术风险并制定相应的应对策略。例如,对于可能出现的技术难题,可以提前进行技术研究和储备,以降低风险对项目的影响。
  5. 质量保证的技术保障:在质量保证阶段,需要建立有效的技术保障体系,确保软件产品符合质量标准和用户需求。这包括制定编码规范、进行代码审查、建立测试体系等方面的措施。


http://www.ppmy.cn/server/158233.html

相关文章

MACPA:fMRI连接性分析的新工具

摘要 不同脑区的共同激活为它们之间的功能交互或连接提供了一个有价值的衡量指标。元分析连接模型(MACM)是一种经过充分验证的研究某一特定区域共激活模式的方法,该方法对基于任务的功能磁共振成像(task-fMRI)数据进行种子点(seed-based)元分析。虽然MACM是一种强大…

[java基础-集合篇]有界阻塞队列ArrayBlockingQueue源码解析

从源码可知,ArrayBlockingQueue是一个基于数组大小固定的阻塞队列。 且ArrayBlockingQueue获取元素都从头部获取,插入元素都从尾部插入,即ArrayBlockingQueue是单向队列,从一头插入,一头获取。 即ArrayBlockingQueue结…

【C++boost::asio网络编程】使用asio协程搭建异步echo服务器的笔记

【Cboost::asio网络编程】使用asio协程搭建异步服务器的笔记 协程和线程关系以及线程和进程的关系简单区分资源消耗与开销调度与上下文切换并发性独立性 main函数listener函数echo函数 协程和线程关系以及线程和进程的关系简单区分 资源消耗与开销 进程与线程: 进…

【c语言】指针 (完结)

一、sizeof和strlen的对比 1、sizeof 前面我们在学习操作符的时候,我们学习了sizeof,知道其是计算变量所占内存的大小的,单 位是字节,如果操作数是数据类型的话,计算的就是这个类型的变量所占的内存空间的大…

leetcode 68. 文本左右对齐

题目&#xff1a;68. 文本左右对齐 - 力扣&#xff08;LeetCode&#xff09; 没啥难的&#xff0c;就是麻烦点。 class Solution { public:vector<string> fullJustify(vector<string>& words, int maxWidth) {vector<string> ret;vector<string>…

[程序设计]—代理模式

[程序设计]—代理模式&#x1f473; 本文章记录学习于——52.面向切面&#xff1a;AOP-场景模拟_哔哩哔哩_bilibili 最近闲来无事&#xff0c;在学习Spring的源码&#xff1a; 后面慢慢更新源码系列blog&#xff0c;希望多多关注&#x1f64f;&#x1f64f; 目前已经总结的b…

20250111面试鸭特训营第19天

更多特训营笔记详见个人主页【面试鸭特训营】专栏 1. HTTP 1.0 和 2.0 有什么区别&#xff1f; 名称描述HTML超文本标记语言&#xff0c;描述超文本HTTP超文本传输协议&#xff0c;传输超文本URI统一资源标识符&#xff0c;作为互联网上的唯一标识 HTTP 0.9 最基础的HTTP版本。…

BO-SVM贝叶斯算法优化支持向量机的数据多变量时间序列预测

BO-SVM贝叶斯算法优化支持向量机的数据多变量时间序列预测 目录 BO-SVM贝叶斯算法优化支持向量机的数据多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于BO-SVR贝叶斯算法优化支持向量机的数据多变量时间序列预测&#xff0c;加入5折交叉验…