软件工程之向传统产业学习(起篇)

Java static关键字相关(必看) 在Java中,static关键字是一个非常重要的关键字,它用于定义类的静态成员。静态成员属于类本身,而不是类的任何特定实例。这意味着静态成员在类加载到JVM时被创建,并且在类的所有实例之间共享。静态成员包括静态变量(也称为类变量)、静态方法、静态初始化块和静态内部类。 阅读详情

软件工程之向传统产业学习

—— 起篇

 

刚在一直再找Music Heaven的专集,不过网上除了eMule好象还有一点点链接之外,好象都烟消云散了,几张网页提供的链接也是“服务器无法找到”之类的。却意外地下到一张《完美钢琴》的CD,于是我在这音乐的流动之间开始下面的文字。

 

软件行业的诞生其实也就五十年左右,却出现了很多问题,不管是大拿或是小虾都在思考一个问题,如何快速有效地开发出适用的软件产品。由于IT业大家总以为它是一门新兴的高科技产业,故而总有些不屑用传统产业的方式来运作。不断地在寻找银弹,却不断地陷入焦油池里。何故?

我在学校的专业是工民建,可以说是跟计算机专业搭不上什么边的,除了偶尔用CAD来绘制几张图,或是用TBSA算算结构需要用到电脑以外,其实可以不太用电脑的。毕业后我却没有做我的专业了,真是学以无用。算起来做编程也有十年了,可以总感觉当前软件项目的实施极为混乱。原因当然有很多,但最多的无非是几种

1、         用户需求变更频繁;

2、         初步方案设计有问题;

3、         用户与程序员沟通不够,经常是驴唇对马嘴;

4、         重要程序员离职,无人接手;

5、         项目资源(时间、费用、人员)调度不合理,时紧时松,或者是资源大大超出原来估计成本。

这些可是说是每个项目经理都不愿见到的,却时每天发生在我们的周围,why?我们总是说“用户太笨了,同事太笨了”等等,不一而足。可是是这样子的么?

其实我一直很感谢在学校里的老师给我一些重要的能力,首先是自学能力,呵呵,因为没有老师会回答你这个那个问题的。其次我认为学到了我人生最重要的一门课程《建筑施工组织与管理》。那是96年大三时的课程,讲课的老师是在外面一直做施工管理后来回来任教的,有相当的实施经验,理论也不差,教材是用的同济的教材,所以这门课程我是听得比较有趣的,它教会了我如何用管理的目光来对待一个事换,因为当时总以为自已会去一个施工单位做技术员。

现在的IT人士喜欢用Project来做项目管理,用一个个甘特图来分析项目的各种情况。可是我们在十年前就已经在做这个东东了,只是那时是用笔来绘制,当然还有很多现在没有用到的东西,我印象最深的是工序和流水了。而当时这门课程的考试也不是填空或是回答问题,而是交一个楼宇的建筑施工组织计划,今天我们会叫它Project。十年过去了,如今我的同学有不少做上了项目经理,混得好的,有不少做了甲方代表。每每在同学的QQ群里聊,总有些提不起气来,他们做过的项目有几十层的大厦,有大型的货运深水码头,有成百栋的别墅群,等等。

现在十年过去了,而我看到软件项目的实施还是一个相当混乱的水平,而且有很多企业都过了所谓的ISO9000或是CMM2之类的,这些出入于写字楼,手里拿着NoteBook的IT人士为什么比不上在低矮平房里做着施工管理的技术员呢。

我以为现在中国软件行业当前要学的不仅是是某种技术的提高,更重要的是学会用项目管理的眼光来做项目。“他山之石,可以攻玉”,要抛开所谓的高科技行业的想法,放低姿态向一些传统产业来学习如何运做,毕竟这些行业有上百年的历史了,它们的项目管理方式已被证明行之有效,并且容易接受。这些天,我一直在思考这样一个问题:“软件工程其实应该可以类比如一个建筑工程,那么我们可不可以将建筑行业的一些做法来应用到软件工程上来呢?”我被自已的想法所激动,那么具体如何来实施呢,请接下来看以下几篇(时间有限,不定期推出,敬请关注):

《建筑设计院与软件系统构架》

《施工概预决算与项目费用控制》

《施工组织管理与软件项目组织管理》

《包工头、民工与高级程序员、程序员》(可能这样比较有很多人会有意见,呵呵)

《工程技术员与测试人员》

《资料人员与文档人员》

《变更设计与需求变更》

《甲方代表》

《竣工资料与结算》

《预制构件与组件》

《滑模技术与新编程技术》

 在写完这篇时,我居然还是找到了可以下载Music Heaven的Blog,真是怀念学校的时光。现在的人可能很少听说这个音乐杂志了,好象2002年已经停刊了。“人世可变迁,音乐恒久远”

本文WORD文档下载地址: http://www.savefile.com/files/9834873

扫地机器人全场景测试实战:从实验室到真实家庭的可靠性验证 本文深入探讨了扫地机器人从实验室到真实家庭的全场景测试方法,揭示了软硬件测试中的关键挑战。通过分析场景化测试的重要性,文章详细介绍了硬件耐久性、软件稳定性和环境适应性三大测试维度,并提供了真实家庭测试的实用方法论。消费者可重点关注清洁率、覆盖率等核心指标,同时了解测试工程师的私房建议,帮助选择更可靠的扫地机器人产品。 阅读详情

相关推荐

【Pytorch】DCGAN实战(三):二次元动漫头像生成

文章目录1.实现效果2.环境配置2.1Python2.2Pytorch、CUDA2.3Python IDE3.具体实现3.1数据预处理(data.py)(1)导入包(2)定义数据类3.2模型Generator,Discriminator,权重初始化(model.py)(1)导入包(2)Generator(3)Discriminator(4)权重初始化3.3网络训练(net.py)(1)导入包(2)创建类3.4 主函数(main.py)(1)导入文件(2)定义超参数(3)实例化(4)进行训练4.训练过程4.1

qq_44031210的博客 4897

软件工程这门课的学习感想

软件工程是将软件开发过程的理论和知识应用于实践的一门学科。软件工程借鉴了传统工程的开发方法和原则,以求高效地开发高质量软件。 《软件工程》课程设计是一门“设计”课程,强调实际训练,通过实际的训练掌握与理解软件工程学中的基本概念、方法和原则。课程设计使学生进行一个从软件计划、需求分析、设计、实现、测试和软件开发全过程的训练。通过课程实践,可以将所学的理论,方法和技术有机地串联起来,从而为将来实践和...

weixin_34326558的博客 1197

番茄状态实例分割数据集-20251118-210519.zip

番茄状态实例分割数据集一、基础信息• 数据集名称:番茄状态实例分割数据集• 图片数量:训练集:1,286张图片• 分类类别:坏番茄(bad tomato):表示腐烂或损坏的番茄果实,常见于质量检测中的不合格品。好番茄(good tomato):表示成熟且完好的番茄果实,适用于优质农产品识别。青番茄(green tomato):表示未成熟的番茄果实,常用于生长状态监测。茎(stem):番茄植物的茎部,在自动化操作中需避免损伤的关键部位。• 坏番茄(bad tomato):表示腐烂或损坏的番茄果实,常见于质量检测中的不合格品。• 好番茄(good tomato):表示成熟且完好的番茄果实,适用于优质农产品识别。• 青番茄(green tomato):表示未成熟的番茄果实,常用于生长状态监测。• 茎(stem):番茄植物的茎部,在自动化操作中需避免损伤的关键部位。• 标注格式:YOLO格式,包含实例分割的多边形标注,适用于实例分割任务。• 数据格式:JPEG图片,来源于农业图像采集,细节丰富。二、适用场景• 农业自动化与机器人技术:数据集支持实例分割任务,帮助构建能够精确识别和分割番茄果实及茎部的AI模型,用于自动化采摘和分拣系统,提升农业效率。• 农产品质量检测系统:集成至农业质量检测应用,实现番茄的自动质量分级,区分好、坏、青番茄,优化分拣流程。• 学术研究与创新:支持农业与计算机视觉交叉领域的研究,助力开发先进的实例分割算法,推动智慧农业发展。• 农业教育与培训:数据集可用于农业院校或培训机构,作为学生学习作物识别和实例分割技术的实践资源。三、数据集优势• 精准实例分割标注:每张图片均进行精细的实例分割标注,确保对番茄果实和茎部的像素级精确识别,适用于高精度模型训练。• 类别多样性与覆盖全面:包含番茄的不同状态(坏

从项目中谈JAVA中static 方法在多线程环境下的运用

最近在做一个实时性比较高的系统,数据库访问很频繁。在这个项目中数据库访问的大多数都被我做成了static 方法。(这样做应该不是很好,没办法发挥dao模式的优势,不过凑合用吧)因这个系统是多线程。static方法的运用需要注意,不能在servlet中使用成员变量,因为如果你的servlet使用的是多线程模式,所有的servlet共享一个servlet实例,在多线程的情况下,会发生脏读问题;主要不能

XuHaiPeng 7813

Java的static

静态方法:使用类名调用,属于类的所有实例共享。实例方法:需要创建对象后调用,属于特定对象的状态和行为。在 Java 中,static是一个关键字,用于定义类级别的成员(方法和变量)。以下是关于static静态变量(在栈区的静态区)定义:用static修饰的变量,属于类本身,而不是类的实例。特性:被该类的所有对象共享。只在类加载时初始化一次。访问:既可以通过实例的对象名调用,也可以通过类名直接访问,例如。静态方法(和类中的其他方法一样,在方法区)定义:用static。

2302_81034736的博客 2850

Java基础():关键字static详解

你真的了解 Java 中的 static 吗?它看似简单,实则蕴含了类级别成员的核心机制。从静态变量共享数据,到静态方法工具化设计,再到静态内部类实现优雅架构,这文章将为你全面解锁 static 的强大与细节!

从基础到源码解析的学习记录 1938

Java多线程中static变量总结

参考文章:Java多线程中static变量的使用 (一)静态变量:线程非安全 1、静态变量:使用static关键字定义的变量。static可以修饰变量和方法,也有static静态代码块。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 用public修饰的static成员变量...

justlpf的专栏 3031

Java多线程中static变量的使用

Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果? Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果?仅仅是多耗资源还是会引发异常? 不会耗资源 也不会引发异常 而是程序出现逻辑错误,如本来该出现 3 的地方出现了 2 …,这比前两种情况更严重 Java多线程中static变量的使用 线程,是我们项目中绕不过的重点领域。提到线程,就常会听到线程安全的术语。那什么是线程安全呢?通俗点说,就是线程访问时不产生资源冲突。其实,这是一个有点难以

qq_43842093的博客 6829

Java static 与 final 详解

本文深入解析Java中static和final关键字的核心概念与应用。static用于声明类级别的成员(变量、方法、代码块、内部类),在类加载时分配在方法区,所有实例共享同一副本。final表示不可变性,可修饰类(不可继承)、方法(不可重写)和变量(引用不可变)。static final组合定义全局常量,可能被编译器内联优化。文章通过代码示例详细展示了static的四种使用形式(静态变量、常量、代码块、方法)和final的三种应用场景(类、方法、变量),并分析了它们在内存中的存储特点及线程安全特性。

J_liaty的博客 1万+

Java多线程-static synchronized 和 synchronized 修饰的方法的区别

一晃眼居然两个多月没写博客了,那这两个月究竟忙什么了呢。仔细想想好像也没干啥。大概是忙着灌药了吧。唉,以后还是多写点博客吧,不然感觉虚度光阴了。

Wisimer 515

java static 多线程_java多线程关键字final和static详解

导读热词这文章主要介绍了java多线程关键字final和static详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下final关键字1.final关键字在单线程中的特点:1)final修饰的静态成员:必须在进行显示初始化或静态代码块赋值,并且仅能赋值一次。2)final修饰的类成员变量,可以在三个地方进行赋值:显示初始化、构造代码块和构造方法...

weixin_28314575的博客 674

java 的 static最全总结

static 关键字使得类的成员(变量、方法)与类本身相关联,而不是与对象实例相关联,提供了一种全局共享和方便访问的机制。 合理使用 static 可以提高代码的效率和可维护性,但也要注意避免滥用,特别是在多线程环境下,因为静态变量的共享可能会带来线程安全问题。

m0_70985211的博客 949

多线程下synchronized修饰static方法与非static方法的区别

一直对多线程的概念比较模糊,今天就写了个关于变量原子操作的小程序,好让自己加深一下理解 代码如下:     package atomic;   public class JoinThread extends Thread {   public static int i = 0;   //public static AtomicInteger at...

u010112268的博客 357

synchronized 修饰在 static方法和非static方法的区别

synchronized 修饰在 static方法和非static方法的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法。也可以synchronized来修饰方法里面的一个语句块。那么,在static方法和非static方法前面加synchronized到底有什么不同呢?大家都知道,static的方法属于类方法,它...

weixin_41563161的博客 397

java中的static属性详细介绍

java中静态代码块 静态代码块的特点: 随着类的加载而执行,而且只执行一次 https://www.baidu.com/s?wd=java%E9%9D%99%E6%80%81%E4%BB%A3%E7%A0%81%E5%9D%97 https://recomm.cnblogs.com/blogpost/6907471 https://zhidao.baidu.com/question/393900964.html https://www.cnblogs.com/twlqx/p/4430135.html ht

忆往昔的博客 8201

JAVA中static(静态方法)的特点

static 就是 “类级别的”,不用 new,能共享,方便调用,全局唯一。

lililililiiqwq的博客 733

多线程static变量的同步互斥

在多线程环境中,如果是static变量的话,因为这个类的所以实例都使用同一个static变量。考虑到线程安全的话,多线程控制的必须的。 实际在编写中有很多种写法,各种写法都有自己的特点。下面是参考网络资料整理的内容。感谢代码的原作者。 import java.util.Set; import java.util.TreeSet; //pattern 1:延迟初始化(非线程安全) //

步行者的专栏 7836
上一篇: 禅心、编程、世事
下一篇: 乱谈Dotnet之武林秘籍
BlueDog
博客等级 码龄26年 104粉丝 62原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值