This is a printer-friendly version. It omits exercises, optional topics (i.e., four-star topics), and other extra content such as learning outcomes.
           
          
            
          
          
            
              What 
                      
                    
              
                
                  
                    Design in the creative process of transforming the problem into a solution; the solution is also called design. -- 📖 Software Engineering Theory and Practice, Shari Lawrence; Atlee, Joanne M. Pfleeger
                  
                  Software design has two main aspects:
                  
                    - Product/external design: designing the external behavior of the product to meet the users' requirements. This is usually done by product designers with the input from business analysts, user experience experts, user representatives, etc.
 
                    - Implementation/internal design: designing how the product will be implemented to meet the required external behavior. This is usually done by software architects and software engineers.