1. Lời giới thiệu Phân tích và thiết kế hướng đối tượng là đặc điểm chính trong phương pháp đã được kiểm chứng trong công nghiệp để phát triển các hệ thống, các chương trình có thể kiểm tra được, các module một cách đáng tin cậy. Sử dụng nhất quán các kỹ thuật hướng đối tượng sẽ giúp cho vòng đời phát triển ngắn hơn, tăng cường sức sản xuất và giảm thiểu được chi phí giá thành bảo dưỡng hệ thống. Khóa học này cung cấp các kỹ năng thực hành trong các phương pháp phân tích và thiết kế hướng đối tượng mới nhất. Thông qua khóa học các học viên phát triển được các thiết kế thực để sử dụng các ngôn ngữ truyền thống và ngôn ngữ hướng đối tượng. 2. Đối tượng Khóa học này rất phù hợp cho các học viên là những người có liên quan đến phát triển phần mềm hướng đối tượng 3. Yêu cầu trước khi tham gia khoá học Để hoàn thành tốt khoá học, học viên cần phải: - Có kiến thức ngôn ngữ lập trình hướng đối tượng
4. Các kỹ năng thu được Sau khi hoàn thành khoá học, học viên có thể: - Xây dựng thủ tục về các mô hình và các thiết kế đối tượng cụ thể từ những yêu cầu của hệ thống
- Khai thác tối đa các ý tưởng về mô hình được cung cấp bởi UML
- Thiết kế các phần mềm phân tích và ghi thành văn bản sử dụng Unified Process
- Xác định các use cases và mở rộng trong thiết kế hành vi
- Áp dụng các mẫu thiết kế đã được kiểm chứng để tinh chỉnh các mô hình phân tích và thiết kế
- Xây dựng các thiết kế có thể thử và ghép nối được
5. Thời lượng: 30 giờ Nội dung khóa học INTRODUCTION AND OVERVIEW Using UML notation - Use case diagrams
- Object models
- Packages and subsystems
- Interaction diagrams
Review of object-oriented concepts - Classes, objects and attributes
- Encapsulation and interfaces
- Associations and multiplicity
- Inheritance and aggregation
- Polymorphism and collections
- Upcoming features of UML 2.0
The Unified Process - The object-oriented software life cycle
- Use case-driven and architecture-centric features
- Iterative and incremental development
- Performing requirements analysis
PRODUCING REQUIREMENTS MODELS Capturing system behavior in use cases - Finding primary and secondary use cases
- Include and Extend dependencies
- Use case generalization relationships
- Refining use cases: rapid prototypes
Creating the domain object model - Building a class description database
- Finding analysis classes
- Managing analysis complexity with packages and subsystems
ESTABLISHING THE OBJECT MODEL Refining classes and associations - Analysis model vs. design model classes
- Categorizing classes: entity, boundary and control
- Modeling associations and collections
- Preserving referential integrity
Achieving reusability - Isolating reusable base classes
- Reuse through delegation
- Identifying and using service packages
- Improving reuse with design patterns
GENERATING THE BEHAVIORAL MODEL Use case realization - Sequence diagrams, object lifelines and message types
- Modeling collections multiobjects
- Refining sequence diagrams
- Tying object and behavioral models with collaboration diagrams
Implementing memory in objects using state machines - States, events and actions
- Nested machines and concurrency
- Converting sequence diagrams into communicating state machines
- Modifying the object model to facilitate states
Analyzing object behavior - Modeling methods with activity diagrams
- Swimlanes, concurrency and synchronization
- Distributing methods across hierarchies with polymorphism, propagation and delegation
- Improving robustness using constraints, dependencies and the Object Constraint Language (OCL)
OBJECT-ORIENTED DESIGN Design at the object level - Designing and evaluating methods
- Synchronizing dependent attributes
- Normalizing classes with dependent data
System design - Partitioning systems for deployment across processors, tasks and threads
- Persistence: storing objects to disks and databases
- Mapping designs to concurrent systems
Component design - Distributing applications with Web services
- Advantages of components with simple classes
- Deploying applications using components
DESIGN PATTERNS Purposes of design patterns - Improving architecture, analysis models
- Achieving reuse, robustness and flexibility
Applying design patterns - Achieving user interface independence
- Patterns for persistence
- Enabling product evolution
- Improving dynamic behavior
- Creational, behavioral and structural patterns
Combining and varying patterns |