Sie sind auf Seite 1von 3

CST438 Summer 2019b Final Exam

Name ____Francois Tcha____________________________

Question 1.

The software engineering process can take on different software development

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

does test implementation.


CST438 Summer 2019b Final Exam

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

development processes or lifecycles rely on careful, up-front planning that is extensively

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.

After implementing and testing microservices in assignment 9, I can see why

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

According to the article, “the guiding principle of microservices is to build an application

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

make or break using microservices. A disadvantage of microservices is that it is still fairly

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.

Das könnte Ihnen auch gefallen