a) Briefly explain how low coupling and high cohesion enables modular design. b)
ID: 3710892 • Letter: A
Question
a) Briefly explain how low coupling and high cohesion enables modular design. b) In the class we discussed three basic approaches in Integration testing: Top down, bottom up and sandwich. Explain each technique in detail highlighting pros and cons of each technique. c) Junit is a framework. What is the main difference between a framework and a toolkit? d) Junit provides four annotations @Before, @After, @BeforeClass, @AfterClass. Explain how you can use those testing 00 applications (try to give examples)Explanation / Answer
ANS:-
A)
Coupling is the defined as the degree which determine how much modules related to each other.Its a measure that defines how strongly functionality of diffferent pieces/modules is related.
Cohesion is defined as the degree which determines that how much elements of one single module is connected to one anothher.
Now if we have low coupling then the software would be easily maitainable, testable and readable.
If the modules are loosly coupled then we have the opportunity to make changes in one module independently without affecting functionality of other or very less. And high cohesion make sure that changes are reflected properly within one module. And with high cohesion and low coupling we can achieve modular design becuase of maintainability, testability, readability feature.
b)
bottom up approch :-
advantages :-
User and business awareness of the product. Benefits are realized in the early phases.
You can replace many manual processes with early automation.
You can implement password management for a large number of users.
You do not have to develop custom adapters in the early phases.
Your organization broadens identity management skills and understanding during the first phase.
Tivoli Identity Manager is introduced to your business with less intrusion to your operations.
disadvantages:-
The organizational structure you establish might have to be changed in a later roll-out phase.
Because of the immediate changes to repository owners and the user population, the roll-out will have a higher impact earlier and require greater cooperation.
This strategy is driven by the existing infrastructure instead of the business processes.
top down approch :-
advantages:-
Your organization realizes a focused use of resources from the individual managed application.
The first implementation becomes a showcase for the identity management solution.
When the phases are completed for the managed application, you have implemented a deeper, more mature implementation of the identity management solution.
Operation and maintenance resources are not initially impacted as severely as with the bottom-up approach.
disadvantage:-
The solution provides limited coverage in the first phases.
A minimal percentage of user accounts are managed in the first phases.
You might have to develop custom adapters at an early stage.
The support and overall business will not realize the benefit of the solution as rapidly.
The implementation cost is likely to be higher
c)
tookkit:-
a toolkit is a more focussed library, with a defined and specific purpose. Currently, this term has fallen out of favour, and is used almost exclusively (to this author's knowledge) for graphical widgets, and GUI components in the current era. A toolkit will most often operate at a higher layer of abstraction than a library, and will often consume and use libraries itself. Unlike libraries, toolkit code will often be used to execute the task of the client code, such as building a window, resizing a window, etc. The lower levels of abstraction within a toolkit are either fixed, or can themselves be operated on by client code in a proscribed manner. (Think Window style, which can either be fixed, or which could be altered in advance by client code.)
framework:-
a framework was a suite of inter-related libraries and modules which were seperated into either 'General' or 'Specific' categories. General frameworks were intended to offer a comprehensive and integrated platform for building applications by offering general functionality, such as cross platform memory management, multi-threading abstractions, dynamic structures (and generic structures in general). Historical general frameworks (Without dependency injection, see below) have almost universally been superseded by polymorphic templated (parameterised) packaged language offerings in OO languages, such as the STL for C++, or in packaged libraries for non-OO languages (guaranteed Solaris C headers). General frameworks operated at differing layers of abstraction, but universally low level, and like libraries relied on the client code carrying out it's specific tasks with their assistance.
'Specific' frameworks were historically developed for single (but often sprawling) tasks, such as "Command and Control" systems for industrial systems, and early networking stacks, and operated at a high level of abstraction and like toolkits were used to carry out execution of the client codes tasks.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.