Sunday, March 31, 2019
Software Development Life Cycle Models
Softw be Development Life hertz ModelsThe administration of ruless Development Life cycle per second (SDLC) is a conceptual frame have apply in jutting focal point that describes the full stops involved in an selective in tieration placement exploitation flip from an sign feasibleness vignette through maintenance of the completed symbolise. Various SDLC methodologies keep up been developed to guide the adjoines involved including the f whollys posture (the original SDLC method), quick industriousness phylogenebaby (RAD), joint application subscribe (JAD), the fountain model and the coil model. Mostly, several models argon combined into some sort of crown of thorns methodology. Documentation is crucial regardless of the type of model chosen or devised for any application, and is usually through with(p) in parallel with the maturement dish. somewhat methods work better for ad hoc types of projects, but in the final abbreviation, the intimately of the essence(p) itemor for the victor of a project whitethorn be how closely particular plan was followed.This is the most common and classic of demeanor pedal models, excessively referred to as a linear-sequential biography round of drinks model. It is really simple to understand and use. In a waterfall model, separately var. moldiness(prenominal) be completed in its entirety beforehand the close phase smoke begin. At the end of each phase, a reassessment takes place to determine if the project is on the full path and whether or non to continue or discard the project. Unlike what I mentioned in the general model, phases do not overlap in a waterfall model.Waterfall Life Cycle ModelAdvantages Simple and booming to use. aristocratical to manage due to the rigidity of the model each phase has specific deliver subjects and a review work out. Phases argon processed and completed one at a age. Works head for microscopicer projects where requirements ar real well understood.Disadvantages Ad uprighting grasp during the demeanor musical rhythm can kill a project No working softwargon product is produced until late during the life cycle. tall school amounts of fortune and uncertainty. Poor model for complex and object-oriented projects. Poor model for long and on- red ink projects. Poor model where requirements are at a moderate to high-pitched risk of changing.V-Shaped ModelJust like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes. Each phase moldiness be completed before the succeeding(prenominal) phase begins. Testing is express in this model practically so than the waterfall model though. The examen procedures are developed proterozoic in the life cycle before any coding is done, during each of the phases preceding implementation.Requirements begin the life cycle model hardly like the waterfall model. Before schooling is sucked, a frame test plan is created. The test plan focuses on confluence the functionality specified in the requirements gathering.The high-level envision phase focuses on placement architecture and forge. An integration test plan is created in this phase as well in order to test the pieces of the packet administrations ability to work to charmher.The low-level design phase is where the actual software components are designed, and unit of measurement tests are created in this phase as well.The implementation phase is, again, where all coding takes place. Once coding is complete, the path of execution continues up the right side of the V where the test plans developed earlier are directly put to use.Advantages Simple and easy to use. Each phase has specific deliverables. higher(prenominal) chance of success over the waterfall model due to the maturement of test plans early on during the life cycle. Works well for small projects where requirements are easily understood.Disadvantages Very rigid, like the waterfall model. Little tract ableness and adjusting scope is difficult and expensive. Software is developed during the implementation phase, so no early tropes of the software are produced. Model doesnt provide a have path for problems found during interrogation phases.Spiral ModelThe spiral model is similar to the incremental model, with more than emphases placed on risk epitome. The spiral model has four phases Planning, Risk abstract, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The immoralline spiral, kickoffing in the planning phase, requirements are gathitherd and risk is assessed. Each subsequent spirals builds on the baseline spiral.Requirements are gathered during the planning phase. In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase.Software is produced in the applied science phase, along with testing a t the end of the phase. The evaluation phase allows the node to evaluate the railroad siding of the project to date before the project continues to the next spiral.In the spiral model, the angular component represents progress, and the radius of the spiral represents exist.Advantages High amount of risk analysis Good for large and mission-critical projects. Software is produced early in the software life cycle.Disadvantages seat be a pricey model to use. Risk analysis requires exceedingly specific expertise. Projects success is highly dependent on the risk analysis phase. Doesnt work well for smaller projects.1. The Scope of Life CyclesAs we described in the book The first step incorporate Process (EUP) the scope of life cycles can vary dramatically. For example, fig 1 depicts the Scrum crook life cycle whereas Figure 2 depicts an extended version of that diagram which covers the full ashes using life cycle (SDLC) and Figure 3 extends that further by traverseing enter prise-level disciplines via the EUP life cycle. The points that Im laborious to practice are System festering is complicated. Although its comforting to think that emergence is as simple as Figure 1 makes it out to be, the fact is that we know that its not. If you adopt a development process that doesnt actually address the full development cycle then(prenominal) youve adopted micro more than consultantware in the end. My experience is that you lease to go beyond the construction life cycle of Figure 1 to the full SDLC of Figure 2 (ok, solitude whitethorn not be all that critical) if youre to be successful at that places more to IT than development. To be successful at IT you must take a multi- musical arrangement, multi-life cycle stage view as depicted in Figure 3. The naive realism is that organizations have galore(postnominal) potential projects in the planning stage (which lightheaded call Iteration -1 in this article), more in development, and many in production. 2. Iteration -1 Pre-Project PlanningIteration -1, the pre-Inception phase in the Enterprise Unified Process (EUP), is the pre-project aspects of portfolio management. During this phase you go out1. Define the business opportunity. You must select the bigger business picture and focus on market concerns. This includes exploring how the advancedly functionality get out im demo your organizations presence in the market, how it will impact profitability, and how it will impact the people within your organization. This exploration effort should be brief, not all projects will make the initial cut so you whole want to invest enough effort at this point to get a serious gut feel for the business potential. A good strategy is to follow Outside-In Developments focus on identifying the potential stakeholders and their remnants, secern study to help identify the scope of the effort.2. Identify a viable for the project. There are several issues to consider when identifying a potential strategy for the project. For example, do you build a modern arranging or buy an alert package and modify it? If you decide to build, do you do so onshore or offshore? willing the work be solely done by your own development aggroup, by a team from a carcass integrator (SI), or in partnership with the SI? What development paradigm traditional/waterfall, iterative, or prompt will you follow? Will the team be co-located, near-located within the same geographic region, or far-located close to the world? As you can see there are many combinations of strategy ready(prenominal) to you, and at this point in time you whitethorn unless be able to narrow the range of the possibilities but be forced to leave the final decision to the project team in prox iterations.3. Assess the feasibility. During Iteration -1 you will want to do just enough feasibility analysis to determine if it makes sense to invest in the potential project. Depending on the situation you may choose to invest very little effort in considering feasibility, for many trunks just considering these issues for a a few(prenominal) minutes is sufficient for now, and for some systems you may choose to invest eld if not weeks exploring feasibility. Many organizations choose to do just a little bit of feasibility analysis during Iteration -1, and then if they decide to breed the project they will invest more effort during Iteration 0. In my experience you need to consider four issues when exploring feasibility scotch feasibility, proficient feasibility, operational feasibility, and political feasibility. Your feasibility analysis efforts should also produce a list of potential risks and criteria against which to make go/no-go decisions at key milestone points during your project. Remember that agile teams only have a success rate of 72%, compared to 63% for traditional projects, implying that almost 30% of agile projects are considered failures. Therefore you should question the feasibility of the project throughout the life cycle to reduce overall project risk.3. Iteration 0/ impassioned Up Project InitiationThe first week or so of an agile project is frequently referred to as Iteration 0 (or Cycle 0) or in The Eclipse Way the Warm Up iteration. Your goal during this period is to initiate the project by1. Garnering initial tin and living for the project. This may have been already achieved via your portfolio management efforts, but realistically at some point somebody is going to ask what are we going to get, how much is it going to cost, and how long is it going to take. You need to be able to provide reasonable, although potentially evolving, answers to these questions if youre going to get permission to work on the project. You may need to justify your project via a feasibility study.2. actively working with stakeholders to initially model the scope of the system. As you see in Figure 5, during Iteration 0 agilists will do some initial requirements mildew with their stakeholders to identify the initial, albeit high-level, requirements for the system. To promote active stakeholder participation you should use comprehensive tools, such as index cards and white boards to do this modeling our goal is to understand the problem and solution domain, not to create mounds of credentials. The detail of these requirements are modeled on a just in time (JIT) basis in model storming sessions during the development cycles.3. Starting to build the team. Although your team will evolve over time, at the beginning of a development project you will need to start identifying key team members and start bringing them onto the team. At this point you will want to have at least one or two senior developers, the project perambulator/manager, and one or more stakeholder representatives.4. Modeling an initial architecture for the system. primeval in the project you need to have at least a general idea of how youre going to build the system. Is it a mainframe COBOL application? A .Net application? J2EE? whateverthing else? As you see in Figure 5, the developers on the project will get unneurotic in a room, often around a whiteboard, discuss and then sketch out a potential architecture for the system. This architecture will likely evolve over time, it will not be very luxuriant yet (it just ask to be good enough for now), and very little financial support (if any) needs to be write. The goal is to identify an architectural strategy, not import mounds of documentation. You will work through the design details later during development cycles in model storming sessions and via TDD.5. Setting up the environment. You need workstations, development tools, a work area, for the team. You dont need access to all of these resources right away, although at the start of the project you will need most of them.6. Estimating the project. Youll need to put together an initial estimate for your agile project based on the initial requirements, the initial architecture, and the skills of your team. This estimate will evolve throughout the project.4. Release Iterations(s) The quit GameDuring the release iteration(s), also known as the end game, we transformation the system into production. Not that for complex systems the end game may prove to be several iterations, although if youve done system and drug user testing during construction iterations (as indicated by Figure 6) this likely wont be the case. As you can see in Figure 9, there are several important aspects to this effort1. Final testing of the system. Final system and acceptance testing should be performed at this point, although as I pointed out earlier the bulk of testing should be done during construction iterations. You may choose to airplane pilot/beta test your system with a subset of the eventual end users. carry out the Full Life Cycle Object-Oriented Testing (FLOOT) method for more thoughts on testing.2. Rework. There is no value testing the system if y ou dont plan to act on you run across. You may not address all defects, but you should ask to fix some of them.3. Finalization of any system and user documentation. Some documentation may have been written during construction iterations, but it typically isnt finalized until the system release itself has been finalized to avoid unnecessary rework Note that documentation is treated like any some other requirement it should be costed, prioritized, and created only if stakeholders are willing to invest in it. Agilists believe that if stakeholders are expert enough to earn the money then they must also be smart enough to spend it appropriately.4. Training. We train end users, operations staff, and support staff to work effectively with our system.5. Deploy the system. See my article entitle System Deployment Tips and Techniques.6. Briefly on different Phases7. Feasibility8. The feasibility study is utilize to determine if the project should get the go-ahead. If the project is to pr oceed, the feasibility study will produce a project plan and budget estimates for the future stages of development.9. Requirement Analysis and endeavor10. Analysis gathers the requirements for the system. This stage includes a little study of the business needs of the organization. Options for changing the business process may be considered. digit focuses on high level design like, what programs are needed and how are they going to interact, low-level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and information design (what information will be required). During these phases, the softwares overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. such(prenominal) care is taken during this phase. The logical system of the product is developed in this phase .11. Implementation12. In this phase the designs are translated into code. figurer programs are written using a conventional programing phrase or an application generator. Programming tools like Compilers, Interpreters, Debuggers are utilize to generate the code. Different high level programming languages like C, C++, Pascal, Java are used for coding. With respect to the type of application, the right programming language is chosen.13. Testing14. In this phase the system is tested. Normally programs are written as a series of individual modules, these subject to separate and particular test. The system is then tested as a whole. The separate modules are brought together and tested as a complete system. The system is tested to ensure that interfaces among modules work (integration testing), the system works on the intended platform and with the pass judgment volume of entropy (volume testing) and that the system does what the user requires (acceptance/beta testing).15. Mainten ance16. unavoidably the system will need maintenance. Software will definitely bear change once it is delivered to the customer. There are many reasons for the change. Change could advance be motive of some unexpected scuttlebutt values into the system. In addition, the changes in the system could directly affect the software operations. The software should be developed to befit changes that could happen during the post implementation period.why an SDLC?When you pay your tele remember bloom your payment is processed by a system. That system has evolved over many years and continues to evolve in order to meet the changing needs of the business. When the phone company cashes your check that check is also processed by a system which itself is evolving. These two systems are imperturbable of manual activities and alter components. They also exist in the context of many other systems with which they must interface.Each system works so well individually because it is composed of a rigorous set of tasks which consequent in well-defined outputs. heedless of who is doing the task, the result is essentially the same. As staff turnover occurs the system provides perseveration to the way of doing business.Each system can interface with the other because the variableness of activities between the bank and the phone company are well defined, as are the interfaces. Thus, no matter which bank the check is drawn on, the process is the same no matter which phone company sends in the check, the process is the same.The precision and completeness of the task lists, the data, the division of responsibilities and the interface definitions are required because of the complexness of these systems. But what about the process that creates and maintains these systems?Software systems development is, from a historical perspective, a very young profession.The first official programmer is belike Grace Hopper, working for the Navy in the mid-1940s. More realistically, commercia l applications development did not really take off until the early mid-sixties. These initial efforts are marked by a craftsman-like approach based on what intuitively felt right. Unfortunately, too many programmers had poor intuition.By the late 1960s it had become apparent that a more disciplined approach was required. The software engineering techniques started coming into being. This finally brings us to the SDLC.What evolved from these early activities in up rigor is an understanding of the scope and complexity of the total development process. It became absolved that the process of creating systems required a system to do systems. This is the SDLC. It is the system used to build and maintain software systems.As with the phone billing system, an SDLC system is needed because the development process is composed of many complex tasks which must be done in the right order to produce a successful result. If there is no SDLC each team must create it based on their own experiences and judgments.The complexity of the tasks has led to increased specialization. These specialists (e.g.,data base analysts, network designers, testers) must have well- saltationed tasks with well-defined outputs and well-defined interfaces to the rest of the development team. This is provided by the SDLC.Systems also have a long life. The billing system and check bear on system will probably never be de-automated. These systems will outlive their development teams. As staff turnover occurs, persistency is required in how the systems are supported. This is provided by the SDLC.Another issue is systems integration. Can you imagine if the architects designing a sky-scraper each had their own ways of creating and documenting the buildings plans? The plumbing, wiring, thaw systems, floors, walls, etc., would never come together. Most calculator systems interface with other data processor systems. The degree of system integration is rapidly increasing. The descriptions of functions an d data at the interfaces must be produced and documented in a consistent manner, in much the same way as architects must have a monetary standard way of documenting plans. This is provided by the SDLC.You would not dream of trying to process phone bills or checks without a system due to the complexity of the process, the need for specialization, the need for continuity and theneed to interface to the rest of the world. We have seen here that the process ofdeveloping systems has the same characteristics. Therefore, we need a system to build computer systems the SDLC.SYSTEM ANALYSIS AND DESIGN1.1 INTRODUCTIONSystems are created to solve problems. unrivaled can think of the systems approach as an organized way of relations with a problem. In this dynamic world, the subject System Analysis and Design (SAD), mainly deals with the software development activities.1.2 OBJECTIVESAfter going through this lesson, you should be able to define a system apologize the different phases of syste m development life cycle enumerate the components of system analysis explain the components of system designing1.3 DEFINING A SYSTEMA charm of components that work together to realize some objectives forms a system. Basically there are three major components in every system, namely input, processing and output.1.4 SYSTEM living CYCLESystem life cycle is an organisational process of developing and main-taining systems. It helps in establishing a system project plan, be-cause it gives overall list of processes and sub-processes required fordeveloping a system.System development life cycle manner combination of various activi-ties. In other words we can say that various activities put togetherare referred as system development life cycle. In the System Analy-sis and Design terminology, the system development life cycle alsomeans software development life cycle.Following are the different phases of system development life cycle previous studyFeasibility studyDetailed system studySys tem analysisSystem designCodingTestingImplementationMaintenance1.5 PHASES OF SYSTEM DEVELOPMENT LIFE CYCLEThe different phases and related activities of system development life cycle.(a) Preliminary System StudyPreliminary system study is the first stage of system development life cycle. This is a brief investigation of the system under contemplation and gives a clear picture of what actually the tangible system is? In practice, the initial system study involves the preparation of a System Proposal which lists the Problem Definition, Objectives of the Study, Terms of reference for Study, Constraints, Expected benefits of the new system, etc. in the light of the user requirements.The system proposal is disposed(p) by the System Analyst (who studies the system) and places it before the user management. The management may accept the proposal and the cycle proceeds to the next stage. The management may also reject the proposal or request some modifications in the proposal. In summary, we would say that system study phase passes through the following stepsproblem acknowledgement and project initiationbackground analysisinference or findings (system proposal)(b) Feasibility StudyIn case the system proposal is acceptable to the management.2 Computer ApplicationsIn a system the different components are connected with each otherand they are interdependent. For example, charitable body representsa complete natural system. We are also bound by many nationalsystems such as political system, economical system, educational sys-tem and so forth. The objective of the system demands that someoutput is produced as a result of processing the suitable inputs. Awell-designed system also includes an additional element referredto as control that provides a feedback to achieve desire objectivesof the system.3 Computer ApplicationsNext phase is to examine the feasibility of the system. The feasibility study is basically the test of the proposed system in the light of its worka bility, merging users requirements, effective use of resources and of course, the cost effectiveness. These are categorized as technical, operational, economic and schedule feasibility. The main goal of feasibility study is not to solve the problem but to achieve the scope. In the process of feasibility study, the cost and benefits are estimated with greater accuracy to find the Return on investment (ROI). This also defines the resources needed to complete the de-tailed investigation. The result is a feasibility report submitted to the management. This may be accepted or accepted with modifications or rejected. The system cycle proceeds only if the management accepts it.(c) Detailed System StudyThe detailed investigation of the system is carried out in treaty with the objectives of the proposed system. This involves detailed study of various operations performed by a system and their relationships within and outside the system. During this process, data are collected on the avail able files, decision points and transactions handled by the present system. Interviews, on-site observation and questionnaire are the tools used for detailed system study. Using the following steps it becomes easy to draw the exact boundary of the new system under considerationKeeping in view the problems and new requirementsWorkout the pros and cons including new areas of the systemAll the data and the findings must be documented in the form ofdetailed data flow diagrams (DFDs), data dictionary, logical data structures and toy specification. The main points to be discussed in this stage areSpecification of what the new system is to accomplish based on the user requirements.Functional power structure showing the functions to be performed by the new system and their relationship with each other.Functional network, which are similar to function hierarchy but they set off the functions which are common to more than one procedure.List of attributes of the entities these are the data items whichneed to be held about each entity (record)(d) System AnalysisSystems analysis is a process of collecting factual data, understand the processes involved, identifying problems and recommending feasible suggestions for up(a) the system functioning. This involves studying the business processes, gathering operational data, understand the information flow, finding out bottlenecks and evolving solutions for overcoming the weaknesses of the system so as to achieve the organizational goals. System Analysis also includes subdividing of complex process involving the entire system, identification of data store and manual processes.The major objectives of systems analysis are to find answers for each business process What is being done, How is it being done, Who is doing it, When is he doing it, Why is it being done and How can it be improved? It is more of a thinking process and involves the creative skills of the System Analyst. It attempts to give birth to a new efficient system that satisfies the current needs of the user and has scope for future growth within the organizational constraints. The result of this process is a logical system design. Systems analysis is an iterative process that continues until a preferent and acceptable solution emerges.(e) System DesignBased on the user requirements and the detailed analysis of the existing system, the new system must be designed. This is the phase of system designing. It is the most crucial phase in the developments of a system. The logical system design arrived at as a result of systems analysis is converted into physical system design. Normally, the design proceeds in two stagesPreliminary or General DesignStructured or Detailed DesignPreliminary or General Design In the preliminary or general design, the features of the new system are specified. The cost of implementing these features and the benefits to be derived are estimated.If the project is still considered to be feasible, we move to the detailed design stage.Structured or Detailed Design In the detailed design stage, computer oriented work begins in earnest. At this stage, the design of the system becomes more structured. Structure design is a blueprint of a computer system solution to a given problem.4 Computer ApplicationsSame components and inter-relationships among the same components as the original problem. Input, output, databases, forms, codification schemes and processing specifications are drawn up in detail. In the design stage, the programming language and the hardware and software platform in which the new system will run are also decided.There are several tools and techniques used for describing the system design of the system. These tools and techniques arei. Flowchartii. Data flow diagram (DFD)Data dictionaryStructured English stopping point tableDecision treeEach of the above tools for designing will be discussed in detailed inthe next lesson.The system design involvesi. Defining just now the required sys tem outputii. Determining the data requirement for producing the outputiii. Determining the medium and format of files and databasesiv. Devising processing methods and use of software to produce outputv. Determine the methods of data capture and data inputvi. Designing Input formsvii. Designing Codification Schemesviii. Detailed manual proceduresix. Documenting the Design(f) CodingThe system design needs to be implemented to make it a workable system. This demands the coding of design into computer understandable language, i.e., programming language. This is also called the programming phase in which the programmer converts the program specifications into computer instructions, which we refer to asprograms. It is an important stage where the defined procedures are change into control specifications by the help of a computer language. The programs coordinate the data movements and control the entire process in a system.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.