Object Oriented Design Process And Design Axioms Pdf
File Name: object oriented design process and design axioms .zip
- Object Oriented Design
- Axiomatic Design
- THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)
Object Oriented Design
The objects discovered during analysis can serve as the framework for design. The class s attributes, methods and associations identified during analysis must be designed for as a data type expressed in the implementation language. New classes can be introduced to store intermediate result during program execution. During design phase we elevate the various object models individuals, organizations, machines, etc into logical entities, some of which might relate more to the computer domain such as UIs or access layer.
Good design simplifies the implementation and maintenance of a project. The design model does not look terribly different from the analysis model. Here we look at the O-O design process and axioms. Thebasicgoalofaxiomaticprocessis: To formalize the design process Assist in establishing a scientific foundation for the O-O design process To provide a fundamental basis for creation of systems. This steps consists of: a Refine attributes 9. Iterate and refine again.
Design the access layer ch i. Create mirror classes. For every business class identified and created, create one access class. Identify access layer class relationships. Simplify classes and their relationships. Simply select one and eliminate the other. Design the view layer classes ch Design the macro level user interface, identifying view layer objects. Design the micro level user interface, consists of: a Design the view layer objects by applying the design axioms and corollaries.
A theorem is a proposition that may not be selfevident but can be proven from accepted axioms. Maintain the independence of components. Axiom 1 deals with relationships between system components such as classes, requirements and software components AXIOM 2: The information axiom. Minimize the information content of the design.
Axiom 2 is concerned with simplicity. Occam s razor ruleofsimplicityintermsofo-o: The best designs usually involves the least complex code but not necessarily the fewest number of classes or methods. Minimizing complexity should be the goal, because that produces the most easily maintained and enhanced application.
In an o-o system, the best way to minimize complexity is to use inheritance and the system s built-in classes and toaddaslittleaspossibletowhatalreadyisthere. The best theory explains the known facts with a minimum amount of complexity and maximum simplicity and straightforwardness.
These corollaries may be more useful in making specific design decisions, than the original axioms in actual situations. They may even be called design rules derived from two basic axioms. Highly cohesive objects can improve coupling because only a minimal amount of essential information need be passed between objects.
Corollary 2: Single Purpose. Each class must have a single, clearly defined purpose which can be describe in few sentences. Corollary 3: Large Number of Simple Classes.
Keeping the classes simple allows reusability. Corollary 4: Strong Mapping. Corollary 5: Standardization. Promote it. Corollary 6: Design with Inheritance. Common behavior methods must be moved to superclasses. The superclass-sub class structure must make logical sense. Couplingisabinaryrelationship:AiscoupledwithB Strong coupling among objects complicates a system.
Thedegreeofcouplingisafunctionof: 1. How complicated the connection is. Whether the connection refers to the object itself or something inside it.
Strong Coupling: Coupling increases becomes stronger with increasing complexity or obscurity of the interface. Low or Weak Coupling: Coupling decreases becomes lower when the connection is to the component interface rather than to an internal component.
Coupling also is lower for data connections than for control connections. Interaction Coupling : Involves the amount and complexity of messages between components. Ex: If a message connection involves more than three parameters eg: in Method X,Y,Z where X,Y,Z are parameters and any change in one will have ripple effect of changes in other.
Inheritance Coupling: It is a form of coupling between super and sub classes. Asubclassiscoupledtoitssuperclassintermsof attributes and methods. Unlike interaction coupling, high inheritance coupling is desirable.
It reflects the single-purposeness of an object. Highly cohesive components can lower coupling as a minimum information of essential information need be passes between components. It helps to design classes which have very specific purpose. TypesofCohesionare: Method Cohesion: Like function cohesion, means that method should carry only one function.
Class Cohesion: It means that all the class s methods and attributes must be highly cohesive, used by internal methods or derived classes methods. Inheritance Cohesion:- Concerned with: Howinterrelatedaretheclasses? Does specialization really portray specialization or it is just something arbitrary?
Itisnecessarytoachievethesystem sgoal. During documentation we should be able to explain the purpose of a class in one or two sentences. If not, then rethink the class and try to subdivide the class into more independent pieces. Keep it simple. Each method to provide one service. It is difficult to foresee all future scenarios of the class to be reused. The less specialized the classes are, more problems can be solved by combining them with less subclasses.
Large and complex classes are too specialized to be reused Software engineering textbooks teach new practitioners to build systems from first principle ; reusability is not promoted or even discussed. The not invented here syndrome and the intellectual challenge of solving problem an interesting problem in one s own unique way mitigates against reusing someone else s software component. Unsuccessful experiences with software reusability in the past have convinced many practitioners and development managers that the concept is not practical.
Most organization provide no reward for reusability; sometimes productivity is measured in terms of new lines of codes written plus a discounted credit e. Using successful design patterns we can recreate. O-O design encourages reusable libraries supported by OOP languages. O-O design emphasizes on reusing concepts like: i.
Encapsulation ii. Modularization e. Polymorphism A strong mapping links classes identified during analysis and classes designed during the design phase. The designer adds details to this model perhaps designing screens, user interaction, and clientserver interaction. The thought process flows so naturally from analyst to design that it may be difficult to tell where analysis ends and design begins. O-O systems grow as you create new applications.
Theknowledgeofexistingclasswillhelpinreuse by inheriting from the existing class libraries. Some shortfall: However class libraries are not always well documented and updated. Class libraries should be easily searched based on user s criteria. Solution: Making a repository of Design Patterns can give some solutions to all these problems. Ideally you will choose inheritance to minimize the amount of program instructions. Avoiding Inheriting Inappropriate Behaviors.
The Initial Inheritance Design Multiple Inheritance Design of the System Structure This is done by creating a small collection of classes that have a single class that is used to access them, the FACADE. A facade would be having limited coding most of the time making calls to lower layers. Advantages: Using the facade to make the interfacing between many modules or classes. Disadvantages: We may loose some functionality contained in the lower level of classes, but this depends on how the facade was designed.
Example: Imagine there is a need to write a program that needs to represent a building as rooms that can be manipulated to interact with objects windows, screens, projector, etc intheroomtochangetheirstate. Object-oriented design. Define Object Oriented Analysis? It should provide a vehicle for programmer to specify actions to be executed. It should.
Axiom: An axiom is a fundamental truth that always is observed to be valid and for which there is no counterexample or exception. The axioms cannot be proven or derived but they cannot be invalidated by counterexamples or exceptions. There are two design axioms applied to object-oriented design. Axiom 1 deals with relationships between system components and Axiom 2 deals with the complexity of design. Axiom 1: The independence axiom. Maintain the independence of components.
THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)
The objects discovered during analysis can serve as the framework for design. The class s attributes, methods and associations identified during analysis must be designed for as a data type expressed in the implementation language. New classes can be introduced to store intermediate result during program execution.
Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design. An object contains encapsulated data and procedures grouped together to represent an entity. The 'object interface' defines how the object can be interacted with. An object-oriented program is described by the interaction of these objects.
Oxford, , Chapter 5, pp. This chapter presents the design of software systems based on axiomatic design AD theory, distinct from specific programming languages or computer algorithms. It provides a framework for software design for all systems, including those that involve only software and those that involve both hardware and software. The framework for software design is based on the same set of principles and methodologies of axiomatic design that were presented for products, processes, and various systems in the preceding chapters. This framework provides a general approach to designing software and software architecture regardless of the specific computer language used for programming.
Jan 16, Introduction to Object Oriented Design?
Движимый страхом, он поволок Сьюзан к лестнице. Через несколько минут включат свет, все двери распахнутся, и в шифровалку ворвется полицейская команда особого назначения. - Мне больно! - задыхаясь, крикнула Сьюзан.
Сэр, как вы знаете, всякий, кто хочет проникнуть в банк данных извне, должен пройти несколько уровней защиты. Фонтейн кивнул. Иерархия допуска в банк данных была тщательно регламентирована; лица с допуском могли войти через Интернет. В зависимости от уровня допуска они попадали в те отсеки банка данных, которые соответствовали сфере их деятельности. - Поскольку мы связаны с Интернетом, - объяснял Джабба, - хакеры, иностранные правительства и акулы Фонда электронных границ кружат вокруг банка данных двадцать четыре часа в сутки, пытаясь проникнуть внутрь.
Не имеет понятия. Рассказ канадца показался ему полным абсурдом, и он подумал, что старик еще не отошел от шока или страдает слабоумием. Тогда он посадил его на заднее сиденье своего мотоцикла, чтобы отвезти в гостиницу, где тот остановился.
Справедливость восторжествовала, как в дешевой пьесе. - Успокойтесь, Джабба, - приказал директор, - и доложите ситуацию. Насколько опасен вирус.
Какой-то турист. - Вы уверены. - Туризм - моя профессия! - отрезал Клушар. - Я их сразу узнаю.
Оглядывая свой роскошно меблированный кабинет, он думал о том, что достиг потолка в структуре АНБ.