1/19
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
You are in charge of automating a multi-site architectural practice. The cost of developing the software has been estimated to be $530,000. Approximately how much additional money will be needed for postdelivery maintenance of the software?
Postdelivery maintenance will cost about 3 times as much as the original development, that is, about $1,590,000.
Is there a way of reconciling the classical temporal definition of maintenance with the operational definition we now use? Explain your answer.
No. Temporally defined maintenance is a subset of operationally defined maintenance. All changes to a software product constitute operational maintenance, but only those performed after installation constitute temporal maintenance.
You are a software-engineering consultant. The CIO of a regional gasoline distribution corporation wants you to develop a product for all accounting functions and online information with hardware for 87 clerks and 14 managers. The company will pay $30,000 total and wants it in 4 weeks. What do you tell him?
Try to find a solution using off-the-shelf software packages. If this fails, determine which of the constraints (time, cost, functionality) can be relaxed, and provide a solution that fits the remaining constraints. If this fails, do not make promises that cannot be kept, but rather provide data such as hardware invoices and software development schedules showing the unreasonableness of the request.
You are a vice-admiral in the Velorian Navy supervising development of missile control software. What clauses do you include in the contract?
Acceptance criteria must be stipulated, along with a full list of deliverables. Clauses should include: software shall meet specifications, be delivered on time and within budget; all faults corrected at no further charge for one year after acceptance; full documentation (source code, specifications, design, operating instructions); training provided with type and duration stipulated. Maintenance contract terms should be included, and ideally, liability clauses for damages caused by faults.
You are supervising the missile project. List ways your company can fail to satisfy the contract with the navy. What are probable causes?
Late delivery: underestimation, incomplete or incorrect requirements, poor planning, poor specification, poor management, undetected faults, ineffective staff, bad testing, turnover, poor documentation, poor communication, system or hardware failures.
Over budget: all of the above, plus unexpected price increases.
Does not meet specifications: all of the above, plus poor specifications, poor testing, weak quality assurance.
Operational faults: poor testing, residual faults, poor documentation.
Inadequate documentation: poorly trained personnel, poor management.
Nine months after delivery, a fault is detected in mRNA software. Fixing costs $18,900. Cause was an ambiguous sentence in specification. Approximately how much would it have cost to correct during analysis?
$154. From cost ratios, postdelivery to analysis cost is about 123 to 1.
Suppose the fault in 1.6 had been detected during implementation. Approximately how much would it have cost to fix then?
$2,670. From cost ratios, the ratio is about 7 to 1 between postdelivery and implementation costs.
You show data that most faults should be found early. Someone objects that coding faults cannot be removed during design. What do you reply?
Most detected faults (60–70%) are analysis or design faults. Therefore, urging people to find and remove faults early is reasonable.
Describe a situation in which the client, developer, and user are the same person.
An instructor builds a database for student grades. A small business owner writes their own accounting or inventory software.
What problems can arise if the client, developer, and user are the same person? How can these problems be solved?
No independent SQA group may mean residual faults. Documentation may be inadequate, making later maintenance difficult. The solution is thorough testing and comprehensive documentation.
What potential advantages accrue if the client, developer, and user are the same person?
Requirements are fully understood, specifications are unambiguous, and communication problems are minimized.
Look up the word system in a dictionary. How many different definitions are there? Which apply to software engineering?
Definitions involving organized, unified, or whole apply—system as an organized set of interacting parts forming a whole.
It is your first day at your first job. Your manager hands you a program listing and says, “See if you can find the bug.” What do you reply?
Tactfully suggest that it is unlikely there is only one “bug.” Save the lecture on avoiding that word until later.
You are in charge of developing the product in 1.1. Will you use the object-oriented paradigm or the classical paradigm? Give reasons.
If the team lacks object-oriented experience, training will delay and increase costs, making classical more practical. If the team is comfortable with OOP, then object-oriented is preferable because it results in easier development, fewer faults, and better maintainability.
Instead of implementing component c9 of a software product, the developers buy a COTS component. What are the advantages and disadvantages?
Advantages: no design, coding, or unit testing required; cheaper; widely used components likely have few faults. Disadvantages: no source code, making maintenance difficult; functionality may not precisely match needs.
Instead of implementing component c37, the developers use an open-source component. What are the advantages and disadvantages?
Advantages: free; no need for design, coding, or unit testing; source code is available for maintenance. Disadvantages: quality varies widely; functionality may not precisely match; possible legal issues with licensing.
Object P invokes method m1 of object Q. Suppose we wish to reuse object P in a new software product. Can P be reused without reusing Q? What does this say about objects as independent entities?
No. P and Q are coupled via method invocation, so P cannot be reused independently.
Is it correct to state that, as a consequence of Linus’s Law, all open-source software is of high quality?
No. Linus’s Law applies only when there are “enough eyeballs.” Widely used open-source software benefits; niche or obscure projects may not.
Suppose the Chocoholics Anonymous product must be modified to include endocrinologists as providers. In what ways will it have to change? Would it be better to discard everything and start again?
The product should have been designed with an architecture that allows new provider types to be added without disrupting other components. Adding endocrinologists is a relatively simple task and is clearly better than starting again from scratch.
Your instructor distributes Schach et al. [2003]. What is your opinion of the relative merits of results based on managers’ estimates compared to results computed from actual data?
Managers’ estimates are often subjective and optimistic; actual data provides objective, reliable metrics. Results from actual data are usually more trustworthy for decision-making.