System development methodologies are promoted as a means of improving the management and control of the software development process, structuring and simplifying the process, and standardizing the development process and product by specifying activities to be done and techniques to be used. It is often tacitly assumed that the use of a system development methodology will improve system development productivity and quality. However, there is little empirical evidence to support this assumption. As we know that, Information System (IS) refers to a system of people, data records and activities that process the data and information in an organization, and it is includes the organization’s manual and also the automated processes. Here all the development of IS are referring to the useful of standard selection of system development methodology.
There are various types of information systems which successful implementation for the end users, for example: transaction processing systems, decision support systems, knowledge management systems, database management systems, registration system, payroll system, inventory system and office information systems. There are numerous types of system development methodologies such as AGILE, System Development Life Cycle (SDLC), Prototyping, Rapid Application Development (RAD), Joint Application Development (JAD), Computer Aided Software Engineering (CASE), Object Oriented or others.
System Development Life Cycle (SDLC)
SDLC stands for Software Development Life Cycle. A Software Development Life Cycle is essentially a series of steps, or phases, that provide a model for the development and lifecycle management of an application or piece of software. The methodology within the SDLC process can vary across industries and organizations, but standards such as ISO/IEC 12207 represent processes that establish a lifecycle for software, and provide a mode for the development, acquisition, and configuration of software systems. The intent of a SDLC process it to help produce a product that is cost-efficient, effective, and of high quality. Once an application is created, the SDLC maps the proper deployment and decommissioning of the software once it becomes a legacy. The SDLC methodology usually contains the following stages: Analysis (requirements and design), construction, testing, release, and maintenance (response).
SDLC can be defined as the conceptual process of developing, maintaining or altering an information system from the time that the project is started through maintenance of the completed application. The SDLC process applies to the information system. There are many different SDLC models and methodologies, but each generally consists of a series of defined steps or phases. For any SDLC model that is used, information security must be integrated into the SDLC to ensure appropriate protection for the information that the system will transmit, process and store.
The purpose of SDLC
Systems Development Life Cycle or one of many variations on the name. What most Business Analysts can agree on is that the SDLC is a structured, standardized set of processes for developing and maintaining business solutions through the development life cycle of a project.
Software development efforts go through a series of detailed and iterative processes that are divided into initiation & planning, analysis, design & development and QA testing. These activities are often referred to as the SDLC.
There are many variations to the SDLC but they all share the same core activities:
1. What deliverables must be created? Deliverables or artifacts are items, tasks, documents, modules, etc. that are created for a new project or are the result of an existing project or process. Deliverables will vary in size based on the scope of a project or process. Deliverables must be documented and tracked by the BA during the life cycle of the project.
2. How will the deliverables be created? A BA working with the development team or SME will identify how deliverables are created, assign tasks appropriately and determine what processes and methodologies to use to help complete each task and deliverable.
3. Who will create each deliverable? A project manager or delegate will identify individuals who will complete each task and deliverable. The BA will document the skill sets needed to complete the deliverables as part of the SDLC process.
4. When will the deliverables be created? A project timeline should be completed by the BA or a member of the management team. Tasks, milestones and deliverables will be determined and recorded in the project timeline. 5. Where will everything be documented? Documentation is a major part of the SDLC. A Business Analyst must document the answers to the four above questions. Stakeholders, developers and QA can all benefit from well documented and easily accessible requirements.
Phase of SDLC
The system development life cycle framework provides a sequence of activities for system designers and developers to follow. It consists of a set of steps or phases in which each phase of the SDLC uses the results of the previous one. The SDLC adheres to important phases that are essential for developers, such as planning, analysis, design, and implementation, and are explained in the section below. It includes evaluation of present system, information gathering, feasibility study and request approval.
Begins when a sponsor identifies a need or an opportunity. Concept proposal is created. The need for a system is expressed and the system purpose and high-level requirements are documented. System concept development
Defines the scope or boundary of the concept. Includes System Boundary Document, Cost Benefit Analysis, Risk Management Plan and Feasibility Study.
Develops a Project Management Plan and other planning documents. Provides the basis for acquiring the resources needed to achieve the solution.
Analyst will analyze user needs and develop user requirements. Create a detailed Functional Requirements Document.
Transform detailed requirements into complete, detailed Systems Design Document. Focuses on how to deliver required functionality.
Converts a design into complete information system. Includes acquiring and installing systems environment:
a) Create and testing databases.
b) Prepare test case procedures, test files, coding, compiling, refining programs and so on.
Integration and test
Demonstrates that developed system conforms to requirements as specified in Functional Requirements Document. Conducted by Quality Assurance (QA) staffs and users.
Includes implementation preparation, implement the system into production environment and resolution of problems. Identified in Integration and Test Phase.
Operation and maintenance
Describes tasks to operate and maintain information systems in a production environment. Includes Post-Implementation and In-Process Reviews.
Describes end-of-system activities. System is disposed once transition to a new computer system is completed. Emphasis is given to proper preparation of data.
Benefits of SDLC
The benefits of SDLC based on the 5 phases are as follows. The first phase is Planning, will results on products or output with detailed steps or workplan for a project. Second phase is Analysis. During analysis process, we will able to know where problems or opportunities are, after that we can find a solution on how to fix the problem, enhance or replace the current system. Next is Design, so that we can see detailed specifications of all system elements. Fourth phase is Implementation, which comprised of coding, documentation, training procedures and support capabilities. The last phase is Maintanence, which will be a new versions or updates. The expanding role of software in the information world forced attention upon the need of software development at acceptable speed and cost and on traceable time schedules. Software products need to be developed with assurance of acceptably high quality that can be maintained over a long period of time for accommodating the changing requirements of the user.
SDLC are required to provide visibility into the projects. Visibility in turn aids timely management control and mid-course corrections against the expected errors and crisis. It helps developers to weed out faults quite early before they cause to entire failure. This also avoids cascading of faults into later phases where, accumulation of increased number of faults leads to failure. SDLC also helps to organize workflow and outputs to maximize resource utilization and to define everybody’s roles and responsibilities clearly. Individual productivity hence increases due to specialization and at the same time the team’s productivity increases due to coordination of activities. The adoption of a formal development process with well define unambiguous and complete policies will lead to the benefits of correct requirements to generate the correct product in order to meet the customer’s needs preciously and inclusion of necessary features that will in turn, reduce the post-development cost.
The increased of complexities and huge size of the software development projects make them tough to control without formal practices and standard measurements. Unorganized or informal development approaches in current huge developments cause disastrous outputs with ambiguous communications, imprecise observations, brittle designs, inaccurate risk assessment, insufficient testing, uncontrolled change propagation and subjective progress assessment. On the other hand, adoption of a formal development process with well defined unambiguous and complete policies will lead to the benefits of correct requirements to generate the correct product in order to meet the customer’s needs preciously and inclusion of necessary features that will in turn, reduce the post-development cost.
SDLC has many specific requirements which it must meet, including being able to support projects and systems of various scopes and types, supporting all of the technical activities, supporting all of the management activities, being highly usable and providing guidance on how to install it. The technical activities include: 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.