软件需求分析与设计-架构设计模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Web
Domain Sales
Payments
Fra Baidu bibliotek
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
Use-Case Model
Vision
Supplementary Specification
The logical architecture is influenced by the constraints and non-functional requirements captured in the Supp. Spec.
软件需求分析与设计 -架构设计模型
架构和设计模型
• 主要内容
– 从需求到设计-迭代计划 – 逻辑架构和UML包图 – 迈向对象设计 – UML交互图 – UML类图
2020/5/20 2
从需求到设计-迭代进化
• 以迭代方式做正确地事,正确的做事
– 分析关注做正确的事 – 设计强调正确的做事
• 尽早引发变更
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
: ProductCatalog
enterItem (itemID, quantity)
spec = getProductSpec( itemID )
class diagrams (a static view)
Register
...
1
makeNewSale() enterItem(...) ...
ProductCatalog 1 ...
– 用户界面 – 应用逻辑和领域对象-表示领域概念的软件对象 – 技术服务-提供支持技术服务的常用对象和子系统
• 严格的分层,高层可以调用相邻较底层的结 构
2020/5/20 5
UML包图所表示的层
UI Swing
not the Java Swing libraries, but our GUI classes based on Swing
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 3
UP制品关系示例
Business Modeling
Sample UP Artifact Relationships
Domain Model
* *
Requirements
getProductSpec(...) ...
2020/5/20 4
逻辑架构和NML包图
• 逻辑架构是软件类的宏观组织结构,他将软 件类组织为包(命名空间)、子系统和层
– 没有决定如何在不同的操作系统或网络层中物理的计算机 上对这些元素进行部署
• 层是对类、包或子系统的甚为粗粒度的分组, 具有对系统主要方面加以内聚的职责
2020/5/20
Domain Sales
UI
Swing
Web
Sales
Domain
9
使用层进行设计
• 将系统的大型逻辑结构组织为独立的、职责 相关的离散层,具有清晰、内聚的关注分离
• 协作和耦合是从较高层到较低层进行的、要 避免从较低层到较高层的耦合
• 有助于解决的问题
– 源码的变更波及整个系统 – 应用逻辑与用户界面交织在一起 – 不同的关注领域之间高度耦合
• 共同主题涉及
– 动机、约束、模式、职责和系统连接
2020/5/20 7
应用UML:包图
• 通常用于描述系统的逻辑架构
– 层、子系统、包
• 包含元素
– 类、其他包、用例
• 用依赖线描述包之间的依赖关系
2020/5/20 8
嵌套包的表示方法
UI Swing
Web
UI::Swing
UI::Web
Domain ::Sales
2020/5/20 10
使用层进行设计
• 使用层的好处
– 可以做到关系分离、高级服务与低级服务分离、特定于应 用的服务与一般性服务分离
– 层可以减少耦合和依赖性,增强内聚性、提高潜在的复用 性并且使概念更加清晰
– 封装和分解了相关的复杂性 – 某些层能够用新的实现替代 – 较低层包含可复用功能 – 某些层(应用)可以是分布式的 – 通过逻辑划分,有助于团队开发
相关文档
最新文档