Study Guide 2023 with complete solution
Important nontechnical concerns in large software development are:
estimation and planning
What must we understand before jumping into implementing the solution?
Problem description and the requirements
what is the main areas that need to be coordinates in large software projects?
Process, product, and people
List four factors that should be considered in deciding how many post-release
people will be needed.
Some of those factors are: the number of anticipated users and customers, the size of
user training, the size of support personnel training, and the number of development
people committed to supporting the system.
From the definition of software engineering, list three areas that software
engineering must touch on.
Software engineering must touch on project coordination and management, particular
methods and/or strategies, and technical and business procedures.
Provide examples of project plan activities.
Some of these activities are: establishing and/or clarifying the project requirements,
estimating the amount of time, people, and resources required to carry out the project,
determining the outcome(s) of the project, and identifying any project risks, if any.
What is test-driven programming, and which Agile process advocates it?
Test-driven programming is this process in which test cases are written before the
actual code. The cases have to be run all the time, so that customers can write
functional acceptance test to confirm when the features are finished. Test-driven
programming is one of the 12 key practices of XP methodology, which is an Agile
process.
Explain AOP.
AOP stands for aspect oriented programming. This approach to programming is aimed
towards more modular, cohesive, and well-defined interfaces or coupling in the design
of a system. This concept is geared towards modularizing the implementation of the
cross-cutting concerns in OO programming into a single, cohesive unit.
What are the three core values of Extreme Programming?
Three core values of Extreme Programming are: communication, courage, and
simplicity. Communication allows for design requirements to be exchanged between the
team and with customers as well. Simplicity is the concept involving that the software
design/code is as less complicated as possible. Courage means having the balls to
make difficult decisions when it comes to the software when absolutely necessary.
In many cases, a company's product may have change before the software
product is released using traditional development methods. Does Agile Method
address this issue and if so, how?
Yes. Agile Methods do address this issue because unlike traditional development
methods, agile are really good with product requirement changes. Agile methods
involve making changes to the product as more and more requirements become known.