当前位置:
文档之家› 软件需求分析与设计-架构设计模型
软件需求分析与设计-架构设计模型
getProductSpec(...) ...
2020/5/20 4
逻辑架构和NML包图
• 逻辑架构是软件类的宏观组织结构,他将软 件类组织为包(命名空间)、子系统和层
– 没有决定如何在不同的操作系统或网络层中物理的计算机 上对这些元素进行部署
• 层是对类、包或子系统的甚为粗粒度的分组, 具有对系统主要方面加以内聚的职责
Use-Case Model
Vision
Supplementary Specification
The logical architecture is influenced by the constraints and non-functional requirements captured in the Supp. Spec.
Wቤተ መጻሕፍቲ ባይዱb
Domain Sales
Payments
Taxes
Technical Services
Persistence
Logging
RulesEngine
2020/5/20 6
软件架构
• 架构是一组重要决策,涉及软件系统的组织, 对结构元素及其组成系统所用接口的选择, 从这些结构和行为元素到规模更大的子系统 的组成,以及指导该组织结构的架构风格
package diagrams of the logical
UI
architecture
(a static view)
Design Model Domain
Glossary
Tech Services
Design interaction diagrams (a dynamic view)
: Register
2020/5/20 10
使用层进行设计
• 使用层的好处
– 可以做到关系分离、高级服务与低级服务分离、特定于应 用的服务与一般性服务分离
– 层可以减少耦合和依赖性,增强内聚性、提高潜在的复用 性并且使概念更加清晰
– 封装和分解了相关的复杂性 – 某些层能够用新的实现替代 – 较低层包含可复用功能 – 某些层(应用)可以是分布式的 – 通过逻辑划分,有助于团队开发
– 用户界面 – 应用逻辑和领域对象-表示领域概念的软件对象 – 技术服务-提供支持技术服务的常用对象和子系统
• 严格的分层,高层可以调用相邻较底层的结 构
2020/5/20 5
UML包图所表示的层
UI Swing
not the Java Swing libraries, but our GUI classes based on Swing
• 共同主题涉及
– 动机、约束、模式、职责和系统连接
2020/5/20 7
应用UML:包图
• 通常用于描述系统的逻辑架构
– 层、子系统、包
• 包含元素
– 类、其他包、用例
• 用依赖线描述包之间的依赖关系
2020/5/20 8
嵌套包的表示方法
UI Swing
Web
UI::Swing
UI::Web
Domain ::Sales
: ProductCatalog
enterItem (itemID, quantity)
spec = getProductSpec( itemID )
class diagrams (a static view)
Register
...
1
makeNewSale() enterItem(...) ...
ProductCatalog 1 ...
Application (AKA Workflow, Process, Mediation, App Controller)
Domain (AKA Business, Application Logic, Model)
very general low-level business services used in many business domains CurrencyConverter
handles application layer requests implementation of domain rules domain services (POS, Inventory) - services may be used by just one application, but there is also the possibility of multi-application services
2020/5/20 11
信息系统逻辑架构中常见的层
GUI windows reports speech interface HTML, XML, XSLT, JSP, Javascript, ...
UI (AKA Presentation, View)
handles presentation layer requests workflow session state window/page transitions consolidation/transformation of disparate data for presentation
软件需求分析与设计 -架构设计模型
架构和设计模型
• 主要内容
– 从需求到设计-迭代计划 – 逻辑架构和UML包图 – 迈向对象设计 – UML交互图 – UML类图
2020/5/20 2
从需求到设计-迭代进化
• 以迭代方式做正确地事,正确的做事
– 分析关注做正确的事 – 设计强调正确的做事
• 尽早引发变更
2020/5/20
Domain Sales
UI
Swing
Web
Sales
Domain
9
使用层进行设计
• 将系统的大型逻辑结构组织为独立的、职责 相关的离散层,具有清晰、内聚的关注分离
• 协作和耦合是从较高层到较低层进行的、要 避免从较低层到较高层的耦合
• 有助于解决的问题
– 源码的变更波及整个系统 – 应用逻辑与用户界面交织在一起 – 不同的关注领域之间高度耦合
– 在迭代早期,发现和变更一些需求是自然的,也是有帮助 的
– 尽早编程、测试和演示有助于尽早引发不可避免的变更
2020/5/20 3
UP制品关系示例
Business Modeling
Sample UP Artifact Relationships
Domain Model
* *
Requirements