You are on page 1of 19

Module - 1

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

SE Study Notes | Table of Contents 1


Module - 1 Introduction to Software Engg
2. What is software

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.

In brief, software is composed of


 Programs
 Data
 Documents

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.

SE Study Notes | What is software 2


Module - 1 Introduction to Software Engg
 However effort has been made to design standard components that may be used in new
projects.
 Software reusability has introduced anther area known as component based software
engineering.
 In hardware world, component reuse is a natural part of the engineering process. For
example, a Television manufacturer would use the same components in all television
sets.
 But in software, it is just a beginning like graphical user interfaces are built using
reusable components that enable the creation of graphics windows, pull down menus,
etc.

Seven Broad Categories of software


1. System Software
2. Real-time Software
3. Business Software
4. Engineering & Scientific Software
5. Embedded Software
6. Personal Computer Software
7. Artificial Intelligence Software

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

SE Study Notes | What is software 3


Module - 1 Introduction to Software Engg
help of specialized business software that facilitates efficient framework in business
operations and in management decisions

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

SE Study Notes | What is software 4


Module - 1 Introduction to Software Engg
--is used to control products and systems for the consumer and industrial markets.

What are the attributes of good software?


The software should deliver the required functionality and performance to the user and should
be maintainable, dependable and usable.
 Maintainability
 Software must evolve to meet changing needs
 Dependability
 Software must be trustworthy
 Efficiency
 Software should not make wasteful use of system resources
 Usability
 Software must be usable by the users for which it was designed
 Portability: required effort to transfer a program from one hardware/software
environment to another.
 Testability: required effort to test a program to ensure its performing its intended
functions.
 Interoperability: the ability of software to exchange and make use of information.
 Reusability: reuse of programs in other applications.

3. What is software process

 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

SE Study Notes | What is software process 5


Module - 1 Introduction to Software Engg
 Evolution - changing the software in response to changing demands

4. What is software engineering

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

SE Study Notes | What is software engineering 6


Module - 1 Introduction to Software Engg
 Facing lot of Bugs or Programming/testing errors in Software

To overcome all above crisis Software engineering is evolved.

Need of Software engineering


The need of software engineering arises because of higher rate of change in user requirements
and environment on which the software is working. Following are some of the needs stated:
 Large software - It is easier to build a wall than a house or building, likewise, as the size of
the software becomes large, engineering has to step to give it a scientific process.
 Scalability- If the software process were not based on scientific and engineering concepts,
it would be easier to re-create new software than to scale an existing one.
 Cost- As hardware industry has shown its skills and huge manufacturing has lower down the
price of computer and electronic hardware. But, cost of the software remains high if proper
process is not adapted.
 Dynamic Nature- Always growing and adapting nature of the software hugely depends
upon the environment in which the user works. If the nature of software is always
changing, new enhancements need to be done in the existing one. This is where the
software engineering plays a good role.
 Quality Management- Better process of software development provides better and quality
software product.

Objectives of Software Engineering


 To improve quality of software products
 To increase customer satisfaction
 To increase productivity
 To increase job satisfaction

Software engineering - Layered technology


• Software engineering is a fully layered technology.
• To develop software, we need to go from one layer to another.
• All these layers are related to each other and each layer demands the fulfilment of the
previous layer.

SE Study Notes | What is software engineering 7


Module - 1 Introduction to Software Engg

The layered technology consists of:

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.

 The foundation that supports software engineering is a quality focus.

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.

 Methods encompass a broad array of tasks that include communication,


requirements analysis, design modelling, program construction, testing, and
support.

SE Study Notes | What is software engineering 8


Module - 1 Introduction to Software Engg
 Software engineering methods rely on the set of modelling activities and other
descriptive techniques.
Tools

 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

There are total five framework activities in Software Engineering as follow:


1. Communication:
Project requirements are collected in this activity. This framework activity is the main focus of
the project managers and stakeholders. This framework activity includes communication and
coordination with the clients.
2. Planning:
This framework action incorporates data about the technical work to be planned, risks to be
faced, resources needed for task completion, the decision of the milestone deadline to release
the product in production.
3. Modeling:
This framework phase includes the creation of product models by analyzing requirements and
designing flowcharts and use cases which make developers and customers get a better
understanding of the software functionalities that will achieve all requirements.
4. Construction:
In this framework activity, the actual development of the product begins with code
construction and then testing to fix errors and issues.
5. Deployment:
In this framework phase, product prototypes are delivered or the completed software is
delivered to the users. Feedback is obtained for getting delivered software’s evaluation to add
new features or future needs of the software.

5. Characteristics of software project

SE Study Notes | Characteristics of software project 9


Module - 1 Introduction to Software Engg
We spend a lot of time examining software project failures but it’s equally important to
understand why some projects succeed. Here’s a short list.
1. Commitment. The business stakeholders and the technologists are committed to the
project — not just at the outset but throughout. This takes intense collaboration. There is
also an executive sponsor or champion — someone with the authority to make things
happen. (If there is a client-consultant relationship, this is doubly important.)
2. People. The right team is assembled. There is an appropriate mix of senior, mid-level and
junior people. The skill sets are also mixed and complimentary. Everyone understand their
role and how it fits into the project. Most importantly, there is a core group of exceptional
people who are capable of leading the project both administratively and technically.
3. Goals. The project has clear goals that everyone understands and accepts. This includes the
critical dates that the team has to hit. The scope of the project is narrow enough for
everyone to comprehend and embrace yet wide enough to deliver value to the business.
The constraints placed on the project are reasonable and realistic.
4. Communication. Frequent and open communication is encouraged. Everyone is willing to
share information and thus everyone knows what’s going on. Whenever the team reaches a
milestone or achieves a major successful outcome, everyone celebrates.
5. Focus. The team is focused on getting the project done. They are not distracted by cultural,
hierarchical and bureaucratic barriers. They use informal contacts and relationships to
make things happen.
6. Learning. Everyone has the opportunity to learn and grow during the course of the project.
They are encouraged to test and experiment. When mistakes are made, they are leveraged
as learning opportunities.
7. Change. The team deals with change effectively. That means they don’t try to block change
but they don’t throw the doors wide open and allow anything to change any time. They find
a middle ground and accept change as an opportunity to learn and improve the final result.
8. Environment. The team has the right environment for getting the job done. This covers
everything from office space to desks and chairs to software development tools.

6. Activities covered by software project management

Umbrella Activities are those which keep running in the background throughout the software
development.

SE Study Notes | Activities covered by software project management 10


Module - 1 Introduction to Software Engg
1. Software project tracking and control
 In this activity, the developing team accesses project plan and compares it with the
predefined schedule.
 If these project plans do not match with the predefined schedule, then the required
actions are taken to maintain the schedule.
2. Risk management
 Risk is an event that may or may not occur.
 If the event occurs, then it causes some unwanted outcome. Hence, proper risk
management is required.
3. Software Quality Assurance (SQA)
 SQA is the planned and systematic pattern of activities which are required to give a
guarantee of software quality.
For example, during the software development meetings are conducted at every stage
of development to find out the defects and suggest improvements to produce good
quality software.
4. Formal Technical Reviews (FTR)
 FTR is a meeting conducted by the technical staff.
 The motive of the meeting is to detect quality problems and suggest improvements.
 The technical person focuses on the quality of the software from the customer point of
view.
5. Measurement
 Measurement consists of the effort required to measure the software.
 The software cannot be measured directly. It is measured by direct and indirect
measures.
 Direct measures like cost, lines of code, size of software etc.
 Indirect measures such as quality of software which is measured by some other factor.
Hence, it is an indirect measure of software.
6. Software Configuration Management (SCM)
 It manages the effect of change throughout the software process.
7. Reusability management
 It defines the criteria for reuse the product.

SE Study Notes | Activities covered by software project management 11


Module - 1 Introduction to Software Engg
 The quality of software is good when the components of the software are developed for
certain application and are useful for developing other applications.
8. Work product preparation and production
 It consists of the activities that are needed to create the documents, forms, lists, logs
and user manuals for developing a software.

7. Problems involved

Software engineering in the 21st century faces three key challenges:


 Legacy systems
 Old, valuable systems must be maintained and updated
 Heterogeneity
 Systems are distributed and include a mix of hardware and software
 Delivery
 There is increasing pressure for faster delivery of software

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.

SE Study Notes | Problems involved 12


Module - 1 Introduction to Software Engg
4. Informal communications take up a considerable portion of the time spent on software
projects. Such wastage of time delays the completion of projects in the specified time.
5. The user generally has only a vague idea about the scope and requirements of the software
system. This usually results in the development of software, which does not meet the user's
requirements.
6. Changes are usually incorporated in documents without following any standard procedure.
Thus, verification of all such changes often becomes difficult.
7. The development of high-quality and reliable software requires the software to be thoroughly
tested. Though thorough testing of software consumes the majority of resources,
underestimating it because of any reasons deteriorates the software quality.

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.

Software engineering is the systematic approach to the development, operation, maintenance,


and retirement of software. There are few fundamental problems that software engineering
faces.
The Problem of scale: A fundamental problem of software engineering is the problem of
scale; development of a very large system requires a very different set of methods compared to
developing a small system. In other words, the methods that are used for developing small
systems generally do not scale up to large systems. A different set of methods has to be used
for developing large software. Any large project involves the use of technology and project
management.
For software projects, by technology we mean the methods, procedures, and tools that are
used. In small projects, informal methods for development and management can be used.
However, for large projects, both have to be much more formal.
While dealing with a small software project, the technology requirement is low and the project
management requirement is also low. However, when the scale changes to large systems, to
solve such problems properly, it is essential that we move in both directions-the methods used

SE Study Notes | Problems involved 13


Module - 1 Introduction to Software Engg
for development need to be more formal, and the project management for the development
project also needs to be more formal.
Cost, schedule and quality: The cost of developing a system is the cost of the resources used
for the system, which, in the case of software, are the manpower, hardware, software, and the
other support resources. Generally, the manpower component is predominant, as software
development is largely labor-intensive and the cost of the computing systems is now quite low.
Hence, the cost of software project is measured in terms of person-months, i.e. the cost is
considered to be the total number of person-months spent in the project.

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.

8. Management function related to project management

This involves the following activities:


 Planning – deciding what is to be done
 Organizing – making arrangements
 Staffing – selecting the right people for the job
 Directing – giving instructions
 Monitoring – checking on progress
 Controlling – taking action to remedy hold-ups

SE Study Notes | Management function related to project management 14


Module - 1 Introduction to Software Engg
 Innovating – coming up with solutions when problems emerge
 Representing – liaising with clients, users, developers and other stakeholders

9. Feasibility analysis.

9.1. Feasibility study:

A feasibility study is quite important phase in which high management decides on

the feasibility report that whether or not the proposed system is worthwhile.

Feasibility study checks:

If the system contributes organisational objectives.

- If the system can be engineered using current technology and within

budget.

- If the system can be integrated with other systems that are used.

That means concentrate on following areas:

- Operational Feasibility

- Technical Feasibility

- Economic Feasibility

The main aim of the feasibility study is not thinking how to solve problem, back to

determine whether the problem is work solving.

Feasibility study leads to a decision:

•- Go Ahead

•- Do Not Go Ahead

•- Think again

Outcome of feasibility study:

Based on the information assessment (what is required ), information collection and

report writing we get list of questions

SE Study Notes | Feasibility analysis. 15


Module - 1 Introduction to Software Engg

-• What if the system was not implemented?

•- what are current project problems?

• - how will be the proposed system help?

•- What will be integration problems?

• - is new technology needed?

•- is new skill(staff, team members) required?

• - what facilities must be supported by the proposed system?

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.

 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

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.

SE Study Notes | Feasibility analysis. 16


Module - 1 Introduction to Software Engg
 Analyzes the technical skills and capabilities of the software development team members
 Determines whether the relevant technology is stable and established
 Ascertains 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 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.

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. In addition, 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.

 Cost incurred on software development to produce long-term gains for an organization


 Cost required to conduct full software investigation (such as requirements elicitation and
requirements analysis)
 Cost of hardware, software, development team, and training.

10.Question Bank

1. What do you understand by the term software crisis? Explain the causes of software
crisis.

SE Study Notes | Question Bank 17


Module - 1 Introduction to Software Engg
2. Define Software. Describe the important characteristics of a software product that
differentiates it from any other product.
3. List out the different umbrella activities that are applied throughout the software
process.
4. Define the term software engineering. Explain the classical life cycle paradigm for
software engineering.
5. What are the different software applications?
6. Describe the Characteristics of Software Project.
7. What are the challenges in software?
8. What do you mean by Feasibility Study, Explain its types?
9. Explain software engineering as Layered Technology
10. Define a software process.

SE Study Notes | Question Bank 18

You might also like