the application of scientific knowledge to the development and maintenance of software systems
the systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software. methodologies, techniques and tools.
is the application of engineering to the design, development, implementation, testing and maintenance of software in a systematic method. (relationship between computer science and software engineering)