0% found this document useful (0 votes)
115 views4 pages

Quiz 1 - Practice Problems

The document discusses various software engineering approaches suitable for different project scenarios. It highlights the Agile methodology, specifically Scrum, for projects with evolving requirements and the Incremental Process Model for projects with well-defined requirements. Additionally, it explains the Iterative Process Model as ideal for projects needing continuous refinement and adaptation, while comparing it to other methodologies that may not fit the specific needs of the projects described.

Uploaded by

md.naimur.rahman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
115 views4 pages

Quiz 1 - Practice Problems

The document discusses various software engineering approaches suitable for different project scenarios. It highlights the Agile methodology, specifically Scrum, for projects with evolving requirements and the Incremental Process Model for projects with well-defined requirements. Additionally, it explains the Iterative Process Model as ideal for projects needing continuous refinement and adaptation, while comparing it to other methodologies that may not fit the specific needs of the projects described.

Uploaded by

md.naimur.rahman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Q: A software company has been hired by a startup to develop a mobile app for managing

personal finances. The startup has an ambitious plan, but their requirements are not fully
defined, as they are still exploring the exact features they want. They need to get a working
version of the app out to market quickly and plan to gather feedback from early users to adjust
the product based on their needs. The app’s functionality will likely evolve over time based on
this user feedback, and the startup expects frequent changes and improvements.

The development team must work closely with the startup, holding regular meetings to review
progress and adjust the project’s direction as needed. The team needs to prioritize flexibility,
fast iteration, and continuous delivery of working versions of the app.

a.​ Which software engineering process is appropriate for the given scenario?
b.​ Explain the steps involved in the chosen methodology.

Answer:
a.​ The Agile methodology, specifically the Scrum framework, is appropriate for the given
scenario. In particular, because of the following characteristics of the scenario:
i.​ Agile welcomes changing requirements, even late in development.
ii.​ Short sprints allow for rapid development cycles.
iii.​ Regular increments ensure a working product is always available.
iv.​ Frequent interaction with the startup ensures the product meets their evolving
needs.
v.​ Early user feedback can be quickly incorporated into subsequent sprints.

b.​ Steps in Scrum framework are discussed below:


i.​ Product Backlog Creation: The development team collaborates with the startup
to create a prioritized list of desired features and functionalities, known as the
Product Backlog.
ii.​ Sprint Planning: At the beginning of each sprint (a time-boxed period, usually 2-4
weeks), the team selects items from the Product Backlog to work on, creating a
Sprint Backlog.
iii.​ Sprint Execution: The team designs, develops, and tests the selected features
during the sprint.
1.​ Daily Scrum Meetings: Short, time-boxed meetings (usually 15 minutes)
held every day where team members answer small questions.
iv.​ Sprint Review Meeting: At the end of the sprint, the team presents the
completed work for feedback.
v.​ Sprint Retrospective: The team reflects on the sprint process, discussing what
went well, what didn't, and how to improve in the next sprint.
Q: You are assigned to develop a medium-sized software project for a client who is well-aware
of their requirements and wants to start using a prototype of the software from the very
beginning. The client also wishes to prioritize features in each delivery.

a.​ Which software engineering approach would you choose to manage this project, and
why?
b.​ Compare with other possible software engineering approaches, and explain why they
were not chosen for this project.

Answer:
a.​ The Incremental Process Model is the most suitable software engineering approach for
this project based on the following reasons:
i.​ Since the client wants to use the software from the beginning, the Incremental
Model delivers functional software in increments, allowing early usage.
ii.​ The model enables the client to prioritize features for each increment, which
matches their desire to focus on specific functionalities in each delivery.
iii.​ The client's well-defined requirements allow for effective planning and
development of each software increment.
iv.​ Ideal for small to medium-sized projects, making it a good fit for this scenario.
b.​ Comparison with other approaches:

Waterfall Model: It's linear and doesn't support early prototyping or flexible feature
prioritization. Changes are hard to implement after phases are completed.

V Model: Similar to Waterfall but with an added focus on testing. It lacks flexibility for early
prototypes or incremental delivery.

Iterative Process Model: Suited for projects with uncertain requirements and no fixed iteration
limits. Here, requirements are clear, so its exploratory nature isn't necessary.

Agile Methods (e.g., Scrum, Extreme Programming): While they support incremental delivery,
they involve more overhead (e.g., daily stand-ups, multiple roles) and are designed for projects
with evolving requirements, which isn't the case here.

Agile Unified Process (AUP): Combines Agile principles with structured processes, adding
complexity that's unnecessary for a small project with well-defined requirements.
Q: You are a project manager at TechWave Solutions. Your team is approached by Emma, the
founder of a startup called HealthHub, which aims to develop an app to help users improve
their wellness through personalized advice.

Emma has a visionary idea but is unsure about all the features the app should include and
expects the requirements to evolve over time. Your development team is also uncertain about
the best technologies and algorithms to use, needing to explore and adapt during development.
The project's success depends on enhancing software quality through repetitive refinement and
adapting to new insights.

a.​ Which software engineering approach would you choose to manage this project?
b.​ Write the pros and cons of your chosen software engineering approach, in the context of
the given scenario.
c.​ Compare with other possible software engineering approaches, and why they were not
chosen for this project.

Answer:

a. The Iterative Process Model is the most suitable approach for this project.​
b. Pros:
●​ Risks related to uncertain technologies or algorithms are identified and addressed in
early iterations.
●​ Repetitive iterations improve the software quality over time, aligning with the need for
personalized advice.
●​ Feedback after each iteration helps shape the app according to Emma’s vision.
●​ Inconsistencies among requirements, designs, and implementations are detected early,
minimizing long-term issues.
Cons:
●​ The output of each iteration is not always a fully functional product, which may delay
the app’s market entry.
●​ Without a fixed number of iterations, it can be challenging to predict the project’s end
date.
●​ Each iteration’s phase (design, development, testing) is rigid and doesn’t overlap,
potentially slowing down progress.

c. Agile - Scrum:
Not chosen because it focuses on frequent delivery of potentially deployable increments, which
adds unnecessary overhead for planning, reviews, and sprint management, which are not
needed for a project focused on refinement rather than frequent releases.

Agile - Extreme Programming (XP):


Not chosen as XP’s practices like releases, test-first development, and pair programming
introduce significant overhead, and deployable increments are unnecessary for the project.
Also, since the team is uncertain about which technologies to use, it is impossible to guarantee
the availability of automated testing, so XP wasn’t chosen.

Agile Unified Process (AUP):


Not chosen because AUP combines iterative refinement with Agile principles but has overhead
from structured workflows and continuous activity from all developers, which are unnecessary
for this project.

Incremental Process Model:


Not chosen as it prioritizes delivering increments, adding overhead for deployment, which does
not align with the project’s need for refinement without constant deliverables. Also, the
incremental process model needs a predetermined final product in order to plan out the various
increments, which is impossible in this case.

You might also like