Chapter 1: System Development Concept
The term system is derived from Greek Word “Systema”, which means to “place together” i.e. system is an organized relationship among functioning of all units.
- A system may be defined as orderly grouping of interdependent components linked together according to a plan to achieve a specific goal.
- Arrangement of entities or things that work together to achieve one or more common goals.
- A system can be also defined as a combination of people, device, process, and method interrelated in working towards a common goal. EG: business organization, school, college, water supply, electrical distribution, banking etc
Systems may be made up of other smaller systems, which are called as subsystems. Subsystems in turn are made up of other subsystems. For e.g.: computer system is made up of number of subsystems, which is input, storage, processing and output subsystem.
System has three basic components:
- Input – input elements like raw materials, energy, data
- Processing –converting input in to output; e.g.: manufacturing process, mathematical calculation, logical analysis
- Output – transforming to the ultimate outcome; manufactured product
System Structure Components
- Goal Setting – Set the ultimate goal what the system is supposed to do
- System Boundary- components that define the scope of organization. It can be changed during the system design
- System environment – Anything outside the system boundary
- Subsystem- A system can be made up of any number of subsystems.
- Feedback- idea of monitoring the current output; goal can be adjust as feedback
- Monitoring – checks if a system is producing its desired goal
An information system is a computer based system which is an integrated set of different components for collection, process, storage and transmission of interpreted data.
Data is raw facts and figures that are set of isolated, unrelated and un-interpreted. Data can be collected from various sources obtained through interview, online observation, counting, measuring, weighing, sampling etc. Data is processed or transformed into information for further prediction and decision making.
Information is the processed data. It is a set of organized, validated, corrected and collected data. Information is meaningful to take an action.
Information System is interrelated components working together to collect data, process it, gives output and store using the resources of hardware, software, people, procedure and controlling mechanism.
- Accepts data as Input
- Generate Information processing the raw input
- Provides the information to the user as Output
Information system is an arrangement of people, data, processes, information presentation and information technology that interacts to support and improve day to day operations in a business as well as support the problem solving and decision making needs of management and users.
Types of Information System
- Transaction processing system (TPS): it is basic business system, which serves the basic elementary day-to-day activities of an organization. it processes data resulting from business transactions, updates operational database such as sales and inventory processing and accounting systems.
- Management information system (MIS): It is the system or process that provides the information necessary to manage the organization effectively. it is the integrated modern approach of management, information and computerized system. It provides information to support the operations, management, decision making functions of an organization.
- Decision support system (DSS): It is the information system at the organization’s senior level management that combines data and sophisticated analytical models or data analysis tools to support semi-structures and unstructured decision makings.
- Executive support system (ESS): it is also known as executive information system (EIS). It operates on the executive level of management. It provides critical information from many sources customized to the information needs of executives.
The Systems Analysis is the process of totally understanding the current systems by collecting the facts, diagnosing the problems, and using the facts to improve the current system.
Systems Analysis is done by the Systems Analyst.
System analyst is a people who is involved in analyzing, designing, implementing and evaluating computer based information to support the decision making and operation of an organization.
A System Analyst is the person who is responsible for the analysis, design and implementation of the information system to the computer. A system analyst can be described as the person who will solve the business problem using computer technology so we need someone who is excellent at problem solving, who knows about business operation and who has a strong background in relevant areas of computer science.
In some companies, this person might be called a business analyst, business systems analyst, system analyst or a requirement analyst.
ROLE OF A SYSTEMS ANALYST
The success of an information system development is based on the role of Systems analyst. Some important roles are:
The analyst may be viewed as an agent of change. A candidate system is designed to introduce change and reorientation in how the user organization handles information or makes decisions. Then, it is important that the user accepts change. For user acceptance, analysts prefer user participations during design and implementation. Analyst carefully plans, monitors and implements change into the user domain because people inherently resist changes.
Investigator and Monitor:
A systems analyst may investigate the existing system to find the reasons for its failure. The role of an investigator is to extract the problems from existing systems and create information structures that uncover previously unknown trends that may have a direct impact on organization. The role of a Monitor is to undertake and successfully complete a project. In this role, analysts must monitor programs in relation to time, cost and quality.
The analyst’s role as an architect is liaison between the user’s logical design requirements and the detailed physical system design. As architect the analyst also creates a detailed physical design of candidate systems. A systems analyst makes the design of information system architecture on the basis of end user requirements. This design becomes the blue print for the programmers.
Psychologist: In system development, systems are built around people. The analyst plays the role of psychologist in the way s/he reaches people, interprets their thoughts, assesses their behavior and draws conclusions from these interactions. Psychologist plays a major role during the phase of fact finding.
System acceptance is achieved through user participation in its development, effective user training and proper motivation to use the system.
In implementing a candidate system, the analyst tries to appease all parties involved. Diplomacy in dealing with people can improve acceptance of the system. The analyst’s goal is to have the support of all the users. S/he represents their thinking and tries to achieve their goals through computerization.
RESPONSIBILITIES OF SYSTEMS ANALYSTS
The responsibility of a systems analyst is to coordinate the efforts of all groups to effectively develop and operate computer based information systems. The responsibilities of a systems analyst are following:
• Defining Requirements:
The most important and difficult duty of an analyst is to understand the user’s requirements. Several fact-finding techniques are used like interview, questionnaire, and observation, etc.
• Prioritizing Requirements by Consensus (Agreement):
There is a need to set priority among the requirements of various users. This can be achieved by having a common meeting with all the users and arriving at a consensus. This duty of systems analyst requires good interpersonal relations and diplomacy. S/he must be able to convince all the users about the priority of requirements.
• Analysis and Evaluation: A systems analyst analyses the working of the current information system in the organization and finds out the extent to which they meet user’s needs. On the basis of facts and opinions, systems analyst finds the best characteristics of the new or modified system which will meet the user’s stated information needs.
• Solving Problems:
Systems analyst is basically a problem solver. An analyst must study the problem in depth and suggest alternate solutions to management. Problem solving approach usually incorporates the following general steps:
- Identify the problem
- Analyze and understand the problem
- Identify alternative solutions and select the best solution.
• Drawing up Functional Specifications:
The key duty of systems analyst is to obtain the functional specifications of the system to be designed. The specification must be non-technical so that users and managers understand it. The specification must be precise and detailed so that it can be used by system implementers.
• Designing Systems:
Once the specifications are accepted, the analyst designs the system. The design must be understandable to the system implementer. The design must be modular to accommodate changes easily. An analyst must know the latest design tools to assist implementer in his task. An Analyst must also create a system test plan.
• Evaluating Systems:
An analyst must critically evaluate a system after it has been in use for a reasonable period of time. The time, at which evaluation is to be done, how it is to be done and how user’s comments are to be gathered and used must be decided by the analyst.
Characteristics/ Qualities / Attributes of a System Analyst
Computer systems analysts are IT professionals who analyze and assess technology needs for individuals and companies.
Equipped with an understanding of both business and technology, these professionals analyze computer systems and procedures of an organization and make necessary changes to increase productivity, minimize costs, and achieve other business goals.
- Knowledge of Organization/ Business
A Systems Analyst’ primary task is to solve business problems, thus he/she should know the business functions performed by the organization. Some of these are:
-Strategies, plans, traditions, and values of the organization
-Organization management techniques
-Functional work processes
- Technical Knowledge
A Systems Analyst should have technical knowledge and skills in both tools and techniques. When we say technical knowledge and skills in tools, he/she should be acquainted or has knowledge with computers / peripheral devices (hardware) ,communication networks and connectivity, database and database management systems (DBMS), programming languages (for example, VB.NET or Java), operating systems and utilities, software productivity packages, integrated development environments (IDEs) for programming languages, and CASE tools, testing, documentation support, reverse engineering, configuration management. On the other hand, when we say technical knowledge and skills in techniques, he/she should be acquainted or has knowledge with project planning, systems analysis, systems design, database design, network design, construction, implementation, and systems support.
- Interpersonal Communication Skill
Systems analysts need to understand how people think learn, react to change, communicate, and work (in a variety of jobs and levels).The system analyst is the medium through, which communication should flow smoothly. Interpersonal and communication skills are crucial in obtaining information, motivating people, getting cooperation, understanding the complexity and workings of an organization in order to provide necessary support.
- Problem solving Skill
Computer systems analysts should be able to identify complex problems and explore related information so as to implement solutions. They should coordinate team efforts, manage costs and accounts, overcome setbacks, and correct certain mistakes that could possibly lead to downfall. They should capable of the
- Defining the problem
- Analyzing the problem
- Considering may alternatives
- Evaluating many alternatives
- Choosing the best alternatives
- System analysis and Design Skills
The system analyst must have enough skills regarding analyzing and designing tools and technologies. They should be able to adopt newly emerge system, principles, tools and techniques.
System Development Life Cycle (SDLC)
- SDLC is the acronym of Software Development Life Cycle. It is also called as System Development Process.
- System Development is the creation of new system or modification of old system.
- System Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality software.
- It involves number of stages starting from Systems Study to Systems implementation and maintenance.
- SDLC is a framework defining tasks performed at each step in the software development process.
- A phase in sequence can only commence (begin) on the previous phase has been completed.
- SDLC, in fact, is a sequence of events carried out by Systems Analysts, Systems Designers, and users to develop and implement an Information System.
- SDLC is also known as classic cycle model or linear sequential model or waterfall model.
Importance and necessity of SDLC
The SDLC aims to produce high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
- It’s a well defined set of principles and combined methodologies for delivering software projects.
- There is a regular communication between the involved people.
- SDLC possesses easy identification of missing requirements because of linear steps and well set documentation.
- Flexibility of adding new features in ongoing projects even if it’s in the testing phase.
- Progress of the system is measureable.
System Development Model
There is various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as “Software Development Process Models”.
- Waterfall Model
- Iterative Model
- Spiral Model
- Big Bang Model
- Waterfall model is the oldest and most straightforward of the structured SDLC methodologies. There are strict phases and each phase needs to be completed first before going to the next phase. There is no going back.
- It is a model of SDLC compared with the natural waterfall on the cliff of a steep mountain where water cannot turn back. Similar way, in this model we can’t turn back to the analysis phase until we take the client feedback.
- Each phase relies on information from the previous stage and has its own project plan.
- Waterfall is easy to understand and simple to manage. However, it is usually prone to delays as each phase needs to be reviewed and fully signed off before the next phase can begin.
- Also, since there is little room for revisions once a stage is completed, problems can’t be fixed until you get to the maintenance stage.
- This model works best when all requirements are known and flexibility is not required and the project has a fixed timeline.
The fundamental processes of waterfall model are as follows:
- Requirements analysis and definition: it is the first stage of waterfall model. In this stage, the developer should identify the actual requirements of the given problem.
- System design: in this stage the systems design process partition the requirements to either hardware or software systems.
- Implementation and unit system: On receiving system design documents, the work is divided in modules/units and actual coding is started. The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality; this is referred to as Unit Testing. Unit testing mainly verifies if the modules/units meet their specifications.
- Integration & System Testing: As specified above, the system is first divided in units which are developed and tested for their functionalities. These units are integrated into a complete system during Integration phase and tested to check if all modules/units coordinate between each other and the system as a whole behaves as per the specifications. After successfully testing the software, it is delivered to the customer.
- Operation and maintenance: in this stage, the system is installed to the desire location. The maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the system’s service as new requirements are discovered.
Advantages of Waterfall Model
- It has departmental and managerial control.
- Clear project objectives, strict order, without any overlapping or iterative steps.
- Stable project requirements.
- Progress of system is measurable.
- Strict sign-off requirements.
Disadvantages of Waterfall Model
- Time consuming
- Never backward (Traditional)
- Little room for iteration
- Difficulty responding to changes
(prototype – preliminary version of system)
- It is the iterative process of system development which is more appropriate for developing new system where there is no clear idea of requirements, inputs and outputs.
- With the Iterative (prototyping) model, software is built in small chunks, each time adding more functionality.
- Unlike the waterfall model which requires fully specified requirements before starting the implementation, with the Iterative model, you implement a small set of software requirements, then test, evaluate and refine the requirements.
- With every iteration, new requirements are added and a new version of the software is produced. This process is repeated until the application is fully developed and all requirements implemented.
- One advantage of Iterative model over the other SDLC methodologies is that we get a working version of the application early in the process and so it less expensive to implement changes.
The fundamental processes of Prototype model are as follows:
- Identify the user needs: the system analyst interviews the user to obtain an idea of what is required from the system.
- Quick design: system analyst create a quick design on the basis of client information
- Develop a prototype: the system analyst, working uses one or more prototyping tools to develop a prototype and implement it.
- Determine if prototype is acceptable: the analyst educates the user in prototype use and provides an opportunity from becoming familiar with the system.
- Refining prototype: the prototype becomes the operational system. Again create new prototype and evaluate the customer feedback. This process run until the client requirement is address.
- Finalize: if customer is satisfied, system is finally implemented.
Advantages of Prototype model
1. Strong Dialogue between users and developers
2. Missing functionality can be identified easily
3. Confusing or difficult functions can be identified
4. Requirements validation, Quick implementation of, incomplete, but functional, application
5. May generate specifications for a production application
6. Environment to resolve unclear objectives
7. Encourages innovation and flexible designs
Disadvantages of Prototype model
1. Contract may be awarded without rigorous evaluation of Prototype
2. Identifying non-functional elements difficult to document
3. Incomplete application may cause application not to be used as the
full system was designed
4. Incomplete or inadequate problem analysis
5. Client may be unknowledgeable
6. Approval process and requirement is not strict
7. Requirements may frequently change significantly
- In this model, process is represented as a spiral rather than as a sequence of activities with backtracking.
- This is a combining process of the prototyping model and the waterfall model.
- One of the most flexible SDLC methodologies, the Spiral model takes ideas from the Iterative model and its repetition but also combined with the structured and systematic development of the waterfall model with a heavy emphasis on risk analysis.
- The project passes through four phases (identification, design, build, evaluation and risk analysis) over and over in a “spiral” until completed, allowing for multiple rounds of refinement.
- It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral.
- This model allows for the building of a highly customized product, and user feedback can be incorporated from early on in the project. But the risk you run is creating a never-ending spiral for a project that goes on and on.
The fundamental processes of Spiral model are as follows:
Planning Phase: analysis, determine objectives, alternatives and constraints
Risk Analysis: evaluation, evaluates alternatives, identify and resolve risks
Engineering Phase: development, develop, verify, next-level product
Evaluation phase: planning, plan next phases
Advantages of Spiral Model
1. Avoidance of Risk is enhanced.
2. Strong approval and documentation control.
3. Implementation has priority over functionality.
4. Additional Functionality can be added at a later date.
Disadvantages of Spiral Model
1. Highly customized limiting re-usability
2. Applied differently for each application
3. Risk of not meeting budget or schedule
4. Possibility to end up implemented as the Waterfall framework