The Software Development Life Cycle Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

This paper is based on software development life cycle. In here describe about type of software development methodologies,how apply them to a project,strength and weaknesses of them,issues of software development life cycle and how manage them.Mainly describe about issues of Software Development Life Cycle and how could manage them.

Chapter1 provide an introduction about Software Development Life Cycle and it's methodologies.Chapter 2 Provide explanation about issues of software development life cycle and how could manage them.here has some detailed description about Lightweight methodologies,Quelity assuarance and security among the Software Development Life Cycle.

final Chapter give the conclusion that i get from the whole server reserch.

In today's world, software development is a big market. In U.S. only, according to the CHAOS 2004 report, total software project spending was $255 billion in a year. Only 29% of those projects have been finished, successfully; 18% of the projects have failed without giving any delivery, and 53% of the projects have been finished with overtime or over their budget. According to the statistics, simply $55 billion was waste, just in the year 2004.

Those statistics gives very negative opinion about the reliability of software project management steps. According to another research, 45% of the project failures, over time and budget issues could be controlled and resolved by the project management group.

section{What is System Development Life Cycle}

label{sec:WhatIsSystemDevelopmentLifeCycle}

The systems development life cycle (SDLC) is a conceptual model. It is used in project management which describes the stages, involved in an information system development project, from an initial feasibility study through maintenance of the completed application.

The following are some basic popular models.

begin{itemize}

item System Development Life Cycle (SDLC) Model

end{itemize}

begin{itemize}

item Prototyping Model

end{itemize}

begin{itemize}

item Rapid Application Development Model

end{itemize}

begin{itemize}

item Component Assembly Model

end{itemize}

Methodology must be select according to the project type; the most important factor for the success of a project may be how closely the particular plan was followed.

In general, an SDLC methodology follows the following steps:

begin{enumerate}

item Evaluate the existing system.

Identify the weaknesses. User Interviews, consulting with support personnel will help to do that.

item Identify the new requirements of the system.

Make specific proposals and improvements to overcome the existing weaknesses and problems.

item Design the proposed system.

Make the Plans concerning the physical construction, hardware, operating systems, programming, communications, and security issues.

item Develop the new system.

New components and programs obtained and installed.

Train the users of the system

Test the performance.

item Launch the system.

item Maintain the developed system. Always we have to pay attention about the maintenance. Users of the system should be kept up-to-date concerning the latest modifications and procedures.

end{enumerate}

newpage

section{Traditional SDLC Methodologies} There is an article about traditional Software Development Life Cycle by Rothi and Yen. In their article they mention how the use of traditional software development models is various and often paid attention as the proper and disciplined advance to the analysis and design of software applications. Examples of such models included the code and fix, waterfall, staged and phased development, transformational, spiral, and iterative models. They also described how traditional SDLCs have the same goal and how they are similar in the approach they use to achieve it.

An U.S. Department of Justice article described how the primary goal of any SDLC to deliver quality software systems. It further defined a quality system as one that:

begin{enumerate}

item Meets or exceeds customer expectations

item Works well with current and planned infrastructure

item Is inexpensive to maintain and enhance. m

end{enumerate}

SDLC is traditionally made up of several phases, each comprised of multiple steps. These steps typically include software concept, requirements analysis, architectural design, coding and debug, and system testing.

Traditional SDLC techniques are also discussed and how over time the phases of these approaches have become enshrined in a development cycle that includes:

begin{enumerate}

item Defining requirements

item Designing a system to meet those requirements

item Coding

item Testing.

end{enumerate}

Each phase of the development cycle is strictly sequenced. For example, in the waterfall model, the output of all prior effort is a prerequisite for subsequent steps.

begin{verse}

E.g. All details of requirements are documented before start of design, design is completed before coding, and exhaustive testing is performed prior to release.

end{verse}

section{Popular Software Development Models}

subsection{System Development Life Cycle (SDLC) Model}

label{sec:SystemDevelopmentLifeCycleSDLCModel}

this is also known as Classic Life Cycle Model, Linear Sequential Model or Waterfall Method. Small to medium database software projects are generally broken down into six stages:

begin{itemize}

item Project Planning

end{itemize}

begin{itemize}

item Requirements Definition

end{itemize}

begin{itemize}

item Design

end{itemize}

begin{itemize}

item Development

end{itemize}

begin{itemize}

item Integration & Test

end{itemize}

begin{itemize}

item Installation & Acceptance

end{itemize}

The relationship of each stage to the other �s looks like a waterfall. Outputs of a specific stage serve as the initial inputs for the next stage.

When to use the Waterfall Model

begin{itemize}

item Requirements are very well known

end{itemize}

begin{itemize}

item Product definition is stable

end{itemize}

begin{itemize}

item Technology is understood

end{itemize}

begin{itemize}

item New version of an existing product

end{itemize}

begin{itemize}

item Porting an existing product to a new platform.

end{itemize}

subsection{Prototyping Model}

label{sec:PrototypingModel}

This is a fast process of making a model of the project. Prototypes test different aspects of the model, the design, help gather feedback, and show ideas and features of the project.

There are two different forms of prototyping.

begin{itemize}

item Paper form-

end{itemize}

begin{verse}

sketches and pictures that are non-working types. This type is used more often at the beginning of a project to give a general idea of how the product behaves.

end{verse}

begin{itemize}

item Visual image form-

end{itemize}

begin{verse}

It is a working type. This usually uses computer screen, which allows the visual images of the project. After the sketches and adjustments are made then the computer visual are used to get the feel and look of the finished product. Finally, after meeting all the standards; design goals, and manufacture regulations the prototype is ready for the start of production.

end{verse}

subsection{Spiral Model}

label{sec:SpiralModel}

It was necessary to develop a new Software Development Model, which could help in ensuring the success of software project. One such model was developed which incorporated the common methodologies followed in "The Waterfall Model". But it also removed almost every possible or known risk factors from it. This model is known as "The Spiral Model" or "Boehm's Model".

There are four phases in the "Spiral Model.

begin{itemize}

item Planning

end{itemize}

begin{itemize}

item Evaluation

end{itemize}

begin{itemize}

item Risk Analysis

end{itemize}

begin{itemize}

item Engineering

end{itemize}

These four phases are iteratively followed one after other in order to remove all the problems, which were faced in "The Waterfall Model".

When to use Spiral Model

begin{itemize}

item When creation of a prototype is appropriate

end{itemize}

begin{itemize}

item When costs and risk evaluation is important

end{itemize}

begin{itemize}

item For medium to high-risk projects

end{itemize}

begin{itemize}

item Long-term project commitment unwise because of potential changes to economic priorities

end{itemize}

begin{itemize}

item Users are unsure of their needs

end{itemize}

begin{itemize}

item Requirements are complex

end{itemize}

begin{itemize}

item New product line

end{itemize}

begin{itemize}

item Significant changes are expected (research and exploration)

end{itemize}

subsection{Rapid Application Development (RAD) Model}

label{sec:RapidApplicationDevelopmentRADModel}

The RAD models a linear sequential software development process that highlight an extremely short development cycle. The RAD model is linear sequential model and it is one of the "high speed" adaptations of the project. The model is achieved by using a component-based construction approach. RAD is used primarily for information systems applications.

When to use RAD

begin{itemize}

item Reasonably well-known requirements

end{itemize}

begin{itemize}

item User involved throughout the life cycle

end{itemize}

begin{itemize}

item Project can be time-boxed

end{itemize}

begin{itemize}

item Functionality delivered in increments

end{itemize}

begin{itemize}

item High performance not required

end{itemize}

begin{itemize}

item Low technical risks

end{itemize}

begin{itemize}

item System can be modularized

end{itemize}

section{Advantages and disadvantages of SDLC}

subsection{Waterfall Model}

label{sec:WaterfallModel}

paragraph{Advantages}

label{sec:Advantages}begin{enumerate}

item Clear project objectives.

item Stable project requirements.

item Progress of system is measurable.

item Strict sign-off requirements.

end{enumerate}

paragraph{Disadvantages}

label{sec:Disadvantages}

begin{enumerate}

item Time consuming

item Never backward (Traditional)

item Little room for iteration

item Difficulty responding to changes

end{enumerate}

subsection{Spiral Model}

label{sec:SpiralModel}

paragraph{Advantages}

label{sec:Advantages}

begin{enumerate}

item Avoidance of Risk is enhanced.

item Strong approval and documentation control.

item Implementation has priority over functionality.

item Additional Functionality can be added at a later date

end{enumerate}

paragraph{Disadvantages}

label{sec:Disadvantages}

begin{enumerate}

item Highly customized limiting re-usability

item Applied differently for each application

item Risk of not meeting budget or schedule

item Possibility to end up implemented as the Waterfall framework

end{enumerate}

subsection{Prototype model}

label{sec:Prototype model}

paragraph{Advantages}

label{sec:Advantages}

begin{enumerate}

item Strong Dialogue between users and developers

item Missing functionality can be identified easily

item Gives the user and producer an idea of the finished product

item Requirements validation, Quick implementation of, incomplete, but

functional, application

item May generate specifications for a production application

item Environment to resolve unclear objectives

item Encourages innovation and flexible designs

item Allows a visual idea to help those funding the project.

end{enumerate}

paragraph{Disadvantages}

label{sec:Disadvantages}

begin{enumerate}

item Contract may be awarded without rigorous evaluation of Prototype

item Identifying non-functional elements difficult to document

item Incomplete application may cause application not to be used as the

full system was designed

item Incomplete or inadequate problem analysis

item Client may be unknowledgeable

item Approval process and requirement is not strict

item Requirements may frequently change significantly

end{enumerate}

chapter{Managing Issues of SDLC}

section{Issues of SDLC}

begin{itemize}

item The SDLC Waterfall: on some projects, the team has to go back and onward between requirements and design so many times. That the project seems to be out of control.

item Requirements Documentation Difficulty: Because of poor requirement gathering and miscommunication especially on complicated systems difficult documentation requirements in a usable way.

begin{verse}

Etc. when we add requirements in the middle the output and everything should be changed which is difficult.

end{verse}

item Scheduling and budgeting difficulties: For large-scale system, schedule and budgeting estimates have to approximate. So unrealistic scheduling can happen.

item Inadequate Testing

item Traditional SDLC methodologies sometimes fall short in the new e-business software environment. They are often to "heavy" to keep up with the stage of e-business software development projects.

item When working with the relational databases those are in the base of almost every information system. The thing is, it is not well suited to working with object oriented languages. Tools can make your life easier, but they do not solve this issue completely.

item Not understanding the long-term consequences of a weak security process

Some times Certain software security flaws may

begin{itemize}

item Not be quite so understandable

item Not show up for years

end{itemize}

which creates long-term problems. Much of this can be traced back to weak security processes throughout the software development life cycle

ex:

begin{itemize}

item not performing threat modeling

item not establishing and following software security standards

item not using the proper testing tools to uncover software security weaknesses

end{itemize}

item Security issues

begin{itemize}

item Business goals conflict with security during each phase

item Viewing security requirements in the wrong context

item Not developing with security in mind

item Glazing over security during testing

item Not using the right security testing tools

end{itemize}

item Multi-threading is so useful and but using is much difficult. The .NET framework makes it a bit easier, but still have to know the way around locks and signaling to avoid performance or deadlock issues.

end{itemize}

section{Managing issues of SDLC }

label{sec:ManagingIssuesOfSDLC}

begin{itemize}

item Use "Light" SDLC methodologies.

begin{verse}

"Light" SDLC methodologies have recently been developed and put to use. Managerial effort required to use that methodology is very few. And also this methodology uses few documents. So they are considered light.

end{verse}

item Improving Security across the Software Development Life cycle

item Choosing the Right Methodology for the perticular project

begin{verse}

there are no methodology appropriate for every project.when choosing a methodology for a perticular project we have to consider about the project environment, team size ,duration and project type.

end{verse}

item The plan for quality assurance activities should be in writing

item Follow the Tailored SDLC Models

item Each stage has a pre-defined set of standard processes, such as Informal Iteration and In-stage Assessment.

begin{verse}

This pre-defined structure for each stage allows the project participants to work in a familiar environment, where they know what happened in the past, what is happening in the present, and have accurate expectations for what is coming in the near future. This engenders a high comfort level, which in turn generates a higher level of cooperation between participants. Participants tend to provide needed information or feedback in a timelier manner, and with fewer miscommunications.

end{verse}

item Research the market to study and identify a potential customer's need.

begin{verse}

The market study is done based on a lot of assumptions. Assumptions are the crucial factors in the development or inception of a product's development. Though assumptions are abstract, there should be a move to develop tangible assumptions to come up with a successful product.

end{verse}

end{itemize}

subsubsection{Selecting a Light Methodology}

label{sec:SelectingALightMethodology}

Lightweight methodologies are strong in some areas and weak in others. On the negative side, when a project falls short of being hardly sufficient, failure occurs. In one case, an XP project team successfully delivered a software application to a customer. After several years, new development was stopped, and the initial team members drop the system and went on to other projects. Team had never needed or developed any system documentation.Development of the system was stucked after the past members went to another project because they hadn't enough details and documentations to carry the system forward.

Key to success when employing lightweight methodologies is their application to projects with one or more of the following enablers.:

begin{enumerate}

item Small co-located development teams (i.e. two to eight people in a room).

item On-site customer or usage expert.

item Short increments between deliverables.

item Fully automated regression tests.

item Experienced developers.

end{enumerate}

As the number of the above characteristics increase, so does the probability of success for a project employing lightweight SDLCs.

The appropriateness of one over another is often dependant on the size and discipline of the development team.

-When team size and discipline are low, Crystal light is a good choice.

-If the development team is willing and sized around a 12 members, XP is an excellent choice.

In addition, XP has been successfully applied to teams of forty members.

before choosing a light methodology we have to understanding that the process we start with will most likely not be the optimum one for the project. The process must have to monitored and adapted continuesly to meet existing conditions.

subsubsection{Choosing the Right Methodology}

label{sec:ChoosingTheRightMethodology}

The "one size fits all" approach is not appropriate in applying SDLC methodologies to software development. Methodologies are effective and appropriate only under certain conditions.

ex: a software process that is appropriate for an e-commerce can be inappropriate for a astronomy project application. so we have to apply most appropriate methodology to significant project.[1]

as a example,

the Big M methodology helps to differentiate the application of multiple methodologies according to characteristics such as staff size and system criticality. Big M uses four principles to determine the appropriate methodology for a significant project application. These are:

begin{enumerate}

item Large groups need large methodologies.

item Critical systems require publicly visible correctness (greater density) in their construction.

item Small increases in methodology size or density add significantly to project cost.

item Interactive and face-to-face communication is the most effective.

end{enumerate}[1]

Before considering the switch from traditional to lightweight methodologies, the Cutter Consortium recommends the following (Cutter, 2000):

begin{enumerate}

item Assess the projects needs, strengths, and challenges.

item Determine the ability and willingness of the development staff to switch from traditional methodologies.

item Investigate the various lightweight methods and determine which the best fit with the current organization is.

item Pick and project and test one or more of the light models

end{enumerate}

subsubsection{� Improving Security across the Software Development Life cycle}

label{sec:ImprovingSecurityAcrossTheSoftwareDevelopmentLifeCycle}

begin{itemize}

item Create Software Security Certification Accreditation Program.

begin{verse}

Support to Creation of a certification and official approval program for increasing security in software development.

end{verse}

item Ensure that Software Assurance and other Information Technology Centers of Excellence includes an information protection component.

item Develop industry awards for secure software development practices and end

Products

item Create and actively distribute tools that illustrate secure software development

Techniques

item Develop sample performance metrics for administrators/IT Departments that

Encourage effective action[1]

end{itemize}

subsubsection{Tailored SDLC Models}

label{sec:TailoredSDLCModels}

begin{itemize}

item As the above mentioned any model does not fit to all projects. Some project may not have any model that fits a particular project, at that time pick a model that comes close and modify it for particular needs.

item Project should consider risk but complete spiral too much - start with spiral & pare it done

item Project delivered in increments but there are serious reliability issues - combine incremental model with the V-shaped model

item Each team must pick or customize a SDLC model to fit its project

end{itemize}

subsubsection{Quality Assurance Plan}

label{sec:QualityAssurancePlan}

Quality is the degree to which the software satisfies stated and implied requirements. Quality of the project can directly effect to the success of the business. But for make products in high Quality can lowers production speed, increases maintenance costs and can adversely affect business. So this Quality must have to control in the perfect manner.

The plan for quality assurance activities should be in writing. Decide if a separate group should perform the quality assurance activities. Some elements that should be considered by the plan are:

begin{itemize}

item Defect tracing - keeps track of each defect found, its source, when it was detected, when it was resolved, how it was resolved, etc

item Unit testing - each individual module is tested

item Source code tracing - step through source code line by line

item Technical reviews - completed work is reviewed by peers

item Integration testing -- exercise new code in combination with code that already has been integrated

item System testing - execution of the software for the purpose of finding defects

end{itemize}

section{How to make a successful software development project }

label{sec:How to make a successful software development project }

Software development projects have important limits to be counted as a successful project;

begin{itemize}

item Time

item Budget

item Requirements

end{itemize}

A successful software development project should be completed in estimated time and within budget with the satisfaction of all requirements. Any doubt, possibility of loss in project processes may result in Problems. 71% of all projects come with a stamp of failure, overtime or over budget.

In a development project, the loss describes the impact to the project which could be in the form of quality of the end product, increased costs, delayed completion, loss of market-share, or failure.

Considering the competition in the sector, user satisfaction, shrinking margins of profit and significantly fast technological changes, the risk management in the software development projects is not option but an old-fashioned necessity, a must.

All software projects have some level of risk associated with them, even if the product under development is simply another version of an existing system or product. In every size of project, risk management should be a part of project management process.

Many initiatives and studies in academic environments, government and private sector have been done about the risk management concepts for projects after late 1980s. Some methodologies have been developed and published in the industry.

All the developed risk methodologies conducted by di_erent organizations have these 3 fundamental objectives:

begin{itemize}

item Risk prevention

item Risk mitigation and correction

item Ensuring safe system failure

end{itemize}

paragraph{Shared product vision}

label{sec:SharedProductVision}

begin{itemize}

item sharing product vision based upon common purpose, shared ownership, and collective commitment

item focusing on results

end{itemize}

paragraph{Teamwork}

label{sec:Teamwork}

begin{itemize}

item working cooperatively to achieve a common goal

item pooling talent, skills, and knowledge

end{itemize}

paragraph{Global perspective}

label{sec:GlobalPerspective}

begin{itemize}

item viewing software development within the context of the larger system-level definition, design, and development

item recognizing both the potential value of opportunity and the potential impact of adverse effects, such as cost overrun, time delay, or failure to meet product specifications

end{itemize}

paragraph{Forward-looking view}

label{sec:ForwardLookingView}

begin{itemize}

item thinking toward tomorrow, identifying uncertainties, anticipating potential outcomes

item managing project resources and activities while anticipating uncertainties

end{itemize}

paragraph{Open communication}

label{sec:OpenCommunication}

begin{itemize}

item encouraging the free flow of information between all project levels

item enabling formal, informal, and impromptu communication

item using consensus-based process that values the individual voice (bringing unique knowledge and insight to identifying and managing risk)

end{itemize}

paragraph{Integrated management}

label{sec:IntegratedManagement}

begin{itemize}

item making risk management an integral and vital part of project management

item adapting risk management methods and tools to a project's infrastructure and culture

end{itemize}

paragraph{Continuous process}

label{sec:ContinuousProcess}

begin{itemize}

item maintaining constant vigilance

item identifying and managing risks routinely throughout all phases of the project's life cycle

end{itemize}

When looking at the software development projects in a global perspective, a typical software project involves technology, hardware, software, people, cost, and schedule. And all parts of this development system are potential sources for software risks.

chapter{Conclusion}

label{sec:Conclusion}

Through Software Development Life Cycle it is easy to avoid conflicts when developing software and develop them in high efficiency. For this SDLC methodologies can be used. But these methodologies are not suitable for every project type. So different SDLC methodologies are used and have to choose relevant methodology in order to project type

And project environment. All these different software development models have their own advantages and disadvantages. Though there is an ability to occur problems in SDLC, and it is important to prevent them. Timing is very crucial in SDLC.If it is too much delay, then have to face a lot of problems. Because there are so many competitors and they can exceed our products.

The goal of this paper to identify issues of SDLC and discuss how these issues can manage. The projects which are not managed issues properly have sabotaged after launching. The projects which have managed issues properly have shown their success and improvements. The unable of mange issue will cause to decrease project quality,

incapable of delivering on time and increase the project cost.

Certain project cannot be conducted under SDLC methodologies. At that occasions it is better to implement "Tailored SDLC models". Any way it is important to manage issues in high quality timely delivered projects.

begin{thebibliography}{9}

bibitem {un}Ronald G. Wolak , textit{"DISS 725 - System Development: Research Paper 1

SDLC on a Diet"}, School of Computer and Information Sciences Nova Southeastern University , April 2001

bibitem {un}Unknown, textit{"Software Development Life Cycle (SDLC)"}, http://www.stylusinc.com/Common/Concerns/SoftwareDevtPhilosophy.php.htm,india Outsourcing

bibitem {un}Unknown, textit{"Software development process"}, http://en.wikipedia.org/wiki/Software_development_process, Wikipedia, the free encyclopedia

bibitem {Yogi Berra}Yogi Berra, textit{"Software Development Life Cycle (SDLC)"}, Microsoft Research,Asia

bibitem {un}Unknown, textit{"IMPROVING SECURITY ACROSS THE SOFTWARE DEVELOPMENT LIFECYCLE"}, http://www.cyberpartnership.org/SDLCSUMM.pdf

bibitem {un}Unknown, textit{"The Software Development Life Cycle (SDLC)

For Small To Medium Database Applications

"}, Document ID: REF-0-02 Version: 1.0d , http://www.elucidata.com/refs/sdlc.pdf

bibitem {un}Unknown, textit{"What Are Problems with the SDLC?"}, http://liukexing.com/liukexing9.aspx,MIS

bibitem {un}Unknown, textit{"What is systems development life cycle (SDLC)?"}, http://h71028.www7.hp.com/ERC/cache/568356-0-0-0-121.html, hp project home

end{thebibliography}

paragraph{LARGEbfseries Abbreviations}

begin{itemize}

item SDLC - Software Development Life Cycle

item RAD - Rapid Application Development

item IT - Information Technology

end{itemize}

label{sec:Abbreviations}

newpage

begin {center}

huge Acknowledgement

end{center}

normalsize

I would like to thank Mr.K.P.Hewagamage, Mr.Premarathna and Mr.Maik Silva for their continuous support in Literature Survey.

And also i would like to thank my mother and my sisters they are the strength of my life.they always try to encourage me and give helps in several ways.

and thanks for all my friends because they give me details related to my topic.

And specialy thank to Mr.Jaliya he is the tech lead in vizu pvt(ltd).he always give advises and show the right path to do that server.and he give me some reserch papers related to my topic.

end{document}

end{document}

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.