Scientific Software Development Design Meeting
*This on-site training is for ORNL badged employees only.*
In this training, you will learn dozens of proven tips, techniques, and principles to produce clean, industrial strength software design and code. Capturing the body of knowledge available from research, academia, and everyday commercial practice, this seminar synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. This seminar explains how to shorten development time, reduce errors, and make debugging easier. This seminar includes the following major topics:
Design and code complexity
- The importance of complexity
- The different kinds of complexity
- How you can measure and manage complexity
Data structure design
- Why data structure design is critical
- Different data structuring paradigms
- Data normalization and denormalization
Code Quality
- The importance of code quality
- Best practices for naming
- Critical characteristics of effective comments
- An introduction to refactoring
- An introduction to code-level optimization
- Error processing and notification principles
- How to use assertions to your advantage
- Principles of high quality routines and code formatting
Design Patterns
- What design patterns are and why they are important
- Model-view-controller
- Adapter
- Façade
- Bridge
- Strategy
- Composite
- Observer
Non-functional requirements “-ilities”
- An introduction to ISO/IEC 25010 Software Quality Model
- Beyond ISO/IEC 25010
Design Documentation
- Desirable properties of design documentation
- IEEE STD 1016-2009 Recommended Practice for Software Design Descriptions
- Agile design documentation
Benefits / What you’ll learn:
- How to measure and manage design and code complexity along with the fundamental design principles that lead to high-quality software that has low implementation efforts
- How to document designs using either traditional or agile approaches
Who Should Attend
This seminar will benefit programmers, designers, technical leads, and anyone who wants to learn best software design and coding practices.
Attendees should have a basic understanding of object oriented software and be able to read Java, C++, or C# code.
Instructor: Steve Tockey, Construx
[tab: Agenda] [tab: Registration]