36
System Development Life Cycle Methodology System Development Process: It refers to analyzing business, its activities, problems, decisions in order to design, create, implement and maintain a suitable information system. System development process is divided into two portions: 1. System Analysis: In this the problem, situation for which system is to be developed is analyzed thoroughly. 2. System Design: System Design includes all the Blue Print (all the drawings and documentation) preparation required to implement the system. System Development Life Cycle (Software Development Life Cycle): SDLC is a set of activities carried out by system analyst, designers and user to develop and implement the information system. It consists of following activities: Preliminary investigation. Analysis(Requirement or System Analysis) Design Development Of Software(Coding) Testing Implementation and Maintenance. Preliminary Investigation: The objective of this step is to determine whether the request is valid and feasible before making any recommendation to improve or modify the existing system or build a new system. Requirement Analysis: Once the decision is made by management on the recommendation of preliminary investigation, the second phase of SDLC start. The objective of this step is to collect and analyze all data and information with a view to understand customer requirement clearly and weeding (remove) inconsistencies and incompleteness in these requirement. System Design: The goal of system design phase is to transform the requirement into a structure that is suitable for implementing in some programming language. System Construction (Coding): The goal of this step is to translate the design of the system into code in a given programming language.

Ch 2 Sdlc Isca

Embed Size (px)

DESCRIPTION

CA Final SDLC

Citation preview

System Development Life Cycle Methodology

System Development Process: It refers to analyzing business, its activities, problems, decisions in order to design, create, implement and maintain a suitable information system. System development process is divided into two portions:

1. System Analysis: In this the problem, situation for which system is to be developed is analyzed thoroughly.

2. System Design: System Design includes all the Blue Print (all the drawings and documentation) preparation required to implement the system.

System Development Life Cycle (Software Development Life Cycle): SDLC is a set of activities carried out by system analyst, designers and user to develop and implement the information system. It consists of following activities:

Preliminary investigation. Analysis(Requirement or System Analysis) Design Development Of Software(Coding) Testing Implementation and Maintenance.

Preliminary Investigation: The objective of this step is to determine whether the request is valid and feasible before making any recommendation to improve or modify the existing system or build a new system.

Requirement Analysis: Once the decision is made by management on the recommendation of preliminary investigation, the second phase of SDLC start. The objective of this step is to collect and analyze all data and information with a view to understand customer requirement clearly and weeding (remove) inconsistencies and incompleteness in these requirement.

System Design: The goal of system design phase is to transform the requirement into a structure that is suitable for implementing in some programming language.

System Construction (Coding): The goal of this step is to translate the design of the system into code in a given programming language.

Testing: Before implementation, system must be tested. System testing is done to ensure that system does not fail while running actually and it should function as per requirement specification.

Implementation and Maintenance: After the system is found to be fit, it is implemented. Hardware is installed and users are then trained on new system and word on it is carried out independently. Once the system is implemented it should be maintained properly.

General Reasons of Failures to Achieve System Development Objectives:

1. Lack of senior management support and involvement in information system development.

2. Changing user’s needs, when user fails to specify exact requirement and his need constantly changes, it become very difficult to develop a system successfully.

3. Lack of user participation and interaction with system analyst during development.4. Inadequate testing of system before implementation.5. Inadequate user training before installation.6. Overworked or under-trained development staff.7. Sometimes use of new technologies by organization to attain competitive advantages

becomes difficult to use, due to lack of skilled manpower and cost.

System Development Methodology:

SDLC methodology is formalized, standardized well documented set of activities used to manage a system development project.Characteristics:

1. Divide the project into number of task and processes.2. Document every step and process and produced specific reports and other

documents during system development.3. Assure the participation of users, managers in the project. The people generally

provide approvals and system being developed.4. System must be tested thoroughly prior to implementation.5. A training plan is developed for those who will operate and use new system.6. A post implementation review of developed system must be performed.

Approaches to System Development:In order to make sure that systems are analyzed and designed efficiently and effectively, it is essential to adopt a suitable model. Following are the some approaches for system development:

Traditional Approach or Waterfall Model. Linear Framework Type Prototype Approach. Iterative Framework type Incremental Approach. Combination of Linear and iterative framework type Spiral Model. Combination of Linear and iterative framework type Agile Methodology. RAD (Rapid Application development) Approach. Iterative Framework Type

Traditional / Waterfall Approach: Traditional approach which is also known as waterfall model becomes popular in 1970s. This approach follows the phases of SDLC one by one. Classic traditional model of this approach states that the phases of SDLC should be organized in linear order i.e. output of one phase becomes the input of the next phase. The classic traditional model is an idealistic one since it assumes that no defect is introduced during any of the phases of life cycle. However, in actual software development, the defects are introduced in almost every phase of the life cycle. These defects usually get detected much later in the life cycle. Thus for all practical purpose, the classical traditional model was modified to incorporate feedback paths.In software development, though errors can get introduced in almost every phase of development, but it is preferable to detect and correct these errors in the phase in which they get introduced. But it is not always possible to detect these errors in the same phase thus provision of feedback should be there.

Weaknesses of Waterfall Model:

1. Project progresses forward, with only slight movement backward.2. Problems are often not discovered until system testing.3. Difficult respond to changes. Changes that occur later in the life cycle are more costly.4. Little room for use of iteration.5. Time frame will be more.6. System performance cannot be tested untill the system is almost fully coded.

The Prototyping Model: A prototype model suggests that before development of actual software a working prototype of the system should be built. A prototype is a toy implementation of the system which usually provides limited functionality, low capabilities and inefficient performance but it help to understand the exact requirements from system.

Strengths:

Prototype model helps to find the customers actual requirements. Useful for resolving unclear objectives. Helps to easily identify confusing or difficult functions and missing functionality. Prototype makes requirement more clear and more transparent. In general, it is difficult to develop a new type of product without going through many

revisions; and prototype approach helps to develop such products with lower cost and time requirement.

Prototype model can be viewed as series of following steps:1. Requirement gathering.2. Quick Design.3. Develop prototype.4. Customer evaluation.5. Refine Requirements as per customer evaluation.

Once user approves the prototype actual system development starts using traditional approach.

Preliminary investigation

System analysis

System design

System construction

System testing

Implementation and maintenance

FEEDBACK

Weaknesses:

Prototype model can be successful only if the system developers are ready for providing significant time to experiment and build prototype and get it checked from actual users again and again, until user approves the prototype.

To save development time developer do not thoroughly test and document the system because of time consumed in experimenting with prototype, which may cause inefficient and erroneous system development.

If end user is not satisfied with initial prototype, he may loose interest in the project. Prototype may not have sufficient checks and balance incorporated. Designers may prototype too quickly, without proper users need analysis, resulting in

an inflexible design that limits future system potential.

The Incremental Model: In this model the product is decomposed into number of components, each of which are designed and built separately. Each component is delivered to the client when it is complete. First the development team develops the core module of the system and then it is later modified to better meet the need of customer and delivery of additional features and functionality. System is developed in step by step manner.

Strengths: The feedbacks from early increments improve the later stages. Smaller sub projects are easier to control and manage. The project can be temporarily abandoned if more urgent work crops up. Smaller sub projects are easier to develop.

Weaknesses: Testing of modules result into overhead and increased cost. Some problems are difficult to divide into functional units (modules). Since some modules will be completed much earlier than others, well defined

interfaces are required.

Spiral Model: Spiral model is similar to incremental model but with more thrust on risk analysis and resolution. In this model, project development activities are represented as spiral. Each loop in the spiral acts as phase in the process. The risks are explicitly assessed in each spiral’s loops and risks are resolved throughout the spiral process.Spiral model is primarily used for complex and large projects.Example: In the first cycle there was shortage of developers to develop programs. Thus in next iteration enough developers will be appointed such that delay should not occur again to develop the programs.

Advantages:

This model is used as a risk reduction mechanism. After final iteration, all risks are resolved. It is risk driven model.

Disadvantages: Model is not suitable for small projects. Model requires expertise risk management skills. Complex.

Agile Methodology: This approach does not follow any predefined steps. This approach describe that software development is essentially a human activity and will always include variation in processes and inputs; therefore model should be flexible enough to handle the variations. Thus the Agile Methodology incorporates iteration and continuous feedback. As important, it focuses on empowering people to collaborate and make decisions together quickly and effectively. Agile software development focuses on keeping code simple, testing often, and delivering functional bits of the application as soon as they're ready. The goal of ASD is to build upon small client-approved parts as the project progresses, as opposed to delivering one large application at the end of the project.Characteristics

Includes iterative cycles. Include modular development process. Users or people oriented approach. Collaborative working approach.

Rapid Application Development (RAD): Rapid application development (RAD) refers to a type of software development methodology that uses minimal planning in favor of rapid prototyping. The lack of extensive pre-planning generally allows software to be written much faster. RAD (rapid application development) is a concept that products can be developed faster and of higher quality through:

Gathering requirements using workshops instead of interview. The re-use of software components. Less formality in reviews and other team communication. Aims to produce high quality systems quick, primarily through the use of iterative

prototyping, active user involvement, CASE (computer aided software engineering) tools, DBMS, Fourth generation programming languages, Code generators etc.

It includes JAD (Joint Application Development), a small team compromising developers and users empowered to make the decisions.

Advantages:

Using RAD model a product can be developed withing a very short time duration. As customer is involved at all stages of development it leads to product

achieving customer satisfaction. Feedback from customer is available at the initial stages. Quick initial reviews are possible. Because RAD produces system more quickly and to business focus, this

approach tends to produce systems at lower cost. Generally produces a dramatic savings in time, money and human effort.

Disadvantages:

More speed and lower cost may lead to lower overall system quality. If customer and developers are not committed to the activities to complete the

system in a much abbrivated time frame, RAD projects will fail. If the system cannot be properly modularized,building the components necessary

for RAD will be problematic. RAD my not be appropriate when technical risks are high.

System Development Life Cycle (SDLC): SDLC is a popular system development frmework which provides sequence of steps to developers for efficient system development. Each step of SDLC is known as phase and each phase uses results of previous phase. The SDLC is document driven framework which means at every steps of SDLC documentation is produced. A phase of the SDLC is not complete untill the appropriate documentation is produced.

Advantages:

Better planning and control by project manager. Documentation is an important measure of communication. Compliance to prescribed standards ensuring better quality.

Disadvantages:

The development team may find it cumbersome. The user may find that the end product is not visible for long time. It may not be suitable for small and medium sized projects.

SDLC is used in all the system development approaches.

PHASES OF SDLC:

Preliminary investigation. (PHASE 1): The purpose of this step is to evaluate the project request coming from users who need a change in the system or develop a new system. The analyst working on this step should accomplish following objectives.

1. Clarify & understand the project request.2. Determine the size of the project.3. Determine the technical and operational feasibility.4. Conduct cost benefit analysis: what is the estimated cost for developing a

particular system? Will the proposed system provide better service to customer?

5. Submit reports to management with recommendation outlining the acceptance or rejection of proposal.

Preliminary investigation. (PHASE 1):A. IDENTIFICATION OF PROBLEM B. IDENTIFICATION OF OBJECTIVE C.DELINEATION OF SCOPE D.Project Feasibility (Possibility Study) E. Cost Benefit Analysis

Conducting the investigation: Data can be collected by two primary methods: Reviewing internal documents: In this step analyst learn and find out how the

organization maintains the data presently. Conducting Interviews: In this step analyst ask user about various problems user

is facing in working.

Project Feasibility:

Technical feasibility: It is concerned with hardware and software. In this analyst evaluate whether proposed system is feasible with existing or expected computer hardware and software technology. Some of the technical issue raised are:

1. Capacity of existing hardware or software is enough.2. Expansion of the system in future.

Economic Feasibility: It includes comparison of cost of project with its benefits. Obviously a project should be taken if benefits exceed the cost.

Operational Feasibility: It includes how people are able to work with the system. Some issues raised:1. Support from managers and users.2. Are current business methods acceptable to users? If not users

may welcome a change.3. Involvement of user in planning and development of project?

Schedule Feasibility: Estimating how long it will take a new system to become operational.

Legal Feasibility: It is concerned with whether there will be any conflict between a newly proposed system and organizations legal obligations.

Cost Benefit Analysis (performed in economic feasibility)System cost can be divided into 3 categories:

Development Cost:1. Salaries of system analyst.2. Cost of testing the system.3. Cost of training of employees.Operational Cost:1. Hardware/ Software Cost.2. Maintenance cost (Like power, light, AC, Building rental and other facility charges.)Intangible Cost:They cannot be easily measured in terms of money. It includes gain / loss of employee morale, goodwill etc.

Benefits can be tangible or intangible: Increase in sales. Improved customer service through timely service. Improved employee morale. Better decision making. Decrease in operating cost.

Reporting Results to Management:In this analyst defines the problem and its scope, provide one or more solution and estimates cost and benefits. This report is submitted to management for approvals. The next phase for system development starts after the approval is given by management.

SYSTEM ANALYSIS OR REQUIREMENT ANALYSIS: (PHASE 2) If the management decides to continue developing the system after reading the analyst report, the requirement analysis phase of system development begins. During the requirement analysis phase the focus is on determining user needs, studying the application area in depth, assessing the strength and weaknesses of the present system.This is very important phase of software development, since any error in this phase would affect all subsequent phases of development.After analyst collects all information and removes all inconsistencies, he starts, to systematically organize the requirement into SRS (system requirement specification)

document. This SRS is submitted to user for approval and it becomes a reference document for further development.In this phase system analysis carried out following activities:

SYSTEM ANALYSIS OR REQUIREMENT ANALYSIS: (PHASE 2) A.Fact Finding Techniques B. Analysis of the Current System C. Analysis of Proposed System D. SYSTEM DEVELOPMENT TOOLS E. System Specification –(Preparing Management Report) F. Role of Different Persons during SDLC phases:

After completing all the above steps, all information gathered and analysis done there on is documented known as SRS document and submitted to a management for approval and approved document become the contract (reference) document for further development.

System Requirement Specification contains the following: Introduction: description about the system to be developed. Information Description: Input / Output. Functional Description: Process/ Database. Behavioral Description: Controls/ external Connectivity. Validation Criteria: Classes of test to be performed.

Fact Finding Techniques:

Collecting Documents: The analyst can collect information by studying the documents maintained by the company like manuals, input forms vouchers), output reports etc.

Questionnaires: Questionnaires are pre printed lists of questions distributed amongst users and managers of the system to be filled in. The questionnaires help in collecting large amount of data on problem with the existing system and requirement for new system.

Interviews: Users and managers are interviewed personally to extract information in depth. The data gathered through interviews provide system developer with clear picture of problems with existing system.

Onsite Observation: In the analyst personally visits the place of the works of users and managers and observes their working of the system and environment to get a clear picture of the users work. It plays an important role in analysis of system. The purpose of onsite observation is to get as close as possible to the “real” system being studied.

Analysis of the Current System:This step helps in analyzing the user’s present system which helps in analyzing the user requirement for the proposed system.The analysis covers the following areas:

History of organization: How organization has grown over the years, what type of system changes has taken place from time to time in organization and how adaptable is organization is for changes etc.

Inputs: In this analyst analyze the various inputs of organization in terms of their contents, format etc and how they are captured and entered for processing.

Data Files Maintained: In this analyst analyze the data files maintained by organization. This helps analyst to design an efficient database for proposed system.

Methods, procedures and data communication: Methods and procedures means business logics which transform input into outputs. To develop a correct and error free system a correct understanding of business logic is very important.

Outputs: In this analyst analyze what type of outputs generated and how they meet the organization needs.

Internal Controls: an examination of the present system of internal controls may indicate weaknesses that should be removed in the new system.

Model the existing physical system and logical system: After analyzing the existing system in terms of input, methods, datafiles, outputs, controls all these items are properly documented. This is done with the help of system flow charts and data flow diagrams. This step provides a blue print of existing system.

Undertake overall analysis of present system: In terms of present work load, various processes and personnel involved etc.

Analysis of Proposed System: After the analysis of present system, the proposed system analysis and specification starts. The proposed system analysis is done, using the data collected in the above steps.The requirement specified from the proposed system by users and weaknesses of present system are used to prepare the specification for proposed system in terms of

Outputs produced with great emphasis on timely managerial repots that utilize the management by exception principle.

Database to be maintained with desired capabilities like online working etc. Work load carefully considered for present system and future periods including peak

periods. Methods and procedures that shows relationship of inputs and outputs to the

database, utilizing data communications were deemed appropriate.

SYSTEM DEVELOPMENT TOOLS:

System development tools refer to a variety of graphical, statistical and software tools that help in designing a new system before the actual development begins.These tools can be grouped into 4 categories:

System components and Flow Tools: Systems flowcharts, Data Flow Diagrams, system Component Matrix etc are used to represent system component and flows.

User Interface: Such tools help in designing the interface between end users and computer systems, such as:Layout forms and screen are used to construct the content and format of input and output form. Dialogue Flow diagrams are used for describing the flow of dialogue between computers and users.

Data Attributes and Relationships: Database is very important part od a system. The database in the system are defined and designed by this category of tools. Example are Data Dictionary, Entity relationship Diagrams, File Layout Forms etc.

Detailed System Process: These tools help programmer to develop detailed procedures and processes.

Examples are Decision TREE and DECISION TABLE.

SYSTEM DEVELOPMENT TOOLS:

System Flowchart: System flowchart is the graphical representation of the flow of data in the system, and represents the work process of system. Different symbols connected by arrows are used to describe the sequence of information processing activities. System flowchart represents a graphical model of physical information system, present or proposed. Benefits:

System flowcharts are extensively used for communicating the overall structure and flow of system to users.

The flowchart act as a guide or blueprint during program development phase. Flowcharts serve as a good program documentation, which is needed for

various purposes.Limitations:

If alterations are required the flowchart may require re-drawing completely. Sometimes, the program logic is quite complicated. In that case, flowchart

becomes complex and clumsy.

DFD (Data Flow Diagram): Data flow diagram is a graphical representation of logical flow of data through a system. It helps in expressing system requirement in simple and understandable form. A DFD is composed of four elements:

Data Sources and destinations

Data source sends data and data destination receive data.

Data Flows Flow of data is represented by a line with arrow

Transformation Process Process transform data from inputs to outputs and represented by circles or bubbles

Data StoresStorage of data is represented by two horizontal lines.

Decision Tree A decision tree is a decision support tool that uses a tree-like graph or model of decisions and their possible consequences, including chance event outcomes, resource costs, and

utility. It is one way to display an algorithm. Decision trees are commonly used in operations research, specifically in decision analysis, to help identify a strategy most likely to reach a goal. If in practice decisions have to be taken online with no recall under incomplete knowledge, a decision tree should be paralleled by a probability model as a best choice model or online selection model algorithm. Another use of decision trees is as a descriptive means for calculating conditional probabilities.

Layout Forms and Screens: Layout forms and screens are used to design source documents, input / output and storage records, files and output displays and reports. 4GL packages, CASE tools and other software packages provide electronic version of layout forms. These are tools knows as report generators, form generator etc help to design data entry forms and output reports.

System component matrix: It shows information system as matrix of component that highlights basic activities of input, processing, output, storage and control. It represents different resources and their utility in Matrix form which is easy to understand and implement.

Activities Hardware Software Users DatabaseInput Bar code reader Data entry

programSales clerk Customer,

product database

Processing Computer processor

Program sales clerk Customer, inventory

Output Point of sales terminal

Report generator program

Computer operator, DBA

Same

Storage Hard disk DBMS DBAControls Point of sale

terminalPerformance monitoring, security program

Auditor Customer, Inventory.

Data Dictionary: A data dictionary contains Metadata i.e. data about data. A database system consult data dictionary before reading or modifying actual data. It is the most common powerful component of DBMS. A data dictionary contains the details of data like table names, field’s name etc.

Advantages: This file can be used for security purpose. It describes which program will store and use data. Data dictionary serves as an important aid when documenting internal control

procedures.

CASE tools: The data flow diagram and system flowcharts that users review are commonly generated by system developers using the on-screen drawing modules found in CASE (Computer Aided Software Engineering) software package. The software that helps the user to generate Data Flow Diagram and System Flowcharts. CASE helps in Automation of anything that system analyst perform in system development process.

Decision Table: Decision table is a table that is created before a flowchart, defining all the possible conditions that may be considered within the program and all appropriate action for each condition. A decision table is divided into four parts:

Condition Stub Action Stub Condition Entries. Action Entries.

System Specification – (Preparing Management Report):

After completing all the above steps, all information gathered and analysis done there on is documented known as SRS document and submitted to a management for approval and approved document become the contract (reference) document for further development.

System Requirement Specification contains the following: Introduction: description about the system to be developed. Information Description: Input / Output. Functional Description: Process/ Database. Behavioral Description: Controls/ external Connectivity. Validation Criteria: Classes of test to be performed.

Role of Different Persons during SDLC phases:Following are the key persons/ groups involved in a system development:

Steering Committee: Steering committee provides overall direction and is responsible for all costs and time schedule. Also it makes regular review of project development and takes corrective actions accordingly.

Project Manager: A project manager is normally responsible for more than one project and liaison with the client. He is responsible for delivery of the project within time and budget and periodically reviews the progress with the project leader and team members.

Project Leader: A project manager may be responsible for many projects at the same instance, and project leader is solely dedicated to particular project. He monitors day to day progress of the project.

Module Leader/ Team Leader: A project is divided into following modules and development responsibility for each module is assigned to module leader.

System Analyst/ Business Analyst: System analyst is a person responsible to understand user’s requirements and communicate that to programmer.

Programmer/ Coder/ Developer: Programmers writes programs and converts design into programs by coding using programming language. They also responsible for initial testing or debugging activities.

Database Administrator (DBA): This person is responsible for creating an efficient and secured database. He is also responsible to monitor the performance of database.

Quality Assurance: This team sets the standards for development of project and team check the compliance for standards from time to time.

Tester: Tester is junior level quality assurance person. Tester tests the program and modules and prepares test reports.

Domain Specialist: Whenever a project team develops a project in the field new to them, they take help of domain specialist. For example: it a team undertakes application development in insurance then they take the help of a person who has expert knowledge of insurance system working.

IS Auditor: IS auditor ensures that adequate controls are observed while developing and testing applications.

SYSTEM DESIGN (PHASE 3): After completion of requirement analysis for a system, system design activities take place. System design is considered one of the most important phase of SDLC because success of new system depends upon good system design. The design phase usually consists of following activities:

Architectural Design: This design deals with the organization of application in terms of hierarchy of modules and sub modules. At this stage we identify

Major modules. Function and scope of each module. Interlinking between modules. Data inputs, processing and output from modules.

The architectural design is made with the help of a tool called “Functional Decomposition” which can be used to represent hierarchies of modules. It has three elements:

Module Connection Couple (Data that move from one module to another)

The module is represented by box, connection between them by arrows and data that move from one module to another is represented by an arrow with circular trail.

Design of Data/ Information Flow:In this design, the linking or flow of inputs, processes and outputs are designed.

Designing System Outputs: output refers to any information in the form of report, document or message produced in printed or displayed form by an information system.Output Objectives:

Convey required information. Signal important events, problems, warning e.g. exception reports, error messages

etc. Trigger an action on receiving some request from users. Confirmation of an action to indicate completion of task.

System analyst should consider the following factors when designing user outputs:

Content: Content should be in appropriate volume. Too much or Too Less contents will make output undesirable.

Format: Format refers to the way the content is presented to user. Data can be presented in various forms to users like text, graphics, video etc.E.G. Various department managers often prefer both summary and detailed information to be presented in terms of chart form such Pie Chart, Bar chart etc.

Volumes: Amount of data is required at one time. This factor also helps in deciding the type of output device required to produce such volume.

Timeliness: Timeliness refers to when users needs outputs. Some output is required on regular basis- daily, monthly etc. Other output is generated on request.E.G. Sales Manager may be required a monthly report.Other user such as airline agents, require output within few seconds.

Media: Media refers to medium for output for example paper, display, CD, DVD etc.

Designing System Input:Input design means the activity of putting the data into the computer for processing. The following factors should be considered while designing any input:

Content: Content means the type of data required to be input into the system. It is very crucial aspect because the input captured will ultimately provide the desired output from the system.

Timeliness: If output is required in a specific time, input has to be provided in a timely manner.

Media: Choice of input device is an important factor for data input to system, like keyboard, touch screen, scanner etc.

Format: Format means the size and type of data fields selected for data input records; it is normally done with user friendly, easy to understand data entry form.

Input Volume: Input volume refers to the amount of data that has to be entered into the computer system at one time.

The main components of Input Design are Form Design normally known as data entry form.

Design of Database:Storing data is an important stage in the design of an information system. The system analyst and database administrator determines how the data will be stored and what methods will be used for their retrieval.In conventional approach, data used to store in a file system, normally in individual files. But these days database approach for storing data using DBMS is applied.Database approach gives lots of advantages over conventional file system approach in terms of security, concurrent access, data integrity etc. Following are the key activities performed in the database design:

Conceptual Modeling: In this step DBA design the database by creating E-R diagram i.e. entity relationship diagram which contains entities as tables of database with attributes (i.e. fields) and relationship between tables.

Data Modeling: In this step, the conceptual models are translated into data models by using DBMS i.e. actual tables and fields which can be accessed by programs or applications are created by designer.

Physical Layout Design: In this activity, designer decides how the database will be physically located at different locations. For Example: Computers in LAN or WAN.

Physical Design: In this design, all the functions and interfaces designs created above are converted into physical units or modules. These modules are finally programmed and linked together as per the designs to provide a working software or system in the next phase. This design should be created such that effective and efficient system should be available to the users and auditor should ensure that a structured approach by using CASE tool etc have be followed to create physical design.

Design of hardware and system software platform:Finally the hardware and system software platform is designed as per the requirement of new application.

System Manual:The output of system design phase is description of various tasks to be performed and all these tasks are documented in manual form and this manual is known as System Manual, and its contains following details:

General description of existing system, its flow and outputs. General description of new system, stating the purposes and functions of the new

system along with major differences from the existing system together with a brief justification for a change.

Flow of Proposed system: contains various flowcharts, DFD etc. Outputs of Proposed System: contains Reports format etc. Input Layouts: Contains Design of various data entry form. Macro logics giving a brief description of overall logic of the internal flows. Database structure. Communication System for data communication. Controls included. Glossary of terms used etc.

Phase 4 (System Acquisition):

At the end of the design stage the organization has a good idea about the type of hardware and software required for the system.

Procuring Computer Hardware: The following factors are important while selecting computer hardware:

1. Due to rapid development in computer technology whereas possible one should go for latest technology.

2. Select input/ output and storage devices that gives maximum efficiency like bar code reader, high speed hard disks etc.

3. Hardware purchased should be easily expandable, upgradeable in future for increasing processing requirement.

4. There should be good support from supplier both for operational as well as technical requirements.

Software Acquisition (Make or buy Decision): At this stage system developer should determine whether the application software should be created in house or buy the readymade package if available.Advantages and Disadvantages of Application Package:

1. Rapid Implementation: Being ready for use it is possible to implement and use these packages immediately without any wastage of time.

2. Quality: software development organizations which provide these packages use specialists in this field for the development of different application. These specialists have extensive experience hence can provide better software.

3. Cost: As the software vendors are selling the same software to several people the cost will generally be lower than a package developed in house.

However in the case of ready made packages there may be following drawbacks:1. Lack of flexibility: The package may not be as flexible as the organization

required.

2. Partly useful application: The package maybe useful in part only, and may not cover the entire requirement of organization.

3. Documentation: Absence of proper documentation may result in poor utilization/ understanding of the package.

Steps involved in selection of computer system: The selection of an appropriate computer system, both hardware and application package require a good expertise. The steps involved in selection of computer system are:

1. Prepare Design Specification.2. Select a group of vendors with whom orders may be placed.3. Prepare and distribute RFP (request for proposal containing design

specifications) to selected computer vendors.4. Ask vendors present their proposals with live demo etc.5. Conduct further analysis of their proposal.6. Contact present users of vendors to check the performance of their system.7. Conduct equipment benchmark tests.8. Select the equipments.

Vendors Proposal Validations:Evaluation and ranking of proposals submitted by vendors is based on the following considerations:1. Performance Capability, Benefits V/s Cost of each proposal: Operating

efficiency of each system (Like processing speed, number of users supported etc) must be examined using a benchmark test.

2. Maintainability or adaptability: With the changing dynamics of business, it is essential that offered system should be flexible to meet the changing requirement. E.G. It should be able to alter a portion of payroll system to reflect new tax laws.

3. Vendor Support: Vendors offers various types of support services like training, maintenance, help in implementation and testing etc.

Methods of validating Proposals: There are various methods for validations of vendor’s proposal to check whether the submitted proposals are as per asked specifications or not. Following are some of the common methods for validating vendor’s proposals.

1. Checklists Method: In this method a list is prepared for required specification from system in terms of hardware, software and support services etc and all the proposals are checked against these list of specification and accordingly a decision can be taken for selection of vendorExample:

Description Vendor1 Vendor2 Vendor3Hardware Check List:

CPU type CPU Speed RAM Hard Disk

P 42.2 GHz256 MB80 GB

P 42.8256160

P 42.425680

Software Check List Language used Controls Included

COBOL

Moderate

JAVA

HIGH

C++

LOW

Support Services Check List

Past Performance Training Support

Good

Provided

Moderate

Provided

Excellent

Provided

In this way, organization prepare a detailed check list from the details provided in vendor proposal and select the proposal, meeting the requirement as per cost v/s offered parameters.

2. Point Scoring Method:

In this method every evaluation criteria is given certain point weight age and marks are allocated to each vendor for these criteria as per the submitted details in their proposals.Example:

S No. Evaluation Criteria

Possible Points

Vendor 1 Vendor 2 Vendor 3

1 Software meet all mandatory requirements

10 8 9 8

2 Software Flexibility

10 5 8 9

3 Controls Applied

10 8 9 7

4 Performance 10 8 8 85 User

Friendliness10 8 8 8

Total 50 37 42 40

3. Public Evaluation Reports: Information about products may be gathered from sources as:

Published information in newspapers, computer magazines etc. Internet. Other Users of similar products.

4. Bench Marking Test: In this approach a job mix of possible transactions to be executed on required system is prepared and same is used on the vendor system and then various performance parameter are checked like processing speed, response time, number of users supported simultaneously etc.Bench marking test is not a simple procedure this require an expert technical knowledge and help of various specialized testing software.

Phase 5 (Software Development: Programming Techniques and Languages): The objective of software development is to convert designs into a fully functional system. In the software development activity, various application programs are written, tested and documented.

Characteristics of good coded programs: A good coded or written program normally has the following characteristics:

1. Reliability: Program code should be reliable i.e. it should work consistently over a period of time.

2. Robustness: It should take into account all the possible inputs and accordingly there should be validations built in the program.

3. Accuracy: Provide should provide accurate outputs.4. Efficient: Program should work efficiently i.e. with high performance.5. Usability: Program should be user friendly.6. Readability: Program should be easy to maintain or upgrade.

Program Coding Standards:These standards guide programmer for writing an efficient, robust and maintainable program. Program coding standards are set of rules that the programmer has to follow strictly. Program coding standards help in the following:

1. Provide simplicity.2. Provide efficient utilization of storage.3. Least processing time.

Programming Language:Software includes statements or instructions written in some programming languages. These set of instructions or programs code is also known as source program which is converted to object program with the help of compiler.There are different types of programming languages are as follows:

1. High level Programming language such as COBOL, C.2. Object Oriented Language such as JAVA, C++.3. Scripting Language such as JAVA SCRIPT, VB SCRIPT.4. Expert System Language like PROLOG.

Choice of Programming Language:The following are the important criteria for selecting the language for program code:

1. Type of application (web application, accounting application).2. Environment (client/ server, local application)3. Skills available with staff.

Program Debugging:Debugging is the most primitive form of testing activity which refers to correcting programming language syntax and diagnostic errors so that program compiles cleanly. A clean compile means that the program can be successfully converted from source code written by the programmer into machine language instructions. Debugging consists of following four steps:

1. Input source program to the compiler.2. Letting the compiler find errors in the program.3. Correcting lines of code that are erroneous.4. Resubmitting the corrected source program as input to compiler.

Test the Program:In this step, a thorough testing of object program is done with the test data to find out any run time errors, which could not be detected by compiler. Now days there are various testing software in market which help in efficient testing of programs.

Program Documentation:The writing of narrative procedure and instruction for people who will use software is done throughout the program life cycle. Managers and users should carefully review documentation in order to ensure that the software and system behave as the documentation indicates. If they do not, documentation should be revised. Documentation should be prepared in such a way that the user can clearly understand the instructions.

Program Maintenance: The requirements of business data processing applications are subject to continual change. This calls for modification of various programs. There are, usually separate categories of programmers called maintenance programmers who are entrusted with this task.

Phase 6 (Testing): Testing is a process used to identify the correctness, completeness, and quality of developed computer software. Testing is used to find out the errors rather than to tell the exact nature of the errors. Testing helps to verify that developed software or product would be working as it is intended to be working.

Software Testing Fundamentals:

Testing Objectives: following are the key objectives of software testing:1. Testing is a process of executing a program with an intension to find error.2. The main objective of software testing is to find a yet undiscovered error.3. A successful test is one that uncovers a yet undiscovered error.

Testing should systematically uncover different classes of errors in a minimum amount of time and a minimum amount of effort.

Levels of testing:

Unit Testing: In unit testing individual components are tested to ensure that they operate correctly. It only tests the functionality of the units themselves. Therefore it will not catch integration errors. Unit is the piece of code; usually it is referred to as the smallest piece of code whose further sub-division is not possible.

Benefits: The goal of unit testing is to test each part of program and show that the individual parts are correct. It provides various benefits:

The size of a single module is small enough that we can locate an error fairly easily. Documents the code of each unit on side by side. Encourage programmers to make changes to the code if the code is not working properly,

which if not corrected, then at later stages can make it difficult to do after integration with other programs.

There are five categories of tests that a programmer typically performs on a program unit:1. Functional Test: Functional tests checks whether programs do what they

supposed to do or not. This test involves only observation of the output for certain

input values, and there is no attempt to analyze the code, which produces the output.

2. Performance Test: Performance is generally assessed in terms of response time and throughput rates under different processing and configuration conditions.

3. Stress Tests: The purpose of stress testing is to find defects in the system capacity of handling large numbers of transactions during peak periods. For example, we know during CBSE results declarations the NIC server on which results are posted some time get crashes due to heavy traffic. The stress level at which NIC server can operate is overloaded at the time of results declaration, and results in a crash.

4. Structural Tests: Structural tests are concerned with examining the internal processing logic of software.

5. Parallel Tests: Parallel testing is testing a new version of software together with processing of its previous version to ensure that the new version of application performs correctly.

Types of unit testing: 1. Static Analysis Testing:

Desk check: This is done by the programmer himself. He checks for logical syntax errors.

Structured Walk-through: The application developers lead other programmers through the text of the program and explanation.

Code inspection: The program is reviewed by a formal committee. Review is done with formal checklists.

2. Dynamic Analysis Testing: Black Box Testing: Black box testing refers to testing, which involves only

observation of the output for certain input values, and there is no attempt to analyze the code, which produces the output. The internal structure of the program is ignored. For this reason it is known as black box testing (also called behavioral and functional testing) in which the content of the black box is not known and function of the black box is understood completely in terms of its input and outputs.

White Box Testing: White box testing is used when tester has access to the internal data structure and algorithm, as well as access to code that implement these algorithm. White box testing approach is considered very detailed testing approach and this approach provides testing internal structure of programs.

Inputs Outputs

No need to test internal structure

Grey Box Testing: It is a software testing technique that uses a combination of black box testing and white box testing.

Integration Testing: In this testing, functionalities which link one unit with another are tested. After creating many different units, the developer integrates them. The developers then have to test that multiple unit are working fine after integration or not. This testing includes the following:o Bottom up Integration: It is easy to implement. It consists of unit testing, followed by

sub-system testing, and then testing of the entire system.o Top down Integration: In top-down integration testing, the highest-level modules are

tested first and progressively lower-level modules are tested after that.o Regression Testing: When we make changes in some part of existing software,

sometimes this may introduce problems in other parts of software. To test all parts of program work without error we use the regression testing technique. Regression testing ensures that changes have not introduced new errors i.e. the older programs still works with new changes.

System Testing: System testing is nothing but testing the whole application which was integrated all the modules. When the testing is done by the testing team, then the application has to be tested in their real environment .That is called “system testing". This covers the functionality of entire project or system. The system testing may include the following tests:

o Recovery Testing: This is to check that system developed is able to recover from any crashes, hardware failure etc. Recovery of system is supported by backup of data and components.

o Security Testing: This testing is done to check whether implemented security features are able to protect data and information.

o Stress or Volume Testing: It is the testing of the system when the maximum numbers of users are simultaneously active and when the database contains the greatest data volume. Stress testing may be performed to test system performance during peak hours.

o Performance Testing: This testing is used to test System performance in terms of response time and throughput rates under different processing and configuration conditions.

Final Acceptance Testing: Final acceptance testing is conducted when the system is just ready for use. During this testing, it is ensured that the new system satisfies the user’s requirements.Final testing has two major parts

1. Quality Assurance Testing: It ensures that the development process is as per the organization quality assurance methodology.

2. User Acceptance Testing: The user performs the acceptance testing at his place to ensure whether the software is acceptable to him or not. There are two types of user acceptance testing:

o Alpha testing: This is the first stage, often performed by the users within the organization.

o Beta Testing: This is the second stage, generally performed by the external users. This is the last stage of testing, and normally involves sending the product outside the development environment for real world exposure.

Phase 7 (Implementation):

Implementation phase is less creative than system design. It is mainly concerned with user training, site selection and file conversion etc. Implementation ensures that information system is properly operational and allows its users to take over its operation for use and evaluation. The system implemented can be totally new system or a major modification to existing system.The system implementation consists of the following activities:

Equipment Installation: The hardware required to support the new system is selected prior to the implementation phase. The following steps are involved in Equipment installation:

o Site Preparation: In this step , layout is prepared regarding where the equipment etc will installed in terms of their place (location), users sitting arrangement, wiring arrangement, air conditioned setting etc.Site preparation is very important step of implementation; a poorly designed site can drastically reduce productivity of users.One must find out an approximate location with conductive operating environment for the equipment i.e. right temperature, humidity and dust control specification.Complete the site preparation prior to the delivery of the equipment, as vendors deliver equipment only on a neat layout than in a place under construction.

o Install Equipment: The equipment must be physically installed by the manufacturer, connected to power source and wired to communication lines etc.

o Equipment checkout: Installed equipments are checked for proper working like turn on/ off, booting of computers and communication channels working etc. and also various routine test and diagnostic routine are carried out for testing the equipments installed.

Training: A system can be succeeded or fail depending on the way it is operated and used. Therefore, the quality of training received by the personnel involved with the system in various capacities helps or hinders the successful implementation of information system.

o Whenever a new system is installed in the organization, a need of training arises for both general users and computer professionals as the new system often contains some new types of hardware and software.

Conversion and start-up from Manual to Computerized System: This involves the activities carried out for successful conversion from old system to new system. Following activities are carried out for conversion from old to new system:

o Procedure Conversion: Every system has its own procedure for input data preparation, output generation, controls etc. Therefore for implementation of new system the procedure, method for working on new system must be clearly defined and converted from old procedure and methods to as per the requirement of new system.

o File Conversion: The old data files should be converted to as per the requirement of new system and these conversions should be done before system

is implemented. Data file conversion is one of the most important tasks and it should be done with utmost care.

o System Conversion: After data files are converted from old to new system and system components are properly in place, users in organization should start working on new system. If required for some time old system may be continuous for verification purpose. But once every thing is ok users can start using new system completely.

o Scheduling Personnel and Equipment: Schedule should set up for both equipments and personnel for data processing activities so the required outputs are available always at time.

Conversion Strategies or Conversion Modes: Following are the strategies or modes for conversion from old to new system:

o Direct Conversion: In this method, on a given date the old system is totally discontinued and the new system is put into use. It is comparatively a risky way of conversion because if errors are there in the new system then a lot of delay and losses can be there. The advantages of this method is that no duplication of work and efforts and low cost, use of only efficient new system. However, the disadvantages are Errors that may result in long delay; User can not compare the result of new system with old.

o Parallel Conversion: This is most useable conversion strategy. In this method the old system and the new system both are used for some time in parallel. The results of both the systems are compared and after satisfaction; the use of old system is stopped and new system is used only.Advantages:Recover from any processing error immediately.User can compare the result of new system with old.

Disadvantages:Duplications of work and efforts.High costs, difficulty in running two systems.

o Phased Conversion: In this approach each part of the system is developed, refined, implemented and then the next one and so on until the entire system is implemented. The advantage of this method is that each part is thoroughly tested before being used, but it has the disadvantage that the linking up between different modules has to be carried out several times to ensure that it works as a system, which is a difficult task.

o Pilot Conversion: This approach is utilized when the same system is to install at several places e.g. banks etc. The conversion of one installation is completed and then next one is implemented.Advantages:Problems detected in the initial installation can be avoided in subsequent installations.

Disadvantages:Each site has its own peculiarities; therefore successful conversion of one site may not work with other.

Post implement Evaluation: Evaluation is also one of the very important step as it provide the information about how successful is system in satisfying user needs and it also provide the information on drawbacks / problems encountered in system development.Evaluation covers the following:

o Development Evaluation: This evaluation is done to check whether system developed is on schedule and with in the budget. If system is not developed on a schedule and within budget, and then what were the possible reasons for delay and over cost etc. are identified and noted as evaluation remarks.

o Operation Evaluation: It is very essential that developed system should be easy to operate and should work as per user requirements. This evaluation includes:

1. Whether the transaction are processed on time and accurately.2. Is system easy to work?3. Are reports available on time?4. Is there sufficient storage capacity etc?

o Information Evaluation: This is most difficult evaluation. This evaluation is related to find out the value of information that developed system is providing to user or to find out how the information provided by system is changing the quality of decision making of users.

Phase (8) System Maintenance: System maintenance refers to the necessary changes to the information system as required from time to time. It may involve:

1. Adding new data elements.2. Modifying reports.3. Adding new reports.4. Changing calculations etc.

Maintenance can be of following types:

o Schedule Maintenance: Schedule maintenance is planned maintenance i.e. changes/ modifications which are planned in advance. This type of maintenance is also known as preventive maintenance like running every morning anti virus, the implementation of new inventory coding scheme can be planned in advance if number of items are increasing.

o Rescue Maintenance: Rescue maintenance refers to errors/ situations which were not anticipated but which has arisen now and require immediate solution like breakdown of a system due to hard disk crash, an undetected bug or run time error and so on.

o Corrective Maintenance: Corrective maintenance deals with fixing bugs in the code or defects found.

o Adaptive Maintenance: Refers to change in the system as per the changes in the environment.

o Perfective Maintenance: This maintenance deals with accommodating to new or changed user requirements that helps to increase the performance of system.

o Preventive Maintenance: In this maintenance, time to time system components and functionalities are reviewed and needed changes are done to maintain system in good working conditions.

A Proper system operation require proper maintenance of system and system staff should continuously plan and implement the require changes to provide the system in optimum manner.

Unit 2: SDLCQuestion Bank

As a system analyst, you need to assess the successful implementation and stakeholders actual requirements of an enterprise system in a retail chain organization across its branches to provide the following features:1. Lower operational costs,2. Better information for managers, and3. Smooth operations for users or better levels of service to customers.Justify your answer with necessary techniques used to determine the requirements of a system.

An organization is in the stage of system development to implement an enterprise wide information system, where the following conditions exist:1. End users are not aware of the information needs.2. The new system is mission critical and there is a hasty need.3. The business risks associated in implementing the wrong system are high.Read the above case carefully and answer the following with proper justifications:

1. Identify system development approach and the steps to be followed in the above stated conditions.2. State the reasons for choosing the particular approach for system development.3. Identify the risks, when end users are involved in the system development process.

Discuss the system development approach whose components are time boxing, incremental prototyping and clean rooms.

Describe briefly four categories of the major tools that are used for system development. Explain with example in each category.

If you are the Project manager of a software company with the responsibility for developing a break through product, combining state of art hardware and software, will you opt for prototyping as a process model for a product meant for the intensely competitive entertainment market?

A company is offering a wide range of products and services to its customers. It relies heavily on its existing information system to provide up to date information. The company wishes to enhance its existing system. You being an information system auditor, suggest how the investigation of the present system should be conducted so that it can be further improved upon.

The top management of a company has decided to develop a computer information system for its operations. Is it essential to conduct the feasibility study of system before implementing it? If answer is yes, state the reasons. Also discuss three different angles through which the feasibility study of the system is to be conducted.

Write Short notes on the following:

1. Guidelines for input form design.2. Factors for validation of vendor’s proposal.3. Point-Scoring Analysis.4. Advantages of Application Packages.

Various software packages serve as aids in analysis of program logic. Explain briefly.

Describe any five functional areas of a system which needs to be analyzed by system analyst for detailed investigation of the present system.

Bring out the reasons s to why the organizations fail to achieve their Systems Development Objectives?

At the end of Analysis phase, the System Analyst Prepare a Document. Write the Contents of that document.

Following are involved in SDLC. Discuss their Roles:

1. Project Manager.2. System Analyst.3. DBA.4. IS Auditor.

How would you use Data Dictionary as a tool for File security and audit Trails?

From the perspective of IS audit, what are the advantages of System Development Life Cycle?

ABC Technologies Ltd. Is in the development of application software for various domains. For the development purposes, the company is committed to follow the best practices suggested by SDLC. SDLC provides the guidelines to follow a sequence of activities. It consists of a set of steps and phases in which each phase of the SDLC uses the results of the previous one. The SDLC is document driven which means that at crucial stages during the process, documentation is produced. A phase of the SDLC is not complete until the appropriate documentation is produced. These are sometimes referred to as deliverables.A deliverable may be a substantial written document, a system test plan or even a physical object such as a new piece of technology that has been ordered and delivered. This feature of the SDLC is critical to the successful management of an IS project.Read the above carefully and answer the following:

There are various advantages by following SDLC, but there are some shortcomings also. Briefly explain those shortcomings.

Feasibility study is a key activity in the SDLC. What are the issues which are typically considered in feasibility study?