Software engineers must develop systems within the specified budget, schedule, and in a specific or systematic and organised approach to their work. A high-quality software must be produced.
There are two reasons why software engineering is important:
• It is cheap to use software engineering methods in the long run, since most individuals and society rely on advanced software systems.
• Reliable, efficient, trustworthy and economically sound systems must be produced by software engineers. If good software engineering practices are not followed, this could lead to higher costs for testing the software, quality assurance (meeting standards) and long term maintenance.
Software engineering makes use of software processes. According to Sommerville…show more content… c) Software validation – it is a process of detecting errors to ensure that the system meets the customer’s needs or expectations and requirements. The Verification and Validation (V&V) process is used.
d) Software evolution – is the process of making changes to a software to reflect customer and market requirements.
System engineering and computer science are two main aspects related to software engineering. System engineering is concerned with all aspects of the development and evolution of complex systems where software plays a major role (Sommerville, 2016:23). System engineers need to specify the system, define its overall architecture and then integrate different parts to create a final system.
According to Sommerville (2016:23), computer science deals with theories and methods that are used in computers and software systems, whereas software engineering is concerned with practical problems of producing a software. Software needs to have a thorough understanding of computer science, so as to apply theories and methods during software engineering. Computer science is mostly used when developing small programs.
Essential attributes of a…show more content… Methods, tools and techniques used to develop software depends on the vendor or organisation developing the software, type of software to be developed and people involved in the development process. The best practice to determine the most suitable software engineering methods, tools and techniques, is to understand the type of application being developed. The following are types of applications:
a) Stand-alone applications - these are application systems which operate on a desktop or personal computers or mobile devices. In other words, they are independent since they include all the necessary functionalities. Also, stand-alone applications don’t need a network. Examples of such applications can be travel applications, photo manipulation software, office applications and so