I keep hearing about the "Architect" title in larger software corporations, and am interested to know what they do and how they get it done.
我一直听说大型软件公司的“架构师”称号,我很想知道他们做了什么以及如何完成它。
Is it their job to prepare visual diagrams outlining the functioning of the software? and what programs do they use to aid their design? Like Class Designing?
准备概述软件功能的可视化图表是他们的工作吗?他们用什么程序来帮助他们设计?喜欢课堂设计?
Do they design at a higher level and get others (Developers) to write code in a way that a machine can execute? Or do they get into the details of the implementation?
他们是在更高层次上设计并让其他人(开发人员)以机器可以执行的方式编写代码吗?或者他们是否了解实施的细节?
If a person can build a shed without a blueprint, it doesn't mean they can, or should build a house without a blueprint.
如果一个人可以建造一个没有蓝图的棚屋,那并不意味着他们可以,或者应该建造一个没有蓝图的房子。
Architects see what you need now, what you mean when you say what you need, and design a software strategy that will give you what you need today, and a home that you can grow into (and from) in the future. Architects who are familiar with construction succeed more often, in software, Architects who can code, and have done so at a high level (but may not on a day to day basis) can help lay the foundation for other developers to succeed together.
建筑师会看到你现在需要什么,当你说出你需要什么时的意思,并设计一个软件策略,它将为你提供你今天所需要的东西,以及一个你可以在未来成长的家园。熟悉建筑的建筑师经常在软件中取得成功,能够编写代码并且在高级别(但可能不是每天都如此)的建筑师可以帮助其他开发人员共同取得成功。
The tools involved in Software design so are largely like pencils, erasers and rulers. It's what you draw with the pencil that is more important than the tools.
软件设计中涉及的工具很像铅笔,橡皮和尺子。这是你用铅笔绘制的比工具更重要的东西。
An architect's role is to be able to pull together, and keep together a project that is designed from the very high level right down to the nuts and bolts where attention to detail needs to be remembered. They will be experts on finding the exceptions, holes and things that will be unsustainable or prone to breaking in a software's design and remedying them before its even begun ensuring a higher degree of success.
建筑师的角色是能够团结起来,并将从高层设计的项目保持在一起,直到需要记住对细节的关注的细节和螺栓。他们将成为专家,在发现软件设计中不可持续或容易破坏的异常,漏洞和事物,并在它们开始确保更高程度的成功之前对其进行补救。
That being said, for the SA I do, I use tools like OmniGraffle, Balsamiq, some UML stuff, and a lot of graphing paper and whiteboards. My goal in designing is to synthesize the complicated into something simple, effective and usable by everyone.
话虽这么说,对于我做的SA,我使用的工具如OmniGraffle,Balsamiq,一些UML东西,以及大量的图纸和白板。我的设计目标是将复杂的东西合成为简单,有效和可用的东西。
My goal is to understand the needs of my clients better than they understand them, to the point that I can help them have the realizations they are looking for the next "leap".
我的目标是更好地了解客户的需求,而不是他们理解客户的需求,以至于我可以帮助他们实现他们正在寻找下一个“飞跃”的实现。
Being an architect for solving people's problems means dealing with a lot of them, from a lot of angles, and finding the common patterns in everyone's requests.
作为解决人们问题的建筑师意味着从很多角度处理很多问题,并在每个人的要求中找到共同的模式。
As will all job titles, it's very subjective and will vary between companies.
与所有职称一样,这是非常主观的,并且会因公司而异。
Having said that, here's my view on it...
话虽如此,这是我对它的看法......
A Software Architect works with the Business Analyst to convert the Business Requirements and Functional Specifications into a Technical Specification which the developers can work from.
软件架构师与业务分析师合作,将业务需求和功能规范转换为开发人员可以使用的技术规范。
Architecture is about designing & planning the best way to build something, and whilst this can be considered high-level, it still benefits from correct knowledge of lower-level things, and may require getting into specific details in some situations.
架构是关于设计和规划构建某种东西的最佳方式,虽然这可以被认为是高级的,但它仍然可以从对较低级别事物的正确知识中获益,并且可能需要在某些情况下进入特定细节。
What tools they use will depend on how their mind works.
他们使用什么工具取决于他们的思维方式。
My company produces software components. As such, my role as architect is to
我公司生产软件组件。因此,我作为建筑师的角色是
将功能请求转换为合理的API设计
创建易于学习和高效的设计
设计地平线,而不是今天
批判/改进其他API中的设计
与工程师配对,以改善他们的工作
向其他工程师解释设计背后的原因,以帮助他们成长为建筑师。
My old man called himself a Software Architect when he was working at a large enterprisey group a few years ago. (Now he's gone over to shudder consulting.) So I'm only saying this from an observational POV...
几年前,我的老人在一家大型企业集团工作时称自己为软件架构师。 (现在他已经开始颤抖咨询了。)所以我只是从一个观察性的POV来说这个......
He seemed to be the one who liaised with the pre-sales team to gather requirements and organise the spec.
他似乎是那个与售前团队联络以收集需求并组织规范的人。
He also, as you guessed, drew (in UML) the overarching plan for the system - although I'm not sure what software he used for that.
正如您所猜测的那样,他也(在UML中)绘制了系统的总体计划 - 尽管我不确定他使用的软件是什么。
AFAIK, he didn't do very much actual programming. He did oversee a team of programmers though (in conjunction with a lead dev) and could code pretty well himself, so it wouldn't surprise me if he mucked in if he was needed.
AFAIK,他没有做太多实际的编程。他确实监督了一个程序员团队(与一个领导开发人员一起),并且可以自己编写得非常好,所以如果他需要的话,他就不会感到惊讶。
Like I said, these are just observations. Each organisation probably has a different idea too. But I hope it's useful.
就像我说的,这些只是观察。每个组织也可能有不同的想法。但我希望它有用。
I guess the answer you get will differ where you ask it.
我猜你得到的答案会有所不同。
Where I work the architect is responsibe for the following:
在我工作的地方,建筑师负责以下事项:
推动和审查需求分析
提出规范
准备系统的逻辑和物理设计
制定项目发展计划
The tools used would include
使用的工具包括
I would remark that it also depends of the software that it has to be developed and project length. It could also depends from which kind of production process you are using.
Program they could use is visual architect, star uml.
I think to make some project planning it helps with mainteinance as well
我想说它还取决于它必须开发的软件和项目长度。它还可能取决于您使用的是哪种生产工艺。他们可以使用的程序是视觉架构师,明星uml。我认为做一些项目规划也有助于维护
Bit late in the game, but have you looked at
比赛后期有点,但你有没看过
Eclipse Process Framework,它有一个使用eclipse的作曲家
罗斯 - 现在使用eclipse :)
note the process which the company employs may decide the tools used IE RUP will recommend using Rational Rose.
请注意公司采用的流程可能决定IE RUP将使用Rational Rose推荐的工具。
These tools will not just do class diagrams, they will allow for the capture of the business processes, Logical Model, Design Model, Use Case, Deployment model etc
这些工具不仅可以执行类图,还可以捕获业务流程,逻辑模型,设计模型,用例,部署模型等
An eye opener for me was to look at the "4+1" modelling, google "4+1 RUP" and have a read.
让我大开眼界的是看“4 + 1”造型,google“4 + 1 RUP”并阅读。
I'm new to this world, however this is a quick overview of my observations.
我是这个世界的新手,但这是对我的观察的快速概述。