Not Signed-In
Which clippings match 'High-level Design' keyword pg.1 of 1
18 APRIL 2014

Design conceptualisation through reverse engineering abstraction

"2.1 Abstraction Levels: An abstraction for a software artifact is a succinct description that suppresses the details that are unimportant to software developer and emphasizes the information that is important. For example, the abstraction provided by high level programming language allows a programmer to construct the algorithms without having to worry about the details of hardware register allocation. Software typically consists of several layers of abstraction built on top of raw hardware; the lowest–level software abstraction is object code, or machine code. Implementation is a common terminology for the lowest level of detail in an abstraction. When abstraction is applied to computer programming, program behavior is emphasized and implementation details are suppressed. The knowledge of a software product at various levels of abstraction undoubtedly underlies operations regarding the maintenance and reuses the existing software components. It is, therefore natural that there is a steadying growing interest in reverse engineering, as a capable of extracting information and documents from a software product to present in higher levels of abstraction than that of code. The abstraction as the process of ignoring certain details in order to simplify the problem and so facilitates the specification, design and implementation of a system to proceed in step–wise fashion. In the context of software maintenance [3], four levels of reverse engineering abstraction are defined: implementation abstraction, structural abstraction, functional abstraction and domain abstraction.

Implementation abstraction is a lowest level of abstraction and at this level the abstraction of the knowledge of the language in which the system is written, the syntax and semantics of language and the hierarchy of system components (program or module tree) rather then data structures and algorithms is abstracted. Structural abstraction level is a further abstraction of system components (program or modules) to extract the program structures, how the components are related and control to each other. Functional abstraction level is a higher abstraction level, it usually achieve by further abstraction of components or sub–components (programs or modules or class) to reveal the relations and logic, which perform certain tasks. Domain Abstraction further abstracts the functions by replacing its algorithmic nature with concepts and specific to the application domain."

(Nadim Asif, 2003)

Nadim Asif (2003). "Reverse Engineering Methodology to Recover the Design Artifacts: A Case Study". International Conference on Software Engineering Research and Practice, SERP '03 Las Vegas, Nevada, USA. Volume 2.


2003abstract representation • abstraction layers • abstractions for problem solving • application domain • appropriately complex representation • conceptual hierarchy • conceptual organisation • conceptualisationdesign abstractiondesign conceptualisationdesign methodologydesign modeldesign problem • domain abstraction • functional abstractionhigh-level design • implementation abstraction • layers of abstraction • problem abstractionproblem-solvingrequirements engineeringreverse engineeringreverse engineering abstraction • Reverse Engineering Abstraction Methodology (REAM) • software abstraction • software artefact • software designsoftware engineeringsoftware modellingstructural abstraction • system components • system processes • systems theory


Simon Perkins
03 JANUARY 2014

Interface functions: conceptually similar operationally different

"I am going to argue that 'media independence' does not just happen by itself. For a technique to work with various data types, programmers have to implement a different method for each data type. Thus, media–independent techniques are general concepts translated into algorithms, which can operate on particular data types. Let us look at some examples.

Consider the omnipresent cut and paste. The algorithm to select a word in a text document is different from the algorithm to select a curve in a vector drawing, or the algorithm to select a part of a continuous tone (i.e. raster) image. In other words, 'cut and paste' is a general concept that is implemented differently in different media software depending on which data type this software is designed to handle. (In Larry Tesler's original implementation of the universal commands concept done at PARC in 1974–5, it only worked for text editing.) Although cut, copy, paste, and a number of similar 'universal commands' are available in all contemporary GUI applications for desktop computers (but not necessarily in mobile phone apps), what they actually do and how they do it is different from application to application.

Search operates in the same way. The algorithm to search for a particular phrase in a text document is different than the algorithm that searches for a particular face in a photo or a video clip. (I am talking here about 'content–based search,' i.e. the type of search which looks for information inside actual images, as opposed to only searching image titles and other metadata the way image search engines such as Google Image Search were doing it in the 2000s.) However, despite these differences the general concept of search is the same: locating any elements of a single media object–or any media objects in a larger set–to match particular user–defined criteria. Thus we can ask the web browser to locate all instances of a particular word in a current web page; we can ask a web search engine to locate all web pages which contain a set of keywords; and we can ask a content–based image search engine to find all images that are similar in composition to an image we provided. ...

Against these historical developments, the innovation of media software clearly stands. They bring a new set of techniques which are implemented to work across all media. Searchability, findability, linkability, multimedia messaging and sharing, editing, view control, zoom and other 'mediaindependent' techniques are viruses that infect everything software touches–and therefore in their importance they can be compared to the basic organizing principles for media and artifacts which were used for thousands of years."

(Lev Manovich, 2013, pp.113–124)

Manovich, L. (2013). "Software Takes Command", Continuum.



1974algorithm • black box model • black box system • black box theory • content-based • content-based search • continuous tone • cut and pastedata typesdesktop computer • findability • general concepts • Google Image Search • GUI applications • high-level designimage identificationimage searchimage search engine • implemented differently • keyword search • Larry Tesler • Lev Manovich • linkability • low-level implementation • media independence • media production • media software • media-independent techniques • media-independent techniques from different implementations • metadata • polymorphism • raster imagesearch algorithmsearch engine • search phrase • search toolsearchabilitytechnology affordances • text document • text editing • text selection • TinEye • universal commands • vector graphicvisual searchweb search engineweb searchingXerox PARC


Simon Perkins

to Folksonomy

Can't access your account?

New to Folksonomy?

Sign-Up or learn more.