可视化的软件架构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
: BusinessFacade::ProductSystem
: DataAccess::Books
GetBooksByISBN() GetBooksByAuthor() GetBooksByNaturalLanguage() GetBooksBySubject()
GetBooksByTitle()
议程
建模 使用UML 生成代码 对代码进行反向工程 生成报表
使用 UML
UML 的定义
UML 是一种这样的语言: 可视化
功能规范
系统构造
文档化
使用 UML 让你用一种标准的方法来设计 软件
UML 是一种开放式标准
使用 UML
图表类型
结构化图表 (静态)
---IInInniitititiaiaallilizizzeeeCCCooommmpppooonnneeennntt(t(())) ###PPPaaagggeee___IInInniitit(t((iininnSSSeeennndddeeerrr:::OOObbbjjejeeccctt,t,,iininneee:::EEEvvveeennnttAtAArrrgggsss))) ---BBBooooookkk___LLLoooaaaddd(((iininnSSSeeennndddeeerrr:::OOObbbjjejeeccctt,t,,iininneee:::EEEvvveeennnttAtAArrrgggsss))) ---AAAddddddTTToooCCCaaarrrttBtBBuuuttttotoonnn___CCCllilicicckkk(((iininnssseeennndddeeerrr:::OOObbbjjejeeccctt,t,,iininneee:::EEEvvveeennnttAtAArrrgggsss))) ---RRReeeaaadddQQQuuueeerrryyySSSttrtrriininnggg(((iininnooouuutttIIdIdd:::IInInntteteegggeeerrr))):::BBBoooooolleleeaaannn
WWWeeebbb::::B:BBooooookkk
---KKKEEEYYY___IIDIDD:::SSSttrtrriininnggg==="""iididd""" ###FFFiilileleeSSSpppeeecccIImImmaaagggeee:::IImImmaaagggeee ###TTTiititltleleeLLLaaabbbeeelll:::LLLaaabbbeeelll ###AAAuuutththhooorrrLLLaaabbbllelee:::LLLaaabbbeeelll ###PPPuuubbbllilisisshhheeerrrNNNaaammmeeeLLLaaabbbeeelll:::LLLaaabbbeeelll ###IIsIssbbbnnnLLLaaabbbeeelll:::LLLaaabbbeeelll ###DDDeeessscccrrriipippttitioioonnnLLLaaabbbeeelll:::LLLaaabbbeeelll ###UUUnnniititPtPPrrriicicceeeLLLaaabbbeeelll:::LLLaaabbbeeelll ###AAAddddddTTToooCCCaaarrrttBtBBuuuttttotoonnn:::BBBuuuttttotoonnn
实施(Deployment)图
实施图通常用于:
对嵌入式系统建模 对客户/服务器系统建
模
对完全分布式系统建 模
DataAccess Database Server Database
使用 UML
顺序(Sequence) 图
顺序图通常用于:
按照时间顺序对控制流建模
: Web::book
Event
使用 UML
泛化(Generalization)/继承(Inheritance) 关系
泛化指把一般类连接到较为特殊的类,也称为超类/子类关 系或父类/子类关系
WWWeeebbb::::P:PPaaagggeeeBBBaaassseee ---UUUNNNHHHAAANNNDDDLLLEEEDDD___EEEXXXCCCEEEPPPTTTIIOIOONNN:::SSSttrtrriininnggg==="""UUUnnnhhhaaannndddlleleeddd???EEExxxccceeepppttitioioonnn::":"" ---KKKEEEYYY___CCCAAACCCHHHEEECCCAAARRRTTT:::SSSttrtrriininnggg==="""CCCaaaccchhheee::S:SShhhoooppppppiininngggCCCaaarrrtt:t:":"" ---KKKEEEYYY___CCCAAACCCHHHEEECCCUUUSSSTTTOOOMMMEEERRR:::SSSttrtrriininnggg==="""CCCaaaccchhheee::C:CCuuusssttotoommmeeerrr::":"" ---pppaaagggeeeSSSeeecccuuurrreeeUUUrrrllBlBBaaassseee:::SSSttrtrriininnggg ---pppaaagggeeeUUUrrrllBlBBaaassseee:::SSSttrtrriininnggg ---uuurrrllSlSSuuuffffifixixx:::SSSttrtrriininnggg +++NNNeeewww((())) +++SSSeeecccuuurrreeeUUUrrrllBlBBaaassseee((())):::SSSttrtrriininnggg +++UUUrrrllBlBBaaassseee((())):::SSSttrtrriininnggg +++CCCuuusssttotoommmeeerrr((())):::DDDaaattataaSSSeeettt +++SSShhhoooppppppiininngggCCCaaarrrtt(t((iininnffofoorrrccceeeCCCrrreeeaaattetee:::BBBoooooolleleeaaannn===TTTrrruuueee))):::CCCaaarrrttt ###OOOnnnEEErrrrrooorrr(((iininneee:::EEEvvveeennnttAtAArrrgggsss)))
属性(Attributes) 描述一个类的实例可以拥有的一组值 操作是一个服务的实现,该服务可以由类的任何对象请求以影响其行
为
Name Operations
Categories
-dsCommand : SqlDataAdapter
+New() +Dispose() #Dispose(in disposing : Boolean) +GetCategories(in categoryId : Integer) : CategoryData -FillCategoryData(in commandText : String) : CategoryData
http://www.docin.com/sundae_meng
可视化的软件架构设计
http://www.docin.com/sundae_meng
议程
建模 使用UML 生成代码 对代码进行反向工程 生成报表
课程准备
有一定桌面或者Web应用的开发经验 有一定使用 Visual C#™,
Visual C++®, Visual Basic®, or Visual Basic .NET的经验
难度:中
议程
建模 使用UML 生成代码 对代码进行反向工程 生成报表
建模
为什么要用模型?
在创建系统之前,可以更好的理解潜在的 一些风险
模型可以让我们描述系统的结构和行为, 并且利用它和同事沟通
元素 一个模型中最基本的构造块
关系 事物之间的联系
图 一组元素的图形表示
使用 UML
类
每个类都必须有一个名字,以同其它类区分.
可能包含路径的名称,用以表示该类存在的地方
Business rules::Customer (“Customer” 类存在于 “Business rules” 包中.)
---IInInniitititiaiaallilizizzeeeCCCooommmpppooonnneeennntt(t(())) ---PPPaaagggeee___IInInniitit(t((iininnssseeennndddeeerrr:::OOObbbjjejeeccctt,t,,iininneee:::EEEvvveeennnttAtAArrrgggsss))) +++IItIteteemmmLLLiisisstt(t(())):::DDDaaattataaVVViieieewww ---CCCaaatteteegggooorrriieieesss___LLLoooaaaddd(((iininnssseeennndddeeerrr:::OOObbbjjejeeccctt,t,,iininneee:::EEEvvveeennnttAtAArrrgggsss))) ---RRReeeaaadddQQQuuueeerrryyySSSttrtrriininnggg(((iininnooouuutttiididd:::IInInntteteegggeeerrr))):::BBBoooooolleleeaaannn
使用 UML
类图
«uses»
search
«uses»
searchresults
default
«uses»
categories
«uses»
book
使用 UML
用例(Use Case) 图
来自百度文库用例通常用于:
对系统的前后 关联建模
对系统的需求 建模
Internet Customer
Customer Account Management
模型提供了指导我们创建系统的模板,我 们还可以利用它为使用系统的人提供帮助
模型还描述了我们所做的决策
建模
企业架构功能
UML 软件建模
完全支持 UML 1.2 建模规范 对现有的代码进行UML反向工程 生成可订制的Visual Basic, C++ 和 C# 代码
框架 自动检查语义错误 可定制的 UML 报表
类(Class)图 (静态 结构)
构件(Component) 图
实施(Deployment) 图
行为图表 (动态)
用例(Use case)图
顺序(Sequence) 图
协作 (Collaboration)图
状态(Statechart) 图
活动(Activity)图
Attributes
使用 UML
依赖关系
依赖是一种使用关系,它说明一个事物规范的变化 可能影响到使用它的另一个事务,但反之则不然
在本例中, “Window” 类依赖于 “Event”类.
Window
+Open() +Close() +Move() +Display() +handleEvent()
Purchase Books
Product Catalog Search
使用 UML
构件(Component) 图
构件图通常用于: 对源代码建模 对可执行体的发布建模 对物理数据库建模 对可适应的系统建模
Web
Business Facade
SystemFramework
使用 UML
WWWeeebbb::::C:CCaaattteeegggooorrriieieesss
---KKKEEEYYY___IIDIDD:::SSSttrtrriininnggg==="""iididd""" ---iititeteemmmVVViieieewww:::DDDaaattataaVVViieieewww ###CCCaaatteteegggooorrryyyDDDeeesssccciipippttitioioonnnLLLaaabbbeeelll:::LLLaaabbbeeelll ###MMMoooddduuulleleeDDDaaaiililylyyPPPiicicckkk:::DDDaaaiililylyyPPPiicicckkkMMMoooddduuullelee
GetBookById()
使用 UML
其他类型图表
协作(Collaboration)图通常用于:
按照组织对控制流建模
状态(State chart) 图通常用于:
对反应型对象建模
活动(Activity)图通常用于:
对工作流建模 对操作建模
使用 UML
构造块(Building Blocks)