0% found this document useful (0 votes)
7 views11 pages

Unit-1 Software Enginering

The document provides an introduction to software engineering, defining software and its various types, including application, system, programming, and custom software. It discusses software characteristics such as functionality, reliability, efficiency, usability, maintainability, and portability, as well as software applications and the evolution process. Additionally, it addresses the software crisis, common myths in management, customer expectations, and practitioner beliefs regarding software development.

Uploaded by

oksukalkar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views11 pages

Unit-1 Software Enginering

The document provides an introduction to software engineering, defining software and its various types, including application, system, programming, and custom software. It discusses software characteristics such as functionality, reliability, efficiency, usability, maintainability, and portability, as well as software applications and the evolution process. Additionally, it addresses the software crisis, common myths in management, customer expectations, and practitioner beliefs regarding software development.

Uploaded by

oksukalkar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Introduction to Software Engineering

1.1 Software:
Definition:
The software is collection program set of instruction functions and procedures.

Software is a collection of instructions and data that tell a computer how to


work. This is in contrast to physical hardware, from which the system is built
and actually performs the work. In computer science and software engineering,
computer software is all information processed by computer systems,
including programs and data. Computer software includes computer
programs, libraries and related non-executable data, such as online
documentation or digital media.

Type of Software:

1. Application Software:

This is the most common type of computer


software, and can be defined as end-user programs that help you perform tasks or
achieve a desired outcome. The end-user is the person who is actually using a
product or program. (They are the one for whom the “end result” is designed.)
Some examples of application software include internet browsers, a photo-editing
software like Adobe or a word processing application like Microsoft Word.

2. System Software:

System software helps the user, the computer or


mobile device, and an application all work together.This makes system software
crucial to running any kind of application software as well as the whole computer
system. Think about when your laptop or phone has an update.

Notes By:Mr.Bhosle Ajit T.


Assistant Professor
MGM’S College of CS & IT,Nanded
3. Programming Software:
While application software is designed for end-
users, and system software is designed for computers or mobile devices,
programming software is for computer programmers and developers who
are writing code. These are programs that are used to write, develop, test,
and debug other software programs. It’s helpful to think of these programs
as a translator of sorts: they take programming languages like Python,
C++, and more and translate them into something a computer or phone will
understand.

4. Custom Software:
These types of software develop as per client
requirement.
For Eg:-Hotel Monitoring System

1.2 Software Characteristics:

Notes By:Mr.Bhosle Ajit T.


Assistant Professor
MGM’S College of CS & IT,Nanded
1. Functionality:
It refers to the degree of performance of the software against its intended
Required functions are:

✔ Accuracy
✔ Interoperability
✔ Security

2. Reliability:
A set of attribute that bear on capability of software to maintain its level of
performance under the given condition for a stated time. Required functions
are:

✔ Recoverability
✔ Fault tolerance

3. Efficiency:
It refers to the ability of the software to use system resources in the most
effective and efficient manner. The software should make effective use of
storage space and executive command as per desired timing requirement.
Required functions are:

✔ In Time
✔ In Resource

4. Usability:
It refers to the extent to which the software can be used with ease. The amount
of effort or time required to learn how to use the software.

✔ Understandability
✔ Learnability
✔ Operability

Notes By:Mr.Bhosle Ajit T.


Assistant Professor
MGM’S College of CS & IT,Nanded
5. Maintainability:
It refers to the ease with which the modifications can be made in a software
system to extend its functionality, improve its performance, or correct errors.
Required functions are:

✔ Testability
✔ Stability
✔ Chanability
✔ Operability

6. Portability:
A set of attribute that bear on the ability of software to be transferred from one
environment to another, without or minimum changes. Required functions are:

✔ Adaptability
✔ Installability
✔ Replaceability

1.3 Software Applications:


1. System Software: A collection of programs written to service other
programs. Compiler, device driver, editors, file management.

2. Application software or stand alone program: It solves a specific


Business needs. It is needed to convert the business function in real time.
Example -point of sale, Transaction processing, real time manufacturing
control.

3. Scientific / Engineering Software: Applications like based on astronomy,


automotive stress analysis, molecular Biology, space Shuttle orbital
dynamic, automated manufacturing.

4. Embedded Software: There are software control systems that control and
manage hardware devices. Example- software in mobile phone, software in
Anti Lock Braking in car, software in microwave oven to control the
cooking process.
Notes By:Mr.Bhosle Ajit T.
Assistant Professor
MGM’S College of CS & IT,Nanded
5. Product Line Software: It is designed to provide a specific capability for
used by many different customers. It can focus on unlimited or esoteric
Marketplace like inventory control products. Or address mass market place
like : Spreadsheets, computer graphics, multimedia, entertainment, database
management, personal, business financial applications.

6. Web application: It is also called “web apps ", are evolving into
sophisticated computing environment that not only provide stand alone
features, computing functions, and content to the end user but also are
integrated with corporate database and business applications.

7. Artificial intelligence software: This include- robotic, expert system,


pattern recognition, image and voice, artificial neural network, game
playing, theorem proving ... It solves Complex problems.

1.4 Software Evolution:

The software evolution process is mostly depending upon


the main type of software that is maintained and the organization has used the
Notes By:Mr.Bhosle Ajit T.
Assistant Professor
MGM’S College of CS & IT,Nanded
process of development and also involves the skills of the people. Some
organizations used the informal process for conversation between developer and
user system for changing the request and the other hand many organizations and
companies used the formalized process at each stage of the documentation of
the evolution.
Software Evolution is a term which refers to the process of
developing software initially, then timely updating it for various reasons, i.e., to
add new features or to remove obsolete functionalities etc. The evolution
process includes fundamental activities of change analysis, release planning,
system implementation and releasing a system to customers.
The cost and impact of these changes are accessed to see how
much system is affected by the change and how much it might cost to implement
the change. If the proposed changes are accepted, a new release of the software
system is planned. During release planning, all the proposed changes (fault
repair, adaptation, and new functionality) are considered.
A design is then made on which changes to implement in the
next version of the system. The process of change implementation is an iteration
of the development process where the revisions to the system are designed,
implemented and tested.
Therefore the evolution process has been including basic functions such as.

1. Change Request
2. Impact Analysis
3. Release Planning
4. Software Update
5. System Implementation

1. Change Request:
In the change request process, the necessary
information is required and the impact analysis process analyzed the necessary
information and pass to the next step release planning process. The release
planning process passes the information to the next step of the change
implementation process so any problem in the implementation process retrieves
the information to the previous step of release planning. If no problem in the
change implementation processes the pass the information to the system release
process. All the information are complete the system analysis process retrieves
Notes By:Mr.Bhosle Ajit T.
Assistant Professor
MGM’S College of CS & IT,Nanded
the first step of change request process so the evolution process is done. The
change request process sometimes is related to the system release process.

2. Impact Analysis:
After the process of the system implementation then the
next step is the impact analysis process. In which the impact analysis process
complete details of the necessary information are analyzed and emerge change
should not appear in the change analysis process.

3. Release Planning:
During the releasing planning of software evolution
process if all the proposal has been changed means new functionality,
adaptation and fault repair are occur in the system. In this situation to make a
discussion which changes the implementation for the next version of the system
to release. This proposal, which is used to iterate with the next releasing the
change proposal.

4. Software Update:
Software updates are a way for software developers to
fine-tune a product to make it the best it can be. They offer small, frequent
improvements rather than major changes. Unlike a software upgrade, updates
need the existing software program you’re using to work.
Updates sometimes run automatically in the background. Other times, software
come in the form of a free download. They’re usually necessary for your
product to continue running successfully.

5. System Implementation or change Implementation:


System Implementation or change Implementation is the
iteration of software process development where the structure of a new version of
the software is design, implementation, and testing. In the critical software
evolution process, there is change implementation of the first stage should modify
the system implementation, design, and specification that can be effective to
change the system process. So the requirements of the new system should be
effective to change the analysis and validation of the proposed system. After the
implementation the system should be tested, if any error that can be occurs during

Notes By:Mr.Bhosle Ajit T.


Assistant Professor
MGM’S College of CS & IT,Nanded
the implementation, so the components of the system are redesign and again tested
to the system.

1.5 Software Crises:

Software Crisis is a term used in computer science for the


difficulty of writing useful and efficient computer programs in the required time

Notes By:Mr.Bhosle Ajit T.


Assistant Professor
MGM’S College of CS & IT,Nanded
.software crisis was due to using same workforce, same methods, same tools even
though rapidly increasing in software demand, complexity of software and
software challenges. With increase in the complexity of software, many software
problems arise because existing methods were insufficient.
If we will use same workforce, same methods and same tools after fast increasing
in software demand, software complexity and software challenges, then there arise
some problems like software budget problem, software efficiency problem,
software quality problem, software managing and delivering problem etc. This
condition is called software crisis.
Causes of Software Crisis:
● The cost of owning and maintaining software was as expensive as developing
the software
● At that time Projects was running over-time
● At that time Software was very inefficient
● The quality of software was low quality
● Software often did not meet requirements
● The average software project overshoots its schedule by half
● At that time Software was never delivered

1.6 Software Myths:


1) Management Myths: Managers with software responsibility are often under
pressure to maintain budgets, keep schedules from slipping, and improve
quality. Following are the management myths:

 Myth: We already have a book that’s full of standards and procedures for
building software, won’t that provide my people with everything they need to
know?
Reality: The book of standards may very well exist, but isn’t used. Most
software practitioners aren’t aware of its existence. Also, it doesn’t reflect
modern software engineering practices and is also complete.

 Myth: My people have state-of-the-art software development tools, after all,


we buy them the newest computers.
Reality: It takes much more than the latest model mainframe, workstation, or
Notes By:Mr.Bhosle Ajit T.
Assistant Professor
MGM’S College of CS & IT,Nanded
PC to do high-quality software development. Computer-aided software
engineering (CASE) tools.
are more important than hardware for achieving good quality and productivity,
yet the majority of software developers still do not use them effectively.

 Myth: If we get behind schedule, we can add more programmers and catch
up (sometimes called the Mongolian horde concept).
Reality: Software development is not a mechanistic process like manufacturing.
As new people are added, people who were working must spend time educating
the newcomers, thereby reducing the amount of time spent on productive
development effort. People can be added but only in a planned and well-
coordinated manner.

 Myth: If I decide to outsource the software project to a third party, I can just
relax and let that firm build it.
Reality: If an organization does not understand how to manage and control
software projects internally, it will invariably struggle when it outsources
software projects.

2) Customer Myths: Customer myths lead to false expectations (by the


customer) and ultimately, dissatisfaction with the developer. Following are the
customer myths:
 Myth: A general statement of objectives is sufficient to begin writing
programs-we can fill in the details later.
Reality: A poor up-front definition is the major cause of failed software efforts.
A formal and detailed description of the functions, behavior, performance,
interfaces, design constraints, and validation criteria is essential.

 Myth: Project requirements continually change, but change can be easily


accommodated because software is flexible.
Reality: It is true that software requirements change, but the impact of change
varies with the time at which it is introduced. When changes are requested
during software design, the cost impact grows rapidly. Resources have been
committed and a design framework has been established. Change can cause

Notes By:Mr.Bhosle Ajit T.


Assistant Professor
MGM’S College of CS & IT,Nanded
heavy additional costs. Change, when requested after software is in production,
can be much more expensive than the same change requested earlier.

3) Practitioner’s Myths/Programmer Myths: Practitioners have following


myths:
 Myth: Once we write the program and get it to work, our main work is done.
Reality: Industry data indicate that between 60 and 80 percent of all effort
expended on software will be expended after it is delivered to the customer for
the first time.

 Myth: Until I get the program “running” I have no way of assessing its
quality.
Reality: One of the most effective software quality assurance mechanisms can
be applied from the inception of a project he formal technical review.

Notes By:Mr.Bhosle Ajit T.


Assistant Professor
MGM’S College of CS & IT,Nanded

You might also like