SWENG 411 Exam 2

Ace your homework & exams now with Quizwiz!

Why Architectural Design?

*To enable everyone to better understand the system *To allow teams to work on individual pieces of the system in isolation *To prepare for extension of the system *To facilitate reuse and re-usability

What are the different types of tests to perform on a system?

Unit tests, integration tests, system tests, and validation tests

Check the slides on canvas for diagram notations and other details!

Ya cunt

What is the primary relationship among systems and subsystems?

aggregation

When you test software, you use _______________ data

artificial

What are the three kinds of relationships in UML?

associations, dependencies, and generalizations

Where do more errors in software occur?

at the boundaries of equivalence classes

True or false: an element can be owned by more than one package

false

What does it mean for a package to be "purely conceptual"?

it doesn't exist at run time; only at development time

A state diagram shows the ______________ of an object

life-cycle

what are the two integration testing strategies?

the "big bang" approach and incremental testing

What do you test as a unit in the "big bang" approach?

the entire system

True or false: UML allows a class to inherit from multiple superclasses

true

Disadvantages of alpha testing

-A relatively small number of customers -Expensive to invite the users onsite

Advantages of beta testing

-Cheap -A large number of tests can be conducted -Test cases are performed in different environments and settings

Advantages of Repository Pattern

-Components can be independent—they do not need to know of the existence of other components. -Changes made by one component can be propagated to all components. -All data can be managed consistently (e.g., backups done at the same time) as it is all in one place. -Efficient way to store large amounts of data

What makes up the 'pipe' and 'filter' of the pipe and filter architectural pattern and what do they do?

-Components: called filters, apply local transformations to their input streams and often do their computing incrementally so that the output begins before all input is consumed -Connectors: called pipes, serve as conduits fro the streams, transmitting outputs of one filter to inputs of another.

Advantages of the layered architectural pattern

-Design: based on increasing levels of abstraction -Enhancement: Changes to one layer affect at most two other layers -Reuse: Different implementations (with identical interfaces) of the same layer can be used interchangeably

Advantages of Pipe and Filter

-Easy to understand -Supports reuse -Systems can be easily maintained and enhanced -Naturally supports concurrent or sequential execution

Disadvantages of beta testing

-Many reported problems might not be real problems related to the software system -Large number of system tests/errors might have to be processed -Not always easy to duplicate tests

Some classical software architectural patterns (4)

-Model View Controller (MVC) -Layered -Repository (data-centered) -Pipe and filter (data-flow)

Disadvantages of Repository Pattern

-Must agree on a data model -The repository is a single point of failure so problems in the repository affect the whole system -May have inefficiencies in organizing all communication through the repository -Distributing the repository across several computers may be difficult.

Disadvantages of Pipe and Filter

-Not good for interactive systems -Excessive parsing and unparsing leads to loss in performance and increased complexity in writing the filters themselves

What does it mean if package P1 generalizes package P2?

-P1 specializes the more general P2 -P1 inherits the elements of P2 -P1 can replace the inherited elements and add new ones

Disadvantages of the layered architectural pattern

-Providing a clean separation of layers is difficult -Performance can be an issue

Advantages of alpha testing

-controlled environment means that errors/tests can be repeated. -Test cases/errors are recorded by staff

What are the two 'types' of classes?

-ones found during analysis (people, places, events, etc.) -ones found during design (specific objects like windows and forms that are used to build the system)

A well designed package .......

....groups elements that are semantically close and tend to change together

Dependencies between packages reflect...

...dependencies between any two classes in the packages

Testing is intended to...

...show that a program does what it is intended to do and to discover program defects before it is put into use.

Design Principles

1. Divide and conquer 2. Increase cohesion where possible 3. Reduce coupling where possible 4. Information hiding 5. Keep the level of abstraction as high as possible 6. Increase re-usability where possible 7. Design for change 8. Design for portability 9. Design defensively

Steps of developing an architectural model

1. Sketch an outline of the model 2. Refine the architecture 3. Consider each use case and adjust the architecture to make it realizable 4. Mature the architecture

Navigability of an association

A constraint on an association relationship that determines which class associates with the other.

What is a "good" test?

A good test has a high probability of finding an error, the test is not redundant and the test is not too simple nor too complex

Design Process

A problem-solving process whose objective is to find and describe a way to implement the system's functional requirements while respecting the constraints imposed by the non-functional requirements and while adhering to general principles of good quality.

What is the difference between a system and a subsystem?

A system represents the highest-level thing in a given context. A system is defined in terms of subsystems. The subsystems that make up a system provide a complete and non-overlapping partitioning of the system as a whole.

What is a guarded transition?

A transition with an additional condition (guard)

Repository Architectural Pattern

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.

what is a state-independent object?

An object that always responds the same way to all events

What are the two classical phases of software design?

Architectural design and detailed design

Which relationship is stronger: Association or Dependency?

Association

True or false: testing by brute force is sometimes necessary

False. Testing by brute force should never occur

What is an activity?

In a conceptual diagram, an activity is some task that needs to be done. In a specification-perspective or implementation-perspective diagram, an activity is a method on a class.

Whats the difference between Internal and Self transitions?

Internal transitions do not leave the state, whereas self transitions leave and re-enter the state

What does it mean when an element of a package have a +, -, or # next to its name?

It means its visibility is defined as public (+), private (-), or protected (#)

What are the three logical components of the MVC model?

Model - manages the system data and associated operations on that data View - defines and manages how the data is presented to the user Controller - manages user interaction and passes these interactions to the View and the Model

Acceptance Testing

Performed by end users and conducted over a period of weeks or months to uncover cumulative errors that might degrade the system over time.

Bottom-up integration testing

Start by testing the lowest levels of the software. You need drivers (simple programs designed for testing that make calls to lower layers) to test the lower layers

Top-down design process

Start with high-level structure of the system, gradually work down to detailed decisions

Recovery Testing

Testing how the system recovers from a crash, power outage, etc.

Stress Testing

Testing how the system runs with a large amount of simultaneous users/ large amount of data processing

Security Testing

Testing if the system can be broken into from an outside source

Performance Testing

Testing run-time performance within the context of an integrated system

Alpha Testing

Tests done by a selected number of customers/users on the developer's site in a controlled environment.

Why should some non-developer test the software?

The developer will be gentle on the software, whereas a non-developer will try to break the system to ensure quality.

Architectural Design

The process of designing the global organization of a software system, including dividing software into subsystems, deciding how these will interact, and determining their interfaces

'Pipe and Filter' Architectural Pattern

The processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. The data flows (as in a pipe) from one component to another for processing.

package interface

The public part of a package, called its exports

What is "the ripple effect" in terms of testing?

There is a high probability that the efforts to remove the defects may have added new defects.

What is the purpose of defect testing?

To discover faults or defects in the software where its behavior is incorrect or not in conformance with its specification

True or False: Integration testing combines individual units and tests them as a group

True

What is the difference between verification and validation?

Verification ensures that the software conforms to its specification. Validation ensures that the requirements are met.

What's the difference between white-box and black-box testing?

White-box testing: tests are generated from the implemented structure Black-box testing: Tests are generated and executed from the specification of the required functionality at defined interfaces

How does incremental testing work?

You test each individual subsystem in isolation. Continue testing as you add more subsystem to the final product

What is a driver?

a "main program" that accepts test case data, passes such data to the component (to be tested), and prints relevant results

Package

a general purpose mechanism for organizing elements into groups

What does a generalization relationship do?

a generalization connects a subclass to its superclass. It denotes an inheritance.

What is an equivalence class?

a group of inputs that will all be treated the same in a given algorithm.

What is an interface?

a named set of operations that specifies the behavior of objects without showing their inner structure. They have no attributes or state. Rather, they specify the services offered by a related class.

UML class diagram

a picture of the classes in an Object Oriented system, their fields and methods, and connections between the classes that interact or inherit from each other

What is a stateful object?

a stateful object exhibits different behaviors in different states

Architectural Pattern

a stylized description of good design practice, which has been tried and tested in different environments.

In the layered architectural model, a layered provides services to the layer _________________ it so the lowest-level layers represent core services that are likely to be used throughout the system.

above

What are the two special associations?

aggregations and compositions

What are some things are NOT represented in a UML class diagram?

algorithmic details or how a particular behavior is implemented

What are activity diagrams useful for (other than describing activities)?

describing complicated methods and describing use cases.

Each design issue normally has several alternative solutions, also known as _____________.

design options

True or false: an object can be an instance of more than one class

false

true or false: state diagrams need to represent every possible event

false

Top-down integration testing

highest-level modules are tested first and progressively lower-level modules are tested thereafter. Start by testing the user-interface and write stubs (pieces of code that have the same interface as the lower level functionality)

Dependency Relationship

indicates a semantic relationship between two or more elements.

What are the 4 view models of software architecture?

logical view, process view, development view, physical view

McCabe Cyclomatic Complexity Strategy

number of linearly independent paths: = number of simple decisions + 1 = number of edges - number of nodes + 2

When a class is dependent on an interface, it is called a ________

realization relationship

What is a stub?

replaces modules that are subordinate (called by the component to be tested)

What is the name of the testing strategy that is a mix of top-down and bottom-up?

sandwich testing

What are the two ways that activities can be aligned?

sequentially - one activity is followed by another parallel - two or more sets of activities are performed concurrently, and order is irrelevant

Bottom-up design process

start with reusable low level utilities, then decide how they will be combined to create higher constructs

A designer is faced with a series of design issues. These are _______________ of the overall design problem.

sub-problems

regression tests

tests that are re-run

When making a design decision, the software engineer uses knowledge of what 4 things?

the requirements, the design as created so far, the technology available, and software engineering principles and 'best practices'

Beta Testing

the system is distributed to customers to be tested remotely. Customers are supposed to record all problems during testing.

What is the purpose of validation testing?

to demonstrate to the developer and the system customer that the software meets its requirements

True or False: a mix of top-down and bottom-up design processes can be used to design software systems

true

when in the regression testing process do you stop testing?

when a test fails, stop testing and wait until the fault has been corrected. Then start testing again

When is an association relationship needed?

when two class in a model need to communicate with one another.


Related study sets

Copyright Final Exam - (Belmont, Holt)

View Set