Part I - Intro to Software Development Flashcards
What is a software process?
Software processes are the activities involved in producing a software system. Software process models are abstract representations of these processes.
Describe some process models
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.
What is requirements engineering?
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.
What does design and implementation mean?
Design and implementation processes are concerned with transforming a requirements specifi- cation into an executable software system.
What is software validation?
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.
What is software evolution?
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.
What should be considered during every software development process?
Processes should include activities to cope with change. This may involve a prototyping phase that helps avoid poor decisions on requirements and design. Processes may be structured for iterative development and delivery so that changes may be made without disrupting the system as a whole.
Describe software process improvement
Process improvement is the process of improving existing software processes to improve soft- ware quality, lower development costs, or reduce development time. It is a cyclic process involv- ing process measurement, analysis, and change.
What is agile development?
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.
What factors influence the decision of using an agile 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.
What are some common agile practices?
Agile development practices include requirements expressed as user stories, pair programming, refactoring, continuous integration, and test-first development.
Describe what a scrum is
Scrum is an agile method that provides a framework for organizing agile projects. It is centered around a set of sprints, which are fixed time periods when a system increment is developed. Plan- ning is based on prioritizing a backlog of work and selecting the highest priority tasks for a sprint.
How does one scale agile methods?
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.
What is a weakness of testing software?
Testing can only show the presence of errors in a program. It cannot show that there are no remaining faults.
Who tests the software?
Development testing is the responsibility of the software development team. A separate team should be responsible for testing a system before it is released to customers. In the user testing process, customers or system users provide test data and check that tests are successful.