Object-oriented software development is a contemporary approach to the design of reliable and robust software. The complexity of the implementation of software system is a combination of the complexity of the representations of information and the complexity of the algorithms that manipulate the representations. Data structure is the study of methods of representing objects, the safe, reliable encapsulation of structure, the development of algorithms that use these representations, and the measurement of both the time and space complexity of the resulting systems. The object-oriented approach emphasizes the role of objects, along with their attributes and operates, that form the nucleus of the solution.
From the point of view of deciding which data structure should represent that attributes of objects in a specific class, the emphasis that the object -oriented approach places on abstraction is very important to the software development process. Abstraction means hiding unnecessary details. Procedural abstraction, or algorithmic abstraction, is the hiding of algorithmic details, which allows the algorithm to be seen or described, at various levels of detail. Building subprograms so that the names of the subprograms describe what the subprograms do and the code inside subprograms shows how the processes are accomplished is an illustration of abstraction in action.
Similarly, data abstraction is the hiding of representational details. An obvious example of this is the building of data types by combining together other data types, each of which describes a piece, or attribute, of a more complex object type. An object-oriented approach to data structures brings together both data abstraction and procedural abstraction through the packaging of the representations of classes of objects.
Once an appropriate abstraction is selected, there may be several choices for representing the data structure. In many cases there is at least one static representation and at least one dynamic representation. The typical tradeoff between static and dynamic representations is between a bounded or unbounded representation versus the added storage and time requirements associated with some unbounded representations.
After an abstraction and representation are chosen, there are competing methods to encapsulate data structures. The choice of an encapsulation is another tradeoff, between how the structure is made available to the user and how the user's instantiating objects may be manipulated by the package. The encapsulations have an effect on the integrity of the representation, and time and space requirements associated with the encapsulation. Once specified, one or more competing methods of representation may be carried out, and the structure, its representations and its encapsulation may be evaluated relative to the problem being solved. The time and space requirements of each method must be measured against system requirements and constraints.
Object-Oriented programming differs from procedural programming because it uses objects as data structure. The structured data and its related operations could be encapsulated in a single object which may be reused and easily upgraded, augmented, replaced. So it directly reduces the cost of maintenance and the timing and extendibility of new system.
Most object oriented systems are hybrid systems; they reduce the messaging overhead by using traditional programming at the lowest levels and object-oriented programming for the higher levels. Hybrid systems can approach the machine efficiency achieved by traditional programs.
Objects can be viewed as reusable components, and once the programmer has developed a library of these components, he can minimize the amount of new coding required. One user envisions a commercial library of objects which could be purchased by programmers and reused for various applications. But creating a library is no ****** task because the integrity of the original software design is critical. Reusability can be a mixed blessing for users, too, as a programmer has to be able to find the object he needs. But if productivity is your aim, reusability is worth the risks.
【New Words】
oriented
导向的
robust
精力充沛的
contemporary
当代的,同时代的
representation
表现,陈述,扮演
algorithm
运算法则
encapsulation
包装,封装
subprogram
子程序,辅助程序
hybrid
混合的,混血儿
4.3 Database Management Systems and Management Information Systems
You know that a database is a collection of logically related data elements that may be structured in various ways to meet the multiple processing and retrieval needs of organizations and individuals. There's nothing new about databases early ones were chiseled in stone, penned on scrolls, and written on index cards. But now databases are commonly recorded on magnetically media, and computer programs are required to perform the necessary storage and retrieval operations.
You'll see in the following pages that complex data relationships and linkages may be found in all but the ******st databases. The system software package that handles the difficult tasks associated with creating, accessing, and maintaining database records is called a database management system (DBMS). The programs in a DBMS package establish an interface between the database itself and the users of the database. (These users may be applications programmers, managers and others with information needs, and various OS programs.)