CEN5035 - Handout 7 Flashcards _ Quizlet

.pdf

School

University of Florida *

*We aren’t endorsed by this school

Course

5035

Subject

Computer Science

Date

Feb 20, 2024

Type

pdf

Pages

3

Uploaded by AdmiralFlower11544

05/10/2021, 14:27 CEN5035 - Handout 7 Flashcards | Quizlet https://quizlet.com/459448237/cen5035-handout-7-flash-cards/ 1/3 CEN5035 - Handout 7 Science / Computer Science / Software Engineering Get access to all your stats, your personal progress dashboard and smart study shortcuts with Quizlet Plus. Unlock Progress Terms in this set (14) Which one of the following best reflects the point Sommerville makes in connection with how "contractual responsibility" can affect maintenance costs? (Circle ONE only.) - If the maintenance contract is given to a company other than the original system developer, there may be little or no incentive for a development team to write the software so that it is easy to change. State Lehman's "Law of Large Program Evolution" and its practical implication in terms of system attributes. - Program evolution is a self-regulating process. System attributes such as size, time between releases, and the number of reported errors is approximately invariant for each system release. State Lehman's "Law of Continuing Change." - A program that is used in a real-world environment must necessarily change, or else become progressively less useful in that environment. State Lehman's "Law of Increasing Complexity." As an evolving program changes, its structure tends to become more complex (2 pts.). Extra resources must be devoted to preserving and simplifying the structure (1 pt.). Rajlich and Bennett (2000) identify four general software life-cycle phases: initial development, phase-out, servicing, and evolution. Briefly explain the differences between servicing and evolution in terms of the nature of changes systems may be subject to in each. - Servicing: The system remains useful, but the only changes made are those required to keep it operational (i.e., bug fixes and changes to reflect changes in the software's environment). No new functionality is added. - Evolution: The system is in operational use and is evolving as new requirements are proposed and implemented. Briefly explain WHAT "regression testing" is. - Regression testing is the RE-RUNNING of one or more test cases after some program change that ran without revealing faults prior to the change. Briefly explain the PURPOSE of "regression testing." - The purpose of regression testing is to determine if the change has "broken code" that worked correctly BEFORE the change. What are the two basic test implementation/run- time tool capabilities that are required to automate regression testing? (1) Keystroke Recorder and/or Test Script Playback Tool used to script, record and play-back keystrokes, pointer movement, and mouse clicks (2) Data / Output Comparators used to automatically compare program output or data files for discrepancies CEN5035 - Handout 7 Study
05/10/2021, 14:27 CEN5035 - Handout 7 Flashcards | Quizlet https://quizlet.com/459448237/cen5035-handout-7-flash-cards/ 2/3 Upgrade to remove ads Only $3.99/month Sommerville notes that one of the factors that should be considered in assessing legacy systems for the purpose of deciding on the most appropriate strategy for evolving these systems is source code understandability. A strategy mentioned in class for improving such understandability is the use of "mnemonic" variable names. Briefly explain what these are and provide a simple, concrete example that illustrates the idea. - Mnemonic variable names are specifically chosen to reflect the developer's intent regarding what data will be stored in each variable. For example variable names such as "hours", "rate", and "pay" are mnemonic, in contrast to "X1", "X2", and "X3". Briefly describe (i) what is meant by "data clumping" AND (ii) the possible remedy they identify for this situation. - Data clumps occur when the same group of data items reoccur in several places in a program. These can often be replaced with an object encapsulating all of the data (in one place). Briefly describe (i) what is meant by "speculative generality" AND (ii) provide a simple example that illustrates the idea. - This occurs when developers include generality in a program in case it is required in the future. For example, a data structure might include additional fields for data that could be useful for some later extension. The "Emergency Repair Process" described by Sommerville for handling urgent change requests is as follows: Change Reqs. -> Analyze source code -> Modify source code -> Deliver modified system What nominal software evolution process activities does this process exclude when dealing with fault repairs? - Release planning, (related) requirements analysis, requirements updating. What point does Sommerville make with the figure below concerning how one should think about the relationship between initial software development and software evolution? (Picture of Boehms' spiral model) - One should think of software engineering as a spiral process with requirements, design, implementation, and testing going on throughout the lifetime of the system. Post-delivery "evolution" really just represents additional iterations of the initial development process. CEN5035 - Handout 7 Study
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help