1. Considerations
1.1. Testing
1.2. Correctness
1.2.1. Concurrency
1.3. Consistency
1.4. Interaction
1.4.1. Synchronous
1.4.2. Asynchronous
1.4.3. Guidance
1.4.3.1. Wizard
1.4.3.2. Direct Manipulation
1.4.3.2.1. Instant update
1.4.3.2.2. Collaboration
1.4.3.3. Hints
1.4.3.3.1. Help
1.4.3.3.2. Enabled
1.4.3.3.3. Visible
1.4.3.3.4. Mandatory
1.4.3.3.5. Tooltip
1.4.3.3.6. Valid
1.4.3.3.7. Errors
1.4.3.4. Context
1.4.3.4.1. Breadcrumb
1.4.3.4.2. Bookmark
1.4.3.4.3. Back/forward
1.5. Performance
1.5.1. Lazy Loading
1.5.2. Resource utilization
1.5.3. Latency, throughput
1.6. Distribution
1.6.1. Remoting
1.6.2. Channels
1.6.2.1. Desktop
1.6.2.2. Web
1.6.2.3. Mobile
1.6.2.4. Embedded
1.7. I18N
1.7.1. Conversion
1.8. Validation
1.9. Mental model
1.10. Privacy
2. Knowledge
2.1. Technology
2.1.1. Tookits
2.1.2. Frameworks
2.1.3. Libraries
2.2. Standards
2.2.1. Patterns
2.2.1.1. MVC (?)
2.2.1.2. PresModel
2.2.1.3. MVP
2.2.1.4. MVVM
2.2.1.5. Passive View
2.2.1.6. Event Bus
2.2.2. MS UI guide
2.3. Graphic Design
2.3.1. Composition, layout
2.3.2. Colors
2.3.3. Typography
2.3.4. Psychology
2.3.5. Trends
2.3.6. Resources
2.4. Tools
2.4.1. IDE, RAD
2.4.2. Wireframe, mockup
2.4.3. Debugging
2.4.4. Visual builder
2.4.5. Painting, sketching
3. SW Engineering
3.1. Separation
3.1.1. Content
3.1.2. Visualization
3.1.3. Interaction
3.1.4. Workflow
3.2. Dependencies
3.2.1. Syntatic
3.2.2. Semantic