Final Study Guide 2012

Chapters covered:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 20, 22, 23, 24, 25, ACM Code of Ethics


The test will be closed book/notes. There will be 7-15 questions from the following list on the test:
  1. Name and describe 5 product qualities.
  2. Name and describe 5 Process qualities.
  3. What are the basic phases of the software production process?
  4. What are the four steps of the prototyping process?
  5. What are three major benefits of using the prototyping precess?
  6. What are three major benefits of using the incremental delivery procress?
  7. What are the phases of Boehm’s spiral model of the software process? Describe what goes on in each.
  8. What are the principals of agile methods?
  9. Define Validation and Verification. Give specific examples of each.
  10. What are 5 major major components of requirements specification. Describe each.
  11. Extreme programming expresses user requirements as stories, with each story written on a card. Discuss the advantages and disadvantages of this approach to requirements description. (3)
  12. Suggest four reasons why the productivity rate of programmers working as a pair might be more than half that of two programmers working individually. (3)
  13. You have been asked to test a method called ‘catWhiteSpace’ in a ‘Paragraph’ object that, within the paragraph, replaces sequences of blank characters with a single blank character. Identify testing partitions for this example and derive a set of tests for the ‘catWhiteSpace’ method. (8)
  14. What is regression testing? Explain how the use of automated tests and a testing framework such as JUnit simplifies regression testing. (8)
  15. What do you understand by the term ‘stress testing’? Suggest how you might stress test a system designed to allow sudents to self-register for classes. (8)
  16. Briefly describe the three main types of software maintenance. Why is it sometimes difficult to distinguish between them?. (9)
  17. To help counter terrorism, many countries are planning or have developed computer systems that track large numbers of their citizens and their actions. Clearly this has privacy implications the ethics of working on the development of this type of system. Give specific references to the ACM code of ethics.
  18. Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:
    1. A system to control anti-tock braking in a car
    2. A virtual reality system to support software maintenance
    3. A university accounting system that reptaces an existing system
    4. An interactive travel planning system that helps users plan journeys with the lowest environmental impact
  19. Explain why incremental development is the most effective approach for developing business software systems. Why is this model less appropriate for real-time systems engineering?
  20. Explain why test-first development helps the programmer to develop a better understanding of the system requirements. What are the potential difficulties with test-first development?
  21. You are a software manager in a company that develops critical control software for aircraft. You are responsible for the development of a software design support system that supports the translation of software requirements to a formal software specification.
    Comment on the advantages and disadvantages of the following development strategies:
    1. Collect the requirements for such a system from software engineers and external stakeholders (such as the regulatory certification authority) and develop the system using a Plan-driven approach.
    2. Develop a prototype using a scripting language, such as Ruby or Python evaluate this prototype with software engineers and other stakeholders, then review the system requirements. Redevelop the final system using Java.
    3. Develop the system in Java using an agile approach with a user involved in the development team.
  22. Discover ambiguities or omissions in the following statement of requirements for part of a ticket-issuing system :
    An automated ticket-issuing system sells rail tickets. Users select their destination and input a credit card and a personal identification number. The rail ticket is issued and their credit card account charged. When the user presses the start button, a menu display of potential destinations is activated, along with a message to the user to select a destination. Once a destination has been selected, users are requested to input their credit card. Its validity is checked and the user is then requested to input a personal identifier. When the credit transaction has been validated, the ticket is issued.
  23. Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time.
  24. Using the technique suggested in the text, where natural language descriptions are presented in a standard format, write plausible user requirements for the following functions:
    1. An unattended gas pump system that includes a credit card reader. The customer swipes the card through the reader then specifies the amount of fuel required. The fuel is delivered and the customer's account debited.
    2. The cash-dispensing function in a bank ATM.
    3. The spelling-check and correcting function in a word processor.
  25. Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrollment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalog to find out about available courses. (Based on your experience with a bank ATM):
    1. Draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine.
    2. Draw a sequence diagram for the same system.
  26. Explain why you might want to develop both activity and sequence diagrams when modeling the behavior of a system.
  27. Draw diagrams showing a conceptual view and a process view of the architectures of the following systems:
    1. An automated ticket-issuing system used by passengers at a railway station.
    2. A computer-controlled video conferencing system that allows video, audio, and computer data to be visible to several participants at the same time.
    3. A robot floor cleaner that is intended to clean relativity clear spaces such as corridors. The cleaner must be able to sense walls and other obstructions.
  28. Explain why you normally use several architectural patterns when designing the architecture of a large system. Apart from the information about patterns that I have discussed in this chapter, what additional information might be useful when designing large systems?
  29. Develop the design of the weather station to show the interaction between the data collection subsystem and the instruments that collect weather data. Use sequence diagrams to show this interaction.
  30. Explain why testing can only detect the presence of errors, not their absence.
  31. What is regression testing? Explain how the use of automated tests and a testing framework such as JUnit simplifies regression testing.
  32. What are the benefits of involving users in release testing at an early stage in the testing process? Are there disadvantages in user involvement?
  33. Give and describe 4 of Lehman’s laws. Explain the rationale underlying Lehman's laws. Under what circumstances might the laws break down?
  34. Briefly describe the three main types of software maintenance. Why is it sometimes difficult to distinguish between them?
  35. What are the principal factors that affect the costs of system reengineering?
  36. Give two examples of government functions that are supported by complex sociotechnical systems and explain why, in the foreseeable future, these functions cannot be completely automated.
  37. Why is it impossible to infer the emergent properties of a complex system from the properties of the system components?
  38. What are the most important dimensions of system dependability?
  39. Reliability and safety are related but distinct dependability attributes. Describe the most important distinction between these attributes and explain why it is possible for a reliable system to be unsafeand vice versa.
  40. Give two examples of diverse, redundant activities that might be incorporated into dependable processes.
  41. What is the common characteristic of all architectural styles that are geared to supporting software fault tolerance?
  42. Explain why there is a need for risk assessment to be a continuing process from the early stages of requirements engineering through to the operational use of a system.
  43. What is social engineering? Why is it difficult to protect against it in large organizations?
  44. Give and describe three major benefits of reusing software components. Give and describe three major risks.
  45. Give three major problems with using COTS software as part of a solution. Give three major benefits.
  46. What is the principle of component independence? Explain why it is important, giving an example of how replacement of a component could have and undesired consequence.
  47. What are the three type of component incompatibility that can occur? What is the usual strategy for resolving such incompatibilities?
  48. What is it about embedded systems that usually required that they be a real time systems? What is the essential nature of a real time system?
  49. What is now recognized as one of the most important aspects of project management?
  50. What are the three key factors that influence the effectiveness of a software development group?
  51. Given a task duration and dependency graph table such as the one on page 629 (Figure 23.5), determine the shortest time to complete the project. How many people are required to finish the project in the fasted time? Be able to produce an Activity bar chart (as seen in figure 23.6)
  52. What are the three phases of the software quality review process? What is done in each?
  53. Suggest five possible problems that could arise if a company does not develop effective configuration management policies and processes.
  54. How should a system be tested after a small change is made? What is this type of testing called? Why is it needed?
  55. Describe six essential features that should be included in a tool to support change management Processes.
-- JimSkon - 2012-05-08
Topic revision: r6 - 2012-05-15 - JimSkon
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback