Software engineering involves developing computer programs and documentation. It addresses both technical and non-technical aspects of software development. Key activities include specification, development, validation, and evolution. Methods provide guidance on processes, notations, models, and design. Software engineers have responsibilities beyond technical skills, including maintaining integrity and protecting intellectual property. Professional codes of ethics establish standards for competent and ethical conduct.