热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软件架构师做了什么以及他们使用了哪些程序?-WhatdoesaSoftwareArchitectdoandwhatprogramsdotheyuse?

IkeephearingabouttheArchitecttitleinlargersoftwarecorporations,andaminterestedtokno

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?

他们是在更高层次上设计并让其他人(开发人员)以机器可以执行的方式编写代码吗?或者他们是否了解实施的细节?

7 个解决方案

#1


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.

作为解决人们问题的建筑师意味着从很多角度处理很多问题,并在每个人的要求中找到共同的模式。

#2


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.

他们使用什么工具取决于他们的思维方式。

#3


My company produces software components. As such, my role as architect is to

我公司生产软件组件。因此,我作为建筑师的角色是

  • Turn feature requests into sane API designs
  • 将功能请求转换为合理的API设计

  • Create designs that are easy to learn and performant
  • 创建易于学习和高效的设计

  • Design for the horizon, not for today
  • 设计地平线,而不是今天

  • Critique/improve designs in other's APIs
  • 批判/改进其他API中的设计

  • Pair program with engineers to improve their work
  • 与工程师配对,以改善他们的工作

  • Explain the reasoning behind designs to other engineers to help them grow into architects.
  • 向其他工程师解释设计背后的原因,以帮助他们成长为建筑师。

#4


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.

就像我说的,这些只是观察。每个组织也可能有不同的想法。但我希望它有用。

#5


I guess the answer you get will differ where you ask it.

我猜你得到的答案会有所不同。

Where I work the architect is responsibe for the following:

在我工作的地方,建筑师负责以下事项:

  1. Driving and reviewing the needs analysis
  2. 推动和审查需求分析

  3. Coming up with the specifications
  4. 提出规范

  5. Preparing a logical and physical design of the system
  6. 准备系统的逻辑和物理设计

  7. Coming up with a project plan for development
  8. 制定项目发展计划

The tools used would include

使用的工具包括

  • Visio
  • Microsoft Project

#6


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。我认为做一些项目规划也有助于维护

#7


Bit late in the game, but have you looked at

比赛后期有点,但你有没看过

  • Enterprise Architect
  • Eclipse Process Framework, it has a composer which uses eclipse
  • Eclipse Process Framework,它有一个使用eclipse的作曲家

  • Rose - now uses 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.

我是这个世界的新手,但这是对我的观察的快速概述。


推荐阅读
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
author-avatar
卖火柴的萌小猪_966
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有