Sepm Internal 2 Answers
Sepm Internal 2 Answers
The team is in the middle of validation testing (something that occurs relatively late in the project), and
stakeholder is requesting a major functional change. Thechange requires a modification to the
architectural design of the software, thedesign and construction of three new components,
modifications to another fivecomponents, the design of new tests, and so on. Costs and time increases
quickly. A well-designed agile process “flattens” the cost of change curve (Figure 3.1, shaded, solid
curve), allowing a software team to accommodate changes lateinasoftware project without cost and
time impact. the agile process encompassesincremental delivery.
A). Scrum
Scrum is an agile software development method that was coinedbyJeff Sutherland and his
development team in the early 1990’s.
Scrum has the following framework activities: requirements, analysis, design, evolution, and
delivery. Within each framework activity, actionsandwork tasks occur within a process called a sprint.
Backlog—a prioritized list of project requirements or features that providebusiness value for the
customer. Items can be added to the backlog at any time(this is how changes are introduced). The
product manager assesses the backlogand updates priorities as required.
Sprints—consist of work units that are required to achieve a requirement definedin the backlog .
Scrum meetings—are short (typically 15 minutes) meetings held daily by theScrum team. Three key
questions are asked and answered by all teammembers.
A team leader, called a Scrum master, leads the meeting and assesses theresponses from each person.
Demos—deliver the software increment to the customer so that functionalitythathas been implemented
can be demonstrated and evaluated by the customer.
1. Planning:
○ Begins with listening to gather requirements in the form of "stories" (user stories).
○ Developers estimate the time and effort for each story, breaking them down further if necessary.
○ A basic commitment is made for a software increment, and the team computes project velocity to determine the
pace of subsequent releases.
○ Planning remains flexible, allowing for changes like adding, splitting, or reprioritizing stories.
2. Design:
○ Follows the KIS (Keep It Simple) principle, focusing on designs that address immediate requirements.
○ For complex problems, prototypes called spike solutions are created to test and validate design concepts.
○ Refactoring is a continuous process that improves the internal structure of the software without altering external
behavior.
3. Coding:
○ Coding begins after unit tests are written to specify expected functionality.
○ Emphasizes pair programming, where two developers work together at a single workstation.
■ One codes while the other reviews, ensuring quality and adherence to coding standards.
○ Code is integrated frequently through a continuous integration strategy, which helps uncover errors early and
avoids compatibility issues.
4. Testing:
○ Testing is integral to XP, with unit tests created before writing code.
○ Tests are automated for easy execution, enabling regression testing whenever code is modified.
○ Acceptance tests (customer tests) are based on user stories and validate the software's functionality from the
customer’s perspective.
A).
A). The following set of core principles can be applied to the framework, andbyextension, to every software process.
Principle 1. Be agile. Whether the process model you choose is prescriptive or agile.
Principle 2. Focus on quality at every step. For every process activity, action, and task should focus on the quality of
the work product that has been produced.
Principle 3. Be ready to adapt. adapt your approach to conditions imposed by the problem, the people, and the
project itself.
Principle 4. Build an effective team. Build a self-organizing team that has mutual trust and respect.
Principle 5. Establish mechanisms for communication and coordination. Projects fail because stakeholders fail to
coordinate their efforts to create a successful end product.
Principle 6. Manage change. The methods must be established to manage the way changes are requested, approved,
and implemented.
Principle 7. Assess risk. Lots of things can go wrong as software is being developed.
Principle 8. Create work products that provide value for others. Create only those work products that provide value
for other process activities, actions and tasks.
Software engineering practice has a single goal i.e..,to deliver on-time, highquality, operational software
that contains functions and features that meet the needs of all stakeholders.
To achieve this goal, should adopt a set of core principles that guidethetechnical work.
The following set of core principles are fundamental to the practiceof software engineering:
Principle 1. Divide and conquer. A large problem is easier to solve if it is subdivided into a collection of elements(or
modules or components).
Principle 2. Understand the use of abstraction. At its core, an abstraction(overview) is a simplification of some
complex element of a systemused to communicate meaning in a single phrase.
Principle 3. Strive for consistency. Whether it’s creating a requirements model, developing a software design,
generating source code, or creating test cases. All these are consistent so that the software is easier to develope.
.Principle 4. Focus on the transfer of information. Software is about information transfer—from a database to an end
user, from an operating system to an application,
Principle 5. Build software that exhibits effective modularity. Modularity provides a mechanism for any complex
system can be divided into modules (components).
Principle 6. Look for patterns. Brad Appleton suggests that: The goal of patterns within the software community is to
create a body of literature to help software developers resolve recurring problems encountered throughout all of
software development process.
Principle 7. When possible, represent the problem and its solution from a number of different perspectives. When a
problem and its solution are examined from a number of different perspectives(ways).
Principle 8. Remember that someone will maintain the software. software will be corrected as defects are remove,
adapted as its environment changes, and enhanced as stakeholders request more capabilities.