The Software Life Cycle Model
Software life cycle models describe phases of the software cycle and the order in which those phases are executed. There are tons of models, and many companies adopt their own, but all have very similar patterns. The general, basic model is shown below:
General Life Cycle Model
Each phase produces deliverables required by the next phase in the life cycle. Requirements are translated into design. Code is produced during implementation that is driven by the design. Testing verifies the deliverable of the implementation phase against requirements.
Requirements
Business requirements are gathered in this phase. This phase is the main focus of the project managers and stake holders. Meetings with managers, stake holders and users are held in order to determine the requirements. Who is going to use the system? How will they use the system? What data should be input into the system? What data should be output by the system? These are general questions that get answered during a requirements gathering phase. This produces a nice big list of functionality that the system should provide, which describes functions the system should perform, business logic that processes data, what data is stored and used by the system, and how the user interface should work. The overall result is the system as a whole and how it performs, not how it is actually going to do it.
Design
The software system design is produced from the results of the requirements phase. Architects have the ball in their court during this phase and this is the phase in which their focus lies. This is where the details on how the system will work is produced. Architecture, including hardware and software, communication, software design (UML is produced here) are all part of the deliverables of a design phase.
Implementation
Code is produced from the deliverables of the design phase during implementation, and this is the longest phase of the software development life cycle. For a developer, this is the main focus of the life cycle because this is where the code is produced. Implementation my overlap with both the design and testing phases. Many tools exists (CASE tools) to actually automate the production of code using information gathered and produced during the design phase.
Testing
During testing, the implementation is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase.
The Software Development Life Cycle is seldom used at my place of work. Unfortunately, recent developments in its use are deemed confidential. Due to this fact, this paper will examine in general terms one of the projects we are undertaking right now while at the same time attempting to maintain our confidentiality.
The project has to assemble a set of requirements drafted out before hand, which will be used to decide if the overall result meets the satisfactory conclusion. The requirements are split into two categories, the so-called functional that will state what the system will do and the non-functional that will enunciate how the system will do it.
This phase is the main focus of the project managers and stake holders. Meetings with managers, stake holders and users are held in order to determine the requirements like; Who is going to use the system? How will they use the system? What data should be input into the system? What data should be output by the system? These are general questions that get answered during a requirements gathering phase. After requirement gathering these requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied.
The Systems Development Life Cycle (SDLC) consists of phases used in developing a piece of software. It is the plan of how to develop and maintain software, and when necessary, replace that software. In 2007 during my hospital’s transition to a new software system, I was fortunate enough to be included in the process. I did not get involved until the implementation phase, but from then on, until now, I remain very active in the process. I decided to highlight the Waterfall Model of SDLC. The Waterfall Model is a “sequential development process” with each phase continuing in a line (McGonigle and Mastrian, 2012, p. 205).
Obtain Phase: Obtains the capability through procurement or systems design and development activities; and evaluates, tests, and verifies that the capability satisfies requirements.
Requirement analysis is a very important and one of the fundamental stages in SDLC. It is carried out by the senior members of a team with the given inputs from customers, the sales department, domain experts and market surveys in the industry. This information is utilized to plan an approach to initiate the basic project and to conduct a product feasibility study in the various areas such as economical, operational, and technical.
After the systems planning is complete, the next course of action is the systems analysis phase. This phase includes defining the requirements of the system. This means that the team must conclude what the system needs to do in order to satisfy the users. This is done by forming a requirements...
The Waterfall model is more or less totally linear in progression with six specific stages being undertaken in chronologically descending order. The first stage is known as the Requirements stage, in which the document of product requirements is created for future reference. The Design procedure is the second stage, which culminates in the architecture for the base software. Next, the Construction stage occurs, where the implementation of coding upon the base architecture results in the actual software being created. The fourth stage is Integration, where the software is made ready for the systems that it will become a part of, merging it to create the first step of the final product. Testing and debugging then occur to make sure that Integration worked as planned without the introduction of new errors due to the integration or that old mistakes do not take on a new potency due to the change in the software. Finally, Installation of the product occurs, finishing the product, which is taken up by the Software and the Maintenance steps of the six-stage Waterfall model. There are non-traditional variations of the waterfall method, but these are not relevant to the current discussion, and as such, will not be covered at this time.
There are various software models available for developing the software’s depending on the project requirements the models are used. Because it completely explains when the user should proceed to next phase and when to conduct tests. The below are the few different software models
Within the analysis phase a set of goals are needed within the domain. From this there are three perspectives which are taken; the object model the Ronald LeRoi Burback (1998) states “dynamic model, and a functional model. The object model represents the artifacts of the system. The dynamic model represents the interaction between these artifacts represented as events, states, and transitions. The functional model represents the methods of the system from the perspective of data flow.” After the analysis phase the system design phase takes place. Here the system is sub-categorized and appointed tasks and persistent data storage is established, also within this phase the architecture is formed. Lastly the object design phase starts and is where the implementation plan is established and algorithms and object classes are also
Dynamic testing involves validation. Dynamic testing is a method of increasing the feasibility of a software program by giving input and examining the output .The dynamic method requires that the code be compiled and run.
The Main purpose of testing is to check that software meets all specified requirements that guided its design and development. There are many types of software testing techniques that can be performed with in software development life cycle. Out of many software testing techniques, Acceptance testing (AT) is the key feature of software implementation. As the acceptance testing mainly constituents that the system should be acceptable by its owner or user it is also called as User Acceptance Testing (UAT). UAT is performed to ensure that the new system meets all the essential user requirements. It is the final testing activity performed by the customer to test for the completeness, correctness and consistency of the
Agile life cycle contains mainly six phases in its development i.e. Pre project planning (first cycle), Start,
Lastly, this stage looks at how ideas come to life through production. Therefore, implementation must ensure that design details are put into effect and that the client is satisfied with the final product.
Requirements engineering begins during the communication activity, continues into the modeling activity, and builds a bridge from the system requirements into software design and construction. Through requirements engineering, there is an examination of the context of software work performed. It is essential for the software engineering team to understand all requirements of a problem before the team tries to solve the problem. An identification of specific needs that the design and construction must address is also included. Further is a need for the identification of the priorities that guides the order for the completion of work. This i...