1/51
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
What is a software product line?
A system adapted for different customers, creating multiple product versions.
What fundamental questions should be answered in a product vision?
What is the product? Who are the customers? Why will they buy it?
What factors must be considered by software product managers when they are doing their job?
Business needs, tech constraints, customer experience.
Why is it important to develop a prototype as the first stage of product development?
To check feasibility and show the product to customers or funders.
List five agile development principles.
Involve customers, embrace change, deliver incrementally, keep it simple, focus on people.
What is Scrum?
A framework for agile project management.
List five benefits of using Scrum.
Handles changing requirements, visual progress, on-time delivery, better communication, builds trust.
What is meant by a Scrum development team’s velocity?
Total work completed in a sprint.
What is a Scrum?
Daily team meeting to review and coordinate work.
What is a self-organizing team?
Team manages its own tasks, schedule, and coordination.
Explain how personas, scenarios, and user stories can contribute to feature design.
Personas → scenarios → stories → features.
What is a scenario?
A narrative showing how users accomplish tasks.
What are the problems of writing goal-based scenarios?
Users describe actions more easily than abstract goals; some scenarios need implementation details.
Show a typical form of a user story and explain its constituent parts.
As a <role>, I <want> to <do something> so that <reason>.
What are the most important characteristics of software features?
Independent, coherent, relevant.
Explain how you can identify features from a scenario description.
Highlight phrases describing software functionality.
What are the differences between a centralized and a distributed security architecture?
Centralized
Explain what is meant by system availability.
Percentage of time a system is operational.
Suggest three ways of controlling architectural complexity.
Single concern per component, no duplicated functionality, stable interfaces.
What types of integration are possible when multiple services are included in a software product?
Full (via APIs), partial (shared components/data), independent (no sharing).
What is the function of the fundamental components of the MVC pattern?
Model
List five technology choices that you have to make when designing a software architecture.
Database, platform, server, open source, dev tools.
What makes it possible for software running on a virtual server to ‘run anywhere’?
The server carries all needed software, making it portable.
What are the four most important benefits of using containers?
Fast startup, portability, efficient services, supports DevOps.
List 2 advantages and 2 disadvantages of SaaS for customers.
Advantages
List five possible customizations for SaaS.
UI themes, workflows, roles, custom fields, 3rd-party integration.
List the advantages and disadvantages of multi-instance databases.
Advantages
Briefly explain how a cloud-based system can be resilient.
Replicate software/data, use standby systems, monitor and recover automatically.
What is coupling and why is it important in a microservices architecture?
Coupling = connections between components; low coupling = more independence.
What support code is needed in a microservice?
Message handling, failure management, UI code, data consistency.
What are four general design guidelines that support the decomposition of a system into microservices?
Balance functionality/performance, follow closure principle, link to business capabilities, access only needed data.
Explain what is meant by replica inconsistency.
Different service instances have mismatched databases.
Explain the difference between orchestration and choreography.
Orchestration
In the RESTful style, what is a resource?
An item accessed via a unique URI.
Suggest three features that may be included in cloud-based systems to help users with operational security.
Auto-logout, command logging, multi-factor authentication.
What is session hijacking?
Stealing session info to impersonate a user.
What are the major weaknesses of password-based authentication?
Weak/reused passwords, phishing, forgotten/mismanaged passwords.
What is the difference between symmetric and asymmetric encryption?
Symmetric
What are the four different levels in a system where data may be encrypted?
Disk, file, database, application.
What is ‘privacy’?
Control over personal information collection, use, and sharing.
Explain what is meant by ‘fault avoidance’.
Design to prevent faults, reducing failures.
Why does increased complexity lead to program errors?
More info to process = higher chance of mistakes.
Why is it important to avoid deep inheritance hierarchies?
Changes require understanding all parent classes → error-prone.
What is ‘program refactoring’?
Simplifying code without changing behavior.
List four ways of implementing input validation.
Built-in functions, type coercion, comparisons, regex.
What are the three most important categories of software failure?
Data failures, program exceptions, timing failures.
Apart from functional testing, list three other types of program testing.
User, performance/load, security testing.
What is an equivalence partition? Give an example.
Input set sharing a trait, e.g., positive integers < 1000.
What four things is system testing concerned with?
Feature interactions, meeting user needs, operating environments, performance/security.
Briefly outline a commonly used structure for an executable test.
Arrange (setup), Act (run), Assert (check results).
What is test-driven development?
Write tests first, then implement code to pass tests.
Give five examples of security risks.
Unauthorized access, forbidden access, weak auth, SQL injection, session/cookie exposure, unencrypted data, insecure keys.