1. 背景
1.1. 为什么要研究软件设计体系结构y Study Software Design & Architectureh2>
- 软件(IT)系统无处不在 Software(IT) systems are everywhere
- 每个软件密集型(组成的)系统都有一个软件设计和体系结构 Every software intensive system has a sofftware design and architecture
- 软件设计和体系结构是实践,教育和研究中越来越重要的领域 Software design and architecture are an increasingly important area of practice, education, and research
- 专业:软件架构师 As a profession: Software Architect
- 作为研究领域 As a research area
- 最初于1960年左右开始 Originally started around 1960
- 自1990年以来备受关注 Attracting major attention since 1990
- 本课程是关于 This course is about
- 软件设计和体系结构的概念,原理,方法和模式 Concepts, principles, methods, and patterns of software design and architecture
- 软件设计和体系结构的最新实践 State-of-the-art practices of software design and architecture
1.2. Learning Objectives 将要学习到的东西
- 理解软件设计和体系结构的概念和原理 Understand concepts and principles of software design and architecture
- 通过考虑需求或通过反向体系结构来创建软件体系结构 Create software architecture by taking requirements or through reverse architecting
- 在创建软件体系结构和设计的时候应用设计模式、风格、中间件技术和框架 Apply tactics, patterns, styles, middleware technologies and frameworks in creating software architecture and design
- 分析软件设计和评估软件体系结构的系统性 Analyze software design and evaluate software architecture systematically
- 理解艺术式的设计是如何应用到软件设计与体系结构中的 Understand state-of the-art methods applied in software design and architecture
- 理解软件设计与软件体系结构之间的关系,以及其他软件工程的领域话题 Understand relationships between software design and software architecture, and other software engineering topic areas
2. 介绍
2.1. Understanding Software Engineering 理解软件工程
- Software 和 Engineering
- Software 和 Hardware
- 软件是不可见的:软件是虚拟的,而硬件是实体的。
- 软件制作出来就是为了被修改和改变的(软件的演化是他的本质属性)
- Science vs. Engineering:科学的研究是研究这个世界既有的部分,而工程是研究的是人类创造新的世界(是不是因为人才产生的),下面的图是很重要的。
- 最初于1960年左右开始 Originally started around 1960
- 自1990年以来备受关注 Attracting major attention since 1990
- 软件设计和体系结构的概念,原理,方法和模式 Concepts, principles, methods, and patterns of software design and architecture
- 软件设计和体系结构的最新实践 State-of-the-art practices of software design and architecture
- 软件是不可见的:软件是虚拟的,而硬件是实体的。
- 软件制作出来就是为了被修改和改变的(软件的演化是他的本质属性)
开发和设计是在做减法
3.5. 软件设计过程 Software Design Process
3.8. 体系结构生命周期 Architecture Lifecycle

3.9. 软件体系结构和体系结构知识领域 Software Design & Architecture Knowledge Areas
- 软件设计基本原理 Software Design Basic Concepts
- 整体设计原理 General design concepts
- 上下文:软件发展生命周期-需求、设计、编码和测试 Context: software development life cycle – requirements, design, construction and testing
- 设计过程:决策、活动、可运行产品 Design process(role, activity, work product)
- 软件设计的使能技术 Enabling techniques for software design
- 核心问题(技术):一致性、事件控制和处理、分发、异常处理、交互系统、持久化 Key Issues (technical): concurrency, control and handling of events, distribution, exception handling, interactive systems, persistence
- 软件结构和体系结构 Software Structure and Architecture
- 体系结构结构和视点 Architecture Structures and viewpoints
- 体系结构风格和模式(宏观体系结构) Architectural styles and patterns (macro-architecture)
- 设计模式(微观体系结构) Design patterns (micro-architecture)
- 软件设计方法Software Design Methods
- 体系结构方法,比如属性驱动的设计 Architecture Methods (e .g., Attribute- Driven Design)
- 设计方法,比如动态系统发展方法 Design Methods (e.g., Dynamic System Development Method)
- 软件设计的质量分析和评估 Software Design Quality Analysis and Evaluation
- 质量属性 Quality attributes
- 质量分析和评估方法、技术和工具 Quality analysis and evaluation methods, techniques and tools
- 设计回顾:比如SEI的体系结构权衡分析方法 Design reviews (e.g. SEI’s Architecture Trade-off Analysis Method)
- 静态分析和动态分析 Static analysis and dynamic analysis
- 模拟和原型 Simulation and prototyping
- 度量 Measures:
- 矩阵:体系结构级别 Metrics: Architecture level
- 技术特有度量指标 Technique specific measures
- 设计建模和展示 Design Modeling and Representation
- 体系结构和设计符 (体系结构描述语言,Architecture Description Languages,ADL)Architecture and Design Notations (Architecture Description Languages(ADL))
- UML Unified Modelling Language (UML)
- 设计文档(意见或其他) Design Documentation (Views & Beyond)
- 其他:在活动、关注点和领域上的不同,比如ACME,Rapide。 Others: differ in ability, focus and domain (e.g. ACME, Rapide)
4. 讨论
- 科学和工程有什么不同at is Difference between Science and Engineering
- 科学的研究是研究这个世界既有的部分
- 工程是研究的是人类创造新的世界(是不是因为人才产生的)
- 软件和硬件有什么不同at is Difference between ‘Software’ and ‘Hardware’
- 软件是不可见的:软件是虚拟的,而硬件是实体的。
- 软件制作出来就是为了被修改和改变的(软件的演化是他的本质属性)
- 体系结构和设计有什么不同at is Difference between Architecture and Design
- 所有的体系结构都是软件设计,但是不是所有的软件设计都是体系结构
- 体系结构是设计过程的一个过程。
- 其他观点
- 体系结构是更高层的设计,是为了修改的
- 体系结构是设计决策的组合
- 体系结构和结构有什么不同at is Difference between Architecture and Structure
- 体系结构定义了组件(Component)的接口,Component之间如何交流以及如何相互依赖,Component的职责。
- 体系结构提供了设计的更高层抽象视角,隐藏设计的复杂性和实现,更强调非功能性需求。
- 【标准】架构是包括结构信息的,因为结构是一种静态的、逻辑的、是关于系统如何构成。但是架构除了包含结构,还会增加组件的相互之间的关系接口,还会定义一些动态的行为(一个组件可能和谁进行交互)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
智慧医院软件(APP)功能列表
上一篇
2022年3月6日
PFC_颗粒流软件_喷射混凝土模拟
下一篇
2022年3月6日