Introduction to Abstraction
Abstraction is the intellectual tool that allows to deal with concepts apart from particular instances of those concepts. Wasserman provides a useful definition for it.
The psychological notion of abstraction permits one to concentrate on a problem at some level of generalization without regard to irrelevant low level details, use or abstraction also permits one to work with concepts and terms that are familiar in the problem environment without having to transform them to an unfamiliar structure.
When a modular solution to a problem is considered many levels opf abstraction can be posed. The levels of abstraction help us to understand the problem addressed by the system and the solution proposed by the design. At the highest level of abstraction a solution s stated in broad terms using the language of the problem environment . at lower levels of abstraction amore procedure orientation is taken. By examining the levels from the top and workings down the more abstract problem can be handled first and their solutions carried through as the detailed description s generated. In a sense, the more abstract top levels hide the details of the functional or data components form us . by combing modular components with several levels of abstraction, the highest level components give the opportunity to view the solution s a whole hiding the details .
As more detail about a portion of the system is needed we move to lower levels of abstraction. Each phase in the software engineering process is a refinement in the level of abstraction of the software solution. During requirements definition, abstraction permits separation of the conceptual aspects of a system from the implementation details.
During software design, abstraction first organize the functional characteristics data streams, and data store then structural consideration as are addressed prior to consideration of algorithmic details. As we move from preliminary to detail design, the level of abstraction is reduced. During detailed design, the architectural structure is refined into implementation details. Design is thus a process of proceeding from abstract consider actions to concrete representations.
Finally, the lowest level of abstraction comes when source code is generated. There are three widely used abstraction mechanisms in software design are functional abstraction, data abstraction and control abstraction. These mechanisms allow us to control the complexity of the design process by systematically proceeding from the abstract to the concrete. Functional abstraction involves the use of parameterized subprograms. The ability to parameterize a subprogram and to bind different parameter values on different invocations to the subprogram is a powerful abstraction mechanism. Data abstraction involves specifying a data type or a data object by specifying legal operations on objects. Control abstraction is the third commonly used abstraction mechanisms in software design. Control abstraction in software design .control abstraction is used to state a desired affect without stating exact mechanism of control. Control abstraction implies a program control mechanisms without specifying internal details. An example of a control abstraction is the synchronization semaphore, used to coordinate activities in an operating system. At the architectural design level, control abstraction permits specification of sequential subprograms, execution handlers, and coroutines and concurrent program units without concern for the exact details of implementation.
Latest technology based Software Engineering Online Tutoring Assistance
Tutors, at the www.tutorsglobe.com, take pledge to provide full satisfaction and assurance in Abstraction homework help via online tutoring. Students are getting 100% satisfaction by online tutors across the globe. Here you can get homework help for Abstraction, project ideas and tutorials. We provide email based Abstraction homework help. You can join us to ask queries 24x7 with live, experienced and qualified online tutors specialized in Abstraction. Through Online Tutoring, you would be able to complete your homework or assignments at your home. Tutors at the TutorsGlobe are committed to provide the best quality online tutoring assistance for Software Engineering homework help and assignment help services. They use their experience, as they have solved thousands of the software engineering assignments, which may help you to solve your complex issues of Abstraction. TutorsGlobe assure for the best quality compliance to your homework. Compromise with quality is not in our dictionary. If we feel that we are not able to provide the homework help as per the deadline or given instruction by the student, we refund the money of the student without any delay.