Vous êtes sur la page 1sur 11

COMP223 Test 2 Review Questions

Chapter 5
1 2 1. Exercise 5.1 on Page 143

Explain why it is important to model the context of a system that is being developed. Give two examples of possible errors that could arise if software engineers do not understand the system context. At early stage in the requirements elicitation and analysis process software engineers should decide on the boundaries of the system. This involves working with system stakeholders to distinguish what is the system and what is the systems environment. Software engineers should make these decisions early in the process to limit the system costs and the time needed for analysis. The definition of a system boundary is not a value-free judgment. The position of the system boundary has profound effect on the system requirements. There may be pressures to develop system boundaries that increase/decrease the influence or workload of different parts of an organization. Social and organizational concerns may mean that the position of a system boundary may be determined by non-technical factors.

Two examples:
a. Software engineers may give an incorrect system environment in requirements documents. b. System cost and time of system analysis may increase in the future because the wrong system boundary was defined in the previous process. 1 2. Exercise 5.2 on Page 143 How might you use a model of a system that already exists? Explain why it is not always necessary for such a system model to be complete and correct. Would the same be true if you were developing a model of a new system? a. Using an existed model during requirements engineering will decrease the system cost and time when setting up the corresponding system model. But it is hard to say whether the chosen model is

fulfilling to the all requirements of the current system. b. There is no absolutely true or false for a certain system model. System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system. It only helps the analyst to understand the functionality of the system and models are used to communicate with customers. System model determined by the functional and non-functional requirements, therefore different system has different system model to fulfill the system requirements and there is no complete or correct system. c. Models of the new system are used during requirements engineering to help explain the proposed requirements to other system stakeholders. Engineers use these models to discuss design proposals and to document the system for implementation. 3. Give a short explanation of each of the following Activity diagrams: Use case diagrams Sequence diagrams Class diagrams State diagrams a. activity diagrams Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. Activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control. b. use case diagrams Use case were developed originally to support requirements elicitation and now incorporated into the UML. Each use case diagram represents a discrete task that involves external interaction with a system. Actors in
a use case diagram may be people or other systems.

1 2 3 4 5

a Sequence diagrams: Sequence diagrams are part of the UML and are used to model the interactions between the actors and the objects within a system. A sequence diagram shows the sequence of interactions that take place

during a particular use case or use case instance. The objects and actors involved are listed along the top of the sequence diagram, with a dotted line drawn vertically from these. Interactions between objects are indicated by annotated arrows. b. class diagrams: Class diagrams are used when developing an object-oriented system model to show the classes in a system and the associations between these classes: An object class can be thought of as a general definition of one kind
of system object. An association is a link between classes that indicates that there is some relationship between these classes.

c. state diagrams State diagrams are used to model the behavior of the system in response to external and internal events. They show the systems responses to stimuli so are often used for modeling real-time systems. State diagrams show system states as nodes and events as arcs between these nodes. When an event occurs, the system moves form one state to another.

Chapter 6
1 4. Exercise 6.1 on Page 173 When describing a system, explain why you may have to design the system architecture before the requirements specification is complete. The architecture may have to be designed before specifications are written to provide a means of structuring the specification and developing different sub-system specifications concurrently, to allow manufacture of hardware by sub-contractors and to provide a model for system costing
1

Architectural design is the first stage in the design process and represents a critical link between the design and requirements engineering processes. 5. Exercise 6.2 on Page 173 You have been asked to prepare and deliver a presentation to non-

technical manger to justify the hiring of s system architect for a new project. Write a list of bullet points setting out the key points in your presentation. Naturally, you have to explain what is meant by system architecture.
1 2 Registry System

Database System

Information Extraction System

Information Storage Syst em

Information Evaluation S ystem

Control System

Decision-making system

Registry System which contains Information Extraction System, Information Storage System and Information Evaluation System provides the registry function of the all system. In that, Administrator can manipulate the information about the employee. For example, store, delete, and add. Therefore, we have Control System. The Decisionmaking System used to decide whether a certain employee would be hired or not.
3

4 5 6 7

6. Exercise 6.3 on Page 173 Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements.

The system architecture affects the performance, robustness, distributability and maintainability of a system. The particular style and structure chosen for an application may therefore depend on the nonfunctional system requirements. If Security requirement is a critical requirement, a layered structure for the architecture should be used, with the most critical assets protected in the innermost layers and with a high level of security validation applied to these layers. But, if Availability is a critical requirement, the architecture should be designed to include redundant components and so that it is possible to replace and update components without stopping the system. Therefore, design conflicts might arise whether a layered structure or redundant components are used when designing an architecture. 1 7. Exercise 6.4 on Page 173 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 3 4 A computer-controlled video conferencing system that allows video, audio, and 5 computer data to be visible to several participants at the same time. 6 7 8 A robot floor cleaner that is intended to clean relatively clear spaces such as corridors. The cleaner must be able to sense walls and other obstructions. 9 10

11 8. Exercise 6.6 on Page 174


Suggest an architecture for a system (such as iTunes) that is used to sell and distribute music on the Internet. What architectural patterns are the basis for this archite Internet Serve System Database

Control

Internet Serve System

Database

Control System

Chapter 7
1 9. What kinds of design model must be developed when using UML to develop a design? 1. Subsystem models that show logical groupings of objects into coherent sub-systems. These are represented using a form of class diagram where each sub-system is shown as a package. Subsystem models are static models. 2. Sequence models that show the sequence of object interactions. These are represented using a UML sequence or a collaboration diagram. Sequence models are dynamic: models. 3. State machine models that show how individual objects change their state in response to events. These are represented in the UML using state chart diagrams. State machine models are dynamic models. 2 10. What are meant by design patterns? A design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. A design pattern is a description of the problem and the essence of its solution. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final

application classes or objects that are involved. Pattern descriptions usually make use of object-oriented characteristics such as inheritance and polymorphism.

11. Define 3 fundamental configuration management activities. Version management, its support is provided to keep track of the different versions of software components. Version management systems include facilities to coordinate development by several programmers. System integration, its support is provided to help developers define what versions of components are used to create each version of a system. This description is then used to build a system automatically by compiling and linking the required components. Problem tracking, its support is provided to allow users to report bugs and other problems, and to allow all developers to see who is working on these problems and they are fixed.

Chapter 8
1 12. Exercise 8.1 on Page 232 Explain why it is not necessary for a program to be completely free of defects before it is delivered to its customers? A program need not be completely free of defects before delivery if: 1. Remaining defects are minor defects that do not cause system corruption and which are transient i.e. which can be cleared when new data is input. 2. Remaining defects are such that they are recoverable and a recovery function that causes minimum user disruption is available.

3. The benefits to the customer's business from the system exceed the problems that might be caused by remaining system defects. 1 13. Exercise 8.2 on Page 232

Explain why testing can only detect the presence of errors, not their absence. Assume that exhaustive testing of a program, where every possible valid input is checked, is impossible (true for all but trivial programs). Test case either do not reveal a fault in the program or reveal a program fault. If they reveal a program fault then they demonstrate the presence of an error. If they do not reveal a fault, however, this simply means that they have executed a code sequence that - for the inputs chosen is not faulty. The next of the same code sequence with different inputs could reveal a fault. The software testing process has two distinct goals: 1. To demonstrate to the developer and the customer that the software meets its requirements. 2. To discover faults or defects in the software where the behavior of the software is incorrect, undesirable or does not conform to its specification. The first goal leads to validation testing, where you expect the system to perform correctly using a given set of test cases that reflect the system s expected use. The second goal leads to defect testing, where the test cases are designed to expose defects. The test cases can be deliberately obscure and need not reflect how the system is normally used. For validation testing, a successful test is one where the system performs correctly. For defect testing, a successful test is one that exposes a defect that causes the system to perform incorrectly. Therefore, testing cannot demonstrate that the absence of errors in software.

14. Exercise 8.3 on Page 232

Some people argue that developers should not be involved in testing their own code but that argue that developers should not be involved in testing their own code. Give arguments for and against testing by the developers themselves.

2 3 4 5 6 7 8
0 1 2 3

15. Explain in detail the following terms Unit testing Component testing Regression testing Release testing Scenario testing Performance testing User testing o Alpha testing o Beta testing o Acceptance testing Unit testing: Unit testing is the process of testing individual components in isolation. A unit is the smallest testable part of an application. Unit testing should focus on testing the functionality of objects or methods. It is a defect testing process.

Component testing: 5 Component testing is the process of testing individual components in the system. This is a defect testing process so its goal is to expose faults in these components. For most system, the developers of components are responsible for component testing. Regression testing: Regression testing is the system to check that changes have not broken previously working code. In a manual testing process, regression testing is expensive but, with automated testing, it is simple

and straightforward. All tests are rerun every time a change is made to the program. Regression testing must run successfully before the change is committed. Release testing: Release testing is the process of testing a particular release of a system that is intended for use outside of the development team. The primary goal of the release testing process is to convince the supplier of the system that it is good enough for use. Release testing is usually a blackbox testing process where tests are only derived from the system specification. Scenario testing: Scenario testing is a software testing activity that uses scenario tests, or simply scenarios, which are based on a hypothetical story to help a person think through a complex problem or system for a testing. Performance testing: Performance testing is a part of release testing may involve testing the emergent properties of a system, such as performance and reliability. The testing should reflect the profile of use of the system. Performance tests usually involve planning a series of tests usually involve planning a series of tests where the load is steadily increased until the system performance becomes unacceptable. Performance testing is a form of performance testing where the system is deliberately overloaded to test its failure behavior. User testing: User testing is a stage in the testing process in which users or customers provide in put and advice on system testing. User testing is essential, even when comprehensive system and release testing have been carried out. There 3 types of user testing: Alpha testing: Users of the software work with the development team to test the software at the developers site. Beta testing: A release of the software is made available to user to allow them to experiment and to raise problems that they discover with the system developers. Acceptance testing:

Customers test a system to decide whether or not it is ready to be accepted from the system developers and deployed in the customer environment. Primarily for custom system.

Vous aimerez peut-être aussi