# Classical Software Engineering

Computing

## Quiz 8 :Reusability and Portability

Question Type
Of which theoretical tool in Chapter 5 is the model-view-controller (MVC) architecture pattern an instance?
Free
Essay

MVC (Model View Controller) architecture pattern is an approach of designing software by decomposing the software into three parts such as input, processing and output architecture to the GUI domain. The software product is decomposed into
• Model- corresponds to processing
• View- corresponds to Output
• Controller- corresponds to Input
This allows each of the components to function and to change independently of the other and hence increases reusability. MVC architecture pattern is an instance of Separation of Concern from Chapter 5.
Separation of concern- It is an approach in which a software product is broken into components that do not overlap in there functionality. After doing separation of concern-
• Regression faults are minimized.
• Change in the functionality of one component do not change the functionality of the other components
• These kinds of components which have achieved separation of Concern can be efficiently reused in future products. High cohesion and low coupling between the modules is important feature of separation of concerns.
• Information hiding and encapsulation are another instance of separation of concern.
• Because of all these features there is very less interaction between the modules which have separation of concern.

Tags
Choose question tag
Consider an automated teller machine (ATM). The user puts a card into a slot and enters a four-digit personal identification number (PIN). If the PIN is incorrect, the card is ejected. Otherwise, the user may perform the following operations on up to four different bank accounts: (i).?Deposit any amount. A receipt is printed showing the date, amount deposited, and account number. (ii).?Withdraw up to $200 in units of$20 (the account may not be overdrawn). In addition to the money, the user is given a receipt showing the date, amount withdrawn, account number, and account balance after the withdrawal. (iii).?Determine the account balance. This is displayed on the screen. (iv).?Transfer funds between two accounts. Again, the account from which the funds are transferred must not be overdrawn. The user is given a receipt showing the date, amount transferred, and the two account numbers. (v).?Quit. The card is ejected. Explain how you would ensure that as many code artifacts as possible from this product can be reused in future products.
Free
Essay

Make sure that all the modules have functional or informational cohesion and also data coupling. Because, modules with high cohesion and low coupling are suitable for reusability.
• Reuse can be done by using standard communications protocols.
• By using standard security protocols.
• Use object oriented techniques. Because, the modules can be reused in different products.
• Design the product by giving detailed explanation of the modules for reusability.
• Give the modules a detailed documentation carefully
• Design the product by levels of Abstraction.

Tags
Choose question tag
How early in the software life cycle could the developers have caught the fault in the Ariane 5 software (Section 8.3.2)?
Free
Essay

The fault can be detected during the reuse phase which means that if the Ariane 5 software reuses the Ariane 4 alignment software then the fault can be detected.
• Or else the fault can also be detected during the testing phase where testing is an essential phase in software life cycle.
• On the other hand, the Ariane crash also prevented using assert pragma during testing and in implementation phase.

Tags
Choose question tag
Compare the output from a software product line with the output from an automobile assembly line. (Hint: A modern automobile assembly line does not produce multiple instances of the identical automobile.)
Essay
Tags
Choose question tag
Explain how you would ensure that the automated library circulation system (Problem 8.7) is as portable as possible.
Essay
Tags
Choose question tag
Consider an automated library circulation system. Every book has a bar code, and every borrower has a card bearing a bar code. When a borrower wishes to check out a book, the librarian scans the bar codes on the book and the borrower's card, and enters C at the computer terminal. Similarly, when a book is returned, it is again scanned and the librarian enters R. Librarians can add books (+) to the library collection or remove them (?). Borrowers can go to a terminal and determine all the books in the library by a particular author (the borrower enters A = followed by the author's name), all the books with a specific title ( T = followed by the title), or all the books in a particular subject area ( S = followed by the subject area). Finally, if a borrower wants a book currently checked out, the librarian can place a hold on the book so that, when it is returned, it will be held for the borrower who requested it ( H = followed by the number of the book). Explain how you would ensure a high percentage of reusable code artifacts.
Essay
Tags
Choose question tag
Of which theoretical tool in Chapter 5 are the design patterns of Section 8.6 an instance?
Essay
Tags
Choose question tag
What is the influence of cohesion on reusability?
Essay
Tags
Choose question tag
Explain the role played by the abstract class Abstract Widget Factory in the design pattern of Figure 8.10.
Essay
Tags
Choose question tag
What is the difference between a framework and a software product line ?
Essay
Tags
Choose question tag
Explain how you would ensure that the product that checks whether a bank statement is correct (Problem 8.8) is as portable as possible.
Essay
Tags
Choose question tag
Section 8.5.2 states that "the Raytheon COBOL program logic structure of the 1970s is a classical precursor of today's object-oriented application framework." What are the implications of this for technology transfer?
Essay
Tags
Choose question tag
Of which theoretical tool in Chapter 5 is the three-tier architecture an instance?
Essay
Tags
Choose question tag
What is the influence of coupling on reusability?
Essay
Tags
Choose question tag
Explain in detail the differences between reusability and portability.
Essay
Tags
Choose question tag
You have just joined a large organization that manufactures a variety of pollution control products. The organization has hundreds of software products consisting of some 95,000 different Fortran modules. You have been hired to come up with a plan for reusing as many of these modules as possible in future products. What is your proposal?
Essay
Tags
Choose question tag
Suppose that a code artifact is reused with one change, an addition operation is changed to a subtraction. What impact does this minor change have on the savings of Problem 8.2?
Essay
Tags
Choose question tag
Explain how you would ensure that the software for the automated teller machine (ATM) of Problem 8.9 is as portable as possible.
Essay