In traditional software engineering you design software so that changes can easily be implemented.
Does Extreme programming (XP) also concern itself about that?
No it is often wasted effort.
Accept that you should reorganize the software if changes actually occur.
In extreme programming. When should you refactor code?
All developers are expected to refactor the code continously as soon as possible code improvements are found.
This keeps the code simple and maintainable.
What are the advantages of test-first development?
The developers have to thoughoutly understand the specifications.
What is test lag?
Features are implemented faster than they can be tested.
The implementation gets further and further ahead of the testing and there is a tendency to skip tests, so that the development schedule can be maintained.
What is a Software Process?
The entire process of creating software:
Early requirements –> development –> deployment –> decommision
All software processes involve:
What are the two main categories of software products?
Essential attributes of good software: Maintainability
Software should be written in such a way so that it can evolve to meet the changing needs of customers.
This is a critical attribute because software change is an inevitable requirement of a changing business environment.
Essential attributes of good software: Dependability and security
Software dependability includes a range of characteristics:
Dependable software should not cause physical or economic damage in the event of system failure.
Essential attributes of good software: Efficiency
Software should not make wasteful use of system resources such as memory and processor cycles.
Efficiency therefore includes:
Essential attributes of good software: Acceptability
Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with other systems that they use.
The four software process activities: Specification
Where the customers and engineers define the software that is to be produced and the constraints on its operation.
The four software process activities: Design and Implementation
Where the software is designed and programmed.
The four software process activities: Validation
Where the software is checked to ensure that it is what the customer requires.
The four software process activities: Evolution
Where the software is modified to reflect changing customer and market requirements.
Software process model: The waterfall model
Separate and distinct phases of specification and development.
Plan-driven model.
Software process model: Incremental development
Specification, development and validation are interleaved. May be plan-driven or agile.
Software process model: Integration and configuration
The system is assembled from existing configurable components. May be plan-driven or agile.
Name the phases of the waterfall model
Name the phases of incremental development
Definition: Verification and validation (V & V)
Name the three different kinds of testing
What is a software prototype and when is it used?
Explain incremental delivery
Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality.
Name the principles of agile methods