美文网首页
【软件设计】软件架构 software architecture

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

作者: Victorrrrr | 来源:发表于2019-06-15 18:15 被阅读0次

    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

    相关文章

      网友评论

          本文标题:【软件设计】软件架构 software architecture

          本文链接:https://www.haomeiwen.com/subject/ypigfctx.html