![]() ![]() Information hiding: The fundamental of Information hiding suggests that modules can be characterized by the design decisions that protect from the others, i.e., In other words, modules should be specified that data include within a module is inaccessible to other modules that do not need for such information. Coupling: It measures the relative interdependence among modules.Ģ.Cohesion: It measures the relative function strength of a module.Thus, functional independence is a good design feature which ensures software quality. The independent modules are easier to maintain, test, and reduce error propagation and can be reused in other programs as well. Independence is important because it makes implementation more accessible and faster. Functional Independence: Functional independence is achieved by developing functions that perform only one kind of task and do not excessively interact with other modules. We discuss a different section of modular design in detail in this section:ġ. Modular design reduces the design complexity and results in easier and faster implementation by allowing parallel development of various parts of a system. More linkage required, run-time may be longer, more source lines must be written, and more documentation has to be done.Inter-module communication problems may be increased.Compilation and loading time may be longer.Storage size perhaps, but is not certainly, increased.Execution time maybe, but not certainly, longer.There are several disadvantages of Modularity It produced the well designed and more readable program.It provides a framework for complete testing, more accessible to test.It provides more checkpoints to measure progress.It simplifies the overlay procedure of loading a large program into main storage.It encourages the creation of commonly used routines to be placed in the library and used by other programs.It allows large programs to be written by several or different people.There are several advantages of Modularity In this topic, we will discuss various advantage and disadvantage of Modularity. Modules are simpler from outside than inside.Īdvantages and Disadvantages of Modularity.Modules should be easier to use than to build.Modules can be separately compiled and saved in the library.Each module has single specified objectives.Each module is a well-defined system that can be used with other applications.The desirable properties of a modular system are: Single large programs are difficult to understand and read due to a large number of reference variables, control paths, global variables, etc. It is the only property that allows a program to be intellectually manageable. Modularity specifies to the division of software into separate modules which are differently named and addressed and are integrated later on in to obtain the completely functional software. Data Abstraction forms the basis for Object Oriented design approaches. Data Abstractionĭetails of the data elements are not visible to the users of data. The details of the algorithm to accomplish the functions are not visible to the user of the function.įunctional abstraction forms the basis for Function oriented design approaches.A module is specified by the method it performs.Here, there are two common abstraction mechanisms Abstraction can be used for existing element as well as the component being designed. Note: As the number of partition increases = Cost of partition and complexity increases AbstractionĪn abstraction is a tool that enables a designer to consider a component at an abstract level without bothering about the internal details of the implementation. They have to cooperate and communicate to solve the problem. These pieces cannot be entirely independent of each other as they together form the system. Following are the principles of Software Design Problem Partitioningįor small problem, we can handle the entire problem at once but for the significant problem, divide the problems and conquer the problem it means to divide the problem into smaller pieces so that each piece can be captured separately.įor software design, the goal is to divide the problem into manageable pieces. ![]() Effectively managing the complexity will not only reduce the effort needed for design but can also reduce the scope of introducing errors during design. Software design principles are concerned with providing means to handle the complexity of the design process effectively.
0 Comments
Leave a Reply. |