Anda di halaman 1dari 5

Software quality assurance

Assignment #1 To: Dr. Sadaf Abdul Rauf

By: Aisha Wasif BSE-VII Ash_virgo0010@yahoo.com

Fatima Jinnah Women university Rawalpindi

Waterfall Model:
Waterfall model proceeds sequentially through a series of phases, starting with system requirements analysis and leading up to product release and maintenance. Feedback loops exist between each phase to make appropriate modification. Process "flows" from one stage to the next. The model has six distinct phases, described below: 1. Requirements analysis: This first step involves gathering information about what the customer needs and the problem that the product is expected to solve. Analysis includes understanding the functions the product must perform, the performance levels it must adhere to, and the external systems it must be compatible with. The results of the analysis are typically captured in a formal requirements specification that serves as input to the next step. Design: It involves defining the hardware and software architecture, specifying performance and security parameters, designing data storage containers , choosing programming language, and indicating strategies to deal with issues such as exception handling, resource management and interface connectivity. The output of this stage is one or more design specifications, which are used in the next stage of implementation. Implementation: This step consists of constructing the product.This step is performed by a development team consisting of programmers, interface designers and other specialists, using tools such as compilers, debuggers, interpreters and media editors. The output of this step is one or more product components, built according to a pre-defined coding standard and debugged, tested and integrated to satisfy the system architecture requirements. Testing: In this stage, both individual components and the integrated whole are verified to ensure that they are error-free and fully meet the requirements outlined in the first step. An independent quality assurance team defines "test cases" to evaluate whether the product fully or partially satisfies the requirements outlined in the first step. Three types of testing typically take place: unit testing of individual code modules; system testing of the integrated product; and acceptance testing, formally conducted by or on behalf of the customer. Installation: This step occurs once the product has been tested and certified as fit for use, and involves preparing the system or product for installation and use at the customer site. Maintenance: This step occurs after installation, and involves making modifications to the system or an individual component to alter attributes or improve performance. These modifications can arise due to change requests by the customer, or defects uncovered during live use of the system.

2.

3.

4.

5. 6.

Advantages: The staged development cycle enforces discipline: every phase has a defined start and end point. Progress can be conclusively identified by both vendor and client. The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage, or of customer expectations not being met. Improves quality; it's much easier to catch and correct possible flaws at the design stage than at the testing stage, after all the components have been integrated and tracking down specific errors is more complex.

Disadvantages: Customers don't really know what they want at start rather what they want emerges out of repeated twoway interactions over the course of the project. The waterfall model, with its emphasis on up-front requirements capture is somewhat unrealistic and unsuitable. Further, given the uncertain nature of customer needs, estimating time and costs with any degree of accuracy is often extremely difficult.

Some criticisms also center on the fact that the waterfall model implies a clear division of labor between, say, "designers", "programmers" and "testers"; in reality, such a division of labor in most software firms is neither realistic nor efficient

Where waterfall model should be used: The model is recommended for use only in projects which are relatively stable and where customer needs can be clearly identified at an early stage.

Spiral model:
There are four phases in this model which are: Planning, Evaluation, Risk Analysis and Engineering. These four phases are iteratively followed one after another in order to eliminate all the problems, which were faced in the waterfall model. Iterating the phases helps in understating the problems associated with a phase and dealing with those problems when the same phase is repeated next time. The phases are: 1. 2. Plan: In this phase, the objectives, alternatives and constraints of the project are determined and are documented. Risk analysis: In this phase, all possible alternatives, which can help in developing a cost-effective project are analyzed. If risks indicate any kind of uncertainty in requirements, prototyping may be used to proceed with the available data. Engineering: In this phase, the actual development of the project is carried out. The output of this phase is passed through all the phases iteratively in order to obtain improvements. Customer Evaluation: In this phase, developed product is passed on to the customer in order to receive customer's comments and suggestions which can help in identifying and resolving potential problems Advantages: High amount of risk analysis Good for large and mission-critical projects. Software is produced early in the software life cycle. Disadvantages: Can be a costly model to use. Risk analysis requires highly specific expertise. Project's success is highly dependent on the risk analysis phase. Doesn't work well for smaller projects.

3.

4.

Where spiral model should be used: Spiral model have a great level of flexibility and freedom therefore more suitable for internal software development. Its favored for large, expensive and complicated projects.

Rapid prototyping model:


Rapid prototyping models are essential for identifying design flaws and gaining valuable feedback during the design process. Functional rapid prototyping models allow product designers and engineers to see how their designs look and function in real world situations. Engineers need to create multiple iteration of rapid prototyping models, and they need to be able to create them quickly and inexpensively. Advantages:

Increase effective communication Decrease development time Decrease costly mistakes Minimize sustaining engineering changes Extend product lifetime by adding necessary features and eliminating redundant features early in the design. Reduces risk of incorrect user requirements Good where requirements are changing/uncommitted Regular visible progress aids management Supports early product marketing Decreases development time Increasing number of variants of products. Increasing product complexity. Decreasing product lifetime before obsolescence. Decreasing delivery time

Disadvantages: 1. An unstable/ badly implemented prototype often becomes the final product. 2. Requires extensive customer collaboration Costs customers money Needs committed customers Difficult to finish if customer withdraws May be too customer specific, no broad market 3. Difficult to know how long project will last 4. Easy to fall back into code-and-fix without proper requirements analysis, design, customer evaluation and feedback. Where rapid prototyping model should be used: Online system, user interactive systems, and where good computer interfaces are required.

Rapid application development:


It is a type of incremental model. In RAD model the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype. This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements. The phases are: 1. 2. Business modeling: The information flow is identified between various business functions. Data modeling: Information gathered from business modeling is used to define data objects that are needed for the business. Process modeling: Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects. Application generation:quired. Automated tools are used to convert process models into code and the actual system. Testing and turnover:

3.

4. 5.

Test new components and all the interfaces. Advantages: Reduced development time. Increases reusability of components Quick initial reviews occur Encourages customer feedback Integration from very beginning solves a lot of integration issues.

Disadvantages: Depends on strong team and individual performances for identifying business requirements. Only system that can be modularized can be built using RAD Requires highly skilled developers/designers. High dependency on modeling skills Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.

When to use RAD model: RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time. It should be used if theres high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools. RAD SDLC model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).

Anda mungkin juga menyukai