Software Engineering Final Exam
A persona description states the user's
Educational background Technology experience Reason why they might want to use your product
"imagined users"
Personas
What is not a part of product vision?
How the product is to be implemented and tested
The sentence "Emma, age 41, is a history teacher in a secondary school (high school) in Edinburgh." is a part of a
Persona
A set of software products that share a common core is called
Software Product Line
Aspects of product vision
Why should the customers buy the product Who the target customers are What the product is about
Focusing on the essential elements of a system or software component without concern for its details.
Abstraction
the process of verifying that a software release meets the goals set out in the product roadmap and that the product is efficient and reliable. The PM should be involved in developing tests of the product features that reflect how customers use the product.
Acceptance Testing
Virtually all software products are developed using what approach?
Agile
The __________________ of a software product affects its performance, usability, security, reliability and maintainability. It is the fundamental organization of a software system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution.
Architecture
Examples of non-functional system quality attributes are
Availability Usability Resilience Security
Three Factors that drive the design of software products:
Business and consumer needs that are not met by current products Dissatisfaction with existing business or consumer software products Changes in technology that make completely new types of product possible
*Select the incorrect DevOps principle.
Change the process first, then measure the result.
Which technique below is not used for understanding the ways people work and use software?
Code Development
*Source code management systems support (Select all that apply)
Code transfer Code version storage and retrieval Merging Branching
An element that implements a coherent set of functionality or features
Component
Concerns that are systemic, that is, they affect the whole system.
Cross-Cutting
taking a release of a product to customers and getting feedback on the product's features, usability and business. PMs are involved in selecting customers to be involved in the customer testing process and working with them during that process.
Customer Testing
Analyzing large-scale components and representing them as a set of finer-grain components.
Decomposition
Benefits of using timeboxed sprints
Demonstrable Progress Problem Discovery Work Planning
Following are some responsibilities of a Product Manager
Ensure that the product meets the business goals of the software development company Stay in regular contact with customers and potential customers to understand their needs Make developers aware of important technology issues Be involved in all stages of a product's lifetime
You have written a program to identify the even numbers between 1000 and 2000, inclusive. That is, when you enter a number in the given range, the system is to state if it is even or not. In equivalence-partition testing, which partition below is valid for this program?
Even numbers in the range 1000-2000, inclusive Odd numbers in the range 1000-2000, inclusive Odd numbers less than 1000 Even numbers less than 1000
Who owns software requirements?
External clients
Moore's vision template
FOR (target customer) WHO (statement of the need or opportunity) The (PRODUCT NAME) is a (product category) THAT (key benefit, compelling reason to buy) UNLIKE (primary competitive alternative) OUR PRODUCT (statement of primary differentiation)
*Automated system building tools reduce the time needed to compile and integrate the system by recompiling all the components of a software product. T/F
False
A product backlog contains a set of items retrieved from the sprint backlog
False
A software product is designed to address the needs of a particular customer. An example of such product is the air traffic control system.
False
A vision template is used to state how a vision should be designed.
False
After you develop a code unit, you should develop tests for that code. T/F
False
Code reviews involve the developer of a code to examine his/her code to check for error and anomalies and then discussing them with one or more developers. T/F
False
Dissatisfaction with agile software development led to the creation of plan-driven methods in the 1990s
False
In unit testing, the integrated units of code will be tested. T/F
False
Multiple authentication layers you build into the system in order to improve its security, increases the usability of the system.
False
The first stage of product development is to identify the list of Personas in which you name each role in the product and give a brief description of its responsibilities.
False
The layered architecture defines the organization of the servers in a system and the allocation of components to these servers.
False
The more features means the easier the product is to use. T/F
False
User stories are high-level (not detailed) stories of system use. They should describe a sequence of interactions with the system but should not include details of these interactions.
False
When designing software architecture, you design the component interface and the respective implementation of the interface.
False
a multi-database architecture may run more quickly and is cheaper to implement change than a single shared database. T/F
False
*The benefits of DevOps are (select all that apply)
Faster repair Reduced risk Faster deployment
A fragment of functionality. Something a user needs or wants.
Feature
When new features are added in response to user requests without considering whether or not these features are generally useful or whether they can be implemented in some other way.
Feature Creep
What should be your starting point for product design and development?
Feature List
Following are some elements, which a standard feature template should contain.
Feature name Output Input
What protocol does Client-server communication use?
HTTP
Part of the software's functionality is implemented on the customer's computer but some features are implemented on the developer's server.
Hybrid
Follow the below guideline while unit testing a software programming unit.
If your program does numeric calculations, choose test inputs that cause it to calculate very large or very small numbers Choose test inputs that cause all input buffers to overflow. If your program deals with sequences, always test with sequences that have a single value.
Following are some activities in an incremental development methodology.
Implement and test a selected features Integrate feature and test Choose features to be included in an increment
Web-based system layers
Interface Application-Specific Database
Software architecture consists of
Its components Principles guiding its design and evolution Relationship among the components
What are some principles of agile methods?
Maintain simplicity Embrace change Incremental delivery Customer involvement
What are the most commonly used architectures for web-based systems.
Multi-tier Client-server Service-oriented
The requirements of a software product is generated and owned by the
Organization who develops the product
Name some important agile techniques that were introduced in extreme programming.
Pair programming Requirements expressed as scenarios or user stories Refactoring Test-first development
Following are some elements, which a persona description should contain.
Personalization Education Job-related Relevance
Following are the author's recommended steps leading to product features
Personas --> Scenarios --> Stories --> Features
What should be the scenario starting point?
Personas the team has created.
A software product that includes functionality so that new applications can be built on it.
Platform
the process of developing an early version of a product to test your ideas and to convince yourself and company funders that your product has real market potential.
Product Prototyping
The starting point for software product.
Product Vision
Personas that are developed on the basis of limited user information:
Proto-Personas
The architecture of a software system has a significant influence on
Reliability Security Efficiency
A narrative that describes a situation
Scenario
an agile method that provides a framework for agileproject organization and planning. It does not mandate anyspecific technical practices.
Scrum
Select all the correct answers related to different types of testing.
Security testing ensures that system can protect user information. In functional testing, we are to provide evidence that the system fits its intended purpose. In user testing, we need to show that the features of the system help users do what they want to do with the software.
All of the product's features are implemented on the developer's servers and the customer accesses these through a browser or a mobile app.
Software Service
Following items influence architectural decisions.
Software reuse Product lifetime Number of users
Which software execution model relies completely on the user's computer?
Stand-alone
*DevOps team is skilled in
Support Development Deployment
Select correct definitions related to different types of testing again,
System testing involves testing the system as a whole, rather than the individual system features. In Feature testing, features have to be tested to show that the functionality is implemented as expected and that the functionality meets the real needs of users. In Unit testing, program modules are tested in isolation. In Release testing, the system that's intended for release to customers is tested.
Which of the following systems is not an example of a software product, as we have defined it in class?
The tax system used by the Internal Revenue Service (IRS)
What is the main benefit of personas?
They help development team members empathize with potential software users. "Step into the users shoes"
*Git is a distributed code management system allowing developers to work with their own copy of the repository, which may be merged with the shared project repository. T/F
True
*On a code management system, the repository ensures that branch files that have been changed cannot overwrite repository files without a merge operation. T/F
True
A development team should design and discuss the software product architecture before starting the final product implementation. Software architecture design. T/F
True
A service-oriented architecture is usually easier to scale as demand increases and is resilient to failure. T/F
True
If the behavior of the program does not match the behavior that you expect, then this means that there are bugs in your program that need to be fixed. T/F
True
In Test-driven development (TDD), you write an executable test or tests for code that you are writing before you write the code. T/F
True
In a layered model, components in lower layers should never depend on higher-level components. T/F
True
In the case of security breach, loss of entire data in a centralized security architecture is more likely than in a distributed security architecture.
True
Informal user analysis are inexpensive and very valuable. T/F
True
Infrastructure as code means that the infrastructure (network, installed software, etc.) on which software executes is defined as a machine-readable model. T/F
True
It is always preferable to use local data wherever possible and to avoid sharing data if you can. T/F
True
Making decisions about technologies such as database is an important part of the architectural design process.
True
RIS can deliver diagnostic reports and images to physicians.
True
Rapid delivery is essential for bringing a software product to market.
True
Scenarios are high-level stories of system use. They should describe a sequence of interactions with the system but should not include details of these interactions. T/F
True
Software product engineering methods and techniques have evolved from software engineering techniques that support the development of one-off, custom software systems. T/F
True
The methods and techniques used to develop software products are evolved from the software engineering techniques used to develop custom software systems.
True
To improve maintainability, we should build a system from small-contained components, which can be replaced or enhanced if needed.
True
User stories are finer-grain narratives that setout in a more detailed and structured way a single thing that a user wants from a software system. T/F
True
Following is usually the SEQUENCE of tests one performs on a software.
Unit testing --> Feature testing --> System testing --> Release testing
What can be used to describe features in your product that should be implemented?
User Stories
The key influences in feature identification:
User research Domain Knowledge Product Knowledge Technology Knowledge
Which statements below, appropriately, describe a scenario?
a description of a situation where a user is using your product's features to do something that they want to do. a narrative that describes how a user, or a group of users, might use your system. descriptions may vary in length up to usually a page of text.
In Scrum, a product backlog is a to-do-list of items such as ___________ that the Scrum team has not yet completed.
bugs features product improvements
In the agile manifesto
customer collaboration is valued more than contract negotiation individuals and interactions are valued more than processes and tools working software over comprehensive documentation responding to change over following a plan
A plan-driven development, vs. agile development, is usually used for
developing long-lived software systems developing large software systems such as air traffic control system large teams involved in developing a large system
User understanding techniques
interviews surveys ethnography task analysis
Agile software engineering focuses on
responding to changing product specifications minimizing development overheads delivering functionality quickly