【我亲身经历的2022年软件质量工作】

news2025/1/15 17:13:13

软件危机(softwarecrisis),20世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。

在这里插入图片描述

60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发。

年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程”一词,从此一门新兴的工程学科——软件工程学——为研究和克服软件危机应运而生。

软件危机主要表现在:

  • ①软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。
  • ②软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。
  • ③生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。
  • ④用户对“已完成”的系统不满意现象经常发生。一方面,许多用户在软件开发的初期不能准确完整的向开发人员表达他们的需求;另一方面,软件开发人员常常在对用户需求还没有正确全面认识的情况下,就急于编写程序。

软件危机不仅没有消失,还有加剧之势。主要表现在:

  • ①软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需要大量人力,软件成本随着软件规模和数量的剧增而持续上升。从美、日两国的统计数字表明,年度软件成本大约占总成本的90%。
  • ②软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。
    危机原因

在这里插入图片描述

随着计算机应用领域的扩大,99%的软件应用需求已不再是定义良好的数值计算问题,而是难以精确描述且富于变化的非数值型应用问题。因此,当人们的应用需求变化发展的时候,往往要求通过改变软件来使计算机系统满足新的需求,维护用户业务的延续性。

  • 其一,软件产品是人的思维结果,因此软件生产水平最终在相当程度上取决于软件人员的教育、训练和经验的积累;
  • 其二,对于大型软件往往需要许多人合作开发,甚至要求软件开发人员深入应用领域的问题研究,这样就需要在用户与软件人员之间以及软件开发人员之间相互通讯,在此过程中难免发生理解的差异,从而导致后续错误的设计或实现,而要消除这些误解和错误往往需要付出巨大的代价;
  • 其三,由于计算机技术和应用发展迅速,知识更新周期加快,软件开发人员经常处在变化之中,不仅需要适应硬件更新的变化,而且还要涉及日益扩大的应用领域问题研究;软件开发人员所进行的每一项软件开发几乎都必须调整自身的知识结构以适应新的问题求解的需要,而这种调整是人所固有的学习行为,难以用工具来代替。

从软件开发危机的种种表现和软件开发作为逻辑产品的特殊性可以发现软件开发危机的原因:

  • (1)用户需求不明确
    在软件开发过程中,用户需求不明确问题主要体现在四个方面:
    在软件开发出来之前,用户自己也不清楚软件开发的具体需求;
    用户对软件开发需求的描述不精确,可能有遗漏、有二义性、甚至有错误;
    在软件开发过程中,用户还提出修改软件开发功能、界面、支撑环境等方面的要求;
    软件开发人员对用户需求的理解与用户本来愿望有差异。
  • (2)缺乏正确的理论指导
    缺乏有力的方法学和工具方面的支持。由于软件开发不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件开发产品的个性化,也是发生软件开发危机的一个重要原因。
  • (3)软件开发规模越来越大
    随着软件开发应用范围的增广,软件开发规模愈来愈大。大型软件开发项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件开发系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件开发项目开发人员不能有效地、独立自主地处理大型软件开发的全部关系和各个分支,因此容易产生疏漏和错误。
  • (4)软件开发复杂度越来越高
    软件开发不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加。软件开发产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。所谓“复杂问题”的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。

在这里插入图片描述

具体体现

  1. 软件开发进度难以预测
    拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。以丹佛新国际机场为例:
    该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;投资1.93亿美元建立了一个地下行李传送系统,总长21英里,有4,台遥控车,可按不同线路在20家不同的航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,个电子眼、台无线电接受机、56台条形码扫描仪和台计算机。按原定计划要在年万圣节前启用,但一直到年6月,机场的计划者还无法预测行李系统何时能达到可使机场开放的稳定程度。
  2. 软件开发成本难以控制
    投资一再追加,令人难于置信。往往是实际成本比预算成本高出一个数量级。
    而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。
  3. 用户对产品功能难以满足
    开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。
    在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种"闭门造车"的开发方式必然导致最终的产品不符合用户的实际需要。
  4. 软件产品质量无法保证
    系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。
    软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患。
  5. 软件产品难以维护
    软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。
    为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。
  6. 软件缺少适当的文档资料
    文档资料是软件必不可少的重要组成部分。
    实际上,软件的文档资料是开发组织和用户的之间权利和义务的合同书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作说明书。
    缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。

在这里插入图片描述

软件工程专业女生毕业做什么工作好 就业方向有哪些?

软件工程专业女生毕业从事各级各类企事业单位的办公自动化处理、计算机安装与维护、网页制作、计算机网络和专业服务器的维护管理和开发工作、动态商务网站开发与管理、软件测试与开发及计算机相关设备的商品贸易等方面的有关工作。

软件工程这个专业的就业方向还是比较多的,软件服务外包属于智力人才密集型现代服务业,一般来说学生毕业后主要就业去向包括软件外包与服务企业、信息产品与服务企业,担任软件工程师、项目经理、软件开发工程师、测试工程师、java开发工程师等等。

1、软件开发工程师
软件开发工程师主要负责RFID相关应用软件、信息管理类软件的设计、研发、维护、安装实施,数据库管理及应用开发,根据要求进行软件概要设计、详细设计、编码、单元测试工作及说明文档的编写。这类工作薪资水平基本上都是很高的,福利待遇也是很好的。

2、软件工程师
软件工程师基本上就是指导程序员的工作,协助工程管理人保证项目的质量,参与软件工程系统的设计、开发、测试等过程,还要编写各种各样的软件说明书,如:需求说明书,概要说明书等。工作的内容比较复杂,需要有一定的工作经验,不过基本上薪资水平在行业里比较高,待遇也很好。

软件工程师薪资一般在元到元/月左右。学习软件工程师推荐选择达内教育,该机构致力于面向IT互联网行业,培养软件开发工程师、测试工程师、UI设计师、网络营销工程师、会计等职场人才,拥有行业内完善的教研团队,强大的师资力量,确保学员利益,全方位保障学员学习。

软件工程师薪资待遇与以下因素有关:

  • 1、城市,城市的发展程度决定了工资水平,一般程序员、软件工程师薪资比较高的城市是北京、上海等一线城市。
  • 2、水平,专业水平是否过硬,如果做到公司少了自己无法工作的状况,那薪资必定很高。
  • 3、面试沟通技巧,程序员不要小看这个环节,面试过程中能否脱颖而出,能否谈的高工资就看和面试官如何沟通。

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

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

相关文章

如何避免编程从入门到放弃?

写代码不是什么太需要创造力的劳动,现在的代码从业者本质上与工业时代的纺织工人没什么差异。大多数人写代码也并不是真的有兴趣,只不过金钱的诱惑使然,这没什么不好,也十分正确。 但对于零基础转行编程的人来说,坚持下…

关于居住办公人口的统计技术解决方案

在数字化转型的浪潮下,大数据产业作为城市数字化转型的重要助力,带来了城市管理手段、模式、理念的深刻变革与创新。为了更好地了解国家城镇的职住分布结构,帮助城市管理部门制定更加合理的规划策略,为城市商业产业提供有效的规划…

面向对象的软件工程

面向对象的软件工程1 面向对象的演化1.1 生活中复杂系统的特点1.2 软件系统的复杂性1.2.1 复杂性的四个方面1.2.1.1 问题域的复杂性1.2.1.2 管理开发的困难性1.2.1.3 软件中的灵活性1.2.1.4 描述离散系统行为1.2.2 复杂系统的五个属性1.2.2.1 层次结构1.2.2.1.1 对象结构1.2.2.…

更改Docker容器网络地址

查看docker 网络列表 查看网络详情 查看容器信息,容器的ip docker inspect 容器id1.创建自定义网络(默认是桥接模式) 方式1: docker network create 网络名称方式2:指定IP和网关 docker network create --subnet17…

Django中继承父模版时子模板未继承父模板中的动态数据

解决办法: 自己定义一个 context_processors.py 其中的内容根据自己需求来: #__author:joy #date: def index(request):meve_data[首页,产品与服务,市场发展,经典案例,解决方案,联系我们]return {"meve_data":meve_data} 值得注意的是 re…

基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作

第一章 理论篇 以问题导入的方式,深 入掌握原理基础什么是 MaxEnt 模型?  MaxEnt 模型的原理是什么?有哪些用途?  MaxEnt 运行需要哪些输入文件?注意那些事项?  融合 R 语言的 MaxEnt 模型的优势&…

Cortex-A55核心板的温升实测!

HD-G2UL系列核心板是万象奥科全新发布的极具性价比产品,搭载64位Cortex-A551.0GHz处理器,搭配1G内存/8G存储售价仅为148元。本文将针对该系列核心板进行温升实测。 1. 测试准备 HDG2UL-IOT开发板,基于HD-G2UL-CORE工业级核心板设计&#xff0…

2022年安徽最新交安安全员考试模拟题及答案

百分百题库提供交安安全员考试试题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 15.为防止电焊弧光伤害眼睛,应采取的防护方式是使用()。 A.墨镜 B.…

SAP UI5 Smart Table 和 Smart Filter Bar 的联合使用方法介绍

SmartTable 的 _onMetadataInitialised 方法里: 如果标志位 bIsInitialised 已经赋值,说明已经初始化过了,直接返回。 这里说明 SmartTable 有一个自动调整宽度的属性设置:getEnableAutoColumnWidth 拿到 Table view 的metadat…

c站top1全栈接口测试教程 postman接口测试 接口自动化测试全套教程

本文适合已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求等基本操作,文章末尾也搭配了相应的视频教程,如果喜欢的同学呢可以来个一键三连哈。 工作环境与版本: Window 7&#xff…

0.96寸OLED显示屏介绍续

0.96 寸OLED 显示屏使用方法 (以中景园电子的0.96 寸OLED 显示屏为例) 0.96寸OLED显示屏实物图 七针SPI/IIC 0.96寸OLED显示屏使用方法: 七针SPI/IIC 0.96寸OLED显示屏共有七个管脚,1~7 分别为 GDN、VCC、D0、D1、RES、…

FineReport企业数据图表-JS实现参数控件赋值

1. 概述 1.1 版本 报表服务器版本 功能变更 11.0 -- 1.2 问题描述 参数界面中,往往需要在一个控件中动态的控制其他控件的值,如下图,当 username 有值时,state 自动变为 1,当 username 无值时,state 自…

Android-桌面小组件RemoteViews播放动画

一、前言 前段时间什么比较火?当然是木鱼了,木鱼一敲,烦恼全消~在这个节奏越来越快的社会上,算是一个不错的解压利器! 我们也紧跟时事,推出了 我要敲木鱼(各大市场均可以下载哦~) 咳咳&…

Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition

论文: https://arxiv.org/pdf/2211.11943.pdf code(pytorh版本): https://github.com/shanglianlm0525/PyTorch-Networks Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition一、引言二、架构实现(一)、Convolutional Modulation Block(二&am…

ICV:车载毫米波雷达市场有望在2023年突破45亿美元!

全球前沿科技咨询机构ICV近期发布了全球车载毫米波雷达的市场分析报告,ICV在报告中表示毫米波角雷达的渗透率有较大上升空间,另外MMIC装配数量的提升可能会是毫米波雷达当前一个主要的技术发展趋势。 本报告旨在评估车载毫米波雷达的市场情况&#xff0c…

vue3路由切换过渡动画实现(含有一些坑)

今天写项目的准备收尾的时候&#xff0c;想给路由组件切换给一个过渡效果。在开发的过程中遇到一些坑。 1.Vue2和Vue3区别 vue2 <transition :name"transitionName"> <router-view></router-view> </transition> 后面就是写样式 Vue3 …

旅游网项目

技术选型 JAVA版本&#xff1a;JDK11数据库&#xff1a;Mysql5.7Navicat后端框架&#xff1a;SpringBoot2.7.1 SpringMVC Mybatis-Plus3.5.0权限控制&#xff1a;SpringSecurity前端框架&#xff1a;AdminLTE2模板引擎&#xff1a;Thymeleaf工具类&#xff1a;发邮件工具类、…

一分钟玩转RPA——word批量转pdf

大家好&#xff0c;我是无用兄&#xff0c;批量word转pdf文件我们在工作中有时会经常遇到&#xff0c;网上也有很多工具&#xff0c;有收费的也有免费的&#xff0c;今天我们主要介绍下如何用影刀RPA工具只需要四条指令就可以完成这个工作&#xff0c;而且后续的使用是完全免费…

解决原 Unique Key 模型存在的问题

为了解决原 Unique Key 模型存在的问题&#xff0c;以更好的满足业务场景的需求&#xff0c;我们决定对 Unique Key 模型进行优化&#xff0c;针对读写效率问题的优化方案展开了详细的调研。 关于以上问题的解决方案&#xff0c;业内已经有了较多的探索。代表性的有三类&#…

数据库MYSQL及MYSQL ODBC

文章目录MYSQL下载安装MYSQL操作赋权添加ODBC数据源手动配置命令行配置Wdac: Add-OdbcDsnodbcconf.exe其它方案64位机器上调用32位ODBCwarning & problemString data, right truncation迁移sql server数据库到mysqlSQL SERVER链接mysqlwarningMysql TIMESTAMP VS DATETIMEM…