架构师之路->架构师思维的培养

公司的CMS(综合赋码管理系统)是WINFORM的CS架构。这套系统的架构师换了3届,到现在已经几年没有架构师了。本来入职时,岗位目标就是这个“自动化架构师”。后来和领导达成共识先争取成为储备架构师,因为架构首先是为业务服务的,而工控行业有许多特别的地方,不是普通的软件技术堆叠就能做出优秀的工控软件的。原来以为已经有十多年经验了,CS没有啥搞头了。实际上最近近半年的学习,发现真的是需要活到老学到老
阅读本文

新型软件开发过程模型

目前流行的软件开发过程模式有CMMI、RUP、XP、MSF等。RUP具有很优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系架构、可视化建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足: RUP只是一个开发过
阅读本文

对统一软件开发过程(RUP)的认识

RUP与UML的关系1.UML的构成    UML作为一种半形式化的规约语言,提供了:    (1)支持建模的术语(表)      ①该术语表中的术语跨越了问题空间到目前“运行平台”之间;      ②该术语表支持不同抽象层的建立;      ③该术语表支持以面向对象的观点,建立系统模型。  (2)支持建模的表达格式      为了表达概念模型和软件模型,UML提供了14种图形化工具,即:
阅读本文

linux软件管理工具-yum

1、yum简介1.1 What‘s yumyum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器。它可以系统管理员交互和自动化地管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包。1.2 yum的基本目录YUM配置文件          /etc/yum.conf,通常无需修改仓库配置文件目录    /etc/
阅读本文

关于软件工程课程的学习计划

《一》个人介绍我是15级计算机科学与技术专业的学生,黄慧。但是并不是很擅长技术方面的学习。在进入大学的第一年,加了工作室,一开始选择的方向是大数据,后来没人带,学的不好,兴趣不足就转了方向,同期也在学习ps方面的有关知识,但是没有深入研究。后来转向了web前端方向的学习,学的也并不是很好,只是学了一些皮毛,期间也提前接触了github。现在加了一个软硬件方向老师的工作室,也就留滞了web方向的学习
阅读本文

软件行业里常说的“架构”

缘起  一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。甚至于很多架构师一说架构,就开始谈论什么应用架构、硬件架构、数据架构等等。我曾经也到处寻找过架构的定义,请教过很多人,结果发现,没有大家都认可的定义。套用一句关于 big data 流行的笑话,放在架构上也适用:  Architecture is like teenage sex,everybody talks a
阅读本文

软件设计原则之职责单一原则

职责单一原则作为面向对象的SOLID原则之首,可见其重要性了,职责单一原则使得软件系统更易于开发,测试和维护,在设计架构上也体现了高内聚低耦合的特性。面向对象的S.O.L.I.D 原则 一般来说这是面向对象的五大设计原则,但是,我觉得这些原则可适用于所有的软件开发。 Single Responsibility Principle (SRP) – 职责单一原则 关于单一职责原则,其核心的思想是:一个
阅读本文

软件开发过程中的文档总结

(一)、在系统软件的开发前期,需要的文档有:1.系统开发立项报告,需要包含的:  (a).项目的定位及价值  (b).开发中的主要难点及可能出现的问题  (c).时间规划及人员安排 2.系统设计原理,需要包含: (a).总体框架 (b).实现原理 (c).存在问题及解决方案 2.1需求文档,包含内容:(1)概述 1.1原始需求 1.3术语与缩写解释(2).需求描述2.1数据描述2.2功能描述2.3
阅读本文

软件架构设计系列总结

架构引用维基百科:软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,
阅读本文

国内一些大型软件企业现状

加班多。这类公司文化中带着加班的文化,并且是低效的,就是你事情做完了,也希望你留住公司,领导希望看到你在公司。当者管理层说出来时,他们还不好意思讨论。到这儿让我们联想CoolShell起<<加班与效率今天先到这儿,希望对您在系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: Petter Liu 出处:
阅读本文

基于微服务的软件架构模式

微服务(micro services)这个概念不是新概念,很多公司已经在实践了,例如亚马逊、Google、FaceBook,Alibaba。微服务架构模式(Microservices Architecture Pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得局部改良。 Micro这个词意味着每个服务都应该足够小,但是,这里的小不能用代码
阅读本文

我的路子 - 发现游戏为模型的软件架构方式

总觉得如果一个内容被深刻地理解了,那么当在他口中说出来的时候,应该是很简单才对。  所以一直觉得,编程里那些不容易理解的,需要记住很多内容的东西都是有缺陷的。自己又比较自我认可强,看不到别人的角度,表现上有些自我。自己想的只是,事情还有很多解决方法,为什么要被那一种很难学的方式占了路子,而且找不到理解透彻的,有点为这种状况气愤,觉得肯定是没有好好做的原因,或者是一些人太安于现状的原因,或者是一
阅读本文

软件测试方法汇总

软件测试方法种类繁多,记忆起来混乱, 如果把软件测试方法进行分类, 就会清晰很多。 我参考一些书籍和网上的资料, 把常用的软件测试方法列出来, 让大家对软件测试行业有个总体的看法。 从测试设计方法分类  测试名称 测试内容 Black box黑盒测试 把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。从软件的行为,而不是内部结构出发来设计测试. Whit
阅读本文

软件测试工程师笔试题目

软件测试工程师笔试题目一.填空1、 系统测试使用( C )技术, 主要测试被测应用的高级互操作性需求, 而无需考虑被测试应用的内部结构。 A、 单元测试         B、 集成测试       C、 黑盒测试       D、白盒测试 2、单元测试主要的测试技术不包括(B  )。 A、 白盒测试                    B、 功能测试 C
阅读本文

(一) 软件测试实质

Ron Patton 所著的《软件测试》2002年的中文版,已经十五年了,但它对“软件的实质”的解释仍然是经典。   实质,哲学中的本质,又称为“实质”是指某一对象或事物本身所必然固有的。说的通俗点也就是说软件测试的本来的面目。   软件缺陷的定义    来看一下Ron  Patton 为我们的软件缺陷所下的定义。     1、软件没有实现产品的说明书所描述的功能。      2、软件实现了
阅读本文

【转载】嵌入式软件开发工程师谈软件架构的设计

嵌入式软件开发工程师谈软件架构的设计注:此处嵌入式特指基于Linux平台,单片机和其他rtos不在讨论范围 此时我想到底是什么问题呢,难道嵌入式出身的已经这么不受待见了吗?想当初,嵌入式,驱动开发,可是趋之若鹜的行业(有点夸张,不过8,9年前嵌入式可是听着比做Java web的要牛逼些哦) 问题总是有原因的,我说下自己的理解:嵌入式是否真的高大上之为什么没有嵌入式软件架构师? 打开拉勾等招聘网站,
阅读本文

软件的熵(entropy) 总结

大千世界,无奇不有,但大都逃不出规律、哲学的范畴。最近终于又长见识了! 尽管软件开发几乎不受任何物理定律的约束,熵(entropy)对我们的影响却很大!熵是一个来自物理学的概念,指的是某个系统中的“无序”的总量。遗憾的是,热力学定律保证了宇宙中的熵倾向于最大化! 比如说:宇宙中的任何温度高的物质,总会一直慢慢的趋向于绝对零度,这是不可逆的,它普遍存在于很多领域!再比如说,我把耳机线整理整齐
阅读本文

一个完整的软件研发流程是怎样的?

写在前面 今天回到我们的主题,继续技术管理工作的第三篇文章,主要讲讲软件研发流程。 说到软件研发流程,一些同学可能看不起这种标准化流程,会觉得不管三七二十一,立即上手编码才是王道,需求可以等到后面再明确,设计则是完全不需要的步骤,否则感觉速度太慢,他们管这叫互联网软件开发精神。什么是互联网软件开发精神?开源共享、模块化编程、极客精神,而不是野蛮开发。 我在读《聊聊架构》这本书时写过一篇
阅读本文

Java软件架构设计

比如要开发网站引擎系统,就从Yahoo的个人主页生成工具 到虚拟主机商提供的网站自动生成系统,以及IBM Webphere Portal的特点和局限 从而从架构设计角度定立自己产品的位置。  好的设计肯定需要经过反复修改,从简单到复杂的循环测试是保证设计正确的一个好办法。  由于在开始选择了正确的方向,后来项目的实现过程也验证了这种选择,但在一些架构设计的细部方面,还需要对方案进行修改,属于那
阅读本文

金融企业软件测试中心筹备书-成立时机篇

测试工作及相关职责是采用虚拟化团队方式来运作,还是独立出测试中心来负责,这个严格依赖于一个企业的情况而定,没有固定的模式可以套用。那么测试中心合适需要独立出来,需要具备什么样的先机条件呢?笔者认为从架构的演化历史中,看出一些经验。1、架构的演进式发展第一阶段:         公司A刚刚开始创业,正在打市场,但开始阶段用户量和交易量都很小,技术团队也只有1个人,出于成本考虑,在一
阅读本文