Design Fundamentals - Abstraction

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.