Software Engineering
True
An architectural decision is often documented using an architecture decision description template.
constraints components semantic models
An architectural style encompasses which of the following elements?
The Incremental Model
A good approach when a working core product is required quickly
False
A good software development team always uses the same task set for every project to insure high quality work products.
The Waterfall Model
A reasonable approach when requirements are well defined
what was reviewed who reviewed it what were the findings
A review summary report answers which three questions?
engineering work tasks, milestones, deliverables
A task set is a collection of
The Prototyping Model
A useful approach when a customer cannot define requirements quickly
The Spiral Model
A useful approach when large-scale systems and software are developed in a series of evolutionary releases
flow dependencies sharing dependencies
A useful technique for evaluating the overall complexity of a proposed architecture is to look at the component
end users
Acceptance tests are normally conducted by the
casual meeting desk check pair programming
An informal review may consist of which of the following?
accept the work product without modification reject the product due to severe errors
At the end of a formal technical review all attendees can decide to
incorrect or missing functions interface errors performance errors
Black-box testing attempts to find errors in which of the following categories
Linear Process Flow
Building a routine product similar to something the team has done before
Evolutionary Process Flow
Building projects (e.g. WebApps) that need to be developed in a rapid, but controlled manner that avoids unnecessary rework
Parallel Process Flow
Building self-contained work products simultaneously for systems that are composed of subsystems
are being properly followed.
Check whether risk aversion steps ___________________________________________________
exercise the logical conditions in a program module
Condition testing is a control structure testing technique where the criteria used to design test cases is that they
1. Citizens can log onto website. 2. Citizens can report the location and severity of potholes. 3. Citizen is given an identifying number. 4. Citizen is stored by street address, size (scale 1-10), location, district, and repair priority.
Conduct a grammatical parse of the following user story and create a list of potential analysis classes: Citizens can log onto a website and report the location and severity of potholes. As potholes are reported they are logged within a "public works department repair system" and are assigned an identifying number, stored by street address, size (on a scale of 1 to 10), location (middle, curb, etc.), district (determined from street address), and repair priority (determined from the size of the pothole).
select test paths based on the locations and uses of variables
Data flow testing is a control structure testing technique where the criteria used to design test cases is that they
The purpose of domain analysis is to create analysis classes and to find broadly applicable patterns so they can be reused for common problems.
Describe the purpose of domain analysis modeling in your own words.
Do not generally produce throwaway systems. Are iterative in nature. Can easily accommodate product requirements changes.
Evolutionary software process models...
define software objectives.
Designer and customer
It is important to look for places where stakeholders have communications problems. When the requirement validation uncovers an error, it has each requirement against a set of checklist questions. It then has a review team looking into it. The review team includes software engineers, customers, users, and other stakeholders who examine the specification looking for errors in content or interpretation, areas where clarification may be required, missing information, inconsistencies (a major problem when large products or systems are engineered), conflicting requirements, or unrealistic (unachievable) requirements.
Differentiate among causes of errors uncovered by requirements validation.
A defect is a problem that is found only after the software has been released to end users. An error is a problem that is found before the software is released to end users.
Differentiate between defects and errors.
Software quality is an effective software process applied in a way that creates a useful product that provides measurable value for those who produce it and use it. Software reliability is the probability of failure-free operation of a computer program in a specified environment for a specified amount of time.
Differentiate the concepts of software reliability from software quality.
A responsibility is an attribute and operation that are relevant to the class, or anything the class knows or does. A collaboration is a class that is required to provide a class with the information needed to complete a responsibility. It implies a request for information or a request for some action.
Distinguish between a responsibility and a collaborator in a CRC model.
Risk drivers are what affect risk components. These include performance, cost, schedule, and support. Risk components include performance risks- the degree of uncertainty that the product will meet its intended use, cost risk- the degree of uncertainty that the product will remain on budget, support risk- degree of uncertainty that the software is easy to maintain, and schedule risk- the degree of uncertainty that the project is delivered on time.
Distinguish between risk components and risk drivers.
documentations created early.
Documents developed in a timely mannnered
peer-level systems subordinate systems superordinate systems
During the process of modeling the system in context, systems that interact with the target system are represented as
Just because the program is correct does not mean it is reliable. The program could run without errors but still not be able to complete the tasks needed at hand. The software should also have a measure of availability, meaning the program is operating according to requirements at a given point in time. Software reliability is failure free for a specified amount of time in a specified environment.
Explain how program can be correct and not be reliable.
When you have better cohesion and less coupling, there is less chunking that needs to be attended to at the same time.
Explain why chunking is important during the component-level design review process.
Similar to the question above, just because the program is correct does not mean it has the quality needed. It could run without errors, but run at a very slow time, or run without meeting the requirements needed. It could also run, but not have very good design or be a very useful product. Software quality ensures that the program is an effective process proving a useful product that provides value for those making it and using it.
Explains how a program can be correct but not exhibit high quality.
each critical team member.
Have a backup person for
an entire system to fail
Hazard analysis focuses on the identification and assessment of potential hazards that can cause
performance, support, cost, schedule
Software risk impact assessment should focus on consequences affecting
Software increments must be delivered in short time periods Software processes must adapt to changes incrementally
How do you create agile processes to manage unpredictability?
start on the right foot track progress
How does a software project manager need to act to minimize the risk of software failure?
Can gain direct access to the device hardware
Identify a characteristic that distinguishes a MobileApp from a WebApp.
develop an abbreviated solution for the problem
Identify poor reasons for developing a requirements model.
implements all analysis model requirements provides a complete software picture quality assessment guidelines
Identify the characteristics that belong to good design.
False
In agile process models the only deliverable work product is a working program.
databases files
In component-level design persistent data sources refer to
data flow view module view process view
In the architecture trade-off analysis method, the architectural style should be described using the
control component infrastructure component problem domain component
In traditional software engineering, modules must serve in which of the following roles?
risk management software quality assurance project tracking formal technical reviews
Indicate the umbrella activities that would be applied across the entire software engineering process.
cluster testing thread-based testing use-based testing
Integration testing of object-oriented software can be accomplished by which of the following testing strategies?
focus on testing the validity of loop constructs
Loop testing is a control structure testing technique where the criteria used to design test cases is that they
Make a judgment about why it is important to begin testing with object-oriented analysis and design.
Make a judgment about why it is important to begin testing with object-oriented analysis and design.
Coupling measures a module's connections to other modules. Cohesion is the extent to which a module focuses on just one thing.
Mark the correct statements to indicate the differences between software coupling and cohesion.
False
Modern WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.
true
One means of defining user interface objects and actions is to conduct a grammatical parse of the user scenario.
give team members more control over process and technical decisions.
One of the best ways to avoid frustration during the software development process is to
As product development cycles shorten, there are pressures to streamline requirements engineering so that products come to market more quickly. But the fundamental problem remains the same: getting timely, stable, and accurate stakeholder input.
Outline reasons that many software developers do not pay enough attention to requirements engineering.
may cause an entire system to fail
Software safety is a quality assurance activity that focuses on hazards that
control logic is invoked data flow paths are established
Regression testing should be a normal part of integration testing because as a new module is added to the system new
up to a particular stage.
Review works done
likelihood and consequences
Risk projection attempts to rate each risk in which two ways?
error handling system response time
Several common design issues surface for almost every user interface including
number of user errors time spent using help materials
Several usability measures can be collected while observing users interacting with a computer system including
Multiple change requests introduce errors in component interactions
Software deteriorates rather than wears out because
False
Software is a product and can be manufactured using the same technologies used for other engineering artifacts
errors in design errors in implementation
Software reliability problems can almost always be traced to
uncertainty and loss
Software risk always involves two characteristics
coding
The 40-20-40 rule suggests that the least of amount of development effort be spent on
and successful review of a defined software work product
The best indicator of progress on a software project is the completion
the conflicts of interest between developers and testers is reduced
The best reason for using independent software test teams is that
False
The communication activity is best handled for small projects using six distinct actions (inception, elicitation, elaboration, negotiation, specification, validation).
True
The essence of software engineering practice might be described as: understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.
establish the objectives and scope.
The first step in project planning is to
functionality to be delivered process used to deliver functionality
The major areas of problem decomposition during the project scoping activity are the
fewer people are required
The software equation can be used to show that by extending the project deadline slightly
Includes project risks evaluation during each iteration.
The spiral model of software development...
detecting intertask dependencies determining the critical path
The task (activity) network is a useful mechanism for
project risks, technical risks, business risks
Three categories of risks are
characteristics and constraints
To determine the architectural style or combination of styles that best fits the proposed system, requirements engineering is used to uncover
scenario-based elements
UML activity diagrams are useful in representing which analysis model elements?
planning, design, coding, testing
What are the four framework activities found in the Extreme Programming (XP) process model?
Agile teams need to be free to adapt their organization to the task at hand. Agile teams are self-organizing and may change their organizational structure during different phases of the project lifetime.
What is the most significant attribute that distinguishes an agile team from a conventional software team?
operations and classes that are critical or suspect
What is the purpose of fault-based testing?
concentrates on actor and software interaction
What is the purpose of scenario-based testing?
control data procedural
What types of abstraction are used in software design?
logic errors typographical errors
What types of errors are missed by black-box testing and can be uncovered by white-box testing?
study existing computer-based solutions observe users performing tasks manually
Which approaches to user task analysis can be useful in user interface design?
The incremental model of software development
Which is a good approach when a working core product is required quickly?
The waterfall model of software development
Which is a reasonable approach when requirements are well defined?
The incremental model of software development
Which is a useful approach when a customer cannot define all requirements clearly but need to release the product quickly?
adds value for developers and end users effective software process creates infrastructure useful products satisfy stakeholder requirements
Which of the following are attributes of software quality?
observability simplicity stability
Which of the following are characteristics of testable software?
attentive to detail brutally honest resilient under pressure
Which of the following are important traits of an effective software engineer?
uncover errors in software work products
Which of the following are objectives for formal technical reviews?
frenzied work atmosphere poorly coordinated software process unclear definition of team roles
Which of the following can contribute to team toxicity?
attributes interfaces operations
Which of the following elements to need to be described in detail during component design elaboration?
only provide one rigid method for completing a task
Which of the following interface design principles does not allow the user to remain in control of the interaction with a computer?
define intuitive shortcuts disclose information progressively establish meaningful defaults
Which of the following interface design principles reduce the user's memory load?
external failure costs
Which of the following is likely to be the most expensive cost of quality?
market assessment
Which of the following is not one of the guiding principles of software project scheduling:
validation
Which of the following is not one of the major activities of domain engineering?
estimation decisions risk-oriented decisions scheduling decisions
Which of the following management decisions have the potential to impact software quality?
error handling execution paths
Which of the following need to be assessed during unit testing?
events people structures
Which of the following should be considered as candidate objects in a problem space?
Social media has become pervasive of our everyday activities. Software is embedded in cars and appliances. Services are delivered on demand using the Internet and mobile devices.
Which of the following statements indicate the extent of the impact of software on society?
Only essential work products are produced Process allows team to streamline tasks Uses incremental product delivery strategy
Which of the the following are benefits of using agile process models?
defect tracking against quality target empirical cost estimation formal risk management
Which of these are critical practices for performance-based project management?
complexity of problem different views of the problem law of unintended consequences risk associated with decision
Which of these factors complicate decision-making by global software teams?
data elements
Which of these is not an element of a requirements model?
context function information objectives performance
Which of these software characteristics are used to determine the scope of a software project?
equivalence class partitioning
Which of these techniques is not useful for partition testing at the class level?
quality
Which of these words summarizes the importance of the software design process?
Why does computer hardware cost so much?
Which question no longer concerns the modern software engineer?
random
Which team organizational paradigm would you expect to use for a team developing an extremely innovative computer-based video game?
Iterative Process Flow
building systems involving technologies that are new to the development team
component-level design
detailed room view
interface design
drawing of access points and utilities
architectural design
house floor plan
top-down integration testing
major decision points are tested early
bottom-up integration testing
no stubs need to be written
SelectCamera( );
operation that manipulate data in some way
Displayview( );
operations inquiring about the state of an object
SoundAlarm( );
operations that monitor an object for the occurrence of a controlling event
ComputeArea( );
operations that perform computations
black-box testing
test cases demonstrate that each program function is called
white-box testing
test cases exercise the internal logic of a software module