software engineering final

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/51

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

52 Terms

1
New cards

What is a software product line?

A system adapted for different customers, creating multiple product versions.

2
New cards

What fundamental questions should be answered in a product vision?

What is the product? Who are the customers? Why will they buy it?

3
New cards

What factors must be considered by software product managers when they are doing their job?

Business needs, tech constraints, customer experience.

4
New cards

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.

5
New cards

List five agile development principles.

Involve customers, embrace change, deliver incrementally, keep it simple, focus on people.

6
New cards

What is Scrum?

A framework for agile project management.

7
New cards

List five benefits of using Scrum.

Handles changing requirements, visual progress, on-time delivery, better communication, builds trust.

8
New cards

What is meant by a Scrum development team’s velocity?

Total work completed in a sprint.

9
New cards

What is a Scrum?

Daily team meeting to review and coordinate work.

10
New cards

What is a self-organizing team?

Team manages its own tasks, schedule, and coordination.

11
New cards

Explain how personas, scenarios, and user stories can contribute to feature design.

Personas → scenarios → stories → features.

12
New cards

What is a scenario?

A narrative showing how users accomplish tasks.

13
New cards

What are the problems of writing goal-based scenarios?

Users describe actions more easily than abstract goals; some scenarios need implementation details.

14
New cards

Show a typical form of a user story and explain its constituent parts.

As a <role>, I <want> to <do something> so that <reason>.

15
New cards

What are the most important characteristics of software features?

Independent, coherent, relevant.

16
New cards

Explain how you can identify features from a scenario description.

Highlight phrases describing software functionality.

17
New cards

What are the differences between a centralized and a distributed security architecture?

Centralized

18
New cards

Explain what is meant by system availability.

Percentage of time a system is operational.

19
New cards

Suggest three ways of controlling architectural complexity.

Single concern per component, no duplicated functionality, stable interfaces.

20
New cards

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).

21
New cards

What is the function of the fundamental components of the MVC pattern?

Model

22
New cards

List five technology choices that you have to make when designing a software architecture.

Database, platform, server, open source, dev tools.

23
New cards

What makes it possible for software running on a virtual server to ‘run anywhere’?

The server carries all needed software, making it portable.

24
New cards

What are the four most important benefits of using containers?

Fast startup, portability, efficient services, supports DevOps.

25
New cards

List 2 advantages and 2 disadvantages of SaaS for customers.

Advantages

26
New cards

List five possible customizations for SaaS.

UI themes, workflows, roles, custom fields, 3rd-party integration.

27
New cards

List the advantages and disadvantages of multi-instance databases.

Advantages

28
New cards

Briefly explain how a cloud-based system can be resilient.

Replicate software/data, use standby systems, monitor and recover automatically.

29
New cards

What is coupling and why is it important in a microservices architecture?

Coupling = connections between components; low coupling = more independence.

30
New cards

What support code is needed in a microservice?

Message handling, failure management, UI code, data consistency.

31
New cards

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.

32
New cards

Explain what is meant by replica inconsistency.

Different service instances have mismatched databases.

33
New cards

Explain the difference between orchestration and choreography.

Orchestration

34
New cards

In the RESTful style, what is a resource?

An item accessed via a unique URI.

35
New cards

Suggest three features that may be included in cloud-based systems to help users with operational security.

Auto-logout, command logging, multi-factor authentication.

36
New cards

What is session hijacking?

Stealing session info to impersonate a user.

37
New cards

What are the major weaknesses of password-based authentication?

Weak/reused passwords, phishing, forgotten/mismanaged passwords.

38
New cards

What is the difference between symmetric and asymmetric encryption?

Symmetric

39
New cards

What are the four different levels in a system where data may be encrypted?

Disk, file, database, application.

40
New cards

What is ‘privacy’?

Control over personal information collection, use, and sharing.

41
New cards

Explain what is meant by ‘fault avoidance’.

Design to prevent faults, reducing failures.

42
New cards

Why does increased complexity lead to program errors?

More info to process = higher chance of mistakes.

43
New cards

Why is it important to avoid deep inheritance hierarchies?

Changes require understanding all parent classes → error-prone.

44
New cards

What is ‘program refactoring’?

Simplifying code without changing behavior.

45
New cards

List four ways of implementing input validation.

Built-in functions, type coercion, comparisons, regex.

46
New cards

What are the three most important categories of software failure?

Data failures, program exceptions, timing failures.

47
New cards

Apart from functional testing, list three other types of program testing.

User, performance/load, security testing.

48
New cards

What is an equivalence partition? Give an example.

Input set sharing a trait, e.g., positive integers < 1000.

49
New cards

What four things is system testing concerned with?

Feature interactions, meeting user needs, operating environments, performance/security.

50
New cards

Briefly outline a commonly used structure for an executable test.

Arrange (setup), Act (run), Assert (check results).

51
New cards

What is test-driven development?

Write tests first, then implement code to pass tests.

52
New cards

Give five examples of security risks.

Unauthorized access, forbidden access, weak auth, SQL injection, session/cookie exposure, unencrypted data, insecure keys.