Beruflich Dokumente
Kultur Dokumente
Question 1.
methodologies with their own pros and cons but all methodologies include the same phases such
as gathering requirements, design, coding, testing, reviews, refactoring, defects and team and
customer communication.
Gathering requirements is a key phase in any software engineering process. It takes place
early on in the software engineering process and provides directions for other phases. According
to the textbook requirements are written down and are continuously refined to ensure the
resulting software meets the stakeholders’ desire. Requirements can also be develop from user
stories which according to the textbook describes how the application is expected to be used.
User could be anyone from customer, internal end user, employee, and etc.
Once requirements are in place the design process can start. Designs can go through a
review process and like requirements, designs are continuously refined to ensure the resulting
software meets the stakeholder’s desire. A form of design used in Agile is Behavior-Driven
Design (BDD). According to the textbook, “BDD asks questions about the behavior of an
application before and during development so that the stakeholders are less likely to
miscommunicate.”
Coding and testing go hand and hand. Coding consists of writing the actual software
code and the unit test code for testing purposes. Depending on requirements, coding could be
done before testing or vice versa. The latter is consider Test-Driven Development (TDD), which
Reviews are done through the process to ensure any issues such as missing requirements,
design flaws, insecure code, defects and etc. are found along the way are dealt with. For
example, code reviews are done periodically between team members and possibly by an outside
third party to ensure all code meet industry standards and security standards. Code reviews can
also determine if there are any defects with the software, which could be fixed.
These phases are what make or break any software. That is why it is important to use a
software development methodology such as Agile or Plan and Document Waterfall. These
methodologies share the same end goal and the same software development phases but are
implemented differently. The difference between Agile and Plan and Document Waterfall is
outline in chapter one of the textbook. According to the textbook, the Waterfall software
documented and carefully managed to make software development more predictable, while the
Agile lifecycle relies on incrementally developed prototypes that involve continuous feedback
from the customer on each iteration, each of which takes one or two weeks.
Question 2.
microservices architecture would be used in the real word. Troubleshooting issues is a lot easier
when you know the service is a microservice and is self-contained. It also created team
chemistry building for my partner and I when we pieced all of the services together in
assignment 9. Overall microservices has many advantages that can benefit developers and
companies.
CST438 Summer 2019b Final Exam
by splitting its business components in small services that can be deployed and operated
independently from each other.” The separation of services is an advantage, allowing developers
to work on smaller services versus a whole software made up a multiple service is called service
boundaries. This is defined by the business or the organization and can be related to separate
teams, budgets, and roadmaps. Microservices also creates the ability to scale horizontally,
meaning microservices can be deployed in clusters. This allows services to be more redundant to
failure and any other disasters. Another advantage of using microservices is that developers
working on a microservice will have a deeper focus meaning better quality of the microservice
and lastly, microservice enables the local development setup to be less complex.
Although the advantages of using microservices are so enticing, there are cons that could
young and new to the industry. Some company have used and proven that it does work but it
might not be a good fit for everyone. Another disadvantage of microservices are service
boundaries because this can cause teams to not be able to cross manage services. Although there
are cons that should be consider, microservices architecture is worth checking out.