Software Engineering 6 - Exam part 2 Flashcards

1
Q

Describe the four fundamental activities in software processes?

A
  1. Specification:
    Defining the software’s functionalities and constraints.
    Example: Writing detailed user requirements for a mobile app.
  2. Design and Implementation:
    Creating the software’s architecture and building the system based on specifications.
    Example: Developing the user interface and backend for an online store.
  3. Validation:
    Ensuring that the software meets user requirements and behaves as expected.
    Example: Running tests to confirm the system processes orders correctly.
  4. Evolution:
    Modifying the software to accommodate changes in requirements or fix issues.
    Example: Adding new payment options to an e-commerce website.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Describe the four general issues that affect many different types of software?

A
  1. Security:
    Protecting the system against unauthorized access and data breaches.
    Example: Implementing encryption for sensitive financial transactions.
  2. Scalability:
    Ensuring the system can handle increased loads (e.g., more users or data).
    Example: Ensuring a web application can handle traffic surges during sales.
  3. Reliability:
    Ensuring the software functions correctly under various conditions.
    Example: Ensuring the system remains operational even if a service crashes.
  4. Usability:
    Designing the system to be user-friendly and intuitive.
    Example: A mobile app with clear navigation and simple controls
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a software engineering code of ethics?

A

A set of guidelines that outline the professional responsibilities of software engineers to ensure ethical behavior, fairness, and transparency.

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

For what types of system are agile approaches to development particularly likely to be successful?

A

Agile approaches work best for systems with:

Frequent requirement changes.
Small to medium-sized projects where quick feedback and iterations are possible.

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

Why has the Scrum agile method been widely adopted in preference to other methods such as XP(Extreme Programming)?

A

Simpler to adopt: Scrum focuses on iterative delivery and team collaboration without enforcing strict coding practices.

Scalability: Scrum can scale better for larger teams compared to XP (Extreme Programming).

Product Owner Role: Scrum’s product owner role provides clear stakeholder communication.

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

What is a Scrum sprint?

A

A time-boxed iteration (usually 1-4 weeks) where the team works on a set of prioritized tasks (user stories) to deliver an increment of the product.

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

Explain the distinction between functional and non-functional requirements?

A

Functional Requirements: Describe what the system should do.
Non-Functional Requirements: Describe how the system should perform.

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

How are activity diagrams used in describing the context of use of a system?

A

Activity diagrams show the flow of activities in a system and the interaction between users and the system.

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

What is the distinction between validation and verification?

A

Validation: Ensures the system meets user needs and expectations (“Are we building the right system?”).
Verification: Ensures the system conforms to its specifications (“Are we building the system right?”).

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

What tests should be included in object class testing?

A

Constructor Tests: Ensure objects are initialized correctly.

Method Tests: Verify that individual methods return expected results.

State Tests: Check that the class’s internal state is consistent after performing actions.

Boundary Tests: Ensure the class handles edge cases (e.g., empty lists, null values).

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

Mention the four roles that exist in a Scrum project

A

Product Owner
Scrum Master
Development Team (Scrum Team)
Stakeholders

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

Explain the responsibilities of the role Product Owner in a scrum project

A

Responsibilities:
Defines and prioritizes the product backlog based on customer needs.
Acts as the voice of the customer and ensures that the team builds features that provide the most business value.
Communicates with stakeholders and accepts or rejects work based on the definition of “done”.

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

Explain the responsibilities of the role Scrum Master in a scrum project

A

Responsibilities:
Facilitates the Scrum process by ensuring the team follows Scrum principles.
Removes obstacles that hinder the team’s progress and ensures smooth communication.
Coaches the team and stakeholders on Scrum practices and promotes collaboration.

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

Explain the responsibilities of the role Development Team (Scrum Team) in a scrum project

A

Responsibilities:
Develops the product increment based on sprint goals.
Responsible for self-organizing and distributing work among themselves during the sprint.
Delivers potentially shippable increments at the end of each sprint.

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

Explain the responsibilities of the role Stakeholders in a scrum project

A

Responsibilities:
Represent external parties such as customers, end-users, and management.
Provide feedback during sprint reviews and validate the delivered increments.

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

Scrum theory.
Scrum is based on the core concepts of Transparency, Inspection, and Adaptation.

Describe the meaning of Transparency in a work group.

A

All aspects of the work (progress, blockers, completed work) must be visible to all team members and stakeholders.
Transparency is achieved through shared tools (backlog, burn-down charts), regular sprint reviews, and open communication.
Example: The product backlog and sprint progress are available for everyone to see, ensuring clarity on what tasks are being worked on.

17
Q

Scrum theory.
Scrum is based on the core concepts of Transparency, Inspection, and Adaptation.

Describe the meaning of Inspection in a work group.

A

Scrum artifacts and progress are frequently inspected to detect deviations or issues.
Inspections happen during daily stand-ups, sprint reviews, and retrospectives.
Example: During the daily Scrum meeting, the team inspects progress and adjusts if there are issues like scope creep.

18
Q

Scrum theory.
Scrum is based on the core concepts of Transparency, Inspection, and Adaptation.

Describe the meaning of Adaptation in a work group.

A

Based on the feedback gathered during inspections, the team adapts by updating the sprint backlog, improving processes, or changing priorities.
Adaptation ensures that the team aligns with changing requirements and challenges.
Example: If a new regulatory rule is introduced mid-project, the team adapts by updating the backlog and prioritizing compliance-related tasks.

19
Q

Explain how a Scrum project can come closer to the customer’s desires than a “traditional” project.

A

Continuous Feedback:
Scrum allows customers to provide feedback during sprint reviews after each iteration, ensuring that the product aligns with their evolving needs.
In contrast, traditional waterfall projects only allow feedback after major milestones (or even after the full release), making it harder to address changes.

Frequent Deliverables:
The customer sees working increments of the product regularly (every sprint), rather than waiting until the end of the project.
This allows adjustments based on customer feedback and prevents misalignment with expectations.

Example: In a Scrum project, the client can suggest improvements to a feature (like adjusting the UI of a form) after an early demo, whereas in a traditional project, they may not see the form until the final release.

20
Q

explain the differences between a client and a server in client-server architecture.

A

Client:
A client is the requesting entity in a client-server architecture. It initiates communication with the server to request data or services.
Example: A web browser (like Chrome) is a client that sends a request to a web server to load a webpage.
Responsibilities:
Sends requests for resources or services (e.g., database queries, web pages).
Displays the results (e.g., presenting product information on an e-commerce platform).

Server:
A server is the providing entity that listens for and responds to requests from the client by processing them and returning results.
Example: A web server (like Apache or Nginx) receives a request for a webpage and responds with the HTML, CSS, and JavaScript needed to render it.
Responsibilities:
Stores and processes data (e.g., user information, product listings).
Sends responses to clients (e.g., order confirmation).

Key Difference:
Client: Initiates the request.
Server: Responds to the request and provides the necessary data or service.