OOMD
Unit-3Design Methodology Q1) What do you mean by designing algorithms?A1) Designing Algorithm For each operation obtained from the DFD, an algorithm is designed. The DFD only specifies operations, what operation does whereas an algorithm specifies how it is to be done. The data store or an actor here is treated as a target of the process. The object designer must do the following tasks to design an algorithm for the operation ● Select a suitable algorithm.There are many criteria depending on which the algorithm can be selected. The criteria can be computational complexity, ease of implementation and flexibility. Computational complexity: calculate the computational complexity of the algorithms and choose the algorithm with lesser computational complexity, e.g. merge sort can be chosen over bubble sort as the complexity of merge sort is less as compared to the bubble sort. Ease of implementation: if the operation is non critical then it can be implemented in a simple algorithm that can result in improved efficiency. Flexibility: Most of the algorithms are expected to be extended in future. So the object designer must design the algorithm with flexibility to extend or to have a change in future without affecting the efficiency of the algorithm. ● Select a suitable data structureWhile designing an algorithm data structure is required. We need to choose suitable data structures for the algorithm like trees, graphs, linked list, stack, array, strings etc. Choosing the appropriate data structure increases the efficiency of the algorithm. Therefore, the object designer must choose suitable data structure for the algorithm. ● Add new classes and operation if neededWhile implementing an algorithm, it may generate an intermediate result. To store the intermediate result, the object designer plans to add new classes. Any complex operation may sometimes break into small sub operations for simplicity. The object designer must have the provision to add new classes and operations as per the need. ● Assign responsibility to the classThe object designer must assign the operations to the appropriate classes. But there are some operations which appear in many classes and create complexity when many objects are involved. To simplify the task and to assign the operation to the correct class following steps are followed. If there are two objects, one which performs the action and another on which the action is performed then associate the operation with the target of the operation. If the object gets modified by the operation and another object remains unaffected then assign the operation to the modified object. If the class and associations form the star like network of the object then associate the operation with the central class. Q2) What are the advantages and disadvantages of an object oriented approach?A2) Advantages of object oriented approachThe object-oriented approach offers the opportunity to decrease some of the major systems-related costs, such as maintenance and programming code creation. Some of the advantages of the object-oriented approach are here: ● Reduced Maintenance: The primary purpose of object-oriented growth is to ensure that the device can have a longer life while having much lower maintenance costs. The behaviors can be reused and adapted into new behaviors since most of the processes inside the system are encapsulated. ● Real-World Modeling: The object-oriented system aims to model the natural world more thoroughly than conventional techniques do. Objects are grouped into object classes, and actions are correlated with objects. The model is based, rather than on data and processing, on objects. ● Improved Reliability and Flexibility: Object-oriented systems promise to be much more stable than conventional systems, largely because existing artefacts can "built'' new behaviors. Since it is possible to dynamically call and access objects, new objects can be generated at any time. New objects may inherit the characteristics of data from one or several other objects. Behaviors can be inherited from super - classes, and new behaviors can be implemented without disrupting the roles of existing structures. ● High Code Reusability: When a new object is created, the data attributes and characteristics of the class it was spawned from will be automatically inherited. The new object would also inherit all super classes in which it participates from the data and behaviors. When a user introduces a new form of widget, "wigitty" is the new object, while the device has new behaviors that are described. Disadvantages When contemplating the use of an object-oriented system, there are many major misconceptions that must be addressed: ● For complex, interactive environments, object-oriented development is ideally suited, as demonstrated by its widespread adoption in CAD/CAM and engineering design systems. Wide-scale object-oriented corporate systems are still unproven, and the object-oriented approach does not support many bread-and-butter information system implementations (i.e. payroll, accounting). ● Object-oriented Development is not a technology : While many proponents are religious in their favor of object-oriented systems, note that all "HOOPLA" focuses on the problem-solving object-oriented approach, and not on any particular technology. ● Object-oriented Development is not yet completely accepted by major vendors: Some market respectability has been gained through object-oriented growth, and suppliers have gone from catering to a' lunatic fringe' to a respected market. Q3) Define analysis?A3) Analysis Analysis is a process of discovering what the system will do rather than how it will do it. In the analysis process the complex problem statement is broken into easy and manageable elements and relationships to develop the solution. Analysis is the first step in software development. It has basically two parts i.e. static analysis and dynamic analysis model. Static analysis model can be depicted by class diagram, class diagram shows the classes composing the system and relationship between the classes can be shown. Dynamic analysis models can be depicted by communication diagrams. There are two inputs to the analysis process first is the business requirement and second is the system requirement. These inputs are converted to a model of the objects which have attributes and their relationships processed by the proposed system. The objects lie within the system as well as at system boundaries which can be accessed by the available interfaces. The object identified by the system canbe physical objects or conceptual objects. Analysis needs to be done before implementation because understanding the problem is more important than jumping directly to design and implementation. understanding is not complete with only business requirement model as it models the use case as per the business view or it cannot be completely understood by system requirement model as it model use case as per system view. Both the business requirement model and system requirement model must be done before design for complete understanding of the problem statement. Q4) Write short notes on control?A4) Control The designer needs to implement the state diagram from the dynamic model. There are following ways in which the designer can implement the state diagram Use location within the program to hold state The location of control in the program shows state of the program. We can say that the control of the program branches to other location depending upon the event occurred. The state diagram can be converted into codes by following the below guidelines o Find the main path within the diagram that will execute normally on the events.o Find state along the path which can be converted to sequence of statements in theprogram.o Find the other paths that branch from the main path. This can become the conditional statement the programming codeo Find the backward paths that branches out of the main path and travel back to it. This becomes the looping construct in the code.o Remaining states and conditions if any becomes exceptional conditions which can be handled through exceptional handling mechanism in programming code. This approach fails if there is a lack of modularity in the diagram. 2. State diagram implementation3. Using concurrent tasks Q5) What do you mean by associations?A5) Associations We must formulate a strategy for implementing all associations in the object model during the object design stage. We can either select a global strategy for universally implementing all associations, or a specific technique for each association. Analyzing Association Traversal Inherently, relations are bidirectional. Their implementation will be simplified if the association in your application is crossed in one direction. The specifications on your application may change, you may need to add a fresh procedure later that needs to cross the association in the reverse direction. Use bidirectional associations for prototype work so that we can incorporate fresh actions and expand/modify. In the case of optimization work, refine those associations. 2. One way association ● It can be implemented as a pointer if an association is only crossed in one direction. ● If the multiplicity is "many," it is implemented as a pointer set. ● If the number is ordered, use a list instead of a set. ● As a dictionary object, a qualified association with multiplicity one is implemented (A dictionary is a collection of value pairs mapping selector values into target values. ● Professional association with multiplicity is rare for many (it is implemented as a dictionary set of objects). 3. Two-way association Many connections, but not usually with equal frequency, are traversed in both directions. Three approaches to their implementation exist: Implement only in one direction as an attribute and perform a search when a backward traversal is required. This method is useful only if there is a significant disparity in crossing frequency and it is important to reduce both the cost of storage and the cost of updating. 4. Link attributes Its introduction depends on multiplicity. ● If a relation attribute is a one-one relationship, it is stored in any of the classes concerned. ● The relation attribute can be stored as attributes of several objects if it is a multi-one association, since each many objects appears only once in the association. ● If it is a multi-association, any entity may not be associated with the relation attribute; association is enforced as a separate class in which each instance is one link and its attributes. Q6) Describe physical packaging?A6) Physical packaging Programs consist of discrete physical units that can be modified, compiled, imported, or otherwise tampered with. There are different degrees of packaging in object oriented languages. In any large project, it is necessary to carefully partition an implementation into packages in order to allow various individuals to Act on a programme cooperatively. The following problems include packaging: I. Hiding internal information from outside view:One design purpose is to treat Đlasses as "black boxes" with a public external interface, but whose internal information are shielded from view. Hiding internal data allows a class to be modified without asking any customers in the class to alter the code. Additions and modifications to the class are surrounded by "fire walls͟" that influence the effects of the class.Any alteration so that improvements can be recognized clearly. Tradeoff between practices of hiding information and optimization. We are interested in hiding data during study. The less factors an operation is aware of, the less likely any changes will affect it. The less activities that are aware of a class's data, the easier it is to change the class if necessary. To restrict the spectrum of awareness of any operation, the following design principles help:● Allocate the duty of conducting operations to each class and include information that applies to it. ● Calling an attribute access operation belonging to an entity of another class Prevent traversing connections that are not related to the current class. At as high a level of abstraction as possible, describe interfaces. ● By defining abstract interface classes, that is, classes that mediate between the system and the raw external objects, hide external objects at the system boundary. ● Avoid applying a method to the outcome of another method unless the output class is already the caller's method provider. Consider writing a process to merge the two operations instead. II. Coherence of entities Coherence of entities is one significant design theory. An organization is cohesive, such as a class, an operation, or a module, if it is structured on a clear plan and all its components match together against a common purpose. It shouldn't be a set of parts that are unrelated. A technique should do one thing well. A single technique should not involve both strategy and execution. Policy includes decision-making, the processing of global knowledge, contact with the outside world and the interpretation of special cases. Policy approaches include feedback statements, conditionals and access to data stores. It does not have complicated algorithms, but calls different algorithms insteadMethods of implementation. Without making any choices, assumptions, defaults or exceptions, an implementation method performs exactly one activity. All data is given in the form of arguments (list is long). Separating strategy and execution increases reusability. Therefore, methods of implementation do not have any reliance on context. So they are likely to be reusable, they are clear and consist of a rewritten policy process in an application. Decisions at the high level and demands for approaches at the low level. Too many roles a class does not fulfil. III. Constructing physical module We divided the object model into modules during the research and device design stages.● The initial organization may not be sufficient for final system implementation packaging, Added new classes to the current module or layer or separate module. It is important to describe modules so that interfaces are minimal and well defined. It is possible to use object model communication as a reference for partitioning modules. There should be groups in the same module that are closely related by associations. Classes that are loosely linked should be divided into different modules. In a module, classes can represent similar kinds of items in the application or be components of the same composite object. Inside a module, try to encapsulate tight coupling. Coupling is determined by the number of different events that move through a given association. The number represents the number, not the frequency, of the various ways the relation is used. Q7) What do you mean by optimization of design?A7) Optimization of designOnly logical information about a system is captured by the analysis model, the object model has to add additional information and more details to support access to the information. The object designer has to maintain balance between the efficiency of the system and clarity of the system. The object designer can do the design optimization as mentioned below. Add redundant associations to increase the convenience and to decrease the access cost Reorganizing the computations to increase the efficiency Some times during execution there may exist some paths where chances of execution on this path are very rare or less. The designer can avoid this by rearranging the computation at an early stage. By optimizing the algorithm, the efficiency can be increased. Save the derived attributes to avoid re computation of complicated expressions The derived data is that data which can be derived from other data. It is sometimes redundant and cached to avoid re computation of the data again. Q8) Explain system design?A8) System Design It is the next step in software development. Once the problem statement is analyzed, the developer must approach the system design. In this development phase the decision about system architecture is devised for the problem statement and the solution is developed by organizing the system into subsystems, assigning subsystems to hardware and software. Major policy decisions are taken in this phase. System design is a software development process in which the architecture of a system is devised. The decision about the design of modules and components of the system is taken. It deals with the interface and data required for the system to satisfy the system requirement. Overall structure and architectural style of the system is devised by the developer. System design focuses on how to solve the problem. This process is divided into 2 parts, logical design and physical design. Logical Design: it models the very easy and simple representation of the system. It shows the abstract representation of the system using graphical notations showing the input, output and data flow. It can be shown with the help of DFD and ER diagrams. Physical Design: Physical design deals with how the input is given to the system, how it is processed and how the output is supposed to be displayed by the system. It does not refer to the actual hardware or physical design of the system. It is non tangible design of the system. In system design the developer takes major and critical decisions about the structure, organization and architectural style of the system. following are few decisions taken during system design. 1) System performance estimation2) Making a reuse plan3) Dividing the system into subsystems4) Concurrency identification5) Subsystem allocation to hardware6) Estimating Hardware Resource Requirements7) Task allocation to the processor8) Making Hardware- software trade-off9) Data store Management10) Global resource management11) Selecting a global control strategy12) Handling boundary conditions13) Setting trade off priorities14) Choose an architectural style Q9) How to compare methodologies using structure analysis and design?A9) Comparing methodologies using structure analysis and designThere are many object oriented analysis and design methodologies. Few methodologies which were accepted as real object oriented analysis and design methodologies are listed below 1) Object Oriented Design with Applications (OODA) by Booch2) Object Oriented Analysis and Object Oriented Design by Coad & Yourdon3) Object Oriented Analysis and Design (OOAD) by Martin & Odell4) Object Modeling Technique (OMT) by Rumbaugh5) Object Oriented Systems Analysis (OOSA) by Shlaer & Mellor6) Designing Object Oriented Software (DOOS) by Wirfs-Brock Object Oriented Design with Applications(OODA) by BoochThis Booch methodology was developed in 1994.In this type of methodology Booch have given few specifications of general properties of well-structured complex systems. All the systems which support the OODAnalysis methodology must have these specifications. Problem domain is modelled in two aspects, one is the logical structure of the system and another is the physical structure of the system. Both staticand dynamic semantics are modelled in this type of methodology. Object oriented analysis and object oriented design by Coad and YourdonIt was developed in 1991 by Coad and Yourdon. The methodology is dependent on many general principles for handling the complex system. In the analysis phase the problem is divided into 5 layers which shows class, object, relationship, inheritance, messages etc. these 5 layers are then matched to four components like problem domain, data management, task management and human interaction domain during the design phase. Various graphical notations are available for showing the behavior of the object and functional structure. Object Oriented Analysis and Design (OOAD) by Martin & OdellThis methodology mostly focuses on describing the behaviour of the object. It uses the benefit of set theory and logic. Many methods are available for specifying objects and their relationship to describe the dynamic behaviour of the object. Object Modeling Technique (OMT) by RumbaughJames Rumbaugh led a team at research labs of General Electric to develop the Object Modeling Technique (OMT) in 1991. This methodology has analysis, design and implementation phases for a system using object oriented techniques. In this methodology the static, dynamic and functional view of the system is captured. These views are modeled using object model, dynamic model and functional model. This methodology is very fast and a good approach to identify the objects of the system. Object Oriented Systems Analysis (OOSA) by Shlaer & MellorThis methodology was developed by shlaer and Mellor in 1992. This methodology includes object oriented analysis and helps in solving few problems in structured analysis approach. The main focus of this methodology is to analyse the static specification of the objects. All the techniques specified in this methodology are used to model the static, dynamic and functional specification of the objects. Designing Object Oriented Software (DOOS) by Wirfs-BrockWirfs and Brock developed the Responsibility Driven Design(RDD) methodology in 1990. This methodology mainly focuses on the analysis phase of the SDLC. Object oriented concepts like abstraction and encapsulation are used to solve the real world complexity of the problem. This methodology treats the problem domain as a set of collaborating objects. The system is developed in two stages. In first stage objects, their responsibilities and the collaborations to fulfil the responsibilities are identified. In the second phase two graphical techniques are used. One technique is to show classes and class structures and the other is to show classes, subsystems and their relationships. Q10) Explain Jackson’s structure development?A10) Jackson’s Structure Development ● In 1983, JSD was invented by Michael Jackson.● JSD's basic concept is that it focuses on the system's representation of the real world, i.e. its main emphasis is to chart real-world progress rather than determine the functions performed by the system.● JSD is an action-related technique. ● In OOSD, the principal entities are:Modeling Stage- The Entity Behavior and Entity Structure are part of this stage. Network Stage-Initial step of model, Feature Step, and Step of Device Timing. Stage of implementation-Step of implementation. ● We focus on state vector and data stream interaction in the initial model stage. ● A data stream is an unbounded queue in which the read operator extracts the next record from the queue if there are no records while the read operation process waits until the record is available, while the next record is put in the written operation data stream in the read operation process. ● Entity action: acts are performed in time by entities. The behavior is atomic, and cannot be further broken down. ● Entity Structure: Phase partially sequences the order of action in relation to time ● The function stage is made up of pseudo code for the performance of state-generated action. In this stage, a complete system specification is needed by the developer. ● The System Timing Phase refers to the system performance constraints.
0 matching results found