PLUS
Software processes - are the activities involved in producing a software system and are abstract
representations of these processes.
General process models - describe the organization of software processes.
Examples of these
general models include? - the waterfall model, incremental development, and reusable component
configuration and integration.
Requirements engineering - is the process of developing a software specification.
Specifications - are intended to communicate the system needs of the customer to the system
developers.
Design and implementation processes - are concerned with transforming a requirements specification
into an executable software system.
Software validation - is the process of checking that the system conforms to its specification and
that it meets the real needs of the users of the system.
Software evolution - takes place when you change existing software systems to meet new
requirements. Changes are continuous, and the software must evolve to remain useful.
Processes - should include activities to cope with change and may be structured for iterative
development and delivery so that changes may be made without disrupting the system as a whole.
Process improvement - is the process of improving existing software processes to improve software
, quality, lower development costs, or reduce development time. It is a cyclic process involving
process measurement, analysis, and change.
Agile methods - are iterative development methods that focus on reducing process overheads and
documentation and on incremental software delivery. They involve customer representatives
directly in the development process.
agile or a plan-driven approach - The decision on whether to use an agile or a plan-driven approach to
development should depend on
the type of software being developed, the capabilities of the development team, and the culture of the
company developing the system. In practice, a mix of agile and plan-based techniques may be used
Agile development practices - include requirements expressed as user stories, pair programming,
refactoring, continuous integration, and test-first development.
Scrum - is an agile method that provides a framework for organizing agile projects. It is centred
around a set of sprints, which are fixed time periods when a system increment is developed. Planning
is based on prioritizing a backlog of work and selecting the highest priority tasks for a sprint.
To scale agile methods - some plan-based practices have to be integrated with agile practice.
These include up-front requirements, multiple customer representatives, more documentation,
common tooling across project teams, and the alignment of releases across teams.
Requirements for a software system - set out what the system should do and define constraints
on its operation and implementation.
Functional requirements - are statements of the services that the system must provide or are
descriptions of how some computations must be carried out.