1/137
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
What are the likely explanations for most software failures?
Increase system complexity; Failure to use software engineering methods
What are essential attributes of good software?
Acceptability; Dependability; Maintainability
What best describes embedded control systems?
Software control systems that control and manage hardware devices.
What are software engineering fundamentals applicable to all types of software systems?
Developed using a managed process; Dependability and performance are important; Understanding and managing software specifications and requirements; Effective use of existing resources.
What is a major change in software engineering for web-based systems?
Software reuse has become the dominant approach.
What are the areas of professional responsibility regarding ethics in software engineering?
Competence; Intellectual property rights
What is software specification?
Where customers and engineers define the software to be produced and its constraints.
What is software development?
Where the software is designed and programmed.
What is software validation?
Where the software is checked to ensure it meets customer requirements.
What is software evolution?
Where the software is modified to reflect changing requirements.
What does the Waterfall model represent?
Takes fundamental process activities and represents them as separate phases.
What is incremental development?
Develops a series of versions, each adding functionality to the previous version.
Which method is typically used in safety-critical systems?
Waterfall
What does requirements analysis and definition establish?
The system's services, constraints, and goals by consulting with users.
What are appropriate systems for the waterfall method?
Embedded systems; Critical systems; Large software systems
What are advantages of incremental development over waterfall?
Reduced change cost; Easier customer feedback; Early delivery and deployment
What is a downside to the incremental approach?
System structure tends to degrade as new increments are added.
What is NOT a type of software component frequently reused?
Custom systems from a student project
What are the 3 main activities in the requirements engineering process?
Elicitation and analysis; Specification; Validation
What is the Process Maturity Approach?
Improving process and project management and introducing good software engineering practice.
What is the Agile Approach?
Iterative development and reduction of overheads in the software process.
Why do companies care more about rapid delivery than detail?
Businesses operate in a changing climate, making it impractical to focus on minute details.
What are principles underlying agile development?
Individual interactions over processes; Working software over documentation; Customer collaboration over contract negotiation; Responding to change over following a plan.
What is an advantage of user stories?
Easy for users to understand and critique.
What is a disadvantage of user stories?
They are liable to be incomplete.
What is a difficulty with test first development?
Programmers may take shortcuts when writing tests.
What common aspect of scrum methodology is affected by remote work?
The regularly scheduled stand-up meeting.
What are functional requirements?
Statements of services the system should provide and how it should behave.
What are constraints on the services offered by the system?
Timing constraints, development process constraints, and constraints imposed by standards.
What are non-functional requirements?
Statements in natural language plus diagrams of the services the system provides and its operational constraints.
What is the purpose of user requirements?
A structured document setting out detailed descriptions of the system's functions, services and operational constraints.
What is an example of a non-functional requirement?
During a given business day, system downtime should not exceed 5 minutes.
What type of requirements engineering do Agile methods typically use?
Incremental.
True or False: Stakeholders often don't know what they want from a system except in general terms.
True.
Who are examples of stakeholders regarding the use of an ATM?
The customers of the bank; Any customers of another bank willing to use this ATM for a fee; The employees of the bank.
What is a common requirements elicitation technique?
Interviewing.
What is a recommended guideline when writing natural language requirements?
Avoid the use of overly technical language.
True or False: Ambiguities in software requirements do not largely affect the cost of a project.
False.
What are the 3 main components of the user story template?
Benefit; Role; Goal.
What is the main method used in Stage 1 of research?
Survey.
What is the main method used in Stage 2 of research?
Interviews.
What is the first follow-up interview question in the paper?
Describe your role in working with user stories.
What percent of respondents did not use a template for user stories, according to the paper?
15%.
True or False: Those respondents who do use a template generally found more benefit from user stories.
True.
What is the key to getting the full benefit from a user story template?
Benefit section.
True or False: Quality Guidelines improve the relationship between practitioners seeking more quality and user stories.
True.
What do user stories improve?
Productivity.
True or False: Many practitioners are very negative about user stories.
False.
Architectural design has a close relationship to which phase of software development?
Requirements engineering.
What is architecture in the small typically used for?
Individual programs.
What is architecture in the large typically used for?
Large software systems such as enterprise systems with many subsystems.
What are advantages of using software architecture?
Stakeholder communication; System analysis; Large-scale reuse.
True or False: Using a block diagram for large, complex systems is an intuitive way for people to see the structure.
True.
What must the architectural design satisfy?
Meet the requirements for both functional and non-functional requirements.
What best describes an API?
A method that allows two pieces of code to communicate.
What is the most common type of web API?
REST API.
Which HTTP method is used to retrieve data?
GET.
What status code indicates a successful HTTP request?
200.
What is a Partner API?
API access only available to organizations with a relationship to the business.
What is a request parameter?
A piece of data sent with an API request to modify the response , defines what resource is being targeted
What is a 500 error?
Server error.
What is a query parameter?
A parameter located after the question mark of the API's URL.
True or False: The program must be completely defect-free before being delivered to customers.
False.
True or False: Testing only finds the presence of errors rather than their absence.
True.
What supports developer testing?
Developers have in-depth knowledge of the software under test.
What is a supporting argument that developer testing can be conducted more quickly than independent testing?
Immediate feedback.
What is an argument against developer testing?
Developer biases can mask errors.
What best describes the purpose of regression testing?
Testing to ensure that bugs were not introduced after changes.
What is the difference between testing COTS systems and 'normal' testing?
Completely different as we have no access to the primary source code.
Within stress testing do you ideally want the system to degrade slowly or collapse all at once?
Should degrade slowly.
What are the benefits of early user involvement during acceptance testing?
Real-world feedback; Early bug detection.
What is the importance of system evolution?
Older (legacy) systems are still critically important to many businesses, must maintain value of these assets
What are common problematic evolution situations?
Where the development team has used an agile approach but the evolution team prefers a plan-based approach.
Where a plan-based approach has been used for development but the evolution team prefers to use agile methods.
What are strategies for evolving legacy systems?
Scrap; Maintain; Reengineer; Replace partially or fully.
When is adding new features generally more expensive?
During maintenance than during development.
number of requests for corrective maintenance (process metric for assessing maintainability)
An increase in the number of bug and failure reports may indicate that more errors are being introduced into the program than are being repaired during the maintenance process
What does average impact analysis time indicate?
As it increases, more and more components are affected and maintainability is decreasing.
What does the metric average time taken to implement a change request mean?
This is the amount of time that you need to modify the system and its documentation, after you have assessed which components are affected.
What is indicated by outstanding change requests?
Indicates maintainability decline.
What are advantages of reengineering?
Reduced risk; Reduced cost.
What is a situation that is not a stereotypical bad smell?
Unnecessary functions.
When should you use a layered architecture?
When building new facilities on top of existing systems.
What is the fourth general issue affecting many types of software?
Scale.
Why do large companies struggle to adopt agile?
Project managers unwilling to accept higher risk.
What are the 3 stages of change management?
Problem analysis; Change costing; Change implementation.
Does Scrum work by selecting features based on ease of development?
False.
What is the first chapter of the requirements document according to Sommerville?
Preface.
What can Quality Guidelines lead to?
Better user stories, which leads to higher productivity.
What are the three primary advantages of architectural design?
Stakeholder Communication
System Analysis
Large scale re-use
What is stakeholder communication?
The process of exchanging information with stakeholders.
What are general issues that affect software?
Heterogeneity (working across diff types of computers and mobile device), business & social change, security & trust, scale.
What are the types of applications?
Standalone applications, transaction-based applications, embedded control systems, batch processing systems, entertainment systems, modelling and simulation systems, data collection systems, systems of systems.
What are the benefits of incremental development?
Reduced cost of change, easier customer feedback, early and continuous system delivery.
What are the activities involved in process improvement?
Process measurement, process analysis, process change.
What types of process measurement exist?
Time taken, resources used, number of events or occurrences.
How can rework be reduced?
Through change anticipation and change tolerance.
What are the uses of prototyping?
To help with requirements elicitation and validation, UI experimentation, and in testing to run back-to-back tests
Why is rapid software development important?
Due to business change speed, need for rapid deployment, adaptability over documentation.
What are the phases of Scrum?
Planning phase, sprint cycles, project closure.
What terminology is used in Scrum?
Scrum team, product backlog, product owner, ScrumMaster, sprint, velocity.