Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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.
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.
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.
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.
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.
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.
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
(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).
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
Vendors include:
- General and small computer manufacturers
- Peripheral equipment manufacturers
- Computer dealers and distributors
- Leasing companies
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
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.
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.
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.