Unified Modeling Language (UML)
Kurs Dili: İngilizce
Süre: 5 gün
Enterprise application developers today must be able to build, evolve and maintain very complex software solutions. Component-based technologies, such as the Object Oriented software development paradigm, are ideally suited to the development of this type of software. This course provides the techniques necessary to build high quality object-oriented software systems that can fulfill your requirements, can scale in both complexity and capacity, and be more easily understood, extended, and maintained.
Much of the success of this paradigm is due to work of Booch, Jacobson and Rhumbaugh who developed the industry standard UML (Unified Modeling Language) and the Unified (initially named Objectory) Process, both based on "best practices" that have been found to work. These tools provide a framework for the analysis, design, programming and testing of software applications. Using the framework provided by UML and the Unified process, the course teaches the student the Object Oriented concepts plus analysis and guidelines for modeling complex problems. Models built using these techniques have a very high success rate when turned into working code.
The course includes coverage of the most effective techniques in use today, such as Use Case analysis, static and dynamic system modeling, using UML to document analysis artifacts, and much more. The focus of the course is to give a practical approach to producing high quality object-oriented software analysis and to provide the knowledge and experience necessary to avoid the most common risks associated with building production systems.
Kurs İçeriği
Session: Introduction to Object Oriented (OO) Technologies
Lesson: Introduction to Service Orientation
- Understand motivations for OO
- Place OO into a historical context
- Understand where OO differs from other technologies
Lesson: Object Orientation Introduced
- Understand the OO terminology
- Understand the concept of abstraction
- Understand what Objects are and what they are not
- Understand the concept of behavior
- Understand the concept of encapsulation
- Understand the role of state
- Understand how an Object exposes behavior
- Understand the relation between Classes and Objects
- Understand characteristics of a Class
- Understand the relation between Class, Object and instances
- Understand Inheritance and overloading
- Understand the need for scope in relation to encapsulation
Session: OO Software Development (SD)
Lesson: Introduction to OO as a Software Development Technique
- Examine the gap in Software Development between the model and the domain experts (the source).
- Examine the gap in Software Development between the model and the developers (the goal).
- Understand the role of modeling to bridge these gaps
- Recognize the area of tension between these two gaps.
- List other reasons for modeling
- Explain what a Software development Method is
- Understand the role of terminology
- Understand the role of process
- Understand the role of a modeling language
- Understand the role of an Architecture
- Understand the role of Techniques and Best practices
Lesson: Brief Introduction to UML
- Position UML in Software Development
- Place UML 2.0 within a historical context
- Relation and combination of UML, MOF and XMI
- List the UML 2.0 Diagrams
- Understand the concepts of packages
- Understand the importance of traceability
Lesson: Object Oriented Analyses and Design
- Understand the techniques that most methodologies have in common
- Understand the objective of Analysis
- Understand the relation with Business Modeling
- Understand the objective of Design
- Understand different design sub processes
- Understand the role of construction and its relation to the model
- Understand Prototyping
- Understand "Design in Code" practices
- Understand the role and importance of Refactoring
- Correlate UML models and SD phases and the role a model could play in that phase
Session: OO Analysis with UML
Lesson: Requirements Capture
- Understand the process of requirements capture
- Understand how to model requirements
- List different types of requirements
- Understand the relation between UML and requirements
- Understand how to model functional and non-functional requirements
- Understand the relation with the business model
- Understand the role of Use cases
Lesson: Use Case Modeling
- Introduce use cases in more detail.
- Understand the Use case Diagram
- Introduce the concept of a Use case, Actor and their Relationships
- Explain a technique of Use case modeling
- Introduce techniques of identifying Actors
- Introduce techniques of identifying Use cases
- Understand the characteristics of a "good" Use case
- List guidelines
- Understand Use case relationships: extends and includes
- understand how Use cases complement the Requirements
Lesson: Documenting Use Cases with Scenarios
- Understand scenarios
- Understand the difference between primary and secondary scenarios
- Understand what scenarios describe
Lesson: Capturing System Behaviour
- Learn how to model system behaviour
- Learn the semantics of UML state diagrams
- Learn the semantics of UML activity diagrams
- Learn how activity and state diagrams aid within the analysis phase
- Appreciate system sequence diagrams
- Appreciate how system contracts can aid in providing closure on requirements
Lesson: Elaborate the Use Case Model
- Briefly introduce the technique of Conceptual Modeling
- Understand the Objective of the Conceptual Modeling
- Create a conceptual model
- Learn to distinguish good and bad attributes
Appendix: Extending UML (2.0)
Lesson: Introduction
- Understand why you need to extend UML.
- Understand how and why the designers anticipated this need.
- Understand the two ways of extending UML
- Understand the importance of extending UML when designing Frameworks, defining architectures or when defining patterns
Lesson: Overview of Extension mechanism
- Extending UML using tagged values
- Extending UML using Stereotypes
- List common stereotypes
- Extending UML using Constraints
- Brief introduction to OCL (Object Constraint Language)
- Reinforce how UML is defined using a meta-metamodel
- Understand the Profile package in UML
- List existing profiles
Appendix: Model Driven Architecture Overview
Lesson: Overview of MDA
- Understand why MDA is a logical step in software development.
- Understand the basic concepts of MDA.
- Understand how UML and MDA relate.
- Understand how model transformations can be realized.
Lesson: MDA Applied in an Actual Design
- Demonstrate how a tool can support a MDA process
- Demonstrate creation of the CIM, PIM and PSM models
- Demonstrate round trip code generation
- Demonstrate how models stay synchronized
Appendix: Introduction to Frameworks
Lesson: Introduction to Frameworks
- Understand why we use frameworks
- Describe the basic characteristics of frameworks
- Understand how frameworks relate to patterns and other software artifacts