【软件设计】软件架构 software architecture

Definition: Software Architecture

 the set of significant decisions about the organisation of a software system

 the selection of the structural elements and the interfaces by which the system is composed

 their behaviour as specified in the collaborations among those elements

 the composition of these structural and behavioural elements into progressively larger subsystems

 the architectural style that guides this organisation

软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。

        没盖过房子,我想,大家都看过盖房子吧,特别是楼房。首先,选一片地方,然后打地基,搭建楼房的架子,再慢慢刷墙,贴瓷砖等等。这个过程跟软件架构师是一样的,先做出一个软件的框架来,然后不断完善软件代码。

Significant Non-Functional Requirements

Capturing Architectural Requirements

 Usability

o e.g. aesthetics and consistency in the UI.

 Reliability

o e.g. availability (the amount of system "up time"), accuracy of system calculations, and the system's ability to recover from failure.

 Performance

o e.g. throughput, response time, recovery time, start-up time, and shutdown time.

 Supportability

o e.g. testability, adaptability, maintainability, compatibility, configurability, installability, scalability, and localizability.

Common Steps in Architectural Analysis

Steps (occurs in early elaboration):

1. Identify/analyse architectural factors: requirements with impact on the architecture (esp. non-functional)

o overlaps with requirements analysis

o some identified/recorded during inception, now investigated in more detail

2. For the architectural factors, analyse alternatives and create solutions: architectural decisions

o e.g. remove requirement; custom solution; stop project; hire expert



Logical Architecture:

 The large-scale organisation of the software classes into packages, subsystems and layers.

 Logical: not concerned with networking, physical computers, or operating system processes (cf. deployment architecture)

Layer:

 Coarse-grained grouping of classes, packages, or subsystems that has cohesive responsibility for a major aspect of the system

Strict:

 Layer only calls upon the services of the layer directly below it

o e.g. a network protocol stack

Relaxed:

 A layer calls upon the services in several lower layers

o e.g. information systems






©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,461评论 0 10
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,984评论 0 23
  • 我喜欢你啊! 超级超级超级喜欢你! 好像年纪越大,越是说不出这种话了。喜欢的人,也越来越难碰到。 遥想多年前我还早...
    追星星的许茶茶阅读 241评论 0 0
  • 原本以为小米会在Note这条路上持续发力,没曾想近两年还是保留在第一代,昔日的旗舰如今也只是千元机的水平了,价格更...
    吃撒啊等我打完发阅读 482评论 2 0
  • 见到老师好开心哇,老师看着我们笑的好慈祥,谢谢您!给同学们去送了贺卡,恭喜他们上完课,什么是最重要的事情呢,让身边...
    叶子卷阅读 848评论 0 3