|
课程名称
|
"The Application of UML
to Software Engineering"
加拿大软件专家的UML高级应用培训
|
|
前言
Preface
|
Welcome to "The application of UML to Software Engineering",
a course introducing the main ideas concerning the application
of UML to object- oriented modeling, design and implementation
of object-oriented software.
欢迎参加"UML高级应用"培训,本课程主要关注UML在面向对象的建模,以及面向对象的设计和实现中的应用。
We all experience the poor quality of software: programs "freeze",
programs don't work as expected, user interfaces are unintuitive,
programs are too slow etc. Users and developers got so much used
to this that they believe (and tell!) it is inevitable. Software
development is often done by copying rather than improving other
designs, making the software even worse. No other design
discipline has such low professional standards.
我们大家可能都有这样的经历,软件的质量很不理想:程序"死机",不按预期的要求运行,用户界面很难理解,运行速度不能忍受。已经习惯了这样的情形总是出现,使得用户和开发人员都认为程序的质量只能如此。而我们的软件开发是不断地重复拷贝这样的低质量的设计,而不是从根本上去改进设计,程序的质量变得越来越糟糕。没有其它工程设计
(如土木工程、电子工程)象软件设计这样,专业标准水平如此之低,迫切需要得到改进。
|
|
讲师
Instructor
|
王先生(Paul Wang)
18年IT行业工作经验,8年海外工作经验,在国内曾参与中国-加拿大大型合作项目"黄土高原土壤侵蚀地理信息系统II";在加拿大北方电讯等国际知名企业工作,主持了包括加拿大环境署的"森林消防局防火信息系统"、麦克马期特大学的"微生物实验室数据管理系统"等项目。有丰富的应用JAVA语言开发,UML设计的经验,受邀任加拿大多伦多国际教育中心高级管理人员及资深讲师,教学软件工程系列课程等。主要研究方向为软件工程、软件设计和UML建模。
王先生1986年毕业于山西大学数学系,后留学加拿大,先后获得加拿大麦克马斯特大学学士(B.Sc)及多伦多大学硕士学位(M. Sc.)。
王先生既有国内外大型软件工程项目经验,又有国外教学经验,以讲授生动、深入浅出、思路敏捷清晰深受学员的喜爱。 |
|
课程目标Course Objectives
|
It turns out that software design is based on many principles
that are independent of the hardware, operating system, and even
the programming languages and programming tools that we use. In
fact, the design principles have remained rather constant over
the years compared to the programming
languages and tools, which evolve as technology allows.
软件设计基于其他诸多学科,而这些学科与硬件,操作系统,甚至编程语言和编程工具都是相对独立的。事实上,在过去的50多年中,与编程语言、工具这些新技术的快速发展相比较而言,设计原则的变化并不大。
During this course, we will focus on how to design
better software with UML rather than how software is currently
designed. we start with the more well-defined UML components and
software terminologies, and gradually broaden to include aspects
that require more experience and practice.
在培训课程的讲授中,我们将关注于如何应用UML设计更好的软件,并非学习现有软件是如何设计的。讲课将从定义良好的UML组件和软件术语开始,逐步扩展到如何在实践中应用UML进行良好的设计和开发。
By the end of this course the students will be
able to :
1) understand the difference between traditional & Object-Oriented
paradigm;
2) do OO Analysis & Design work independently;
3) master 9 UML diagrams rapidly by hand-on exercises
4) Convert UML to programming language;
5) Exercise model based testing with UML;
6) Some related aspects in discrete mathematics, automata;
To help student well understand the practical use, two practical
running examples will be introduced throughout the whole course:
one for embedded system, the other for Web application.
通过培训,您将掌握:
1) 理解传统的结构化设计和面向对象设计之间的差别
2) 独立地完成OO的分析和设计工作
3) 通过练习,快速精通UML的9种图
4) 常用的设计模式
5) 如何在软件开发的不同阶段应用它们.
6) 如何将UML转换为编程语言
7) 应用UML进行基于模型的测试.
为了帮助学员更好地理解课程内容,两个真实的例子将贯穿整个培训课程。一个是基于嵌入式的应用,一个是基于WEB的应用。
|
|
|
Designing better software is by no means easy. It requires a thorough
understanding of many aspects, including its mathematical foundations;
however we will start with the very basics and gradually deep into
a professional level in software design and analysis. A employee
in IT field is by no means scared.
There is a misunderstanding that UML is only applicable to OOP design
and implementation. Actually, OO and structural D&A are just
different techniques and views of software. A OO design can be implemented
by both structural language ( C ) and OO language (Java). For example,
the tool, Rational Rose Realtime allow you to choose among C, C++,
Java, Visual Basic etc. to be the language the OO design transferred
to.
掌握设计方法不是一件很容易的事。他需要学员全面了解许多学科的知识,包括某些数学基础知识。我们的培训方式课程将从基础部分逐步进入到软件分析与设计的专业水平。一个IT领域的工程师将能很好地掌握所讲授的内容。
很多人对于UML有一种错误的理解,认为它仅仅用于OOP的设计实现。实际上,OO和结构化的分析与设计只是同一事物的不同的观察、分析角度。一个OO的设计既能用结构化的语言(如C)来实现,也能用OO的语言(如JAVA)来实现。例如,ROSE
Realtime工具就允许你在C,C++,JAVA,VB等语言间进行选择,将OO设计转化为源代码。
1) Some analysis & design experience is helpful.
2) Software/Hardware Requirement :
i. Access to a PC( 486 or better )
ii. A modeling tool like Rational Rose( Rational Software ) or
Together( Togethersoft ) is helpful but not necessary. A drawing
tool like Microsoft Visio will be good enough.
3) Recommended Reading :
i. UML Distilled ?V A Brief Guide To The Standard Object Modeling
Language by Martin Fowler and Kendall Scott( Addison-Wesley )
ISBN : 0-201-65783-X
0-201-65783-X:Product Link on Barnes & Noble.com.
ii. The Unified Modeling Langauge User Guide--- Grady Booch, James
Rumbaugh,Iver Jacbson
ISBN : 0-201-57168-4
0-201-57168-4:Product Link on Barnes & Noble.com.
(1) 具有软件分析和设计的经验将有助于更好地掌握课程内容
(2) 软/硬件需求
a) PC机(486以上)
b) 一种模型工具,如Rational Rose或Together。或者Microsoft Visio也可以。
(3) 推荐读物:
a) UML Distilled ?V A Brief Guide To The Standard Object Modeling
Language by Martin Fowler and Kendall Scott( Addison-Wesley )
ISBN : 0-201-65783-X
0-201-65783-X:Product Link on Barnes & Noble.com
b) The Unified Modeling Langauge User Guide--- Grady Booch, James
Rumbaugh,Iver Jacbson
ISBN : 0-201-57168-4
0-201-57168-4:Product Link on Barnes & Noble.com
|
课程简述
Course Description |
This will be an 5 day course
introducing OO Analysis & Design.
Each concept taught will be applied to a real world system in a
step-by-step manner.
5天的课程重点关注应用UML进行面向对象的分析与设计,每个概念的介绍将结合现实世界的案例一步一步地讲解。 |
|
课程大纲
List of Topics
|
Session
|
Topics
|
Duration (day)
|
|
1
|
(1) Review of software engineering life cycle,
1) User requirement
2) Specification
3) Design
4) Development
5) Testing
6) Maintenance
Why OPP?
An object has attributes and behavior, thus
an object resembles real-world entities.
1) raditional analysis & designVS OO design,
2) Inheritence &Polymorphism
3) Functional dependency & relational algebra
|
0.5
|
|
2
|
(1) introduction of UML
(2) the syntax and semantics of 9 UML diagrams
(3) UML application in User requirement Analysis
1) What and why user requirement
2) How to collect user requirement (via UML)
3) How to do requirement analysis (via UML
4) Hot to document user requirement (viaUML)
(4) Brief introduction of UML TOOL: Rational Rose/Rose
Realtime
(5) live example
|
1
|
|
3
|
(1) Design with UML
1) ULM diagrams usually used in design phase
2) Running example
(2) Development with UML
1) ULM diagrams used in development
2) Running example
3) How to convert UML diagrams to code
(3) Running example
|
1
|
|
4
|
(1) 23 commonly used design patterns, backward
engineering to convert code of patterns to class diagrams
(2) live example
|
0.5
|
|
5
|
Covert UML diagram to code
1) Low level conversion
Class diagram to code
Statechart diagram to code
Activity diagram to code
2) high level conversionl component diagram to
code
3) tool introduction
|
0.5
|
|
6
|
Development process and use of different diagram
at different development stages
Diagrams at different stages
RUP : Rational Unified Process
Running example
|
0.5
|
|
7
|
(1) testing with UML
1) Introduction to develop systematic, focused,
and automated test suite by UML modeling
2) Frequently used testing design algorithms from UML model
3) how to plug implement under test to the model to produce
test suite
4) running example demonstration
|
1
|
|
总课时
|
5天/30小时 (具体日程待定)
|