Software Development Life Cycle

¡Supera tus tareas y exámenes ahora con Quizwiz!

Implementation and unit testing

During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.

Stages of Fountain Model

1. Analysis 2. Requirements Specification 3. Design 4. Coding 5. Testing and Integration 6. Operation 7. Maintenance or Evolution

Maintenance or Evolution

1. As requirements change through changing business circumstances, the software that supports the business must also evolve and change. 2. Even "exhaustive" testing may not uncover all problems before delivery 3. Changes in requirements may necessitate extra implementation and testing, additional design work, or even a new analysis

Phases of Reuse Oriented Model

1. Component Analysis 2. Requirements modification 3. System Design with Reuse 4. Development and Integration

Advantages

1. Discovers ambiguity, incompleteness and inconsistency in the software 2. Formal specification language semantics verify self-consistency. 3. Model does not involve high complexity rate. 4. Incrementally grows in effective solution after each iteration.

Advantages of Evolutionary Model

1. In evolutionary model, a user gets a chance to experiment partially developed system. 2. It reduces the error because the core modules get tested thoroughly.

Applications of Evolutionary Model

1. It is used in large projects where you can easily find modules for incremental implementation. Evolutionary model is commonly used when the customer wants to start using the core features instead of waiting for the full software. 2. Evolutionary model is also used in object oriented software development because the system can be easily portioned into units in terms of objects.

Disadvantages of Fountain Model

1. It may degrade and require frequent iteration and refinement. 2. Some phases cannot begin before others. 3. Some phases are poorly delineated. 4. It doesn't reflect object orientation.

Requirements Specification

1. Last phase of the analysis task 2. Need to write down unambiguously what the required behaviour is 3. Formal notations 4. Structured documents

Advantages of Reuse Model

1. Less effort:: Requires less effort because many components used in the system are ready made components. 2. Time-saving: Re-using the ready made components is time saving for the software team. Reduce cost: Less effort, and time saving leads to the overall cost reduction. 3. Increase software productivity: When provided with ready made components, focus is given to the new components that are not available just like ready made components. 4. Utilizing fewer resources: Software reuse saves resources. 5. Leads to a better quality software: Software reuse saves our time and allows us to focus on maintaining software quality and assurance. 6. The risk factor is low

Advantages of Fountain Model

1. Many more interaction between design and requirements. 2. Supports iteration within phases 3. Able to start coding earlier 4. It supports incremental development (robustness). 5. It recognizes that some activities cannot stand before others and that there is a overlap of activities throughout the development cycle (understandability). 6. It leads to focusing on sections of the whole system known as clusters or subsystems

Disadvantages of Waterfall Model

1. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. 2. No working software is produced until late during the life cycle. 3. High amounts of risk and uncertainty. 4. Not a good model for complex and object-oriented projects. 5. Poor model for long and ongoing projects. 6. Not suitable for the projects where requirements are at a moderate to high risk of changing.

Phases

1. Requirements Definition 2. Formal Specification 3. Formal Transformation 4. Integration and System Testing 5. Maintenance

Stages of the Waterfall Model

1. Requirements analysis and definition 2. System and software design 3. Implementation and unit testing 4. Integration and system testing 5. Operation and maintenance

Disadvantages of Re-use Model

1. Reuse-oriented models do not always work as a practice in its true form. 2. Compromises in requirements may lead to a system that does not fulfill requirements of the user. 3. Sometimes using old system component, that is not compatible with new version of component, this may lead to an impact on system evolution

Disadvantages

1. Rounding errors in computations with floating points. These are the reason formal methods are not usually applied in numerical algorithms 2. Extensive training is required since only few developers have the essential knowledge to implement this model 3. Difficult to use this model as a communication mechanism for non-technical personnel. 4. Time consuming and expensive.

Advantages of Waterfall Model

1. This model is simple and easy to understand and use. 2. It is easy to manage due to the rigidity of the model - each phase has specific deliverables and a review process. 3. In this model phases are processed and completed one at a time. Phases do not overlap. 4. Waterfall model works well for smaller projects where requirements are clearly defined and very well understood

When to use the Waterfall Model

1. This model is used only when the requirements are very well known, clear and fixed. 2. Product definition is stable. 3. Technology is understood. 4. There are no ambiguous requirements 5. Ample resources with required expertise are available freely 6. The project is short.

Coding

1. Writing, documenting and debugging code 2. Preparing code for testing 3. Feedback to designer and/or analyst 4. Feed-forward to tester and/or integrator 5. Expected outcome: working code and documentation, ready to be tested

Development/ Component Testing

Components (e.g. functions, objects) tested individually/ independently.

Development and Integration

Components and COTS systems are integrated to develop new software. Integration in this model is part of development rather than separate activity.

System Design with Reuse

During this stage the design of the system is built. Designers must consider the reused component and organize the framework. If the reused component is not available then new software is developed.

Waterfall Model

Each phase must be completed before the next phase can begin and there is no overlapping in the phases. The outcome of one phase acts as the input for the next phase sequentially. This means that any phase in the development process begins only if the previous phase is complete. The waterfall model is a sequential design process in which progress is seen as flowing steadily downwards (like a waterfall) through the phases.

Software Process Model

Examples: 1. The Waterfall Approach 2. Evolutionary Development 3. Fountain Approach 4. Formal Transformation 5. Reuse-Oriented Approach

formal specification

Formal specification are mathematical based statements used to identify the desired conditions to be met by the system.

Component Analysis

Given the requirements specification, a search is made for components to implement that specification. Usually, there is no exact match and the components that may be used only provide some of the functionality required.

Formal Transformation

In this phase implementation and unit testing are done in this phase, using the mathematical language created in the previous phase.

Analysis

In this phase the Objects that define the system are defined. A first shot at developing an object based model of the system is sought. This phase is heavily iterative in that "use cases" are developed that are refined incrementally to fit the requirements of the user. A stable model of the system should merge after repeated iterations.

Maintenance

In this phase, the system being maintained periodically by engineers who check for errors that weren't discovered in the earlier stages, improve the system's implementation and boost the system's services as new requirements are discovered.

Requirement Modification

Information about the selected component, that took place during component analysis is used to analyze requirement specification. Requirements are then modified according to available components. Requirement modification is critical. If a modification is not possible, the first phase may be repeated then component analysis activity is reused to find a relative or alternate solution.

Formal Transformation Model

It is similar to the waterfall model as each phase has to be finished before moving onto the next. It is used especially when developing systems that requires safety, reliability, and security. There are two steps that comprise the Formal Methods Model. Those steps are the property-based specification and the model-based specification.

Operation and maintenance

Normally, this is the longest life-cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors that were not discovered in earlier stages of the life cycle, improving the implementation of system units, and enhancing the system's services as new requirements are discovered.

Operation

Operation is an action that is carried out to accomplish a given task. The importance of this phase lies in the fact that the intended user finally gets to test the product. Iterations to previous stages might occur and the success of the product depends on how fast the system responds. User generated feedback adds more refinement to the product as it iterates through previous stages.

Disadvantages of Evolutionary Model

Sometimes it is hard to divide the problem into several versions that would be acceptable to the customer which can be incrementally implemented and delivered.

Testing and Integration

Testing and Integration is a software development process which program units are combined and tested as groups in multiple ways.

System Testing

Testing the system as a whole. Testing on emergent properties (properties which a complex system has, but which the individual members do not have) is particularly important.

Acceptance Testing

Testing with customer data to check that the system meets the customer's needs.

Evolutionary Model

The Evolutionary development model divides the development cycle into smaller, incremental waterfall models in which users are able to get access to the product at the end of each cycle. Feedback is provided by the users on the product for the planning stage of the next cycle and the development team responds, often by changing the product, plan or process. Therefore, the software product evolves with time.

Design

The Fountain model is essentially a slightly improved version of the Waterfall approach. During this phase, the Preliminary or conceptual design is built up, taking into consideration the software and hardware requirements of the system. This phase might demand a re-definition of the analysis model developed earlier. This is one of the phases where a lot of iterations can occur.

Integration and system testing

The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer.

Implementation and Unit Testing

The singular program units are tested and ran as a complete system to ensure that the user's software requirements are met and to check for any faults in the system.

Requirements analysis and definition

The system's services, constraints, and goals are established by consultation with system users. They are then defined in detail and serve as a system specification.

System and software design

The systems design process allocates the requirements to either hardware or software systems. It establishes an overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships.

Requirements Definition

This is the phase where conditions for the software are supplied to the developers by the consulting the system's users.

Fountain Model/Approach

This model allows for the advancement from, and return to, various stages of software development regardless of whether or not enough tasks have been completed to reach it.

Model Based Specification

This step describes the states the system can be in, and how the operations can transition the system from state to state. It utilizes the tools of set theory, function theory, and logic to develop an abstract model of the system.

Property Based Specification

Those two elements are the operations that can be performed on the system, and the relationships between the operations.

Software Life Cycle Model (Process Model)

is a descriptive and diagrammatic representation of the software life cycle.

The Reuse-Oriented Model

relies on having a large collection of pre-existing, reusable software components. In this model, programs are fine-tuned through creating a sequence of prototypes called models, each of which is automatically derived from the preceding model according to a sequence of defined rules.

A Life Cycle Model

represents all the activities required to make a software product transit through its life cycle phases. It also captures the order in which these activities are to be undertaken.


Conjuntos de estudio relacionados

6270 - diabetes mellitus - chapter 30

View Set

Solids - Vertices Edges and Faces - CONVEX POLYHEDRON

View Set

Mathematics: Notable Mathematicians (& their Most Famous Works and Contributions and Notable Biographical Information)

View Set