Introduction to Software Engineering
Introduction to Software Engineering
Systems are created to solve problems. One can think of the systems approach as an organized
way of dealing with a problem. In this dynamic world, the subject System Analysis and Design (SAD),
mainly deals with the software development activities.
A collection of components that work together to realize some objectives forms a system. Basically
there are three major components in every system, namely input, processing and output.
In a system the different components are connected with each other and they are interdependent. For
example, human body represents a complete natural system. We are also bound by many national
systems such as political system, economic system, educational system and so forth. The objective of the
system demands that some output is produced as a result of processing the suitable inputs. A well-
designed system also includes an additional element referred to as ‗control‘ that provides a feedback to
achieve desired objectives of the system.
System
The word ‗system‘ means different things to different people. This is because it has broad range of concept
and field. It is better to understand General System Concept and then apply to ‗Business System‘ and
‗Information System
Defn - A system is an integrated collection of components which satisfy functions necessary to achieve the
system goals and which have relationship to one another that give cohesion to the system and define its
structure.
Eg. We are familiar with the systems like Educational System, Computer System, Solar System,
Accounting System, Production System . We find some common characteristic for this system.
1) Basic Components
Basic Components are simply the various identifiable parts of a system. Like
Education - students, teachers, building, administration , text books
Computer - Keyboard, display unit, ALU, programs
Defence - Men, equipment, buildings rules
Accounting- Records, rules, procedures, equipment, personnel
1
Subsystem
When system is large, it is composed of many subsystem. Each subsystem is then made up of smaller
subsystem. This are basic components. This components act at lowest level . These components are
interrelated and they have certain independence. They have certain relationship with them.
Eg. Student—teacher—text books—administration
But they have their own characteristics and these affect the operation of the system.
Basic components interact with each other. There must be activity processing procedure between the
elements of a system. Set of simply collected things cannot be system. Hence a system has to be dynamic
in nature. Interaction between them creates relationship. And this relationship among components define
the boundary between the system and its environment are called its structure.
3) Goal
There is common objective , purpose of every system. Otherwise a system starts moving in all direction
and no co-ordination. To achieve goal all components integrate and work effective together. Hence system
must work as a ‗whole‘. This integrating effect is known as ‗Synergistic Effect‘ .
4) Behaviour
Behaviour is the way a system reacts to its environment . it is determined by procedures or instructions
which achieve goals. The reaction to the system is behaviour.
5) Life cycle.
Every system has birth, life and death. The life cycle includes evaluation, replacement, repair, etc.
Characteristics of system
Our definition of a system suggests some characteristics that are present in all system like
1) Organisation
2) Interaction
3) Interdependence
4) Integration
5) Central objective
So every system has model and the model is composed of system elements
Types of Systems
System have been classified in different ways.
People, material, machines and other physical things. They can display activity or behaviour,
Management Information System, Computer System, Business Organization are physical system.
3) Deterministic
This system operates in a predictable manner where stepwise execution and output is known. E.g. A
computer program for finding factorial of number.
4) Probabilistic System
This system operates in an unpredictable manner where outcome is not certain or sure. A degree of
error is always present. E.g. Whether forecasting.
5) Open
A open system is one that interacts with its environment. Business organization is an open system. It
need to be supervised by people. It does not provide its own control or modification. E.g. printing and
paper
Important characteristics of open system-
1. Input from outside
2. Entropy
3. Process, output and cycles.
4. Differentiation
5. Equifinality
6) Closed
Closed system is self contained. It does not exchange material, information with its environment. A
computer system is a closed system that has only controlled and well defined input and output. There
is no disturbance from outside.
3
7) Natural and Artificial System
Solar system, water supply and human system are natural system and business organization,
computer system, social system are artificial system.
8) Man-made system.
It is artificial system. Motor car system is man made system
Software engineering
Software engineering is the field of computer science that deals with the building of software systems,
which are large and complex. A single person does not build these systems; a team or several teams of
software engineers build these. The software systems are used for many years, and during their lifetime,
4
these systems undergo several changes—addition of new functionalities, modifications to run in a new
environment. Thus, these systems exist in multiple versions.
To develop a software system, initially, the user needs and constraints are identified. The software system
is designed in accordance with the requirements of the end users. Finally, the system is thoroughly tested
and implemented. Every software system is supported by documents such as the principles of operation,
user's manual, installation instructions, training aids and maintenance guidelines
Software is more than just a program code. A program is an executable code, which serves some
computational purpose. Software is considered to be collection of executable programming code,
associated libraries and documentations. Software, when made for a specific requirement is
called software product.
Engineering is all about developing products, using well-defined, scientific principles and methods.
Software engineering is an engineering branch associated with development of software product using
well-defined scientific principles, methods and procedures. The outcome of software engineering is an
efficient and reliable software product.
IEEE defines software engineering as:
The application of a systematic, disciplined, quantifiable approach to the development, operation and
maintenance of software; that is, the application of engineering to software.
Fritz Bauer, a German computer scientist, defines software engineering as:
Software engineering is the establishment and use of sound engineering principles in order to obtain
economically software that is reliable and work efficiently on real machines.
1. Education
Software Engineer: A software engineer has formal training and a degree in engineering.
6
Programmer: A programmer often has a bachelor‘s degree in computer science, but some
employers will hire an individual with an associate‘s degree and relevant experience.
2. Responsibilities
Software Engineer: The ―software architect.‖ A software engineer evaluates client/company needs
alongside user needs to conceptualize a software system with the necessary requirements. They
are responsible for testing and maintaining the system.
Programmer: The ―software contractor.‖ A programmer translates the software engineer‘s
instructions into lines of code the computer can understand and follow. They are responsible for
identifying and fixing bugs in the system.
3. Role in the development lifecycle
Software Engineer: A software engineer oversees the entire development life cycle, from initial
design to maintenance.
Programmer: A programmer is involved with one stage of the development life cycle.
4. Developmental approach
Software Engineer: A software engineer leverages the scientific method and engineering best
practices to come up with solutions. They are analytical, consider the entire system and are
concerned with its stability and interdependency.
Programmer: A programmer develops one component at a time. They consider individual
programs and are concerned with each one‘s functionality and visual appearance.
5. Skills
Software Engineer: A software engineer has extensive knowledge of advanced mathematics and
a strong background in programming.
Programmer: A programmer should be fluent in a few programming languages, as well as have
the ability to read and write algorithms.
6. Work dynamic
Software Engineer: A software engineer typically works as part of a team of engineers.
Programmer: A programmer typically works independently, but receives direction from software
engineers.
7
The steps are as follows-
Preliminary system study is the first stage of system development life cycle. This is a brief investigation
of the system under consideration and gives a clear picture of what actually the physical system is? In
practice, the initial system study involves the preparation of a ‗System Proposal‘ which lists the Problem
Definition, Objectives of the Study, Terms of reference for Study, Constraints, Expected benefits of the new
system, etc. in the light of the user requirements. The system proposal is prepared by the System Analyst
(who studies the system) and places it before the user management. The management may accept the
proposal and the cycle proceeds to the next stage. The management may also reject the proposal or
request some modifications in the proposal.
One must know what the problem is before it can be solved. First recognize of the need for improving an
information system or procedure. Do the initial investigation to determine whether an alternate system can
solve the problem. There may be inefficient/not capable/incompetent existing procedures. If the problem is
more serious, management looks for analyst. There is importance to commitment of analyst. In some
cases, according to norms/rules analyst must have to prepare statements specifying the scope and
objectives of the problem.
Changes may be through environment or firm. E.g. from government sources , like reporting procedures,
format and content of various reports, file structure, customer complaints, delivery orders, schedule. There
may be need of changes from management, the user or the analyst because of advancement in computer
technology.
Eg. Bank branches , organisation acquires another organisation, more budget spended, audit report
Also user originated ideas like slow system.
2. Feasibility Study
Next phase is to examine the feasibility of the system. The feasibility study is basically the test of the
proposed system in the light of its workability, meeting user‘s requirements, effective use of resources and
of course, the cost effectiveness. These are categorized as technical, operational, economic and schedule
feasibility. The main goal of feasibility study is not to solve the problem but to achieve the scope. In the
process of feasibility study, the cost and benefits are estimated with greater accuracy to find the Return on
Investment (ROI). This also defines the resources needed to complete the detailed investigation. The result
is a feasibility report submitted to the management. This may be accepted or accepted with modifications
or rejected. The system cycle proceeds only if the management accepts it.
Depending on the results of the initial investigation, expansion to a more detailed
feasibility/possibility study. It focuses on question like
8
Each of this questions must be answered carefully. They revolve around investigation and
evaluation of the problem, identification and description of candidate system, specification of performance
and the cost of each system and final selection of the best system.
The objective of feasibility study is not to solve the problem but to acquire a sense of its scope. During the
study, the problem definition are sort out and problem included system are determined. Cost and benefits
are estimated. The result of feasibility study is the summary of what is known and what is going to be done
i.e. statement of the problem, summary of findings and recommendation /advice., details of findings and
recommendation and conclusion.
After the proposal is reviewed by management, it becomes a formal agreement that pave the way for
actual design and implementation.
All the data and the findings must be documented in the form of detailed data flow diagrams (DFDs), data
dictionary, logical data structures and miniature specification. The main points to be discussed in this stage
are:
Specification of what the new system is to accomplish based on the user requirements.
Functional hierarchy showing the functions to be performed by the new system and their
relationship with each other.
Functional network, which are similar to function hierarchy but they highlight the functions which are
common to more than one procedure.
List of attributes of the entities – these are the data items which need to be held about each entity
(record)
4. Design
Based on the user requirements and the detailed analysis of the existing system, the new system must
be designed. This is the phase of system designing. It is the most crucial phase in the developments of a
system. The logical system design arrived at as a result of systems analysis is converted into physical
system design. Normally, the design proceeds in two stages:
Preliminary or General Design
Structured or Detailed Design
In the preliminary or general design, the features of the new system are specified. The costs of
implementing these features and the benefits to be derived are estimated. If the project is still considered
to be feasible, we move to the detailed design stage.
In the detailed design stage, computer oriented work begins in earnest. At this stage, the design of the
system becomes more structured. Structure design is a blue print of a computer system solution to a given
problem having the same components and inter-relationships among the same components as the original
problem. Input, output, databases, forms, codification schemes and processing specifications are drawn up
in detail. In the design stage, the programming language and the hardware and software platform in which
the new system will run are also decided. There are several tools and techniques used for describing the
system design of the system. These tools and techniques are
Flowchart
Data flow diagram (DFD)
Data dictionary
Structured English
Decision table
Decision tree
9
The system design involves:
Defining precisely the required system output
Determining the data requirement for producing the output
Determining the medium and format of files and databases
Devising processing methods and use of software to produce output
Determine the methods of data capture and data input
Designing Input forms
Designing Codification Schemes
Detailed manual procedures
Documenting the Design
5. Coding
The system design needs to be implemented to make it a workable system. This demands the coding
of design into computer understandable language, i.e., programming language. This is also called the
programming phase in which the programmer converts the program specifications into computer
instructions, which we refer to as programs. It is an important stage where the defined procedures are
transformed into control specifications by the help of a computer language. The programs coordinate the
data movements and control the entire process in a system.
It is generally felt that the programs must be modular in nature. This helps in fast development,
maintenance and future changes, if required.
6. Testing
Before actually implementing the new system into operation, a test run of the system is done for
removing the bugs, if any. It is an important phase of a successful system. After codifying the whole
programs of the system, a test plan should be developed and run on a given set of test data. The output of
the test run should match the expected results. Sometimes, system testing is considered a part of
implementation process.
Using the test data following test run are carried out:
Program test
System test
Program test: When the programs have been coded, compiled and brought to working conditions, they
must be individually tested with the prepared test data. Any undesirable happening must be noted and
debugged (error corrections)
System Test: After carrying out the program test for each of the programs of the system and errors
removed, then system test is done. At this stage the test is done on actual data. The complete system is
executed on the actual data. At each stage of the execution, the results or output of the system is
analysed. During the result analysis, it may be found that the outputs are not matching the expected output
of the system. In such case, the errors in the particular programs are identified and are fixed and further
tested for the expected output. When it is ensured that the system is running error-free, the users are
called with their own actual data so that the system could be shown running as per their requirements.
7. Implementation
After having the user acceptance of the new system developed, the implementation phase begins.
Implementation is the stage of a project during which theory is turned into practice. The major steps
involved in this phase are:
implementation phase begins. Implementation is the stage of a project
during which theory is turned into practice. The major steps involved in this phase are:
Acquisition and Installation of Hardware and Software
Conversion
User Training
Documentation
10
The hardware and the relevant software required for running the system must be made fully operational
before implementation. The conversion is also one of the most critical and expensive activities in the
system development life cycle. The data from the old system needs to be converted to operate in the new
format of the new system.
The database needs to be setup with security and recovery procedures fully defined.
During this phase, all the programs of the system are loaded onto the user‘s computer. After loading the
system, training of the user starts. Main topics of such type of training are:
l How to execute the package
l How to enter the data
l How to process the data (processing details)
l How to take out the reports
After the users are trained about the computerized system, working
has to shift from manual to computerized working. The process is
called ‗Changeover‘.
.
8. Post implementation and Maintenance.
After the installation is completed evaluation and maintenance began. Then there is maintenance of
hardware and software. User priorities, changes in organizational requirements or environmental factors
need system improvement.
System should be maintained properly that is maintenance of hardware, software /data as well as other
technical equipment. There is a need to have a person who looks after the system and maintain it even
during operation and production. The system maintenance is required because of any of the following
reasons:
1. Minor changes in the processing logic.
2. Errors detected during the processing.
3. Revision of data input formats.
4. Revision of report formats.
9. Project Termination
A system project is dropped if it becomes more difficult with, it goes costly and against design. Generally
projects are dropped after a review process. Today computer system and software make life easier for
analyst, but the success of system project depends on the experience, ability and knowledge of the analyst
and the support of the user staff.
Systems Analyst:
Individuals who perform the systems investigation as distinct from those merely involved the
detailed computer programming are called ‗Systems Analyst‖. The programmer works within the framework
provided by the Systems Analyst. If the framework or the outline is poorly designed, than the result is
bound lobe much off the mark. A system analyst is like an architect and his work assumes greater
importance because he has to design a system for the future.
Thus a System Analyst designs Information systems which meet organizational objective, promote
integration of activities facilitate control and which are flexible and robust (strong/healthy/hearty)
Thus the systems analyst is more like a manager who
Determines the design of the overall system and
Obtains the necessary technical help from the programmer, from specialists and equipment
engineers
Follows the system through design, implementation, follow-up And re-evaluation.
Analyst require fact findings, fact-recording and analysis to describe in documentary form the
essential operational requirements of the business system to satisfy the user needs. This work defines
the output required from the system, the input data needed to generate the output information, the
processing requirements and operational objective.
System investigation is a part of System Life Cycle. It is divided as Analysis, Design,
Implementation, Maintenance and Review. Each of this stages are again subdivided to give
tangible/real products
System investigation may be undertaken by the analyst as part of a feasibility or preliminary study.
Analyst may work alone, or in small team or close collaboration with user management. Such studies
may be strategic, conceptual in nature, covers large area of an organizations data, processing
requirements or may be smaller studies of limited operational area.
In both cases Preliminary study is undertaken and is important. System investigation may be
undertaken by the analyst as part of a detailed study, the outcome of which will determine What,
When and How information will be produced by a new system. It is very important that this work is
thoroughly (carefully/in detail) done and done to the satisfaction of management, the end user and the
computer service department.
12
These techniques are not mutually (jointly) exclusive; in fact in practice more than one technique will
be employed to establish the facts. During the course of an interview records may be inspected and a
questionnaire completed.
Review of Literature,
Procedures, and Forms
Information
On-site Observation
Gathering
Tools
Data
Interview Organization
Questionnaire
13
avoid resistance from the staff whose habits will be changed. So skills of interviewer are required.
He should be impartial, tactful and more positive, skills in influencing others.
Interviewing is the process of obtaining information without upsetting the other by means of
conversation, this require good listening , must keep the ball of conversation rolling and must be
able to keep the subject on the right lines. Conversation is itself an art relying not a little upon the
ability to suit the treatment of any subject to the person, the place, the mood and the moment.
Interviewer must bear in mind that there will be wide variety of personalities and different level of
authorities. He must need to adjust, timing and phrases to suit the particular person.
Sometime the head will attempt to answer all questions himself or try to conduct an interview. At
this time, the skill and politeness of investigator is essential to retain control of events.
Interview does not stand alone as means of fact-finding, but is used in conjunction with observation
and examination. It is the only thing to find something that cannot be seen.
Investigator with initial introductions, the first stage is to state the reason for the visit. If possible
interviewer should mention the method he is following. He must remember the following points.
a. Words.
Use simple terms. Words which will be not understood are not used. Interviewer‘s words have
to express the meaning he wishes to express. He must repeat the same thought in different
words .
b. Atmosphere
While keeping the discussion strictly impersonal, the interviewer must try to join the interest and
cooperation of the operator in the assignment.
c. Compliments
Sometime during an interview it is possible to give appreciation and must be done.
Appreciation must be given somewhat for method than staff. However, the interviewer should
never criticize the staff and avoid reducing importance of the operator.
Questionnaires
It is not simple. Form must be designed carefully, must be filled, tested and validated before its
common use. The situations in which questionnaires may be the most practicable method of fact
findings are-
a) Where staff are located over a widely spread geographical area
b) When a large number of staff are required to furnish data
c) For verification of data found by other methods
d) When 100 percent coverage is not essential
One advantage in planning a questionnaire is that the respondent is given time to assemble the
required information. Thus save time and that of the system analyst at the actual meeting.The aim in
questionnaire design should be to create the questions so that no misunderstanding is possible and
no bias /partiality is possible in replies . Answer the survey by answering following questions.
Dou you require this report?
What information do you use?
How do use this information. ?
What additional information do you think should be in the report?
How would you use this additional information?
In the questionnaire each employee is asked to list his duties and average amount of time. He
estimates , he spends on each other.
In contrast to the interview is the questionnaire, it is a term for questions to which individuals
respond. It is usually associated with self-administered tools with items of the closed or fixed
alternative type. By its nature, a question, a questionnaire offers the following advantages.
1. It is economical and requires less skill to administer than the interview.
14
2. Unlike the interview, which generally questions one subject at time, a questionnaire can be
administered to large numbers of individuals simultaneously.
3. The standardized wording and order of the questions, instructions for reporting responses
ensure uniformity of questions. But in the interview, situation is not often uniform.
4. The respondents feel greater confidence in the anonymity of a questionnaire than in that of an
interview. In an interview, the analyst usually knows the user staff by name, job function or
other identification. With a questionnaire, respondents give opinion without fear that the answer
will be connected to their names.
5. The questionnaire places less pressure on subjects for immediate response. Respondents
have time to think the questions over and do calculations to provide more accurate data.
To establish the reasons for developing the software that is acceptable to users, adaptable to change
and conformable to established standards.
To analyze whether the software will meet organizational requirements
To determine whether the software can be implemented using the current technology and within the
specified budget and schedule
To determine whether the software can be integrated with other existing software
Types of Feasibility
Technical feasibility
Measures the current resources (such as hardware and software) and technology, which are required to
accomplish user requirements in the software within the allocated time and budget.
For this, the software development team ascertains whether the current resources and technology can be
upgraded or added in the software to accomplish specified user requirements.
Analyzes the technical skills and capabilities of the software development team members
15
Determines whether the relevant technology is stable and established
Find out that the technology chosen for software development has a large number of users so that
they can be consulted when problems arise or improvements are required
Operational feasibility
Calculates the extent to which the required software performs a series of steps to solve business problems
and user requirements.
This feasibility is dependent on human resources (software development team) and involves visualizing
whether the software will operate after it is developed and be operative once it is installed.
Determines whether the problems anticipated in user requirements are of high priority
Determines whether the solution suggested by the software development team is acceptable
Analyzes whether users will adapt to a new software
Determines whether the organization is satisfied by the alternative solutions proposed by the
software development team.
Economic feasibility
Determines whether the required software is capable of generating financial gains for an organization. It
involves the cost incurred on the software development team, estimated cost of hardware and software,
cost of performing feasibility study, and so on.
For this, it is essential to consider expenses made on purchases (such as hardware purchase) and
activities required to carry out software development.
It is necessary to consider the benefits that can be achieved by developing the software.
Software is said to be economically feasible if it focuses on the issues listed below.
16