SE 3800 Software Process II Weekly
Outcomes
The following list mirrors the sequence of material, but specific topics
may fall in a slightly different week number based on general pacing. This
can serve as a general guide of which topics are most important in the
course and the sequence in which they are covered, but see your instructor
for specifics about what is covered.
- Week 1:
- To be able to make the case for the Scrum development model.
- To be able to distinguish between required and suggested elements
of the Scrum process model.
- To be able to explain the key elements of the Agile manifesto.
- To be able to describe common scrum anti-patterns and explain why
they are anti-patterns.
- To be able to explain why it is important to develop a consistent
system configuration for developers and deployment.
- Week 2:
- To be able to use Unix, makefiles, and Docker to configure a build
and test environment for object-oriented programs.
- To be able define acceptance criteria and appropriate tasks for
well-understood stories.
- To be able to define effective spike solutions.
- To be able to evaluate definitions-of-done for completeness and
over-specification.
- To be able to articulate the goals of estimation.
- To be able to engage in effective planning poker sessions.
- Week 3:
- To be able to distinguish between issues and bugs in software systems.
- To be aware of alternative workflows for fixing errors.
- To know how traditional testing experts fit into the Scrum
framework.
- To understand the importance of automating tests at all levels.
- To configure continuous integration for an in-class project.
- Week 4:
- To be able to distinguish between unit, integration, system, and
acceptance testing and place these in the V-model of verification and validation.
- To be able to describe how to test non-functional requirements.
- To be able to describe and explain the goals of behavior-driven development.
- To be able to write scenario-based acceptance tests using Cucumber.
- To be able to use regular expressions to specify inputs to
scenario-based tests.
- To understand the test pyramid and explain how this drives testing strategies.
- Week 5:
- To be able to describe a method for testing user interfaces
developed in Java.
- To be able to use Cucumber to be able to test command-line programs using
standard input and output.
- To be able to set up continuous integration for a full command-line
system including developing effective tests obtaining significant coverage.
- Week 6:
- To be able to discuss best practices in Scrum metrics and stand-ups.
- To know the tasks involved in forming a Scrum team, including key
characteristics to look for in effective ScrumMasters.
- To know the primary elements in project planning (beyond Scrum
requirements like identifying epics).
- To know the preparation work done by the Product Owner before final
sprint planning.
- To be able to recommend procedures for addressing
impediments during sprint execution.
- Week 7:
- To be able to describe the waterfall and iterative development
models and to discuss their advantages and disadvantages.
- To be able to describe minimum characteristics for all software
development processes.
- To be able to describe the iterative waterfall and unified
process models with their advantages and disadvantages.
- To be able to describe alternative agile methods including
Feature-Driven Development, XP, and Kanban with advantages and
disadvantages for each.
- Week 8:
- To be able to describe the goals and core characteristics of the
Scaled Agile Framework.
- To be able to discuss the goals and challenges of model-based
development and program proof systems.
- To be able to list necessary practices for effective reviews.
- To have experience in conducting a formal review.
- Week 9:
- To be able to list the four P's of software project management.
- To be able to identify factors that can disrupt a software
development team.
- To be able to describe a process for risk management.
- To be able to list key signs that a project is in trouble.
- Week 10:
- To be familiar with the high-level principles in the SE Code of Ethics.
- To be able to discuss practices supporting the high level
principles in the SE Code of Ethics.
- To be able to describe the circumstances of at least one software
system failure that resulted in the deaths of people.
- To be able to describe at least one current SE topic not typically
discussed in undergraduate textbooks.
- To be able to perform a simple root-cause analysis.
- To be able to describe the goals of the Capability Maturity model.
- To be able to describe key practices in software quality assurance.