当前位置: 首页 > news >正文

一、软件工程概述

软件工程概述

  • 1. 软件的概念和特点
  • 2. 软件危机的产生
  • 3. 软件工程的概念和发展过程
  • 4. 软件工程知识体系与职业道德

1. 软件的概念和特点

  • 软件定义
    软件=程序+数据+文档。
    在这里插入图片描述
  • 软件生存周期
  1. 问题定义:要解决的问题是什么?
  2. 可行性分析:对于上阶段所确定的问题有行得通的解决办法吗?
  3. 需求分析:软件必须做什么,确定软件系统的功能、性能、数据和界面等要求,确定逻辑模型。
  4. 总体设计:应该如何解决这个问题。两个任务:确定可能的系统,预估成本和效益;设计软件的结构。
  5. 详细设计:应该怎么具体地实现这个系统?
  6. 编码和单元测试:编写程序,分单元测试
  7. 综合测试:通过各种测试使软件达到预定的要求。集成测试:将各模块串联起来测试;验收测试:用户参与测试,根据规格说明书。
  8. 维护:通过各种必要的维护活动使系统持久地满足用户的需要。有改正性、适应性、完善性和预防性四类维护活动。
  • 软件特点
    在这里插入图片描述

  • 软件分类
    在这里插入图片描述
    在这里插入图片描述
    项目软件(教务管理系统)和产品软件(互联网软件)。

  • 软件发展
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2. 软件危机的产生

  • 软件危机
    在计算机软件的开发和维护过程中所遇到的一系列严重问题。如:项目超出预算、项目超过计划完成时间、软件运行效率很低、软件质量差、软件通常不符合要求、项目难以管理并且代码难以维护、软件不能交付。1968提出

  • 软件危机产生原因

    1. 软件成本日益增长
      在这里插入图片描述
    2. 软件技术进步<需求增长
      在这里插入图片描述
      客观:软件本身特点。逻辑部件太多,代码规模过于庞大,复杂程度过高。通过技术进步可以解决,如机器学习的发展。
      主观:不正确的开发方法。忽视需求分析,错误认为:软件开发=程序编写,轻视软件维护。需求正确的管理方法和协同合作方法。
  • 解决危机

    1. 对计算机软件有一个正确的认识:软件!=程序
    2. 必须充分认识到软件开发不是某个劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
    3. 推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。

3. 软件工程的概念和发展过程

  • 软件工程概念

在这里插入图片描述
将大问题分解为小问题,不断完善解决。
定义:(1)应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即将工程应用到软件;(2)对(1)中各种方法的研究。
目标:软件工程的目标是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应性强、可移动、可重用的软件。

  • 软件工程要素
    三要素:方法、工具、过程。(质量焦点)

    1. 工具
      它为软件工程的过程和方法提供自动化或半自动化的工具支持。将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统称“计算机辅助软件工程CASE”,系统中某一工具的信息加工结果可以作为另一工具的输入。集成的软件工程工具再加上人的因素构成了软件开发环境。
    2. 方法
      完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件需求分析、设计、编程、测试和维护。软件工程方法依赖一组原则,它贯穿软件工程的各个环节。软件工程方法分为两类:结构化方法和面对对象方法。
    3. 过程
      贯穿软件开发的各个环节,在各个环节之间建立里程碑;管理者在软件工程过程中对软件开发的质量、进度、成本进行评估、管理和控制;技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报告、表格等)。
  • 软件工程发展
    在这里插入图片描述
    在这里插入图片描述

  • 软件工程原则(B.W.Boehm, 1983)

    1. 使用阶段性生命周期计划的管理
    2. 进行连续的验证(测试应该早进行)
    3. 保证严格的产品控制
    4. 使用现代编程工具/工程实践
    5. 保持清晰的责任分配
    6. 用更好更少的人
    7. 保持过程改进

4. 软件工程知识体系与职业道德

  • 软件工程知识体系
    在这里插入图片描述
    在这里插入图片描述
    多学科交融:
    在这里插入图片描述
  • 软件工程与计算机科学
    在这里插入图片描述
    在这里插入图片描述
  • 软件工程误解
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 软件工程职业道德和责任规范
    在这里插入图片描述

相关文章:

一、软件工程概述

软件工程概述 1. 软件的概念和特点2. 软件危机的产生3. 软件工程的概念和发展过程4. 软件工程知识体系与职业道德 1. 软件的概念和特点 软件定义 软件程序数据文档。 软件生存周期 问题定义&#xff1a;要解决的问题是什么&#xff1f;可行性分析&#xff1a;对于上阶段所确定…...

第六天:java设计模式、GUI编程与面向对象设计原则

第六天&#xff1a;设计模式、GUI编程与面向对象设计原则 1. 设计模式概述 设计模式的定义&#xff1a;回顾设计模式的定义&#xff0c;即解决特定设计问题的通用解决方案。常见设计模式&#xff1a;了解并掌握几种常见的设计模式&#xff0c;如单例模式、工厂模式、策略模式…...

解读RPA自动化流程机器人

RPA全称Robotic Process Automation&#xff0c;即机器人流程自动化&#xff0c;基于人工智能和自动化技术&#xff0c;能够将大量重复、规则明确的日常事务操作实现自动化处理&#xff0c;通常被形象地称为“数字员工”。本文金智维将深入探讨RPA的主要价值和应用领域&#xf…...

Redis17-服务端优化

目录 持久化配置 慢查询 什么是慢查询 如何查看慢查询 命令及安全配置 内存配置 集群优化 持久化配置 Redis的持久化虽然可以保证数据安全&#xff0c;但也会带来很多额外的开销&#xff0c;因此持久化请遵循下列建议&#xff1a; 用来做缓存的Redis实例尽量不要开启持…...

Web语义化及实际应用

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏和关注&#xff01;今天一起了解下Web语义化及其应用吧&#xff01; 是什么&#xff1f; 使用合适的标签、属性&#xff0c;让页面能“说话“&#xff0c;让人和机器都能快速理解网页内容。 为什么&#xff1f; 有…...

Linux系统调试课:CPUFreq 中央处理器频率调节技术

文章目录 一、CPUFreq组成二、用户接口三、设备树配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢中央处理器频率调节(Central Processing Unit frequency,CPUFreq)技术可以降低ARM芯片的功耗,例如在系统对任务压力较小时,通过调整处理器工作频率与输入电压的…...

C++之模版初阶

目录 前言 1.泛型编程 2.函数模版 2.1函数模版概念 2.2函数模版格式 2.3函数模版的原理 2.4函数模版的实例化 2.5模版参数的匹配原则 3.类模版 3.1类模版的定义格式 3.2类模版的实例化 结束语 前言 前面我们学习了C的类与对象和内存管理&#xff0c;接下来我们继续学习…...

飞桨paddle API函数scatter详解

飞桨的scatter函数&#xff0c;是通过基于 updates 来更新选定索引 index 上的输入来获得输出&#xff0c;具体官网api文档见&#xff1a; scatter-API文档-PaddlePaddle深度学习平台 官网给的例子如下&#xff1a; >>> import paddle>>> x paddle.to_tens…...

RCE漏洞复现

PHP命令执行常用函数 回调函数必须是命令执行和代码执行的函数&#xff0c;有两个条件 必须是函数&#xff0c;而且需要有函数运行的参数 危害&#xff1a;可以直接删除文件&#xff0c;添加文件&#xff0c;甚至可以添加用户 system --执行外部程序&#xff0c;并且显示输…...

Qt QTabWidget之创建标签页的多页面切换

QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字的位置. 5.…...

【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出

【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出 文章目录 【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出1.简介2.验证用例3.软件代码4.链接脚本5.编译脚本6.仿真结果6.1 复位结束6.2 运行成功6.3 终端打印 7.总结 1.简介 本文将详细阐述如何利用 printf 来打印字符串…...

时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention

时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 文章目录 前言时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 一、VMD-TCN-BiLSTM-Attention模型1. **…...

Python知识点:如何使用Godot与Python进行游戏脚本编写

在Godot中使用Python进行游戏脚本编写&#xff0c;你需要通过一个插件来实现&#xff0c;因为Godot原生支持的脚本语言是GDScript、VisualScript和C#。这个插件被称为Godot-Python&#xff0c;它允许你在Godot引擎中使用Python编写脚本。以下是详细的步骤指导你如何配置和使用G…...

Spring MVC数据绑定和响应学习笔记

学习视频:12001 数据绑定_哔哩哔哩_bilibili 目录 1.数据绑定 简单数据绑定 默认类型数据绑定 简单数据类型绑定的概念 参数别名的设置 PathVariable注解的两个常用属性 POJO绑定 自定义类型转换器 xml方式 注解方式 数组绑定 集合绑定 复杂POJO绑定 属性为对象类…...

Vulnhub JIS-CTF靶机详解

项目地址 https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 修改靶机的网卡 开机时长按shift&#xff0c;进入此页面 选择root模式进入 将只读模式改为读写模式 mount -o remount,rw / 查看本机的网卡名称 …...

FPGA资源评估

FPGA资源评估 文章目录 FPGA资源评估前言一、资源评估1.1 资源有哪些1.2 资源统计 二、 FPGA 的基本结构三、 更为复杂的 FPGA 架构 前言 一、资源评估 大家在项目中一般会要遇到需要资源评估的情况&#xff0c;例如立了新项目&#xff0c;前期需要确定使用什么FPGA片子&…...

REST framework中Views API学习

REST framework提供了一个APIView类&#xff0c;它是Django的View类的子类。 APIView类和一般的View类有以下不同&#xff1a; 被传入到处理方法的请求不会是Django的HttpRequest类的实例&#xff0c;而是REST framework的Request类的实例。处理方法可以返回REST framework的…...

Vue(四)——总结

渐进式JavaScript框架 Vue.js是一套构建用户界面&#xff08;UI&#xff09;的渐进式JavaScript框架。 1、库和框架的区别&#xff1f; 库&#xff1a;库是提供给开发者的一个封装好的特定于某一方面的集合&#xff08;方法和函数&#xff09;&#xff0c;库没有控制权&…...

计算机毕业设计 招生宣传管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

练习题PHP5.6+变长参数 ⇒ usort回调后门 ⇒ 任意代码执行

突破长度限制 使用usort上传后门 usort — 使用用户自定义的比较函数对数组中的值进行排序 paramusort(...$GET); ...为php设置可变长参数 在url地址栏中输入[]test&1[]phpinfo();&2assert 包含了phpiinfo&#xff08;&#xff09;命令执行 结合usort使用 assert…...

微信数据永久保存终极指南:WeChatMsg专业方案全解析

微信数据永久保存终极指南&#xff1a;WeChatMsg专业方案全解析 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…...

ChatGpt-Pro项目解析:构建可私有化部署的多模型AI生产力平台

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“Roycegao/ChatGpt-Pro”。光看名字&#xff0c;你可能会觉得这又是一个简单的ChatGPT套壳应用&#xff0c;市面上不是一抓一大把吗&#xff1f;但当我真正点进去&#xff0c;花时间研究了一下它的代…...

KeyboardChatterBlocker:Windows键盘连击问题的终极免费开源解决方案

KeyboardChatterBlocker&#xff1a;Windows键盘连击问题的终极免费开源解决方案 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 还在为…...

Sunshine游戏串流服务器:三步搭建你的跨设备游戏平台

Sunshine游戏串流服务器&#xff1a;三步搭建你的跨设备游戏平台 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源的自托管游戏串流服务器&#xff0c;专为Moonl…...

专业级系统控制工具:5步掌握极域电子教室破解与权限管理实战

专业级系统控制工具&#xff1a;5步掌握极域电子教室破解与权限管理实战 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer JiYuTrainer是一款专注于破解极域电子教室控制的开源工具…...

2026奇点大会紧急预警:3类典型AI工作流(RAG/Agent/Streaming LLM)正在淘汰传统向量库——你的选型还剩多少月窗口期?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生向量数据库选型&#xff1a;2026奇点智能技术大会技术对比 在2026奇点智能技术大会上&#xff0c;主流AI原生向量数据库的架构演进已从“支持向量检索”跃迁至“原生协同推理”&#xff0c;核心差…...

3步掌握Jable视频下载神器:告别复杂抓包,一键保存高清视频

3步掌握Jable视频下载神器&#xff1a;告别复杂抓包&#xff0c;一键保存高清视频 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download 还在为无法离线观看Jable.tv上的精彩视频而烦恼吗&#xff1f;每…...

暗黑破坏神2角色编辑器终极指南:轻松打造完美游戏体验

暗黑破坏神2角色编辑器终极指南&#xff1a;轻松打造完美游戏体验 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾经因为技能点分配错误而不得不重新练级&#xff1f;是否为了刷一件心仪装…...

fanqienovel-downloader:一键永久保存番茄小说的终极解决方案

fanqienovel-downloader&#xff1a;一键永久保存番茄小说的终极解决方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 你是否曾经为心爱的小说突然下架而烦恼&#xff1f;是否希望在网络…...

微信好友关系一键检测:告别社交尴尬,发现谁已悄悄离开

微信好友关系一键检测&#xff1a;告别社交尴尬&#xff0c;发现谁已悄悄离开 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatReal…...