Kursboken - tabeller Flashcards

1
Q

What does the activity “Choose features to be included in an increment” involve in inrcemental development?

A

1.This activity involves selecting features from the planned product list that can be realistically implemented in the next product increment. It ensures that the development team focuses on achievable goals within the development cycle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is involved in refining feature descriptions in incremental development?

A

2.Refining feature descriptions entails adding detail to the initial feature outlines to ensure all team members have a common understanding of each feature. This includes providing sufficient detail for developers to begin implementation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What does “Implement and test” entail in incremental development?

A

3.This activity involves coding the feature according to its refined description and developing automated tests that verify the feature behaves as expected. The tests confirm consistency with the feature’s detailed specifications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What does “Deliver system increment” mean in the context of incremental development?

A
  1. This final activity involves delivering the developed increment to the customer or product manager for feedback. If sufficient features have been implemented, this increment might also be released as a new version of the system for customer use.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What does the activity “Integrate feature and test” involve in incremental development?

A
  1. Once a feature is developed and initially tested, it is integrated with the existing system. Further testing is conducted to ensure the new feature works harmoniously with other system components without causing disruptions.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What does the agile principle “Involve the Customer” emphasize?

A

1.This principle emphasizes the importance of closely involving customers with the software development team. Customers provide and prioritize new system requirements and evaluate each system increment, ensuring the final product aligns closely with their needs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does the agile principle “Embrace Change” entail in agile development?

A

2.The principle of Embracing Change means expecting and adapting to changes in product features and details as the development team and product manager learn more about the product. Agile teams adapt the software to cope with changes dynamically, maintaining flexibility in development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is meant by “Develop and Deliver Incrementally” in agile principles?

A

3.This principle dictates that software should be developed in increments. Each increment is tested and evaluated as it is developed, with feedback provided to the development team for necessary adjustments. This approach helps in identifying issues early and integrating customer feedback continuously.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How does the principle “Maintain Simplicity” impact agile development?

A

4.Maintaining simplicity involves focusing on creating straightforward solutions both in the software product and the development process. This principle advocates for reducing complexity wherever possible, which facilitates faster development and easier maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What does the agile principle “Focus on People, Not the Development Process” emphasize in agile development?

A

This principle emphasizes trusting the development team and recognizing that rigid processes do not fit all. It encourages team members to develop their own working methods and fosters an environment where creativity and individuality are valued over strict adherence to prescribed processes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Incremental Planning / User Stories in XP?

A

In XP, there is no comprehensive “grand plan” for the system. Instead, requirements for each increment are established through discussions with a customer representative and are documented as user stories. These user stories are prioritized and selected based on the time available and their importance, guiding what is developed in each release.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are Small Releases in XP?

A

Small releases in XP involve developing the minimum useful set of functionality that provides business value first. The system is released frequently, with each release incrementally adding functionality to the previous one. This approach allows for quick user feedback and iterative improvement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Test-Driven Development in XP?

A

Test-Driven Development (TDD) in XP reverses the traditional development order; developers write tests before the actual code. This clarifies what the code should do and ensures that there is always a tested version of the code available. An automated unit test framework runs these tests after every change to ensure new code does not break existing functionality.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What does Continuous Integration entail in XP?

A

Continuous Integration in XP requires integrating work on a task into the overall system as soon as it is completed. A new version of the system is then created, and all unit tests are run automatically. The new version is only accepted if all these tests are successful, ensuring system stability and preventing regression.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is Refactoring in XP?

A

Refactoring in XP involves improving the structure, readability, efficiency, and security of the code. Developers are encouraged to refactor continuously as soon as potential improvements are identified. This ongoing optimization process helps maintain high code quality and adaptability throughout the project lifecycle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the key issue related to the Responsiveness attribute in non-functional system quality?

A

The key issue for Responsiveness is whether the system returns results to users within a reasonable time frame. This attribute measures the system’s ability to provide quick feedback or actions in response to user inputs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What does Reliability mean in terms of non-functional system quality?

A

Reliability assesses whether the system features behave consistently as expected by both developers and users. It involves the system’s capability to perform its required functions under stated conditions for a specified period of time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is the Availability attribute in non- functional system quality?

A

Availability refers to the ability of the system to deliver its services when requested by users. It measures whether the system is operational and accessible when needed by users.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What does the Security attribute entail in a non-functional system quality?

A

Security evaluates whether the system protects itself and users’ data from unauthorized access, attacks, and intrusions. It involves implementing measures to safeguard sensitive information and system operations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

How is Usability defined in non- functional system quality?

A

Usability concerns whether system users can access and utilize the features they need quickly, efficiently, and without errors. This attribute focuses on user experience, ease of use, and the overall effectiveness of the user interface.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What does Maintainability imply in terms of non-functional system quality?

A

Maintainability measures how readily the system can be updated and new features can be added without incurring undue costs. It reflects the ease with which the system can evolve to meet changing needs or requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is meant by the Resilience attribute in non-functional system quality?

A

Resilience refers to the system’s ability to continue delivering user services in the event of a partial failure or external attack. It measures the system’s robustness and fault tolerance under adverse conditions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Why are non-functional product characteristics critically important in architectural design?

A

Non-functional characteristics like security and performance are crucial because they affect all users. Getting these aspects wrong can make a product commercially unsuccessful. Design must balance opposing characteristics, optimizing the most important ones to meet user expectations and system requirements effectively.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

How does the anticipated product lifetime influence architectural design?

A

For products expected to have a long lifetime, the architecture must support regular revisions and evolution to accommodate new features and technologies. This requires a flexible and adaptable design to ensure the product remains relevant and functional over time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What is the impact of software reuse on architectural design?

A

Reusing large components from other products or open-source software can save time and effort. However, it also constrains architectural choices, as the design must be compatible with the reused components. This can limit flexibility but enhance efficiency and development speed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

How does the potential number of users affect the architectural design of software?

A

In consumer software delivered over the Internet, user numbers can fluctuate rapidly. Architecture must therefore enable the system to scale up or down quickly to handle varying loads without performance degradation, ensuring a consistent user experience.

27
Q

Why is software compatibility a significant architectural issue?

A

Maintaining compatibility with other software is essential for products where users need to integrate with existing systems or use data from different systems. This requirement can limit architectural choices, such as the selection of database software, to ensure interoperability and user adoption.

28
Q

What is the principle of Replaceability in architectural design?

A

The principle of Replaceability states that it should be possible for users to replace applications within the system with alternatives or to add new applications without disruptions. This means that the system architecture should not hard-wire the list of applications, allowing for flexibility and customization according to user needs.

29
Q

What does Extensibility mean in terms of architectural design?

A

Extensibility allows users or system administrators to create their own versions of the system that may extend or limit the standard system functionalities. This principle supports scalability and adaptation, enabling the system to evolve over time to meet changing requirements.

30
Q

How does the principle of Age-appropriate Interfaces apply in software design?

A

Age-appropriate Interfaces require that the system supports alternative user interfaces that are suitable for users of different ages. This allows for the creation of interfaces that are tailored to the cognitive and ergonomic needs of various user groups, enhancing usability and accessibility.

31
Q

What is the principle of Programmability in system design?

A

Programmability involves making it easy for users to create their own applications by linking existing applications within the system. This principle promotes user engagement and customization, allowing users to tailor the system to their specific needs through simple programming tasks.

32
Q

What does the Minimum Work principle entail in architectural design?

A

The Minimum Work principle ensures that users who do not wish to modify the system are not required to perform additional tasks to enable customization for others. This principle is about maintaining simplicity and user-friendliness for all users, regardless of their desire to alter the system.

33
Q

What is the cost benefit of using the cloud for software development?

A

Using the cloud eliminates the initial capital costs associated with hardware procurement. This allows businesses to save significant upfront investments and instead utilize a pay-as-you-go model, which scales with their usage and needs

34
Q

How does cloud computing improve startup time for software development projects?

A

Cloud services dramatically reduce startup times because there’s no need to wait for hardware deliveries. Developers can provision servers and start working within minutes, accelerating project kickoff and development cycles.

35
Q

What benefits does the cloud offer in terms of server choice for software development?

A

The cloud provides flexibility in server selection, allowing teams to upgrade to more powerful systems as needed or add servers temporarily for specific tasks like load testing. This adaptability ensures that performance can be optimized without long-term commitments.

36
Q

How does cloud computing benefit distributed software development teams?

A

For teams spread across different locations, the cloud offers a consistent and shared development environment. This setup facilitates seamless information sharing and collaboration, ensuring that all team members are synchronized and can access the same tools and resources regardless of their geographical location.

37
Q

How does SaaS benefit software providers in terms of cash flow?

A

SaaS models provide regular cash flow because customers pay via subscription or on a pay-as-you-use basis. This eliminates large but infrequent cash injections only at product purchases and ensures steady income throughout the year, stabilizing financial operations.

38
Q

What is the update management benefit of SaaS for software providers?

A

SaaS allows providers to control and deploy updates universally and simultaneously across all customers. This avoids the complications of maintaining multiple versions of a product in the market, reducing costs and simplifying the management of the software code base.

39
Q

How does continuous deployment benefit SaaS providers?

A

SaaS enables continuous deployment, allowing providers to release new versions of software as soon as updates are tested and ready. This rapid deployment capability means bugs can be fixed quickly, enhancing software reliability and customer satisfaction continuously.

40
Q

What payment flexibility benefits do SaaS providers offer?

A

SaaS models allow for diverse payment options, catering to a broader range of customers. This flexibility can attract small businesses or individuals who might be deterred by high upfront costs, broadening the market reach.

41
Q

How does the “try before you buy” model benefit SaaS providers?

A

SaaS providers can offer early, free, or low-cost versions of their software to quickly gather customer feedback on usability and bugs. This immediate customer engagement helps in refining the product and building user trust and loyalty.

42
Q

What are the data collection benefits of SaaS for providers?

A

SaaS platforms facilitate extensive data collection on how products are used, allowing providers to identify improvement areas and optimize their offerings. Additionally, they can collect valuable customer data for targeted marketing of other products, enhancing customer relationship management.

43
Q

What does it mean for microservices to be self-contained?

A

Microservices are self-contained in that they manage their own data and implement their own user interfaces without relying on external dependencies. This allows each microservice to function independently, supporting modularity and fault isolation.

44
Q

What does the “lightweight” characteristic imply for microservices?

A

Microservices use lightweight communication protocols, which minimizes the overhead associated with service-to-service communication. This enhances their efficiency and performance, particularly in distributed systems where numerous interactions occur.

45
Q

How are microservices implementation independent?

A

Microservices are implementation independent, meaning they can be developed using different programming languages and technologies, including varying types of databases. This flexibility allows developers to choose the best tools for specific requirements of each service.

46
Q

What does it mean for microservices to be independently deployable?

A

Each microservice is independently deployable, operating in its own process. This enables continuous deployment and delivery practices as changes to one service can be deployed without impacting others, improving development velocity and reducing coordination overhead.

47
Q

What is the business-oriented characteristic of microservices?

A

Microservices should focus on implementing specific business capabilities and addressing distinct business needs, rather than just providing technical services. This ensures that each microservice contributes directly to the business value, making the system more relevant and adaptable to business changes.

48
Q

What is an Internal Service Failure in a microservices system?

A

Internal Service Failures are issues detected by the service itself and can be reported back to the service requestor via an error message. For example, a service that processes URLs might detect and report an invalid link as an internal failure. These failures are directly related to the logic or processing capabilities within the service.

49
Q

What is an External Service Failure in a microservices system?

A

External Service Failures are caused by external factors that impact the availability or functionality of a service. For example, hardware malfunctions, network issues, or dependencies on other services that are down. These failures can render the service unresponsive, and corrective actions may include restarting the service or other recovery procedures.

50
Q

What is a Service Performance Failure in a microservices system?

A

Service Performance Failures occur when the performance of a service degrades to an unacceptable level, potentially due to excessive load or internal service problems. These issues are often detected through external service monitoring systems, which can identify when a service is performing poorly or becoming unresponsive.

51
Q

What does the principle “Use HTTP Verbs” entail in RESTful services?

A

In RESTful services, operations should be accessed using the basic methods defined in the HTTP protocol: GET (retrieve resources), PUT (update/replace resources), POST (create resources), and DELETE (remove resources). This utilization of HTTP verbs ensures that the service interface is standardized and intuitive.

52
Q

What does “Stateless Services” mean in the context of RESTful principles?

A

The stateless service principle mandates that services must not maintain any internal state between requests. Each request must contain all the information the server needs to understand and process it. This aligns with the microservices architecture, enhancing scalability and reliability by ensuring no dependency on stored data from previous interactions.

53
Q

What is meant by “URI Addressable” in RESTful services?

A

All resources in a RESTful service must be accessible via a unique URI (Uniform Resource Identifier). Resources should have a logical and hierarchical structure in their URIs to facilitate access to subresources and support a clear navigation path.

54
Q

How should resources be represented in RESTful services?

A

Resources in RESTful services are typically represented in either JSON (JavaScript Object Notation) or XML (eXtensible Markup Language) formats. These formats are chosen for their readability and ease of use across different systems. Other formats like audio or video may also be used when appropriate to meet specific resource representation needs.

55
Q

What is the goal of Functional Testing?

A

The goal of Functional Testing is to verify the functionality of the overall system and to identify as many implementation bugs as possible. It aims to provide convincing evidence that the system is fit for its intended purpose, ensuring that all features function correctly according to the specifications.

56
Q

What are the objectives of User Testing?

A

User Testing focuses on ensuring that the software product is useful and usable by end-users. The testing aims to confirm that the software’s features help users accomplish their desired tasks, and that users can understand and effectively utilize these features.

57
Q

What is the purpose of Performance and Load Testing?

A

Performance and Load Testing aim to ensure that the software operates quickly and can handle the expected load from its users. The goals are to demonstrate that the system has acceptable response and processing times and that it can scale gracefully as user demand increases.

58
Q

What does Security Testing entail in functional testing?

A

Security Testing is conducted to ensure that the software can maintain its integrity and secure user data from unauthorized access, theft, and damage. It tests the system’s ability to protect sensitive information and resist various security threats.

59
Q

What is the goal of Unit Testing in functional testing?

A

Unit Testing aims to test individual program units in isolation to ensure they function correctly on their own. Each unit of code is tested at least once, and individual developers typically perform these tests as they develop each unit, helping to catch and fix issues early in the development cycle.

60
Q

What is involved in functional testing Feature Testing?

A

Feature Testing involves integrating various code units to test complete features of the software. This testing process ensures that all aspects of a feature work together as expected. All programmers involved in the development of the feature should participate in its testing to validate functionality comprehensively.

61
Q

What is the purpose of functional testing System Testing?

A

System Testing integrates multiple features to create a working version of the system to identify any unexpected interactions between them. It often extends to testing the system’s responsiveness, reliability, and security. Depending on the size of the company, system testing may be conducted by a dedicated testing team or the product developers themselves.

62
Q

What does functional testing Release Testing entail?

A

Release Testing is conducted to ensure that the software package functions correctly when released to customers. It may involve testing the software as a cloud service or a downloadable product for installation on devices. The responsibility for release testing can fall on the development team, especially in DevOps environments, or on a separate testing team, depending on the organizational structure.

63
Q

What Are Containers?

A

Containers are lightweight, standalone, and executable software packages that include everything needed to run an application: code, runtime, libraries, environment variables, and configuration files. Containers are designed to run consistently across any environment, whether it’s on a personal laptop, a private data center, or the public cloud. This consistency addresses the “it works on my machine” headache by encapsulating the application and its dependencies in a container that can run uniformly and consistently across any platform.