Sei sulla pagina 1di 14

A System means an organized relationship among functioning units or components.

It is an orderly
grouping of interdependent components linked together according to a plan to achieve a specific
objective. The elements of the system are as under:

(1) Outputs and Inputs : A major objective of a system is to produce an output that has value to
its user. Whatever the nature of the output, it must be in line with the expectations of the
intended user. Inputs are the elements that enter the system for processing and output is the
outcome of the processing.

(2) Processors: The processor is the element of the system that involves the actual
transformation of input into output. It is the operational component of a system. Processors
modify the input totally or partially.

(3) Control: The control element guides the system. It is the decision-making subsystem that
controls the pattern of activities governing input, processing and output.

(4) Feedback: Control in a dynamic system is achieved by feedback. Feedback measures output
against a standard in some form that includes communication and control. Feedback may be
positive or negative, routine or informational.

(5) Environment: It is the source of external elements that impinge on the system. It
determines how a system must function.

(6) Boundaries and Interfaces: A system should be defined by its boundaries- the limits that
identify its components, processes and interrelationships when it interfaces with another
system.

The characteristics of a system are as under :


(1) Organization: It implies structure and order. It is the arrangement of components that helps
to achieve objectives.
(2) Interaction: It refers to the manner in which each component functions with other
component of the system. In an organization, for example, purchasing must interact with
production, advertising with sales, etc.
(3) Interdependence: It means that parts of the organization or computer system depend on
one another. They are coordinated and linked together according to a plan. One subsystem
depends on the input of another subsystem for proper functioning.
(4) Integration: It refers to the completeness of systems. It is concerned with how a system is
tied together. It is more than sharing a physical part or location. It means that parts of a
system work together within the system even though each part performs a unique function.
(5) Central Objective: Objectives may be real or stated. Although a stated objective may be the
real objective, it is not uncommon for an organization to state one objective and operate to
achieve another.

SYSTEM DEVELOPMENT METHODOLOGIES


A software development methodology or system development methodology in software
engineering is a framework that is used to structure, plan, and control the process of developing an
information system.

A wide variety of such frameworks have evolved over the years, each with its own recognized
strengths and weaknesses. One system development methodology is not necessarily suitable for use
by all projects. Each of the available methodologies is best suited to specific kinds of projects, based
on various technical, organizational, project and team considerations.
CMS has considered each of the major prescribed methodologies in context with CMS’ business,
applications, organization, and technical environments. As a result, CMS requires the use of any of
the following linear and iterative methodologies for CMS systems development, as appropriate.

WATERFALL (A.K.A. TRADITIONAL) METHODOLOGY


The waterfall model is a popular version of the systems development life cycle model for software
engineering. Often considered the classic approach to the systems development life cycle, the
waterfall model describes a development method that is rigid and linear. Waterfall development has
distinct goals for each phase of development where each phase is completed for the next one is
started and there is no turning back.

The perceived advantages of the waterfall process are that it allows for departmentalization and
managerial control. A schedule is typically set with deadlines for each stage of development and a
product can proceed through the development process. In theory, this process leads to the project
being delivered on time because each phase has been planned in detail.

In practice, waterfall development often falls short of expectations as it does not embrace the
inevitable changes and revisions that become necessary with most projects. Once an application is
in the testing stage, it is very difficult to go back and change something that was not thought of in
the concept stage. Alternatives to the waterfall model include joint application development (JAD),
rapid application development (RAD), sync and stabilize, build and fix, and the spiral model.
BASIC PRINCIPLES:
1. Emphasis is on planning, time schedules, target dates, budgets and implementation of an
entire system at one time.
2. Tight control is maintained over the life of the project through the use of extensive written
documentation, as well as through formal reviews and approval/signoff by the user and
information technology management occurring at the end of most phases before beginning
the next phase.

STRENGTHS:
1. Ideal for supporting less experienced project teams and project managers, or project teams
whose composition fluctuates.
2. Progress of system development is measurable.
3. Conserves resources.

WEAKNESSES:
1. Problems are often not discovered until system testing.
2. System performance cannot be tested until the system is almost fully coded, and under
capacity may be difficult to correct.
3. Difficult to respond to changes. Changes that occur later in the life cycle are more costly and
are thus discouraged.
4. Produces excessive documentation and keeping it updated as the project progresses is time-
consuming.
SITUATIONS WHERE MOST APPROPRIATE:
1. Project is large, expensive, and complicated.
2. Project has clear objectives and solution.
3. Project requirements are stable or unchanging during the system development life cycle.
4. Team composition is unstable and expected to fluctuate.
SITUATIONS WHERE LEAST APPROPRIATE:
1. Real-time systems.
2. Event-driven systems.
3. Leading-edge applications.
SPIRAL METHODOLOGY
The Spiral Lifecycle Model is a sophisticated lifecycle model that focuses on early identification and
reduction of project risks. A spiral project starts on a small scale, explores risks, makes a plan to
handle the risks, and then decides whether to take the next step of the project - to do the next
iteration of the spiral. It derives its rapid development benefit not from an increase in project speed,
but from continuously reducing the projects risk level - which has an effect on the time required to
deliver it. Success at using the Spiral Lifecycle Model depends on conscientious, attentive, and
knowledgeable management .It can be used on most kinds of projects, and its risk-reduction focus is
always beneficial.

The spiral methodology extends the waterfall model by introducing prototyping. It is generally
chosen over the waterfall approach for large, expensive, and complicated projects.

BASIC PRINCIPLES:
Focus is on risk assessment and on minimizing project risk by breaking a project into smaller
segments and providing more ease-of-change during the development process, as well as providing
the opportunity to evaluate risks and weigh consideration of project continuation throughout the
life cycle.

STRENGTHS:
Can incorporate Waterfall, Prototyping, and Incremental methodologies as special cases in the
framework, and provide guidance as to which combination of these models best fits a given
software iteration, based upon the type of project risk.
For example, a project with low risk of not meeting user requirements, but high risk of missing
budget or schedule targets would essentially follow a linear Waterfall approach for a given software
iteration. Conversely, if the risk factors were reversed, the Spiral methodology could yield an
iterative Prototyping approach.

Useful in helping to select the best methodology to follow for development of a given software
iteration, based on project risk.

WEAKNESSES:
1. Challenging to determine the exact composition of development methodologies to use for
each iteration around the Spiral.
2. There are no firm deadlines. Cycles continue with no clear termination condition, s there is
an inherent risk of not meeting budget or schedule.

SITUATIONS WHERE MOST APPROPRIATE:


1. Real-time or safety-critical systems.
2. Risk avoidance is a high priority.
3. A high degree of accuracy is essential.
4. Project manager is highly skilled and experienced.

SITUATIONS WHERE LEAST APPROPRIATE:


1. Risk avoidance is a low priority.
2. A high degree of accuracy is not essential.
3. Functionality has priority over implementation.
4. Minimizing resource consumption is an absolute priority.

AGILE SOFTWARE DEVELOPMENT METHODOLOGY


Agile software development is a conceptual framework for undertaking software engineering
projects. There are a number of agile software development methodologies e.g. Crystal Methods,
Dynamic Systems Development Model (DSDM), and Scrum.

Agile came about as a “solution” to the disadvantages of the waterfall methodology. Instead of a
sequential design process, the agile methodology follows an incremental approach.

Developers start off with a simplistic project design, and then begin to work on small modules. The
work on these modules is done in weekly or monthly sprints, and at the end of each sprint, project
priorities are evaluated and tests are run. These sprints allow for bugs to be discovered, and
customer feedback to be incorporated into the design before the next sprint is run.

The process, with its lack of initial design and steps, is often criticized for its collaborative nature
that focuses on principles rather than process.
BASIC PRINCIPLES:
1. Active user involvement is imperative
2. The team must be empowered to make decisions.
3. Requirements evolve but the timescale is fixed.
4. Capture requirements at a high level; lightweight & visual.
5. Develop small, incremental releases and iterate.

STRENGTHS:
1. The Agile methodology allows for changes to be made after the initial planning. Re-writes to
the program, as the client decides to make changes, are expected.
2. Because the Agile methodology allows you to make changes, it’s easier to add features that
will keep you up to date with the latest developments in your industry.
3. At the end of each sprint, project priorities are evaluated. This allows clients to add their
feedback so that they ultimately get the product they desire.

WEAKNESSES:
1. With a less successful project manager, the project can become a series of code sprints. If this
happens, the project is likely to come in late and over budget.
2. As the initial project doesn’t have a definitive plan, the final product can be grossly different
than what was initially intended.

RAPID APPLICATION DEVELOPMENT (RAD) METHODOLOGY


“Rapid-development language” is a general term that refers to any programming language that
offers speedier implementation than do traditional third-generation languages such as C/C++,
Pascal, or FORTRAN. Rapid-Development Languages (RDLs) produce their savings by reducing the
amount of construction needed to build a product.
Although the savings are realized during construction, the ability to shorten the construction cycle
has project wide implications: shorter construction cycles make incremental lifecycles such as
Evolutionary Prototyping practical. Because RDLs often lack first-rate performance, constrain
flexibility, and are limited to specific kinds of problems, they are usually better suited to the
development of in-house business software and limited-distribution custom software than systems
software.

There are commercial products that include requirements gathering tools, prototyping tools,
software development environments such as those for the Java platform, groupware for
communication among development members, and testing tools. RAD usually embraces object-
oriented programming methodology, which inherently fosters software re-use. The most popular
object-oriented programming languages, C++ and Java, are offered in visual programming packages
often described as providing rapid application development.

BASIC PRINCIPLES:
1. Key objective is for fast development and delivery of a high quality system at a relatively low
investment cost.
2. Attempts to reduce inherent project risk by breaking a project into smaller segments
providing more ease-of-change during the development process.
3. Active user involvement is imperative.
4. Standard systems analysis and design techniques can be fitted into this framework.

STRENGTHS:
1. The operational version of an application is available much earlier than with Waterfall,
Incremental, or Spiral frameworks.
2. Concentrates on essential system elements from user viewpoint.
3. Provides the ability to rapidly change system design as demanded by users.
4. Produces a tighter fit between user requirements and system specifications.

WEAKNESSES:
1. More speed and lower cost may lead to lower overall system quality.
2. Potential for designed system to lack scalability.
3. Difficulty with module reuse for future systems.
4. Tendency for difficult problems to be pushed to the future to demonstrate early success to
management.

SITUATIONS WHERE MOST APPROPRIATE:


1. Project is of small-to-medium scale and of short duration (no more than 6 man-years of
development effort).
2. Functionality of the system is clearly visible at the user interface.
3. Users possess detailed knowledge of the application area.
4. Developers are skilled in the use of advanced tools.
5. Development team is empowered to make design decisions on a day-to-day basis w the need
for consultation with their superiors, and decisions can be made by a small number of
people who are available and preferably co-located.

SITUATIONS WHERE LEAST APPROPRIATE:


1. Very large, infrastructure projects; particularly large, distributed information systems such
as corporate-wide databases.
2. Real-time or safety-critical systems.
3. Project scope is broad and the business objectives are obscure.
4. Technical requirements (e.g., response times, throughput, database sizes, etc.) are tight for
the equipment that is to be used.
5. When user resource and/or commitment is lacking.

An effective System Development Life Cycle (SDLC) should result in a high quality system that
meets customer expectations, reaches completion within time and cost evaluations, and works
effectively and efficiently in the current and planned Information Technology infrastructure.
System Development Life Cycle (SDLC) is a conceptual model which includes policies and
procedures for developing or altering systems throughout their life cycles.

SDLC is used by analysts to develop an information system. SDLC includes the following activities

 requirements
 design
 implementation
 testing
 deployment
 operations
 maintenance

PhasesofSDLC
Systems Development Life Cycle is a systematic approach which explicitly breaks down the work
into phases that are required to implement either new or modified Information System.
Feasibility Study or Planning
 Define the problem and scope of existing system.
 Overview the new system and determine its objectives.
 Confirm project feasibility and produce the project Schedule.
 During this phase, threats, constraints, integration and security of system are also
considered.
 A feasibility report for the entire project is created at the end of this phase.

Analysis and Specification


 Gather, analyze, and validate the information.
 Define the requirements and prototypes for new system.
 Evaluate the alternatives and prioritize the requirements.
 Examine the information needs of end-user and enhances the system goal.
 A Software Requirement Specification (SRS) document, which specifies the software,
hardware, functional, and network requirements of the system is prepared at the end of
this phase.

System Design
 Includes the design of application, network, databases, user interfaces, and system
interfaces.
 Transform the SRS document into logical structure, which contains detailed and complete
set of specifications that can be implemented in a programming language.
 Create a contingency, training, maintenance, and operation plan.
 Review the proposed design. Ensure that the final design must meet the requirements
stated in SRS document.
 Finally, prepare a design document which will be used during next phases.

Implementation
 Implement the design into source code through coding.
 Combine all the modules together into training environment that detects errors and defects.
 A test report which contains errors is prepared through test plan that includes test related
tasks such as test case generation, testing criteria, and resource allocation for testing.
 Integrate the information system into its environment and install the new system.

Maintenance/Support
 Include all the activities such as phone support or physical on-site support for users that is
required once the system is installing.
 Implement the changes that software might undergo over a period of time, or implement
any new requirements after the software is deployed at the customer location.
 It also includes handling the residual errors and resolve any issues that may exist in the
system even after the testing phase.
 Maintenance and support may be needed for a longer time for large systems and for a short
time for smaller systems.
LifeCycleofSystemAnalysisandDesign
The following diagram shows the complete life cycle of the system during analysis and design
phase.

Prototyping Process Model.

The prototyping model begins with the requirements gathering. The developer and the
customer meet and define the objectives for the software, identify the needs, etc. A ‘quick design’ is
then created. This design focuses on those aspects of the software that will be visible to the
customer. It then leads to the construction of a prototype. The prototype is then checked by the
customer and any modifications or changes that are required are made to the prototype. Looping
takes place in this process and better versions of the prototype are created. These are continuously
shown to the user so that any new changes can be updated in the prototype. This process continues
till the user is satisfied with the system. Once a user is satisfied, the prototype is converted to the
actual system with all considerations for quality and security.
The prototype is considered as the ‘first system’. It is advantageous because both the
customers and the developers get a feel of the actual system. But there are certain problems with
the prototyping model too.
Iteration – 1 Iteration – 2 Iteration - n

Determine Determine Determine


Requirements Requirements Requirements

Analyze Analyze Analyze


alternatives alternatives alternatives

Specify Design Specify Design Specify Design

Implements Implements Implements


Design Design Design

User view User view User view

(1) The prototype is usually created without taking into consideration overall software
quality.

(2) When the customer sees a working model in the form of a prototype, and then is told that
the actual software is not created, the customer can get irritated.

(3) Since the prototype is to be created quickly, the developer will use whatever choices he
has at that particular time (eg, he may not know a good programming language, but later
may learn. He then cannot change the whole system for the new programming language).

Thus the prototype may be created with less-than-ideal choices.

System Implementation
System implementation has the following steps:
1. Hardware acquisition
2. Software acquisition
3. Hiring and training
4. Site preparation
5. Data preparation
6. Installation
7. Testing
8. Startup
9. User acceptance

Hardware acquisition: System implementation may require purchasing learning computer


resources from one/more IS’s vendors. An IS vendor offers hardware, software, telecommunication
system, database, personnel to operate the system etc.

Vendors include:
- General and small computer manufacturers
- Peripheral equipment manufacturers
- Computer dealers and distributors
- Leasing companies

Software acquisition: software can be acquired in 3 ways


- It can be purchased from external developers or developed in house
- It can leased externally developed software with tower casts, less risk, better package and
case of installation
- To make or develop software internally. This is done by the chief programmer teams.

Personal hiring and training: Depending upon the site of the number of IS personnel may have to
be hired and trained. System managers systems analysts, programme operators etc. effective
training will help them to use the new system to perform their jobs effectively

Site preparation: It refers to the process of preparing actual location of the system. For a small
system, it is simply to make a room for a computer. For a large system is not easy. Because it
requires
- Special wiring and air conditioning
- Special floor with cables to connect various systems
- Security system to protect the equipment
- Power circuits

Data preparation: Data preparation is the process of converting all the manual data files into
electronic data form. This data should be placed in a permanent storage device like magnetic disks.

Installation: It is the process of physically placing the computer equipment of the site and make it
operational after the system is installed. The manufacturer performs several tests to ensure that
the equipment is operating as it should.

Testing: Testing is vital to the success of the system. Testing is done at different stages during the
implementation phase. System testing provides logical assumptions that if all the parts of the
system are correct. Then system goals can be achieved successfully

Startup: After positive feedback of testing, The operations of proposed system will going to execute.

User Acceptance: The user can operate the system in an efficient and effective manner, and will
observe the activities which are going and data should be gathered, stored and maintained

What is Feasibility & types of Feasibility


Feasibility is the determination of whether or not a project is worth doing. The process
followed in making this determination is called feasibility study. A feasibility study is carried out to
select the best system that meets performance requirements. When conducting feasibility study, an
analyst can consider 7 types of feasibility:

Technical Feasibility: It is concerned with specifying the equipment and the computer system that
will satisfy and support the proposed user requirements. Here we need to consider the
configuration of the system which tells the analyst how many work stations are required, how the
units are interconnected so that they can operate and communicate smoothly.
Operation Feasibility: It is related to human organizational aspects. The points to be considered
here are – what changes will be brought with the system?, what new skills will be required?, do the
existing staff members have these skills and can they be trained?

Economic Feasibility: It is the most frequently used technique for evaluating a proposed system. It
is also called Cost/Benefit Analysis. It is used to determine the benefits and savings that are
expected from the proposed system and compare them with the costs. If benefits are more than the
cost, the proposed system is given an OK.

Social Feasibility: It is a determination of whether the proposed system will be acceptable to the
people or not. It finds out the probability of the project being accepted by the group of people who
are directly affected by the changed system.

Management Feasibility: It is a determination of whether the proposed system is acceptable to the


management of the organization. The project may be rejected, if the management does not accept
the proposed system.

Legal Feasibility: It is a determination of whether the proposed project is under legal obligation of
known Acts, Statutes, etc.

Time Feasibility: It is a determination of whether the project will be completed within a specified
time period. If the project takes too much time, it is likely to be rejected.

Testing
Testing is vital to the success of the system. Testing is done at different stages during the
implementation phase. System testing provides logical assumptions that if all the parts of the
system are correct. Then system goals can be achieved successfully. Testing is the most time
consuming, but an essential activity of a software project.

The main purpose of this phase is to find the errors and correct them. A successful test is one which
finds an error. The system is tested with special test data and the results are examined for their
validity.

Process of Testing:
There are many steps that must be performed during testing process.
1) Preparation of the test Plan: A test plan is the first step of Testing. A test plan is a general
document for the project which contains the following:-
a) Identification and specification of test unit.
b) Software features to be tested.
c) Techniques used for testing.
d) Preparation of test data.
e) Schedule of each testing unit.
f) Identification of persons responsible for each activity.

2) Specification of test cases: Specification of the test cases is the next major step of testing
process. In this process test data is prepared for testing each and every criterion of a test unit
along with the specifications of conditions and expected output.
3) Execution and Analysis of Test Cases: All the test cases are executed and analyzed by the
analyst to see whether the system is giving expected output for all the conditions.

4) Special Test: Special tests are needed to be performed to check the response time, storage
capacity, memory requirement, Peak Load performance, security features and recovery
procedures of the system.

Testing Activities: During system testing, the following activities must be tested.
Output: The system is tested to see whether it provides the described outputs correctly and
efficiently.
Response Time: A system is expected to response quickly during data entry, modifications and
query processes. The system should be tested to find the response time for various operations.
Storage: A system is tested to determine the capacity of the system to store data on the hard disk or
other external storage device.
Memory: During execution of the system, the programs require sufficient memory. The system is
tested to determine the memory required for running various programs.
Peak Load Processing: The system must also be tested to determine whether it can handle more
than one activity simultaneously during peak of its processing demand.
Security: The system must ensure the security of data and information. Therefore, the system is
tested to check whether all the security measures are provided in the system or not.
Recovery: Sometimes due to certain technical or operational problems data may also he lost or
damaged. The system must be tested to ensure that an efficient recovery procedure is available in
the system to avoid disasters.

Types of Testing: Testing can be of following types


Unit testing: Unit testing or program testing, consists of testing each program separately in the
system. While it is widely believed that the purpose of such testing is to guarantee that programs
are error free.
System Testing: System testing tests the functioning of the information system as a whole. It tries
to determine performance time, capacity for file storage and handling peak loads, recovery and
restart capabilities and manual procedures.
Acceptance Testing: It provides the final certification that the system is ready to be used in a
production setting. System tests are evaluated by users and reviewed by management. When all
parties are satisfied that the new system meets their standards, the systems is formally accepted for
installation
Integration Testing: Testing the interfaces between related modules of a system is known as
integration testing. After development phase, all modules are tested to check whether they are
properly integrated or not.
Verification Testing: Running the system under a simulated environment using simulated data in
order to find.

Drawbacks of Testing
There are following drawbacks of testing: -
 Testing is an expensive method for identification and removal for fault in the system.
 Testing is the most time consuming activity of software development process.

Potrebbero piacerti anche