









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The concepts of abstraction and encapsulation in computer science. Abstraction refers to recognizing and focusing on essential characteristics while ignoring irrelevant details. Encapsulation means hiding implementation details and providing a well-defined interface. different types of abstraction, their importance in software development, and the relationship between abstraction and modeling. It also introduces Object-Oriented Programming (OOP) and Abstract Data Types (ADTs).
Typology: Essays (high school)
Uploaded on 03/03/2022
8 documents
1 / 16
This page cannot be seen from the preview
Don't miss anything!










Two of the most important types of abstraction are the following:
Abstraction - recognizing and focusing on the important characteristics of a situation or object, ignoring all the unessential details. E.g. a roadmap represents those features of a given geographic area relevant to someone trying to navigate with the map, major roads and places of interest, obstacles such as major bodies of water, and so on. A roadmap can’t include every building, tree, street sign, etc. that physically exists in the real world. Abstraction is a general concept in computer science and means disregarding the details of an implementation and focusing instead on the ideal being represented are hidden (i.e. encapsulated), however the object is used through a well-defined interface. Data abstraction leads to an abstract data type (ADT). ADTs are objects whose implementation is encapsulated. For example, when you use a floating point number in a program you don’t really care exactly how it is represented inside the computer, provided it behaves in a known manner. ADTs should be able to be used independent of their implementation meaning that even if the implementation changes the ADT can be used without modification. Most people would be unhappy if they took their car to the garage for a service and afterwards the mechanic said "She’s running lovely now, but you’ll have to use the pedals in reverse". If this were the case the car would not be an ADT. However, the reality is that we can take a car to a garage for a major overhaul (which represents a change of implementation) and still drive it in exactly the same way afterwards.
When pinning down the requirements for an information systems development project, we typically start by gathering details about the real-world situation on which the system is to be based. These details are usually a combination of Those that are explicitly offered to us as we interview the intended users of the system, and Those that we otherwise observe We must make a judgment call as to which of these details are relevant to the system’s ultimate purpose. This is essential, because we can’t automate them all! To include too much detail is to overly complicate the resultant system, making it that much more difficult to design, program, test, debug, document, maintain, and extend in the future. Modelling and abstraction go hand in hand because a model is essentially a physical or graphical portrayal of an abstraction; before we can model something effectively, we must have determined the essential details of the subject to be modelled
Making Classes: Creating, extending or reusing abstract data types. Making Objects interact: Creating objects from abstract data types and defining their relationships. 7
Functional decomposition (Top-down) The whole system is characterized by a single function, and then the function is decomposed into a set of functions in a process of stepwise refinement. Functional composition (Bottom-up) You can have different components of functions such as that from a function library You can compose them into a module with a more significant function
Also known as top-down development Widely deemed to be a “good thing” Regard thing to be developed as a hierarchy State top level, and decomposing into smaller functions. Decomposition continues until code level. Modules with well-defined semantics that can be directly implemented Data plays a secondary role Does not necessarily reflect the states of abstraction in the application.
A law system A cultural system An educational system An economic system An Information system A computer system
ICON College is developed by the interactions among: students lecturers staff Tesco staff whitechapel Natwest bank
Object-Orientation is one of the computational thinking methodologies. Object-Orientation is a kind of design methodology Objects are the building blocks of the program(interface object(editor, menu, file, etc), data managing object(db), etc.). Objects represent real-world abstractions within the application.
induction: objects - > a class
and deduction: a class - >objects
A process of generalization by reducing the information content of a concept or an observable phenomenon, typically in order to retain only information which is relevant for a particular purpose. Try to understand the problem to separate necessary from unnecessary details: You try to obtain your own abstract view, or model, of the problem. This process of modeling is called abstraction.
Division into parts takes a complex system, and divides into component parts, which can then be considered in isolation. Characterized by sentences that have the words ``has-a'' A car has-a engine, and has-a transmission A bicycle has-a wheel A window has-a menu bar Allows us to drop down a level of complexity when we consider the component in isolation.
Is-a abstraction takes a complex system, and views it as an instance of a more general abstraction. Characterized by sentences that have the words ``is-a'' A car is a wheeled vehicle, which is-a means of transportation A bicycle is-a wheeled vehicle A pack horse is-a means of transportation Allows us to categorize artifacts and information and make it applicable to many different situations.
A model is an abstraction or conceptual object used in the creation of a predictive formula or a solution. A model defines an abstract view to the problem and focuses only on problem related stuff and that you try to define properties: the data which are affected; the operations which are identified; ADT is a kind of Model.
The data structure can only be (3)^ accessed with defined operations. This set of operations is called interface and is exported by the entity. An entity with the properties just described is called an abstract data type (ADT).
Abstract Data Structure
ADT is characterized by the following properties: 1. It exports a type. 2. It exports a set of operations. This set is called interface. 3. Operations of the interface are the only access mechanisms to the type's data structure. 4. Axioms and preconditions define the application domain of the type.
Type List. The interface to instances of type List is defined by the interface definition file. Operations: insert, get, append, delete,search,…
Combine the data and the operations Enclosing of both variables and functions Keep details of the data and operations from the users of the ADT Once you have created an ADT for complex numbers, say Complex, you can use it in the same way like well- known data types such as integers.
Allows Modularity Controlled access to data Separates implementation from interface It extends the built-in types