What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant.
Apart from the challenges of heterogeneity, business and social change, and trust and security, identify other problems and challenges that software engineering is likely to face in the 21st century (Hint: think about the environment).