As a software developer give examples of where you use abstraction in your daily job

ion in software development due: In software development, ions are intended to reduce or hide the underlying complexities in the case where the underlying details are not hidden. In software architectures, abstractions are used hand in hand with idioms in the description of system components, nature of interactions among the components and the patterns guiding the composition of components into systems. Abstractions are usually supported by programming languages and tools. Assuming I am a software developer, I usually make use of abstractions in capturing packaging and interaction issues as well as in computational functionality.
Due to the constant increasing complexity in the systems we use, reliance on abstractions increase in the software development industry. Each of these abstractions attempts to hide the complexity, allowing me as a software developer to create a code that can cater for all the variations in complexity that is required in the modern computing. To create reliable software, there is a greater need for me to learn and understand many of the abstractions underlying details. Abstraction also finds a lot of applications in software reuse. In this case, abstraction plays a central role. For effective software artifacts reuse, concise and expressive abstractions are essential. Higher levels abstractions in the reuse technique reduce the effort required to go from the initial concept of a software system to representations in the reuse technique (Medvidovic & Taylor 2000: 70-93).
During the verification of software, abstraction is highly used. This allows debugging of a specific software component. Simulation and validation of the software component is done at each abstraction level, resulting in abstraction of different components of the target hardware architecture. The abstract architecture model hides details of the underlying implementation of the hardware platform, while ensuring a sufficient level of control that the software code can be validated in terms of performance, efficiency, and reliable functionality (Popovich, 2010: 17).
How abstraction helps in software development
Abstraction is a powerful heuristic. It has allowed development of systems that implement and integrate abstraction in problem-solving process. Development of systems with abstraction helps to improve on the efficiency of the systems. On the other hand, from the basic understanding that abstraction hides the complexity underlying the systems, we deduce that it reduces the search space. The concept of data abstraction helps software developers in the integration of both structural and behavioral properties of databases. Development of database concepts requires considerations on the applicability of tools and technique in programming languages so as to develop a proper database. In addition, abstraction helps developers to model algebraic and software objects. Algebraic methodology provides a mathematical foundation for software development technology.
Abstractions also help developers because they help in providing a test bed for experiments having a variety of system construction mechanisms. Abstract interactions such as data flow and scheduling allow expression and checking of appropriate compatibility restrictions and configuration constraints (Medvidovic & Taylor 2000: 70-93).
Appropriate abstractions, therefore, have to be chosen in software development. Abstraction removes details from the view of the system but not from the system. To prevent the loss of the essence of software design calls for use of modern techniques. Abstraction is a useful tool that reduces the complexity of a software design, perceived by the human viewing. Abstraction reduces complexity by reducing the number of elements in the design. Correct abstraction simplifies the design and at the same time makes it less complicated.
Bibliography
MEDVIDOVIC, N., & TAYLOR, R. N. (2000). A classification and comparison framework for
software architecture description languages. Software Engineering, IEEE Transactions on, 26(1), 70-93.
POPOVICH, KATALIN. Embedded Software Design and Programming of Multiprocessor
System-on-Chip: Simulink and System C Case Studies. New York: Springer, 2010. Internet resource