Software Engineering 6 - Exam part 2 Flashcards
Describe the four fundamental activities in software processes?
- Specification:
Defining the software’s functionalities and constraints.
Example: Writing detailed user requirements for a mobile app. - 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. - Validation:
Ensuring that the software meets user requirements and behaves as expected.
Example: Running tests to confirm the system processes orders correctly. - Evolution:
Modifying the software to accommodate changes in requirements or fix issues.
Example: Adding new payment options to an e-commerce website.
Describe the four general issues that affect many different types of software?
- Security:
Protecting the system against unauthorized access and data breaches.
Example: Implementing encryption for sensitive financial transactions. - 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. - Reliability:
Ensuring the software functions correctly under various conditions.
Example: Ensuring the system remains operational even if a service crashes. - Usability:
Designing the system to be user-friendly and intuitive.
Example: A mobile app with clear navigation and simple controls
What is a software engineering code of ethics?
A set of guidelines that outline the professional responsibilities of software engineers to ensure ethical behavior, fairness, and transparency.
For what types of system are agile approaches to development particularly likely to be successful?
Agile approaches work best for systems with:
Frequent requirement changes.
Small to medium-sized projects where quick feedback and iterations are possible.
Why has the Scrum agile method been widely adopted in preference to other methods such as XP(Extreme Programming)?
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.
What is a Scrum sprint?
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.
Explain the distinction between functional and non-functional requirements?
Functional Requirements: Describe what the system should do.
Non-Functional Requirements: Describe how the system should perform.
How are activity diagrams used in describing the context of use of a system?
Activity diagrams show the flow of activities in a system and the interaction between users and the system.
What is the distinction between validation and verification?
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?”).
What tests should be included in object class testing?
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).
Mention the four roles that exist in a Scrum project
Product Owner
Scrum Master
Development Team (Scrum Team)
Stakeholders
Explain the responsibilities of the role Product Owner in a scrum project
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”.
Explain the responsibilities of the role Scrum Master in a scrum project
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.
Explain the responsibilities of the role Development Team (Scrum Team) in a scrum project
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.
Explain the responsibilities of the role Stakeholders in a scrum project
Responsibilities:
Represent external parties such as customers, end-users, and management.
Provide feedback during sprint reviews and validate the delivered increments.