Software Components

Software Components:

Computer software is information that exists in two basic forms: non-machine-executable components and machine-executable components.

Software components are created through a series of translations that map customer requirements to machine-executable code. A requirements model (or prototype) is translated into a design. The software design is translated into a language form that specifies software data structure, procedural attributes, and related requirements. The language form is processed by a translator that converts it into machine-executable instructions.

Reusability is an important characteristic of a high-quality software component. That is, the component should be designed and implemented so that it can be reused in many different programs. In the 1960s, we built scientific subroutine libraries that were reusable in a broad array of engineering and scientific applications. These subroutine libraries reused well-defined algorithms in an effective manner but had a limited domain of application. Today, we have extended our view of reuse to encompass not only algorithms but also data structures. A reusable component of the 1960s encapsulates both data and processing in a single package (often called a class or object), enabling the software engineer to create new applications from reusable parts. For example, today’s interactive interfaces are often built using reusable components that enable the creation of graphics windows, pull-down menus, and a wide variety of interaction mechanisms. The data structures and processing details required to build the interface are contained within a library of reusable components for interface construction.

Software components are built using a programming language that has a limited vocabulary, an explicitly defined grammar, and well-formed rules of syntax and semantics. These attributes are essential for machine translation. The language forms in use today are machine-level languages, high-order languages, and nonprocedural languages.

Machine-level language is a symbolic representation of the central processing unit (CPU) instruction set. When a good software developer produces a maintainable, well-documented program, machine-level language can make extremely efficient use of memory and “optimize” program execution speed. When a program is poorly designed and has little documentation, machine language is a nightmare.

High-order languages allow the software developer and the program to be machine-independent. When a more sophisticated translator is used, the vocabulary, grammar, syntax, and semantics of a high-order language can be much more sophisticated than those of machine-level language. In fact, high-order language compilers and interpreters produce machine-level language. In fact, high-order language compilers and interpreters produce machine-level language as output.

Although hundreds of programming languages are in use today, fewer than 10 high-order programming languages are widely used in the industry. Modern programming languages such as BASIC, FORTRAN, PASCAL, COBOL, C, C#, C++,  Java, Python, etc.

Specialized languages (designed for specific application domains), such as APL, LISP, OPS5, Prolog, and descriptive languages for artificial neural networks are gaining wider acceptance as new application approaches move from the laboratory to practical use.

Machine code, assembly (machine-level) languages, and high-order programming languages are often referred to as the “first three generations” of computer languages. With any of these languages, the programmer must be concerned both with the specification of the information structure and the control of the program itself. Hence, languages in the first three generations are termed procedural languages.

A group of fourth-generation or non-procedural languages have been introduced. Rather than requiring the software developer to specify procedural details, the non-procedural languages implies a program by “specifying the desired result, rather than specifying action required to achieve that result.” Support software translates the specification of the result into a machine-executable program. Fourth-generation languages have been used in database applications and other business data processing areas.

The fifth generation languages are also known as natural languages and it is of two types- the first is ordinary human languages like English, Spanish, etc. and the second is programming languages that use human language to provide people a more natural connection with computers. Natural languages are still in the developmental stages, but they promise to have profound effects, particularly in the areas of artificial intelligence (AI) and expert systems. AI (Artificial Intelligence) is a group of related technologies that attempt to develop machines capable of emulating human-like qualities, such as learning, reasoning, communicating, seeing, and hearing.

Python User-Defined Function
Modules in Python
Math Modules in Python
Python Random Module
Python Datetime Module
Create a Random Number Guessing Game in Python
Rock Paper Scissors Game in Python (Using Random Module)
Python (programming language)– Wikipedia

Comments (No)

Leave a Reply