Você está na página 1de 30

*Systems Development Life Cycle

Software Development Life Cycle

Topics :
Systems development and its Benefits Developing Software Systems Development Life Cycle Systems Development Methodologies


*A system can be described simply as a set of elements joined together for
a common objective. *A sub-system is a part of a larger system with which we are concerned. *All systems are parts of larger systems. For our purposes the organisation is the system, and the parts (divisions, departments, functions, units etc.) are the sub-systems.

*The term system originates from the Greek term systema, which means
to place together. Multiple business and engineering domains have definitions of a system. *Here we defines a system as: An integrated set of interoperable elements,

each with explicitly specified and bounded capabilities, working synergistically to perform value-added processing to enable a User to satisfy mission-oriented operational needs in a prescribed operating environment with a specified outcome and probability of success.

A system can be broadly defined as an integrated set of elements that accomplish a defined objective. People from different engineering disciplines have different perspectives of what a "system" is. For example, software engineers often refer to an integrated set of computer programs as a "system." Electrical engineers might refer to complex integrated circuits or an integrated set of electrical units as a "system." As can be seen, "system" depends on ones perspective, and the integrated set of elements that accomplish a defined objective is an appropriate definition.

* A lot of jobs these days involve computers - in particular, standard PC use. * The chances are that if your job heavily involves the use of a computer, you

already know what to do. But if like many, you're new to computing, then this will be useful for you.

A computer is a system, like many others. A system has 3 components:

* Input * Process * Output






Information System is such a type of system, which not only processes data, but also stores the data as well and provides necessary information as per the user requirement.

*A group of interdependent items that interact regularly to perform a task. *An established or organized procedure; a method. *A computer system refers to the hardware and software components that
run a computer or computers. *An information system is a system that collects and stores data. *On Macintoshes, System is short for System file, an essential program that runs whenever you start up a Macintosh. The System provides information to all other applications that run on a Macintosh. The System and Finder programs together make up the Mac OS. *System often simply refers to the operating system.

1. Set of detailed methods, procedures, and routines established or formulated to carry out a specific activity, perform a duty, or solve a problem problem. .

2. Organised, purposeful structure regarded as a 'whole' consisting of interrelated and interdependent elements (components, entities, factors, members, parts etc etc. .).

* Software that is built correctly can transform as the organization and its business
processes. * Software that effectively meets employee needs will help an organization become more productive and enhance decision making. * Software that does not meet employee needs may have a damaging effect on productivity and can even cause a business to fail.

* Increase in revenue for the

organization.. organization

* Improvement in brand reputation. * Prevent Liabilities. * Maximizing productivity. * Ensuring high quality of output.

SDLC is a process used by a systems analyst to develop an information system, including requirements, validation, training, and user (stakeholder) ownership. Any SDLC should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, works effectively and efficiently in the current and planned Information Technology infrastructure, and is inexpensive to maintain and cost-effective to enhance.


to meet these objectives SDLC has many specific requirements to meet, including: being able to support projects & systems of various scopes and types, supporting all technical activities, management activities, being highly usable, and with guidance on installation. technical activities activities: system definition (analysis, design, coding), testing, system installation (e.g., training, data conversion), production support (e.g., problem management), defining releases, evaluating alternatives, reconciling information across phases and to a global view, and defining the project's technical strategy. management activities activities: setting priorities, defining objectives, project tracking and status reporting, change control, risk assessment, step wise commitment, cost/benefit analysis, user interaction, managing vendors, post implementation reviews, and quality assurance reviews.

has three primary objectives: ensure that high quality systems are delivered, provide strong management controls over the projects, and maximize the productivity of the systems staff.

An SDLC has three primary business objectives:

- Ensure the delivery of high quality systems;

- Provide strong management controls;

- Maximize productivity.

*It is also known as software life cycle or application life cycle. *The System Development Life Cycle (SDLC) is the overall process of
developing, implementing, and retiring information systems (IS) through a multistep process from initiation, analysis, design, implementation, and maintenance to disposal. *There are 7 phases in a Systems development Life Cycle (SDLC).
1. Planning & Initiation

7. Maintenance

2. Analysis

6. Implementati on

Phases in Systems Development Life Cycle (SDLC)

3. Design

5. Testing

4. Development

Planning & Initiation Phase: It involves establishing a high-level plan of the intended project and determining project goals. 2. Analysis Phase: It involves analyzing end-user business requirements and refining project goals into defined functions and operations of the intended system. 3. Design Phase: It involves describing the desired features and operations of the system including screen layouts, business rules, process diagrams, pseudo code, and other documentation. 4. Development Phase: It involves taking all of the detailed design documents from the design phase and transforming them into the actual system. 5. Testing Phase: It involves bringing all the project pieces together into a special testing environment to test for errors, bugs, and interoperability and verify that the system meets all of the business requirements defined in the analysis phase. 6. Implementation Phase: It involves placing the system into production so users can begin to perform actual business operations with the system. 7. Maintenance Phase: It involves performing changes, corrections, additions, and upgrades to ensure the system continues to meet the business goals.

* Waterfall Methodology (Oldest one) * Spiral Methodology * Incremental Model Methodology * Evolutionary Prototyping Methodology * RAD (Rapid Application Development) Methodology * Extreme Programming Methodology * Agile Methodology
The systems development life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application. Various SDLC methodologies have been developed to guide the processes involved, including the waterfall model (which was the original SDLC method); rapid application development (RAD RAD); joint application development (JAD JAD); the fountain model; the spiral model; build and fix; and synchronize-and-stabilize.

Often, several models are combined into some sort of hybrid methodology. Documentation is crucial regardless of the type of model chosen or devised for any application, and is usually done in parallel with the development process. Some methods work better for specific types of projects, but in the final analysis, the most important factor for the success of a project may be how closely the particular plan was followed.
* If

there is an existing system, its deficiencies are identified. This is accomplished by interviewing users and consulting with support personnel. * The new system requirements are defined including addressing any deficiencies in the existing system with specific proposals for improvement. * The proposed system is designed. Plans are created detailing the hardware, operating systems, programming, and security issues. * The new system is developed. New components & programs must be obtained and installed. Users of the system must be trained in its use, and all aspects of performance must be tested. If necessary, adjustments must be made at this stage. * The system is put into use. This can be done in various ways. New system can phased in, according to application/ location, the old system gradually replaced. In some cases, it is more cost-effective to shut down the old system & implement the new system all at once. * Once the new system is up and running for a while, it should be exhaustively evaluated. Maintenance must be kept up rigorously at all times. Users of the system should be kept upto-date concerning the latest modifications and procedures.

* Benefits

* Feasibility Study
* Benefits to be obtained * Objective * Detailed sufficiently * Impact on user * Budget * Cost/benefits analysis * Alternatives - ex: vendor software available * Pay-back * Compatibility with environment - software & hardware * Additional MIS resources needed * Analyze existing system * Implementation schedule * Approval/disapproval - user, MIS, steering committee

* Improve quality of systems * Reduce maintenance costs * Increase user service * Requests

* Written by user * information requirements defined * users description of application * New or modification of application * State business need * Reviewed by steering committee * General Systems Design - high level

* Analyze existing system - inputs, processing, outputs * Detail user requirements, Specify what system is to accomplish * Review alternatives
* vendor packages vs. built in-house * main frame, LAN, microcomputer, etc.

A system development life cycle (SDLC) is "the overall process of developing information systems through a multistep process from investigation of initial requirements through analysis, design, implementation and maintenance" (Kay 2002). There are varied methodologies and models for developing SDLCs, among them the waterfall model, rapid application development (RAD), and joint application development (JAD), all of which follow a series of prescribed steps. The methodology provides a way to evaluate the existing system; define new system requirements; design, develop, and implement the new system; and maintain it ("Systems Development Life Cycle").

System Development Life Cycle framework provides system designers & developers to follow a sequence of activities. It consists of a set of steps or phases in which each phase of SDLC uses the results of the previous one. * Project planning, feasibility study: Establishes a high-level view of the intended project and determines its goals. * Systems analysis, requirements definition: Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs. * Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation. * Implementation: The real code is written here. * Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability. * Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business. * Maintenance: What happens during the rest of the software's life: changes, correction, additions, moves to a different computing platform and more. This, the least glamorous and perhaps most important step of all, goes on seemingly forever

* It is also known as software life cycle or application life cycle. * The SDLC is a project management technique that divides complex projects into smaller, more
easily managed segments or phases. Segmenting projects allows managers to verify the successful completion of project phases before allocating resources to subsequent phases.

* Software development projects typically include initiation, planning, design, development, testing,
implementation, and maintenance phases. However, the phases may be divided differently depending on the organisation involved.

The difference between the term SDLC and the term methodology follows * Whereas the SDLC refers to a stage all systems naturally undergo, a methodology refers to an approach invented by humans to manage the events naturally occurring in the SDLC. * A methodology is, in simple terms, a set of steps, guidelines, activities and/or principles to follow in a particular situation. * Most methodologies are comprehensive, multistep approaches to systems development * There are many methodologies out there.
7. Maintenance

1. Planning & Initiation

2. Analysis

6. Implementati on

3. Design

5. Testing

4. Development

* Prescriptive Models * Waterfall Model (Classical Model) * Incremental Process Model
* Evolutionary Model
* Incremental Model * RAD Model
Specialised Process Model
Component Based Development Formal Methods Model Aspect Oriented Software

* Prototyping Model * Spiral Model * Concurrent Development Model

Unified Process Model

Phases & Work Products Agile Process Model Extreme Programming (XP)
Adaptive Software Development (ASD) Dynamic Systems Development Methods (DSDM) Scrum Crystal Future Driven Development (FDD) Agile Modeling (AM)

*It is a sequential, activity-based process in which each phase in the SDLC
is performed sequentially from planning through implementation and maintenance. *Success rate for projects that follow this approach is only 10% (1 out of 10). *The reason for such low success rate is that, The Waterfall Methodology does not sufficiently consider the level of uncertainty in new projects. *No user feedback to the system.


Requirements defines needed information, function, behavior, performance and interfaces. *Design data structures, software architecture, interface representations, algorithmic details. *Implementation source code, database, user documentation, testing. *Test unit & integration testing and acceptance *Installation deployment at the user interface *Maintenance subsequent activities to follow-up the success of the project

* *Easy to understand, easy to use *Provides structure to inexperienced staff *Milestones are well understood *Sets requirements stability *Good for management control (plan, staff, track) *Works well when quality is more important than cost or schedule
* All requirements must be known upfront * Deliverables created for each phase are considered frozen inhibits flexibility * Can give a false impression of progress * Does not reflect problem-solving nature of software development iterations of phases * Integration is one big bang at the end * Little opportunity for customer to preview the system (until it may be too late)

*Requirements are very well known * *Product definition is stable *Technology is understood *New version of an existing product *Porting an existing product to a new platform.

* *
It emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accelerate the systems development process. The prototype is an essential part of the analysis phase when using a RAD methodology

Prototype a smaller-scale representation or working model of the users

requirements or a proposed design for an information system.


planning phase (a workshop utilizing structured discussion of business problems) *User description phase automated tools capture information from users *Construction phase productivity tools, such as code generators, screen generators, etc. inside a time-box. (Do until done) *Cutover phase -- installation of the system, user acceptance testing and user training

* Reduced cycle time and improved productivity with fewer people means lower costs * Time-box approach mitigates cost and schedule risk * Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs * Focus moves from documentation to code (WYSIWYG). * Uses modeling concepts to capture information about business, data, and processes. * Accelerated development process
must give quick responses to the user * Risk of never achieving closure * Hard to use with legacy systems * Requires a system that can be modularized * Developers and customers must be committed to rapid-fire activities in an abbreviated time frame.

* Reasonably well-known requirements * User involved throughout the life cycle * Project can be time-boxed * Functionality delivered in increments * High performance not required * Low technical risks * System can be modularized

breaks a project into tiny phases, and developers cannot continue on to the next phase until the first phase is complete. *Difference between waterfall & XP methodologies is that XP divides the phases into iterations with user feedback. *IE & Netscape Communicator were developed using XP Methodology. * XP uses an Object-Oriented Approach as its
preferred development paradigm

* XP encompasses a set of rules & practices

that occur within the context of four framework activities: Planning, Design, Coding and Testing

* The

XP process & notes some of the key ideas & tasks that are associated with each framework activity


* It is a form of XP, aims for customer satisfaction through early and continuous delivery of useful
* * *
software components components.. Agile is similar to XP but with less focus on team coding and more on limiting project scope scope.. An agile project sets a minimum number of requirements and turns them into a deliverable product.. product Agile means fast, efficient & flexible flexible;; small & nimble nimble;; lower cost cost;; fewer features features;; shorter projects projects..

* Agile methods grew out of the real-life project experiences of leading software professionals

who had experienced the challenges and limitations of traditional waterfall development on project after project. * Offers a lightweight framework for helping teams, given a constantly evolving functional and technical landscape, maintain a focus on the rapid delivery of business values and its associated benefits, organizations are capable of significantly reducing the overall risk associated with software development. * Accelerates the delivery of initial business value, and through a process of continuous planning and feedback, is able to ensure that value is continuing to be maximized throughout the development process.

* By using iterative planning and feedback loops, teams are able to continuously align the

delivered software with desired business needs, easily adapting to changing requirements throughout the process. * By measuring and evaluating status based on the undeniable truth of working, testing software, much more accurate visibility into the actual progress of projects is available. * Finally, as a result of following an agile process, at the conclusion of a project is a software system that much better addresses the business and customer needs.