Exam 2 Software Engineering

¡Supera tus tareas y exámenes ahora con Quizwiz!

How do design patterns contribute to reuse?

a. A design pattern is a way of reusing abstract knowledge about a problem and its solution b. A pattern is a description of the problem and the essence of its solution.

What is an architectural pattern?

a. A means of representing, sharing, and reusing knowledge. b. Stylized description of good design practice, which has been tried and tested in different environments. The pattern should include information on when it is and is not appropriate to use that architectural design.

What UML diagram types may be used to represent the essential features of a system?

a. Activity diagrams b. Use case diagrams c. Sequence diagrams d. Class diagrams e. State diagrams

What is the fundamental characteristic of a repository architecture?

a. All data in a system is managed in a central repository that is accessible to all system components. Components do not interact directly, only through the repository. b. When large amounts of data are to be shared, the repository model of sharing is most commonly used as an efficient data sharing mechanism.

What are the three types of user testing?

-Alpha testing -Beta testing -Acceptance testing

What are the three important classes of interface errors?

-Interface misuse -Interface misunderstanding -Timing errors

Briefly summarize the test-driven development process.

-Testing code as soon as any component is available. -Tests are written before the code so that passing the tests is the critical driver of the development. -Code is developed and tested in increments. -The code can't move forward until it has passed the previous test. -It can be used for agile development and plan driven development.

What guidelines does Whittaker suggest for defect testing?

1. Choose inputs that force the system to generate all error messages. 2. Design inputs that cause input buffers to overflow. 3. Repeat the same input or series of inputs numerous times. 4. Force invalid outputs to be generated. 5. Force computation results to be too large or too small.

Describe interface misuse.

A calling component calls another component and makes an error in its use of its interface. Ex. parameters in the wrong order.

Describe interface misunderstanding

A calling component embeds assumptions about the behavior of the called component which are incorrect.

What is an equivalence partition?

A partition created with possible outputs from running a software so that when the software is tested, if the data is within a certain range, the bug can be easier to find.

Describe beta testing

A release of the software is made available to users to allow them to experiment and raise problems that they discover with the system developers.

Describe a state model

A state diagram is associated with each class and is used to describe the life cycle of the class.

Describe pipe and filter architecture.

A system is decomposed into a set of functional transformations that consume inputs and produce outputs.

Describe a class model

Classes are defined, along with their attributes and operations.

What tests should be included in object class testing?

Complete test coverage of a class involves: -Testing all operations associated with an object -Setting and interrogating all object attributes -Exercising the object in all possible states.

Describe 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 systems.

Describe the behavioral approach that can be used to identify object classes.

It identifies objects based on what participates in what behavior.

Describe a domain model

It identifies the principal concerns in a system. They are defined using UML class diagrams and include objects, attributes, and associations.

What is stress testing and why is it useful?

It is a form of performance testing where the system is deliberately overloaded to test its failure behavior. This shows what will cause the program to crash and shows what the software can handle.

Describe the grammatical approach that can be used to identify object classes.

It is based on a natural language description of the system.

What is the basic assumption that underlies event-driven modelling?

It is based on the assumption that a system has a finite number of states and that events (stimuli) may cause a transition from one state to another.

How is generalization used to simplify the models of a system with many similar objects?

It is often useful to examine the classes in a system to see if there is scope for generalization. If changes are proposed, then you do not have to look at all classes in the system to see if they are affected by the change.

Describe the developmental view proposed in Krutchen's 4+1 model.

It shows how the software is decomposed for development.

Describe the process view proposed in Krutchen's 4+1 model.

It shows how, at run-time, the system is composed of interacting processes.

Describe the logical view proposed in Krutchen's 4+1 model.

It shows the key abstractions in the system as objects or object classes.

Describe the physical view proposed in Krutchen's 4+1 model.

It shows the system hardware and how software components are distributed across the processors in the system.

Describe the scenario-based approach that can be used to identify object classes.

Objects, attributes, and methods in each scenario are identified.

What is the most important advantage of a client-server architecture?

Servers can be distributed across a network. General functionality (e.g., a printing service) can be available to all clients and does not need to be implemented by all services.

What are the advantages of inspections over testing?

Test data is given to the software to see if the results given are correct. It is easy to find errors this way before they are too deep to be caught. If there are errors, they can be hidden by other errors so inspections are useful for finding errors before there are too many.

What are the principal aims of software configuration management?

The aim of configuration management is to support the system integration process so that all developers can access the project code and documents in a controlled way, find out what changes have been made, and compile and link components to create a system.

Describe timing errors

The called and the calling component operate at different speeds and out-of-date information is accessed.

Describe an external perspective for system modeling.

The developer models the context or environment of the system.

Describe a behavioral perspective for system modeling.

The developer models the dynamic behavior of the system and how it responds to events.

Describe an interaction perspective for system modeling.

The developer models the interactions between a system and its environment, or between the components of a system.

Describe a structural perspective for system modeling.

The developer models the organization of a system or the structure of the data that is processed by the system.

What is described in a context model?

The immediate external environment of the system defining the systems context and dependencies that a system has on its environment.

Why does inheritance make it harder to design object class tests?

The information to be tested is not localized.

How are activity diagrams used in describing the context of use of a system?

They may be used to describe the business processes in which the system is used and the other systems which are also used in these processes.

How do state diagrams represent the essential features of a system?

They show how the system reacts to internal and external events.

How do sequence diagrams represent the essential features of a system?

They show interactions between actors and the system and between system components.

What is illustrated in a UML sequence diagram?

They show interactions between actors and the system and between system components.

How do activity diagrams represent the essential features of a system?

They show the activities involved in a process or in data processing.

How do use case diagrams represent the essential features of a system?

They show the interactions between a system and its environment.

How do class diagrams represent the essential features of a system?

They show the object classes in the system and the associations between these classes.

Describe alpha testing

Users of the software work with the development team to test the software at the developer's site.

What is scenario testing?

Using the software based on a scenario of what may be needed from the software.

What is the distinction between validation and verification?

Verification checks that the software does what is required. Validation checks that the software does what the user needs.

What are the most important benefits of test-driven development?

Your understanding of the problem/requirements is improved. Code coverage is improved as every code segment has at least one associated test Regressing testing costs are reduced Debugging is simplified as the fault is associated with a particular test Tests act as a form of system documentation

What are the advantages of explicitly designing and documenting a software architecture?

a. Architecture may be used as a focus of discussion by system stakeholders. b. Detailed analysis c. The architecture may be reusable across a range of systems d. Product-line architectures may be developed.

What are the two ways in which an architectural model of a system may be used?

a. As means for facilitating discussion about the most appropriate architecture for a system. b. As a means of documenting the architecture for the system.

Briefly describe the three principal stages of testing for a commercial software system.

a. Development testing- System is tested during development to find bugs and errors. b. Release testing- A separate team tests the software before it is released to the users. c. User testing- the users are able to test the system in their own environment.

What are the three types of abstract system models that are recommended by the MDA method?

a. Domain models b. Class models c. State models

What perspectives may be used for system modeling?

a. External perspective b. Interaction perspective c. Structural perspective d. Behavioral perspective

List four fundamental questions that should be addressed in architectural design.

a. How will the system be distributed? b. What architectural styles are appropriate? c. What approach will be used to structure the system? d. How will the system be decomposed into modules?

What are essential tools in a software development platform?

a. Integrated compiler and syntax directed editing system that allows you to create, edit, and compile code. b. a language debugging system. c. Graphical editing tools, such as tools to edit UML models. d. Testing tools, such as Junit that can automatically run a set of tests on a new version of a program. e. Project support tools that help you organize the code for different development projects.

What are the claimed benefits of model-driven engineering?

a. It allows systems to be considered at higher levels of abstraction. b. Generating code automatically means that it is cheaper to adapt systems to new platforms.

Briefly describe the idea of open-source development.

a. It is an approach to software development in which the source code of a software system is published and volunteers are invited to participate in the development process. b. Open source software extended this idea by using the Internet to recruit a much larger population of volunteer developers. Many of them are also users of the code.

What are the fundamental architectural views proposed in Krutchen's 4+1 model?

a. Logical view b. Process view c. Developmental view d. Physical view

Why is it important to specify the interfaces of components that are being developed by a software engineering team?

a. Objects may have several interfaces which are viewpoints on the methods. b. So that the objects and other components can be designed in parallel.

What should be the principal concerns of system testing?

a. System testing during development involves integrating components to create a version of the system and then testing the integrated system. b. The focus in system testing is testing the interactions between components. c. System testing checks that components are compatible, interact correctly, and transfer the right data at the right time across their interfaces. d. System testing tests the emergent behavior of a system.

What do you understand by the system context and interaction model?

a. Understanding the relationships between the software that is being designed and its external environment is essential for deciding how to provide the required system functionality and how to structure the system to communicate with its environment. b. Understanding of the context also allows one to establish the boundaries of the system. Setting the system boundaries helps one decide what features are implemented in the system being designed and what features are in other associated systems.

What are transaction-processing applications?

a. Users make asynchronous requests for service which are then processed by a transaction manager. b. Process user requests for information from a database or requests to update the database.

What are the four levels at which software reuse is possible?

a. abstraction level b. object level c. component level d. system level

What are the 5 key activities in an object-oriented design process?

a. define the context and modes of use of the system. b. design the system architecture. c. identify the principal system objects. d. Develop design models. e. Specify object interfaces.

Name 3 approaches that may be used to identify object classes

a. grammatical approach b. behavioral approach c. scenario-based analysis

What do Gamma et al. suggest are the four essential elements of a design pattern?

a. name b. problem description c. solution description d. consequences

What are the principal components of a textual use-case description?

a. the actors involved b. a description of interactions c. the data that is exchanged d. the stimulus that triggers the use case e. the response of the system f. comments and other information

What are the principal functions of the 4 layers in a generic information system architecture?

a. user interface b. user communications c. information retrieval d. system database


Conjuntos de estudio relacionados

SmartBook Assignment Chapter 19: Electrochemistry

View Set

Chapter 16: The Era of Reconstruction

View Set

periodic table (first 25 elements)

View Set

Brave New World - Chapter 2 & 3 Questions

View Set