You are on page 1of 5

Shayne Kylie T.

Almario
BSCpE 2
Chapter 4
4.1. How does the Extreme Programming (XP) model differ from the spiral model in
its treatment of incremental prototypes?
Extreme Programming and the Spiral Model use prototypes when creating a
project/software. They only differ on the ways they create those. XP does work on frequent
iterations and ask for feedback for a higher project quality. The Spiral Model, on the other
hand, plans specific stages of the project and make more formal prototypes at those stages
to manage any risks. XP is more manageable since it can jump to any part of the process for
iteration, usually for small scale projects.
4.3. How would you create a preliminary architectural design for the first prototype
for a mobile app that lets you create and save a shopping list on your device?
First, determine the needed or the priority function of the mobile app, to make a shopping
list. It should be easily accessed by users for a more convenient usage. It should not be
complicated since the product is only a basic app. The buttons should be functional, the
settings are easy to navigate. Of course, the developers will be needing to gain reviews from
users, that is the time they revise or check some of the matters, then iterations will be
repeated until everything is settled. Lastly, the mobile app should be maintained with
evolvability.
4.4. Where would you get the historic date needed to estimate the development time
for the user stories in a prototype before it is written?
It can be from recent projects or software related to it.
4.5. Create a series of sketches representing the key screens for a paper prototype for
the shop- ping list app you created in Problem 4.3.
4.6. How can you test the viability of the paper prototype you created for Problem
4.5?
It can be tested by creating the software.
4.7. What data points are needed to make the go, no-go decision during the
assessment of an evolutionary prototype?
The things to be considered in making an evolutionary prototype is the functionality,
costing in crafting, and efficiency for the target audience.
4.8. What is the difference between reactive and proactive maintenance?
Reactive maintenance are maintenance tasks that only changes or is being fixed after it is
not functioning. While proactive maintenance are maintenance tasks are done to avoid
errors for a more efficient work of the prototype.

Chapter 5
5.1. Based on your personal observation of people who are excellent software
developers, name three personality traits that appear to be common among them.
 Creativity and Advancement – They create software that are beneficial to people, even
for the future purposes that aims to make work easier, converting everything to
modern.
 Great Communicator – Software developers work in groups, for a better output of their
project, their ideas need to be on the same plane so the prototype will work
successfully.
 Pays attention to details – The internet is a vulnerable platform, which has many
spaces for errors. Even without the help of many individuals who gives reviews, since
they know the software very well, they notice its imperfections and fixes it.
5.2. How can you be "brutally honest" and still not be perceived (by others) as
insulting or aggressive?
It is important to firstly accept the idea of others then suggest a concept in a respectful
tone, continue explaining it to them until they notice the flaws of their original idea. In that
way, the person I’m talking to will not take it as an insulting approach.
5.3. How does a software team construct "artificial boundaries" that reduce their
ability to communicate with others?
In a software team, one should be in a superior position where he/she will assign that each
developer will be assigned with a different task to do, to maintain the artificial boundaries.
Also, it will help them to work with focus.
5.4. Write a scenario in which the SafeHome team members make use of one or more
forms of social media as part of their software project.
Doug can distribute the tasks to his members using Telegram, they can all also
communicate using that platform, then the members can send their finished outputs
through Gmail.
5.5. Referring to Figure 5.2, why does distance complicate communication? Why does
distance accentuate the need for coordination? What types of barriers and
complexities are introduced by distance?
If developers, for example does not have a good relationship with each other, it may affect
their work progress. It introduces challenges that is caused by distance.

Chapter 6
6.1. Because a focus on quality demands resources and time, is it possible to be agile
and still maintain a quality focus?
Yes. Being agile is something that a developer should have, despite of the differences and
quality demands of the prototype. Of course, the help of other developers is important to
make sure that different aspects of the prototype is maintained.
6.2. Of the eight core principles that guide process (discussed in Section 6.1.1), which
do you believed is most important?
Principle 4. Build an effective team. The prototype itself won’t exist if there are no people
who built it. An effective team can contain all the principles, as long as they communicate
and have the ability to learn.
6.3. Describe the concept of separation of corners in your own words?
In software engineering, the concept of separation of concerns refers to the division of a
system into independent components, each one in responsible for a particular function, like
data storage or user interface. By separating functions and encouraging flexibility and
capacity, this strategy improves system organization, understandability, and maintenance.
6.4. Why is it necessary to “move on”?
It is necessary to move on to allocate the space for newer ideas, which will help developers
have more openings, than staying on the errors that may be a hindrance from them moving
forward. With this, the error may be used as a basis to create or improve the prototype.
6.5. Do some research on “negotiation” for the communication activity and prepare a
set of guidelines that focus solely on negotiation.
 Communication - By establishing clear communication, you can avoid
misunderstandings that could prevent you from reaching a compromise.
 Expectation management - Skilled expectation management involves maintaining a
balance between being a firm negotiator and a collaborative one.
 Patience - Rather than seeking a quick conclusion, negotiators often practice patience
to properly assess a situation and reach the best decision for their clients.
 Adaptability - Adaptability is vital for successful negotiation. Each negotiation is
unique, and the situation may change from one day to the next.
 Persuasion - The ability to influence others is an important negotiation skill. It can
help you define why your proposed solution benefits all parties and encourage others
to support your point of view.
 Planning - Negotiation requires planning to help you determine what you want and
how the terms will be fulfilled.
 Integrity - As a negotiator, you should be able to follow through on commitments. To
demonstrate trustworthiness, avoid over-promising.
 Rapport Building - Building a rapport requires communicating your goals and
understanding the other side’s wants and needs.
 Problem-Solving - Finding unique solutions to problems may be the determining
factor in compromise.
 Decision-Making - Good negotiators can act decisively during a negotiation. It may be
necessary to agree to a compromise during a bargaining arrangement.
6.6. Why are models important in software engineering work? Are they always
necessary? Are there qualifiers to your answer about necessity?
Models serves as a guide in making a prototype or a project. The models like the spiral,
waterfall, XP, has different ways on creating the work, but it all aims to do a stable output.
They are necessary for a more organized working system, from the team’s planning,
communication, visualization, to the software project itself. Each component has a function,
and you can only move to the other when you already finished the first one. Prototypes
cannot be successfully done without models.

6.7. What is a successful test?


In software engineering, a successful test is when we check if a computer program works
the way it's supposed to. We want to make sure it does what it's supposed to do, like how
fast it works or how it acts in different situations. We also want to make sure it doesn't have
any mistakes or problems. When a test is successful, it helps the people who make the
program find and fix any issues, make the program better, and make sure it does what
people want it to do.
6.8. Why is feedback important to the software team?
Feedback makes the project be crafted better. There are errors that the team doesn’t notice,
that’s why it is important to be reviewed by others. They should always be open for
suggestions, since technology evolves easily, the team or the prototype should be agile to its
environment.

You might also like