软件工程 | 第一章:软件工程学概述

news2025/4/7 2:56:47

软件工程学概述

  • 一、前言
  • 二、软件危机
    • 1.典型表现
    • 2.产生原因
    • 3.消除危机途径
  • 三、软件工程
    • 1.概述
    • 2.软件本质特征
    • 3.软件工程基本原理
    • 4.软件工程方法学
      • 1️⃣传统方法学
      • 2️⃣面向对象方法学
  • 四、软件生命周期
  • 五、结语

一、前言

本文将讲述软件工程导论的第一章相关知识点,主要都是概念部分,本文仅做整理,便于期末复习。本文主要分为四个部分:软件危机、软件工程、软件生命周期以及软件过程

二、软件危机

1.典型表现

  • 对软件开发成本和进度估计不准确

  • 用户对已完成的软件系统不满意

  • 软件质量不可靠

  • 软件不可维护

  • 软件没有适当文档资料

  • 软件成本在总成本中占比上升

  • 软件开发生产率提高速度远不及计算机应用迅速普及深入趋势

2.产生原因

  • 软件本身特点有关

  • 软件开发与维护的方法不正确有关

3.消除危机途径

  • 对计算机软件有正确认识

  • 推广使用成功技术与方法

  • 开发和使用更好的软件工具

三、软件工程

1.概述

软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

2.软件本质特征

  • 软件工程关注于大型程序构造

  • 软件工程中心课题是控制复杂性

  • 软件经常变化

  • 开发软件效率很重要

  • 和谐合作是开发软件关键

  • 必须有效支持它的用户

  • 两种背景的人创造产品这个特性与前两个特性紧密相关

3.软件工程基本原理

  • 用分阶段的生命周期计划严格管理

  • 坚持阶段评审

  • 实行严格的产品控制

  • 采用现代程序设计技术

  • 能清楚审查

  • 开发小组人员应少而精

  • 承认不断改进软件工程实践的必要性

4.软件工程方法学

1️⃣传统方法学

传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。

传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。每个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。在每一个阶段结束之前都必须进行正式严格的技术审查和管理复审。

审查的一条主要标准就是每个阶段都应该交出“最新式的”(即和所开发的软件完全一致的)高质量的文档资料,从而保证在软件开发工程结束时有一个完整准确的软件配置交付使用。

采用生命周期方法学可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。

目前,传统方法学仍然是人们在开发软件时使用得十分广泛的软件工程方法学

2️⃣面向对象方法学

与传统方法相反,面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法

四个要点

  • 把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件

  • 把所有对象都划分成类(class)

  • 按照父类与子类的关系,把若干个相关类组成一个层次结构的系统

  • 对象彼此间仅能通过发送消息互相联系

优点
降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。面向对象方法特有的继承性和多态性,进一步提高了面向对象软件的可重用性

四、软件生命周期

软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。维护时期的主要任务是使软件持久地满足用户的需要

在这里插入图片描述

在这里插入图片描述

五、结语

接下来会讲述有关于软件开发模型相关知识点,有任何问题可以评论留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lesson7---数字图像基础

7.1 数字图像基本概念 有人说:计算机视觉是人工智能的大门计算机视觉成为人工智能应用方面的领头羊本课实例都是与图像有关的 7.1.1 图像的离散化 7.1.1.1 连续图像和数字图像 连续图像:人眼直接感受到的图像数字图像:把连续的图像数字化…

【论文阅读】SSR-Net: 一个小型的 软分段回归网络 用于年龄估计

原始题目SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation中文名称SSR-Net: 一个小型的 软分段回归网络 用于年龄估计发表时间2018年7月13日平台IJCAI-18来源台湾中央研究院、国立台湾大学文章链接https://www.ijcai.org/proceedings/2018/0150.pdf开…

【LeetCode】剑指 Offer(6)

目录 写在前面: 题目:剑指 Offer 12. 矩阵中的路径 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 写在前面&#xff…

Java代码加密混淆工具有哪些?

在Java中,代码加密混淆工具可以帮助开发者将源代码进行加密和混淆处理,以增加代码的安全性和保护知识产权。以下是一些流行的Java代码加密混淆工具: 第一款:ProGuard:ProGuard      ProGuard:ProGuard…

Springboot接口多个DTO入参的Postman上传方式

在Java中使用Spring Boot框架时,可以同时使用多个DTO作为方法参数。 TO(Data Transfer Object)是一个常见的设计模式,用于封装数据传输对象。它通常用于将数据从一个层传递到另一个层,例如将数据从服务层传递到控制器…

2023 年 1 月区块链操作系统的开发回顾

副标题:查看 Cartesi Machine、Cartesi Rollups 和 Noether 的更新正在寻找区块链操作系统组件的最新进展?你找对地方了!正如在我们的路线图文章中所描述的那样,我们一直在朝着定期且频繁的更新方向发展着,以便让我们的…

阅读笔记——Feature-Point Matching for Aerial and Ground Images方法

阅读笔记——Feature-Point Matching for Aerial and Ground Images 1.应用背景 在三维重建应用中,常用的是航空影像,但在城市环境中,面对大量的高层建筑物,航空影像往往不能很好的重建出完整的三维模型。因为航空影像视角约束以…

DataGear 4.5.0 发布,数据可视化分析平台

DataGear 4.5.0 发布,带来数据集计算属性新功能,具体更新内容如下: 新增:数据集属性新增计算表达式功能,可对原始数据进行二次计算处理;新增:HTTP接口数据集新增文本、XML请求体类型支持&#…

Hadoop HDFS的架构、高可用与容错机制

本次整理的学习笔记的是Hadoop HDFS的架构、高可用与容错机制,供大家参考学习,enjoy~~ 一、HDFS的架构 1,NameNode (1) 存储文件的metadata,运行时所有数据都保存到内存,整个HDFS可存储的文件数…

V4L2操作流程

打开设备–>获取设备capability–>选择视频输入–>设置视频制式及帧格式–>向驱动申请帧缓冲(不超过5个)–>申请物理地址–>开始视频采集–>出队列取得已经采集数据的帧缓冲,获得原始采集数据–>停止视频采集–>关闭视频设备。 常用数据…

轻量级SSH实现之Dropbear

轻量级SSH实现之Dropbear dropbear简介 Dropbear是一个轻量级的SSH服务器和客户端的实现。它运行在 各种 UNIX 平台。 Dropbear 是开源实现,MIT 分发 许可证。 Dropbear在嵌入式Linux(或其他Unix)系统广泛应用,例如无线路由器。…

蛋白质组学技术与常见分析培训班火热招生中!

什么是蛋白质组学? 蛋白质组学(proteomics),是以蛋白质组为研究对象,研究细胞、组织或生物体蛋白质组成及其变化规律的科学。包括蛋白质的表达水平,翻译后修饰,蛋白与蛋白相互作用等研究内容,集中于动态描述…

华为机试JavaScript 字符串按次数降序排列;次数相同,按单词长度升序;排列次数和单词长度均相同,按字典升序排列

华为机试练习: 题目要求 1. 给定一个字符串s,s包括以空格分隔的若干个单词,请对s进行如下处理后输出:单词内部调整:对每个单词字母重新按 字典序排序 2、单词间顺序调整: 1) 统计每个单词出现的次数,并按次数 降序排列 …

【Kubernetes】【十四】Pod控制器详解 DaemonSet(DS) Job CronJob(CJ)

DaemonSet类型的控制器可以保证在集群中的每一台(或指定)节点上都运行一个副本。一般适用于日志收集、节点监控等场景。也就是说,如果一个Pod提供的功能是节点级别的(每个节点都需要且只需要一个),那么这类…

05 基于STL的演讲比赛流程管理系统

文件基本上是黑马程序员的文档,部分添加自己需要的内容,仅用于自己学习!链接:黑马程序视频课程GitHub:链接 演讲比赛流程管理系统 1、 演讲比赛程序需求 1.1 比赛规则 学校举行一场演讲比赛,共有12个人参加。比赛共…

江南爱窗帘十大品牌 | 窗帘的定做有哪些技巧和注意事项?

人们的家居空间中总是会有各式各样的窗帘存在的,为了使得窗帘的品质更加的过关,人们在选购时,总是会希望可以购买到高品质的。一般情况下,会采用定制这种方法去进行制作。那么,窗帘的定做有哪些注意事项?窗帘定制技巧…

PX4之启动脚本

PX4通过rcS脚本来设定需要启动的程序,比如设备驱动、控制模块、数据通信等。rcS脚本在项目中的文件位置 ROMFS/px4fmu_common/rcS 对应硬件平台固件上的位置 /etc/init.d/rcS 启动脚本流程如下 #!/bin/sh # PX4FMU startup script. # # 一些注释 ## 设置默认参…

【HDFS】FsDatasetImpl#convertTemporaryToRbw方法

功能: 把一个temporary副本转换成RBW副本。 方法的参数: 正在被转换成Rbw状态的的Temporary状态副本。 调用场景: datanode接收一个块的数据完成时,如果stage处于BlockConstructionStage.TRANSFER_RBW,那么就需要把temporary副本转换成RBW类型副本。 注意点: TEMPORARY副…

python 打包EXE

注: 从个人博客园 移植而来 环境: Windows7 Python 2.7 参考: 使用pyinstaller打包python程序 Pyinstaller 打包发布经验总结 Using PyInstaller 简介 使用python引用第三方的各种模块编写一个工具后,如果想发给其他人&…

Python基础-环境安装

Python安装1.下载PythonPython网址:https://www.python.org/进入Python官网,点击Downloads,选择自己对应的操作系统(此处以Windows为例)在左侧的稳定发行版中,选择一个3.5版本以上的,然后点击对…