软件结构与软件架构 [英] Software structure versus Software architecture

查看:147
本文介绍了软件结构与软件架构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不能让软件架构和软件架构

I can't get the precise differences between software structure and software architecture

一个简单的例子说明了precise的差异将是非常美联社preciated

A simple example explains the precise differences would be very appreciated

顺便说一句,我使用UML重新presenting架构

BTW,I use UML for representing architecture

推荐答案

软件体系结构和软件结构重叠它们之间。

Software architecture and Software structure overlap between them.

软件架构是一组有关软件系统的重要方面和决定(简单地说)。它包括最重要的要求,所有种类的限制(性能,安全性等),然后在高级别系统组织,系统部件,外部的依赖关系,实现技术与指南,即使风险等之间的主要通信机制,等等等等。

Software architecture is a set of important aspects and decisions in relation to a software system (simply said). It includes the most important requirements and all kind of restrictions (performance, security, etc.), then the high-level system organization, the principal communication mechanisms between the system parts, external dependencies, implementation technologies and guidlines, even risks, etc, etc, etc.

我读一次软件的架构有很大的语句:这是一组的决定,这是很难改变

I read once a great statement about the software architecture: it's a set of decisions, which are hard to change.

所以,当你不能确定是否一个方面/决定是相关真的建筑学,只问自己 - 如果我以后改变这方面/决定,有什么影响?如何努力去改变它?

So, when you are not sure if an aspect/decision is really architectonic relevant, just ask yourself - if I later change this aspect/decision, what is the impact? How hard it to change it?

例如:


  • 让我们说,我们要在客户端 - 服务器系统结构改变为3层。有多难,本次重组?嗯,大概pretty努力。因此,这是一个建筑学方面。

  • 我们想改变XML和JSON之间的通信。这可能是非常复杂的,如果没有设计好,所以我们对待这种谨慎并作为建筑学REQ。

  • 如果我们想在一个方法来改变一个排序算法。这种变化是可能被本地化,而不是非常昂贵。因此,它不是一个建筑学方面。

  • 在API的定义变化OD的系统的一些核心模块,所使用的很多其他模块和系统是非常可能是一个建筑学的主题。

软件结构在另一方面实际上是一个系统的设计,并且可以非常高的水平(如方框图显示主模块或层)至$ C的非常详细(蓝图$ C)。

Software structure on the other hand is practically a system design, and can be very high-level (like block-diagram that shows the main modules or tiers) till very detailed (blueprint of code).

本软件结构的高级视图将definitelly是软件架构的一部分,而详细设计没有(也许有些重要的部分)。

This high-level view of the software structure would definitelly be part of the software architecture, while detailed design not (maybe some important parts).

UPDATE(评论后)

1#任何提示哪些图极力推荐软件
  体系结构和软件结构呢?因为它听起来该类
  图应在这两种情况下(建筑和结构)一起使用

1#Any hints about which diagram is highly recommended for Software architecture and software structure?because it sounds that class diagram should be used in both cases (architecture and structure)

这不是的这UML图,以的,而是什么是重要的,以显示后,这方面的。

It's not about which UML diagram to make, but rather what is important to show, which aspect.

所有的图表可以因此用来描述一个建筑学方面。
最常见但也可能强制图为组件图。它自然示出的系统模块和它们的接口彼此的方式而言的高级别设计。它可以由部署视图有选择地延长。
类图用于显示的部件的内部结构,通过重新presenting或多或少详细类结构和关系。并非所有的类图建筑学相关者,但有些可以definitelly如此(问问自己...:))

All diagrams could be therefore used to depict an architectonic aspect. Most common however and probably mandatory diagram is component diagram. It naturally shows the high-level design in terms of system modules and the way they interface each other. It can be optionally extended by a deployment view. Class diagram is used to show the internal structure of the components, by representing more or less detailed class structure and relationships. Not all class diagrams are architectonic relevants, but some can definitelly be so ("ask yourself..." :))

有很多其他的potentialy重要方面,如系统行为。海尔可以使用 UML序列,状态机,活动等。其中的一些建立的架构,别人都不太显著,也有用显现。

There are lots of other potentialy important aspects, like system behavior. Hier you can use UML sequences, state machines, activities and so on. Some of those build up the architecture, others are less significant, but also usefull to show.

2#当我从答案明白,详细设计是不是一部分
  建筑/结构设计,但我可以用它同类型的
  UML图如类和序列图(即中使用
  建筑和结构)更详细的信息。对吧?

2#As I understand from the answer that the detailed design is not part of architecture/structure design but I can use for it the same type of UML diagrams such as class and sequence diagram (that is used in architecture and structure )with more detailed information. right?

至于说,它不是图本身的类型,但对所显示的内容。所以,如果你考虑到的内容是相关的,它youput下架构。如果不是这样,它被认为是一个详细的设计。

As told, it's not about the type of diagram itself, but about the displayed content. So, if you consider that content is relevant, youput it under architecture. If not, it is considered as a detailed design.

实施例:的序列可以显示,以显示与外部设备的一个关键的实时通信。虽然它可以是非常低的水平,它可以是一个重要的要求fullfillment根本。
同一类型的图可用于显示一个本地算法或一种使用情形,这是不那么重要,因此不架构的一部分。

Example: a sequence can be shown to show a critical real-time communication with an external device. Although it can be very low-level, it can be fundamental for the fullfillment of an important requirement. The same type of diagram can be used to show a local algorithm or a use case scenario which is not so important, therefore not part of the architecture.

3#请问高水平的设计是一样的建筑设计

3#Does the high level design is the same as Architectural design

您可以这么说。
但请记住,有建筑学与建筑学不是之间没有明确的边界。它有时是主观的,一点都不给那些之间适当分开,而是要建立一个良好的规范,这将导致一个成功的产品开发。

You can say so. Keep in mind though that there is no clear frontier between architectonic and not architectonic. It is sometimes subjective, and the point is not to correctly separate between those, but rather to build up a good specification which would lead to a successful product development.

这篇关于软件结构与软件架构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆