lecture 2 Flashcards
(21 cards)
What is a software process?
- A series of steps involving activities, constraints, and resources to produce an intended output.
Why is a software process required?
- Processes impose consistency and structure to a set of activities, and helps maintain consistent level of quality in outputs.
- A process is not simply a procedure or recipe for producing a product. A process usually provides alternative procedures for performing a task.
- A process structure allows us to examine, understand, control, and improve the activities that comprise the process.
- processes allow capture of past experience.
- processes allow us to organize our knowledge about software development.
What are the key characteristics of a process?
- Prescribes major activities.
- Uses resources and is subject to constraints.
- Produces intermediate and final products.
- Can include sub-processes linked in a hierarchy.
- Has entry and exit criteria for activities.
- Activities organized in sequence.
- have guiding principle that explain the goal of each activity.
- Constraint, or controls may apply to activities, resources, and Products
What are the four fundamental activities in software processes?
- Software Specification
- Software Development
- Software Validation
- Software Evolution
What are some important characteristics of process models?
- Understandability
- Visibility
- Supportability
- Acceptability
- Reliability
- Robustness
- Maintainability
- Rapidity
Describe the Waterfall Model.
- Also called the linear sequential model.
- Oldest model, commonly used in aerospace and defense projects.
- Has separate and distinct phases.
What are the faces of waterfall model?
- requirements analysis and definition.
- system and software design
- implementation and unit testing
- integration and system testing
- operation and maintenance.
What are the pros and cons of the Waterfall Model?
Pros:
* Simple to implement * ease of project management.
* Widely understood and used.
Cons:
* Requires documentation to be provided at each phase
* different organization have different labels for stages. which makes it confusing.
* real projects rarely follow the sequential flow.
* Difficult to state all requirements upfront.
* No working version available until later in the project.
* undeducted blunders can be disastrous.
* Iteration is hard to accommodate.
* all information must be known at the beginning of the project
* deadlock can occur
* does no scale up to large projects well
Describe the V-Model.
- Variation of the Waterfall Model.
- Emphasizes verification and validation at each development phase.
- Testing phases are directly associated with each development stage.
Describe the Prototyping Model.
Involves creating a prototype before the actual system is built.
Who is the prototyping model suitable for?
Suitable for small or medium interactive systems or Parts of large systems, or short-lifecycle systems.
What are the kinds of using prototyping model?
- lack of process visibility
- Software development management relents it.
- the ballparks often make implementation compromises
- systems are often poorly structured
- special skills may be required.
Describe the RAD (Rapid Application Development) Model.
- High-speed adaptation of the Waterfall Model.
- Focuses on rapid development through component-based construction.
- Appropriate for information systems with well-understood requirements.
What are the characteristic of RAD model?
- Rapid developments of business and high level of reuse
- for large but scalable projects, RAD requires sufficient human resources to create the right number of RAD teams.
- If commitment is lacking from either constituency, RAD projects will fail.
- Not all types of applications are appropriate for RAD
- RAD is not appropriate when technical risks are high
What is the Incremental Model?
- An evolutionary model that develops software in increments.
- Each increment adds functionality, allowing for earlier implementation.
What are the advantages of using the incremental model?
- Useful when staffing is unavailable for a complete implementation by the business deadline.
- Early increments can pay implemented with fewer people
- increments can be planned to manage technical risks.
Describe the Spiral Model.
- Realistic for large-scale systems.
- Iterative with an emphasis on risk assessment and management at every stage.
What are the characterist of the spiral model?
- Realistic for Large-Scale Systems
- Early Error Elimination
- Software Quality Assurance Mechanisms
- Suitable for Complex, Dynamic, and Innovative Projects
- Adaptable to User and Financial Changes
- Lack of Explicit Guidance for Objectives and Alternatives
- Requirement for Ongoing Technical Risk Assessment
- Complexity in Risk Assessment and Resolution
What is the Component-Based Development Model?
- Focuses on reusing existing components.
- Suitable for object-oriented software development.
- Lack of a rich Library of reusable component.
Fill in the blank: when a process is used for building a product it’s called a
Software Lifecycle
Why do we have different life cycles?
Because we have different systems