Module 1 - Introduction To Software Engg
Module 1 - Introduction To Software Engg
Introduction to
Software Engineering
MBA 4th Semester SE Study Notes
Module - 1 Introduction to Software Engg
1. Table of Contents
1. Table of Contents ..................................................................................................................................1
2. What is software ...................................................................................................................................2
3. What is software process ......................................................................................................................5
4. What is software engineering ...............................................................................................................6
5. Characteristics of software project .......................................................................................................9
6. Activities covered by software project management ........................................................................ 10
7. Problems involved.............................................................................................................................. 12
8. Management function related to project management.................................................................... 14
9. Feasibility analysis. ............................................................................................................................. 15
9.1. Feasibility study: ........................................................................................................................ 15
Types of Feasibility ................................................................................................................................. 16
10. Question Bank ................................................................................................................................ 17
Software is defined as
1. Instructions
Programs that when executed provide desired function
2. Data structures
Enable the programs to adequately manipulate information
3. Documents
Describe the operation and use of the programs.
Software Characteristics
1. Software is developed or engineered, it is not manufactured in the classical sense.
2. Software does not wear out. However it deteriorates due to change.
3. Software is custom built rather than assembling existing components.
Although the industry is moving towards component based construction, most
software continues to be custom built
4. Software is Flexibale
A program can be developed to do almost anything that is why software is said to be
flexible.
This characteristic may be the best sometimes, and may help us to accommodate
any kind of change.
But most of the times, this characteristic have made the software development
difficult to plan, monitor and control.
5. Reusability of component
In software, every project is a new project. We start from scratch & design every unit of
the s/w product.
Huge effort is required to develop a software which further increases the cost of the
product.
1. System software.
This class of software manages and controls the internal operations of a computer system. It is
a group of programs, which is responsible for using computer resources efficiently and
effectively. For example, an operating system is a system software, which controls the
hardware, manages memory and multitasking functions, and acts as an interface between
application programs and the computer.
2. Business software: This class of software is widely used in areas where management and
control of financial activities is of utmost importance. The fundamental component of a
business system comprises payroll, inventory, and accounting software that permit the user
to access relevant data from the database. These activities are usually performed with the
3. Engineering and scientific software: This class of software has emerged as a powerful tool
in the research and development of next generation technology. Applications such as the
study of celestial bodies, under-surface activities, and programming of an orbital path for
space shuttles are heavily dependent on engineering and scientific software. This software
is designed to perform precise calculations on complex numerical data that are obtained
during real time environment.
4. Artificial intelligence (AI) software: This class of software is used where the problem-
solving technique is non-algorithmic in nature. The solutions of such problems are generally
non-agreeable to computation or straightforward analysis. Instead, these problems require
specific problem-solving strategies that include expert system, pattern recognition, and
game-playing techniques. In addition, they involve different kinds of search techniques
which include the use of heuristics. The role of artificial intelligence software is to add
certain degrees of intelligence to the mechanical hardware in order to get the desired work
done in an agile manner.
5. Web-based software: This class of software acts as an interface between the user and the
Internet. Data on the Internet is in the form of text, audio, or video format, linked with
hyperlinks. Web browser is a software that retrieves web pages from the Internet. The
software incorporates executable instructions written in special scripting languages such as
CGI or ASP. Apart from providing navigation on the Web, this software also supports
additional features that are useful while surfing the Internet.
6. Personal computer (PC) software: This class of software is used for both official and
personal use. The personal computer software market has grown over in the last two
decades from normal text editor to word processor and from simple paintbrush to
advanced image-editing software. This software is used predominantly in almost every
field, whether it is database management system, financial accounting package, or
multimedia-based software. It has emerged as a versatile tool for routine applications.
7. Embedded software
-- resides in read-only memory
Coherent sets of activities for specifying, designing, implementing and testing software
systems.
A set of activities whose goal is the development or evolution of software
Software process is defined as the structured set of activities that are required to develop
the software system
Software Process is a frame-work for the tasks that are required for building a high-quality
software
Generic activities in all software processes are:
Specification - what the system should do and its development constraints
Development - production of the software system
Validation - checking that the software is what the customer wants
The term software engineering is composed of two words, software and engineering.
Software
programs that provide function & performance
data structures for information manipulation
documents that describe the operations and use of the programs
Engineering
A discipline that applies scientific and technical methods in the design and
production of a product
So, we can define software engineering as an engineering branch associated with the
development of software product using well-defined scientific principles, methods and
procedures. The outcome of software engineering is an efficient and reliable software
product.
Software engineering is the establishment and use of sound engineering principles in
order to obtain economically software that is reliable and works efficiently in real
machines.
According to IEEE Definition:
The application of a systematic, disciplined, quantifiable approach to the development,
operation, and maintenance of software
Software Crisis
Many software projects failed.
Many software projects late, over budget, providing unreliable software that is
expensive to maintain.
Many software projects produced software which did not satisfy the requirements of
the customer.
Complexities of software projects increased as hardware capability increased.
Larger software system is more difficult and expensive to maintain.
Demand of new software increased faster than ability to generate new software
A quality Focus:
Every organization is rest on its commitment to quality.
Total quality management, Six Sigma, or similar continuous improvement culture and it
is this culture ultimately leads to development of increasingly more effective approaches
to software engineering.
Process:
The software engineering process is the glue that holds the technology layers together
and enables rational and timely development of computer software.
Process defines a framework that must be established for effective delivery of software
engineering technology.
The software process forms the basis for management control of software projects and
establishes the context in which technical methods are applied, work products are
produced, milestones are established, quality is ensured, and change is properly
managed.
Methods:
Software engineering methods provide the technical aspects for building software.
The software engineering tool is an automated support for the software development.
The tools are integrated i.e the information created by one tool can be used by the other
tool.
For example: The Microsoft publisher can be used as a web designing tool
Umbrella Activities are those which keep running in the background throughout the software
development.
7. Problems involved
Software engineering employs a well defined and systematic approach to develop software.
This approach is considered to be the most effective way of producing high-quality software.
However, despite this systematic approach in software development, there are still some
serious challenges faced by software engineering. Some of these challenges are listed below.
1. The methods used to develop small or medium-scale projects are not suitable when it comes to
the development of large-scale or complex systems.
2. Changes in software development are unavoidable. In today's world, changes occur rapidly and
accommodating these changes to develop complete software is one of the major challenges
faced by the software engineers.
3. The advancement in computer and software technology has necessitated for the changes in
nature of software systems. The software systems that cannot accommodate changes are not
of much use. Thus, one of the challenges of software engineering is to produce high quality
software adapting to the changing needs within acceptable schedules. To meet this challenge,
the object oriented approach is preferred, but accommodating changes to software and its
maintenance within acceptable cost is still a challenge.
In addition to the above mentioned key challenges, the responsibilities of the system analyst,
designers, and programmers are usually not well defined. Also, if the user requirements are not
precisely defined, software developers can misinterpret the meaning. All these challenges need
to be addressed in order to ensure that the software is developed within the specified time and
estimated costs and also meets the requirements specified by the user.
Schedule is an important factor in many projects. Business trends are dictating that the time to
market of a product should be reduced; that is, the cycle time from concept to delivery should
be small. Any business with such a requirement will also require that the cycle time for building
a software needed by the business be small.
One of the major factors driving any production discipline is quality. We can view quality of a
software product as having three dimensions:
Product Operation
Product Transition
Product Revision
The Problem of consistency: Though high quality, low cost and small cycle time are the primary
objectives of any project, for an organization there is another goal: consistency. An
organization involved in software development does not just want low cost and high quality for
a project, but it wants these consistently.
9. Feasibility analysis.
the feasibility report that whether or not the proposed system is worthwhile.
budget.
- If the system can be integrated with other systems that are used.
- Operational Feasibility
- Technical Feasibility
- Economic Feasibility
The main aim of the feasibility study is not thinking how to solve problem, back to
•- Go Ahead
•- Do Not Go Ahead
•- Think again
Feasibility is defined as the practical extent to which a project can be performed successfully.
To evaluate feasibility, a feasibility study is performed, which determines whether the solution
considered to accomplish the requirements is practical and workable in the software.
Information such as resource availability, cost estimation for software development, benefits of
the software to the organization after it is developed and cost to be incurred on its
maintenance are considered during the feasibility study. The objective of the feasibility study is
to establish the reasons for developing the software that is acceptable to users, adaptable to
change and conformable to established standards. Various other objectives of feasibility study
are listed below.
Types of Feasibility
Various types of feasibility that are commonly considered include technical feasibility,
operational feasibility, and economic feasibility.
Technical feasibility assesses 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. Technical feasibility also performs the following tasks.
Operational feasibility assesses 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. Operational feasibility
also performs the following tasks.
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.
10.Question Bank
1. What do you understand by the term software crisis? Explain the causes of software
crisis.