Software Architecture

Architecture serves as a blueprint for a system. It provides an abstraction to manage the system complexity and establish a communication and coordination mechanism among components.

  • It defines a structured solution to meet all the technical and operational requirements, while optimizing the common quality attributes like performance and security.

  • Further, it involves a set of significant decisions about the organization related to software development and each of these decisions can have a considerable impact on quality, maintainability, performance, and the overall success of the final product. These decisions comprise of −

    • Selection of structural elements and their interfaces by which the system is composed.

    • Behavior as specified in collaborations among those elements.

    • Composition of these structural and behavioral elements into large subsystem.

    • Architectural decisions align with business objectives.

    • Architectural styles guide the organization.

Software Design

Software design provides a design plan that describes the elements of a system, how they fit, and work together to fulfill the requirement of the system. The objectives of having a design plan are as follows −

  • To negotiate system requirements, and to set expectations with customers, marketing, and management personnel.

  • Act as a blueprint during the development process.

  • Guide the implementation tasks, including detailed design, coding, integration, and testing.

It comes before the detailed design, coding, integration, and testing and after the domain analysis, requirements analysis, and risk analysis.

Goals of Architecture

The primary goal of the architecture is to identify requirements that affect the structure of the application. A well-laid architecture reduces the business risks associated with building a technical solution and builds a bridge between business and technical requirements.

Some of the other goals are as follows −

  • Expose the structure of the system, but hide its implementation details.

  • Realize all the use-cases and scenarios.

  • Try to address the requirements of various stakeholders.

  • Handle both functional and quality requirements.

  • Reduce the goal of ownership and improve the organization’s market position.

  • Improve quality and functionality offered by the system.

  • Improve external confidence in either the organization or system.

https://www.tutorialspoint.com/software_architecture_design/introduction.htm

Software Architecture的更多相关文章

  1. Agile software architecture design document style..( sketches and no UMLs)

    http://www.infoq.com/articles/agile-software-architecture-sketches-NoUML If you're working in an agi ...

  2. Software Architecture软件架构(方法、模式与框架)纵横谈

    Software Architecture软件架构是啥 随着软件行业的发展,软件的规模越来越大,"Software Architecture软件架构"这个名词开始频繁出现.&quo ...

  3. Software Architecture Pattern(Mark Richards)笔记

    软件架构模式 缺少规范架构的程序通常会变得紧耦合.脆弱.难以更改,缺少清晰的发展方向和愿景.这本小书用50多页介绍了常用的5种常见架构模式,相信不管是大牛还是萌新都会有所收获,特别是对我这种偏爱系统设 ...

  4. 微内核架构(Microkernel Architecture)

    微内核架构(Microkernel Architecture) 微内核架构有时也被成为插件架构模式(plug-in architecture pattern),通常用于实现基于产品的应用,如Eclip ...

  5. Lua 架构 The Lua Architecture

    转载自:http://magicpanda.net/2010/10/lua%E6%9E%B6%E6%9E%84%E6%96%87%E6%A1%A3/ Lua架构文档(翻译) 十 102010 前段时间 ...

  6. Understanding Spring Web Application Architecture: The Classic Way--转载

    原文地址:http://www.petrikainulainen.net/software-development/design/understanding-spring-web-applicatio ...

  7. 敏捷软件工程(agile software development) VS传统软件工程(traditional software development)

    敏捷软件工程(agile software development) VS传统软件工程(traditional software development)      Agile principle  ...

  8. SAwUML – UML-based, contractual software architectures and their formal analysis using SPIN

    一.基本信息 标题:SAwUML – UML-based, contractual software architectures and their formal analysis using SPI ...

  9. The Architecture of Open Source Applications: Berkeley DB

    最近研究内存关系数据库的设计与实现,下面一篇为berkeley db原始两位作为的Berkeley DB设计回忆录: Conway's Law states that a design reflect ...

随机推荐

  1. HTTP协议(二)header标头说明

    HTTP协议(二):header标头说明 Header 解释 示例 Accept-Ranges 表明服务器是否支持指定范围请求及哪种类型的分段请求 Accept-Ranges: bytes Age 从 ...

  2. 架构实战项目心得(八):dubbo知识的整理

    1 Dubbo启动时检查.集群容错.负载均衡.线程模型的设置以及选项:    启动时检查:(1)Dubbo默认会在启动的时候检查依赖的服务是否可用,不可用时会抛出异常.阻止Spring初始化完成.以便 ...

  3. .netCore2.0 配置文件

    之前的asp.net 的配置文件都是xml格式,而.netCore的配置文件则采用Json键值对的格式来存储,具体获取如下 var config = new ConfigurationBuilder( ...

  4. JMS - ActiveMQ的简单使用

    首先需要下载ActiveMQ,下面的链接给我们列出了所有版本:http://activemq.apache.org/download-archives.html每个版本为不同的OS提供了链接: 公司电 ...

  5. MySql 学习(一)

    入门使用 show databases; //假设存在seckill 数据库 use seckill; //查看所有表 show tables; //查看某个表的字段,例如存在 student 表 d ...

  6. vs2017启动调试,点击浏览器或输入后回车浏览器闪退,调试中断

    vs2017在启动调试后,浏览器运行,点击地址栏刚输入几个字符,mmmmm居然闪退了! 什么情况呢?测试一下,换其他浏览器进行调试,偶尔不会有问题, 可是第二天......还是一下 于是浏览器——ww ...

  7. c#单例(Singleton)模式实现

    sealed class Singleton { private Singleton(); public static readonly Singleton Instance=new Singleto ...

  8. java类与对象基础--抽象类和接口

    在java的类体系中,有两个比较特殊的抽象体--抽象类和接口.抽象体并不可以拥有具体的对象(而且接口甚至不是类),但是它们却是在java设计领域非常重要的两个概念,很多优秀的设计模式都是基于这两个概念 ...

  9. Java基础(十一)集合框架

    一.集合框架 1.集合框架定义 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常 ...

  10. PHP+MySql实现图书管理系统

    这个图书管理系统是我学完PHP时写的一个练手项目,功能参考了自己学校的图书管理系统.为了锻炼自己的动手能力以及加深对代码的理解,前端和后端均由自己完成,前端使用了一些基本的框架(毕竟我主攻后端开发方向 ...