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

news2025/1/21 2:59:34

 导论(引言):

1.为什么要学习软件工程?

         软件工程知识并不只是项目管理可以用,同样适用于开发岗。比如开发也要做需求分析和架构设计,也要做计划。学习软件工程后也可以帮助开发人员更好的理解软件项目的整个过程,不再看局限于技术实现,拥有全局的视野。软件工程就是用系统化的思维去解决一个问题。有了软件工程的保障,才能把软件开发做好。软件工程学让我知道,软件项目的开发其实是一个工程,整个开发过程是可以有效组织起来的;对于开发过程的各个阶段,已经有很多解决问题的最佳实践,有很多方法来帮助我们高效完成任务;我们还可以借助工具来协助管理,提升开发效率。

2.软件工程能学到什么?

        课程的讲授内容按照软件过程基本框架——(沟通、分析、设计、实施与维护进行组织,涉及项目可行性分析、需求分析、概要设计、详细设计、阶段评审、成本效益、软件实施、软件测试以及软件维护等。通过本课程的学习,理解软件工程基本理念与核心思想,熟悉软件工程的基础理论、工具和方法,熟悉软件质量保证的任务、目标和度量,熟悉软件项目管理基本方法与手段,理解组建团队进行软件项目或产品开发的重要性等。课程学习有助于提升学生解决实际复杂工程问题的全局观、系统能力和工程化思想。

3.应该如何学习该课程?

讨论:1.目前软件的应用(举例说明)

目前我所学所用到的软件有:Dev-c++、Eclipse-java、Visual Studio2019、VMware虚拟机-Linux、SQL-Sever 、PowerDesigner、MATLAB、SPSS、Dreamweaver等。

         2.对工程的思想的认知(举例说明)工程是指以某组设想的目标为依据,应用有关的科学知识和技术手段,通过有组织的一群人将某个(或某些)现有实体(自然的或人造的)转化为具有预期使用价值的人造产品过程。

软件工程师职业素养:

         软件工程师是对在IT行业从事软件开发、维护及管理等相关工作人员的统称。软件工程师职业包括软件架构、软件设计、软件编码、软件测试、软件维护、软件管理等一系列岗位。尽管这些岗位的分工不同,主要工作内容也有所差异,但都参与软件(系统)的设计、开发、测试、维护等过程,协助项目管理者保证所开发软件产品的质量,解决软件开发过程中的关键问题和技术难题。作为一个合格的软件工程师,除了具有扎实的计算机及软件技术相关专业技能之外,还有具有以下软件工程师职业所必备的职业素养。

  1. 自信 2.自学 3.责任心 4.沟通 5.和谐的人际关系 6.上进心 7.团队合作

第一章 软件工程学概述 

一、软件的定义

    软件是程序和所有使程序正确运行所需要的相关文档和配置信息。

    Software = Program + Data + Document

二、软件的特征

1、软件是无形的                              

2、软件副本制作简单

3、软件无磨损

三、软件的发展

  

四、软件的分类

  • 基于软件功能的划分

系统软件、支撑软件、应用软件 。

  • 基于软件工作方式的划分

实时处理软件、分时软件、交互式软件、批处理软件。

  • 基于软件规模的划分

微型软件、小型软件、中型软件、大型软件、巨大型软件、极大型软件。  

  • 基于软件失效的影响进行划分
  • 基于软件服务对象的范围进行划分  

定制软件 、产品软件。

五、软件危机

  1. 定义:软件开发和维护过程中遇到的一系列严重问题。
  2. 具体表现:

1、产品不符合用户的实际需要;

2、软件开发生产率不高,不能满足客观需要;

3、软件产品质量差;

4、对软件开发成本和进度的估计不准确;

5、可维护性差;

6、软件的文档资料不完整和不合格;

7、软件成本逐年上升。

  1. 产生原因:

1、宏观

(1)缺乏总体考虑,没有软件工程学概念或系统工程思想。——软件

(2)对业务了解支离破碎,需求分析不准。——软件

(3)企业依赖激情指挥,企业管理标准化、规范化、科学化程度不高,导致不能成功地应用“死板”的软件,它依赖于业务的“科学化”、“条理化”、“程序化” ——企业

(4)企业信息化程度和计算机应用水平低,导致无法准确描述需求。——企业

(5)一把手对信息管理的重视程度不够。——企业

(6)缺乏相互沟通,业务描述的详尽程度不能达到具备生活常识的人能够轻易理解。—— 企业、软件

2、微观

(1)软件的规模比较庞大,其开发和维护相当困难;

(2)开发人员虽然有经验,但还存在着不少错误观点,没有实行工程化的方法;

(3)不能与用户及时沟通,不能了解用户的实际需要;

(4)没有统一的软件质量管理规范;

(5)不能根据环境的变化而随时对产品进行改正。

六、软件生命周期常见过程

  1. 制定计划——解决什么问题,目标及其可行性(技术、人员、财力、社会)
  2. 需求分析——做什么、验收标准
  3. 总体设计——怎么做
  4. 详细设计——具体怎么做
  5. 程序编写——实现
  6. 软件测试——保证软件质量
  7. 运行/维护——保证正常而可靠地运用

目录

 导论(引言):

1.为什么要学习软件工程?

2.软件工程能学到什么?

3.应该如何学习该课程?

第一章 软件工程学概述 


      

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

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

相关文章

Solidworks学习笔记

本内容为solidworks的学习笔记,根据自己的理解进行记录,部分可能不正确,请自行判断。 学习视频参考:【SolidWorks2018视频教程 SW2018中文版软件基础教学知识 SolidWorks自学教程软件操作教程 sw视频教程 零基础教程 视频教程】 h…

智能透明加密、半透明加密和落地加密的区别是什么?

智能透明加密、半透明加密和落地加密的主要区别如下: PC端访问地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 保护对象和方式: 智能透明加密:系统根据预设的敏感数据特征,对正…

FindMy技术用于遥控器

遥控器已经悄然成为我们生活中的常客。无论是控制电视机的开关,调整音量,切换频道,还是控制空调的温度,调节灯光亮度,甚至远程操控智能家居设备,遥控器都为我们提供了极大的便利。 将遥控器与FindMy技术相结…

Linux:apache优化(2)—— 网页传输压缩

网页传输压缩 客户端在请求httpd服务器数据,httpd服务器在返回数据包给客户端时,先对返回的数据进行压缩,压缩之后再传输 作用:配置 Apache 的网页压缩功能,是使用 Gzip 压缩算法来对 Apache 服务器发布的网页内容进行…

冠赢互娱基于 OpenKrusieGame 实现游戏云原生架构升级

作者:力铭 关于冠赢互娱 冠赢互娱是一家集手游、网游、VR 游戏等研发、发行于一体的游戏公司,旗下官方正版授权的传奇类手游——《仙境传奇》系列深受广大玩家们的喜爱。基于多年 MMORPG 类型游戏的自研与运营经验,冠赢互娱正式推出了 2D M…

基于ssm的OA办公系统设计与实现+vue论文

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统办公信息管理难度大,容错率低,管理…

听GPT 讲Rust源代码--src/tools(39)

File: rust/src/tools/rustfmt/src/config/config_type.rs 在Rust代码中,rust/src/tools/rustfmt/src/config/config_type.rs文件的作用是定义了与配置相关的数据结构和函数。 Config struct(配置结构体):该结构体用于存储rustfmt…

前后端分离架构的特点以及优缺点

文章目录 一、前后端不分离架构(传统单体结构)1.1 什么是前后端不分离1.2 工作原理1.3 前后端不分离的优缺点1.4 应用场景 二、前后端分离架构2.1 为什么要前后端分离2.2 什么是前后端分离2.3 工作原理2.4 前后端分离的优缺点 参考资料 一、前后端不分离架构(传统单体结构) 首…

python测试工具: 实现数据源自动核对

测试业务需要: 现有A系统作为下游数据系统,上游系统有A1,A2,A3... 需要将A1,A2,A3...的数据达到某条件后(比如:A1系统销售单提交出库成功)自动触发MQ然后再经过数据清洗落到A系统,并将清洗后数据通过特定…

ElasticSearch 架构设计

介绍 ElasticSearchMySQLIndexTableDocumentRowFieldColumnMappingSchemaQuery DSLSQLaggregationsgroup by,avg,sumcardinality去重 distinctreindex数据迁移 ElasticSearch 中的一个索引由一个或多个分片组成 每个分片包含多个 segment(分…

【Spark精讲】一文讲透SparkSQL执行过程

SparkSQL执行过程 逻辑计划 逻辑计划阶段会将用户所写的 SQL语句转换成树型数据结构(逻辑算子树), SQL语句中蕴含的逻辑映射到逻辑算子树的不同节点。 顾名思义,逻辑计划阶段生成的逻辑算子树并不会直接提交执行,仅作为中间阶段 。 最终逻辑…

算法每日一题:参加考试的最大学生数 | 动态规划 | 状态压缩

大家好,我是星恒 今天的题目竟然是一道困难题目,看着就不简单,我们的目标是:理解如何做 学一些思路! 这次题目涉及的知识:动态规划,状态压缩(位运算) 给你一个 m * n 的…

挑战Python100题(8)

100+ Python challenging programming exercises 8 Question 71 Please write a program which accepts basic mathematic expression from console and print the evaluation result. 请编写一个从控制台接受基本数学表达式的程序,并打印评估结果。 Example: If the follo…

padStart(),padEnd()

今天获取当前时间的时候,gpt输出这样的代码,padStart(2, 0) function getCurrentDateFormatted() {const currentDate new Date();const month (currentDate.getMonth() 1).toString().padStart(2, 0);const day currentDate.getDate().toString().…

车载毫米波雷达及芯片新趋势研究1--毫米波雷达与其它车载传感器互补,研发及量产门槛较高

1.1 毫米波雷达是利用毫米波电磁波波束工作的雷达,车载是首要应用场景  毫米波雷达是一种以波长位于1-10mm、频率在30-300GHz的电磁波作为放射波的雷达传感器。  毫米波雷达利用毫米波波束进行工作。①检测障碍物时: 直接通过有无回波确认&#xff…

Power BI - 5分钟学习合并文件

每天5分钟,今天介绍Power BI合并文件 什么是合并文件? 合并文件就是将具有相同架构的多个文件合并到单个逻辑表中。 如果要合并同一文件夹中的所有文件时,此功能非常有用。 例如,如果你有一个文件夹,其中包含公司的所…

API 开放平台项目(已整理,已废弃)

项目大纲 前端 React 18Ant Design Pro 5.x 脚手架Ant Design & Procomponents 组件库Umi 4 前端框架OpenAPI 前端代码生成 后端 Java Spring BootMySQL 数据库MyBatis-Plus 及 MyBatis X 自动生成API 签名认证(Http 调用)Spring Boot Starter&#…

探索大型预训练模型:解析人工智能的通用知识引擎

目录 前言1 大型预训练模型的演进与重要性1.1 Word2Vec1.2 Transformer1.3 GPT模型 2 大型预训练模型的发展趋势2.1 参数规模与速度的飞跃提升2.2 数据量的持续增长2.3 知识丰富性与少样本学习的突破 3 大型预训练模型的核心机制结语 前言 在当今迅猛发展的人工智能领域&#…

推荐几个开源HTTP服务接口快速生成工具

在现在流行微服务、前后端分离软件开发架构下,基于标准RESTful/JSON的HTTP接口已经成为主流。在实际业务中有很多需要快速开发调用数据服务接口的需求,但团队中缺乏专业的后端开发人员,比如: (1)数据库表已…

【C++杂货铺】C++11新特性——lambda

文章目录 一、C98中的排序二、先来看看 lambda 表达式长什么样三、lambda表达式语法3.1 捕捉列表的使用细节 四、lambda 的底层原理五、结语 一、C98中的排序 在 C98 中,如果要对一个数据集合中的元素进行排序,可以使用 std::sort 方法,下面…