Nothing Special   »   [go: up one dir, main page]

Software Engineering:: Software Engineering Separately Consists of Two Words That Are Software and

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

Software Engineering:

What is the difference between computer science, computer


engineering and software engineering?

The three programs have common elements: they all stress an


understanding of both digital hardware and software, though to varying
degrees, and they all hone students' problem-solving skills. As well,
graduates of all three programs may compete for some of the same jobs.
However, the programs have different objectives.

 Computer Engineering (CE) deals with designing, developing, and


operating computer systems. At its core, Computer Engineering
concentrates on digital hardware devices and computers, and
the software that controls them. Advanced courses focus on
standard designs and techniques for specific application domains. In
contrast to CS and SE, Computer Engineering emphasizes
solving problems in digital hardware and at the hardware-
software interface.
 Computer Science (CS) focuses on understanding, designing, and
developing programs and computers. At its core, Computer Science
concentrates on data, data transformation, and algorithms.
Advanced courses present specialized programming techniques and
specific application domains. The CS program is less structured
than the CE and SE programs, giving students more flexibility
to build depth or breadth in a variety of application domains or
in the fundamentals of Computer Science.
 Software Engineering (SE) deals with building and maintaining
software systems. It is more software-oriented and has a
greater emphasis on large software applications than Computer
Engineering. It is more applied than Computer Science, placing
greater emphasis on the entire software development process, from
idea to final product. It is also more disciplined than Computer
Science, applying more systematic practices to help ensure that
products are reliable and safe.

Software Engineering separately consists of two words that are Software and

Engineering.
To understand Software Engineering we have to understand what is software?

And what is engineering? First

Who does it? Software engineers build it, and virtually everyone in the
industrialized world uses it either directly or indirectly.

Why is it important? Because it affects nearly every aspect of our lives


and has become pervasive in our commerce, our culture, and our everyday
activities. Example Railway Reservation System, Who uses this system? user
and developer both

What are the steps? You build computer software like you build any
successful product, by applying a process that leads to a high-quality result
that meets the needs of the people who will use the product. You apply a
software engineering approach.

What is the work product? From the point of view of a software engineer,
the work product is the programs, documents, and data that are computer
software. But from the user’s viewpoint, the work product is the resultant
information that somehow makes the user’s world better.

What is software:-
Software:
It refers to a program or set of programs and applications used to manage and

control various functions of a device such as a computer, unlike hardware, which

represents a physical part of a device, software is virtual.


or

Computer program and associated documentation. Software products may be

developed for a particular customer or maybe developed general market. By Ian

Somerville.

or

Software is-
1) Computer program that when executed provide desired features functions and

performance.

2) Data structure that enable the program to adequately manipulate information,

and

3) Detective information in both hard copy and virtual form that describes the

operation and use of program. By Rogers pressman.

Software:

It is more than just a program code. A program code which serves some

computational purpose. Software is considered to be collection of executable

programming codes, associated libraries and documentation.

Software, when made for a specific requirement is called Software Product.

What is engineering?
Engineering is all about developing products, using well defined, scientific

methods and principles.

Engineering in the application of scientific knowledge problem in Real world.


What is software engineering?

It is an Engineering branch associated with the development of software product

using well-defined scientific principles, method, and procedure. The outcome of

software engineering is an efficient and reliable software product.

So now in brief:

Engineering forces us to focus on Systematic, scientific and well defined

processes to produce "A Good Quality Product."

The application of a Systematic, Disciplined, Quantifiable approach, to the

development, operation and maintenance of software, and the study of these

approaches, that is the application of Engineering to software.


Program versus Software Product: Software as a dual Role
Today, software takes on a dual role. It is a product and, at the same time,
the vehicle for delivering a product.

 As a product, it delivers the computing potential to hardware or


Enables hardware to deliver expected functionality or acts as
information transformer i.e.
Business Information e.g. query retrieval software based on market
data and personal Information e.g. Salary cheque generation.
 As the vehicle used to deliver the product it helps in creation and
control of other programs. Eg. Operating System.

Program versus Software

Programs

Operating
Documentation Procedure

Software = Program + Documentation + Operating Procedures


Size:-

Programs:- they are usually small in size. They are lines of code or maybe 100 to

2000 lines codes on little more.

Software Product: Very big inside. The lines of codes are in thousands To lacs

maybe more, depends on Software Product.

Documentations:-

Programs:-There is no documentation or lack in documentation.

Software Product:- Proper documentation and well documented and user manual

prepared.

User:-

Programs:- Developer himself is sole user.

Software Product: Large or vast number of users.

Developer:-

Programs: Single developer or maybe 2 developer make a program.

Software Product: A proper and well trained team of developer indulge in

development.

User interface:-

Programs: There is no or lacks proper user interface.

Software Products: There is proper and full well designed user interface.
Development

Programs: - Unplanned, not Systematic i.e., ad hoc development.

Software Product: A well Systematic, organized, planned approach is used in

development.

Functionality:-

Programs: That provides Limited functionality and less features.

Software Products: It provides more functionality as they are big in size (lines of

codes) more options and features are provided.


Emergence of Software Engineering

History and Need of Software Engineering:

More focus on Hardware:- In early days of computing the primary concern was

that building or acquiring the hardware. If the software did not work, people

thought, it would be easy enough to change it until it did work. In that case, why

make the effort to plan?

Software cost consideration: The cost of software amounted to such a small

fraction of the cost of the hardware that no one considered it very important to

manage it development. People time was assume to save machine time. Making the

people process efficient received little priority.

Meeting people expectation:- when computing matured, programs become more

Complex and larger. A team effort is required for program to be routinely specified,

written, operated, and maintained so people's expectations would be fulfilled.

Exceeded cost: As program become large and complex and the time required to

write program and their costs began to exceed to all estimates.

Time development: Programmer started to take weeks, months or years longer

than expected to complete. The systems turned over the client frequently did not

work correctly because the money or time had run out before the program could be

made to work as originally intended.

Us military, several million dollar project was abandoned due to it could

never be made to work properly.

Quality concern: As computers and their programs were used for more vital tasks

like monitoring life support equipment, program quality also become new concern.
Change- expensive: Making a change within a complex program turned out to be

very expensive. It was quite easier to throw a program then to expect from program

to do thing different slightly.

Fast and Rapid change in hardware and software: As tubes were replaced by

transistors-> integrated circuits. The cost of hardware which had to be increased

was getting low. The time and cost to develop the software were no longer so small,

compared to hardware, that they could be ignored.

Wrong analysis of client requirements: Programmers were often thought they

had understood the client requirement. Once the program has been written, the

client begins to express distract dissatisfaction.

No satisfactory system: Unfortunately, until several years ago no good method of

representation existed to describe satisfactorily systems as complex as those that

are being developed today.

Software Crisis

There is lots of meaning of term software crisis. First of all we go in history and what

was the scenario at that time.

 Hardware Oriented World: There was more focus on the hardware and

software as people were more focusing on that how instructions can be

executed fast. Not on how bugs should be removed frequently.

 Cost: Hardware vs. Software

Rapid increase in software cost and Rapid fall in hardware cost need more

resources and well defined and systematic model for software development.

 Inexperienced Developer

Developer were hardly one year of experienced old so quite difficult for them

to fulfill all coding based requirement.

 Failures in Big project

Big failure in project cost government billions of dollars like


1) the North East blackout in 2003- has been major power system failures in the

history of north which involves 100 power plants, 50 million customer faced

problem, $ 6 million dollar financial loss.

2) Year 2000(Y2k) refers to the widespread snags in processing date after the

Year 2000. In 1960-80 when shortened the four digit date format like 1972 to a 2

digit format like 72 because of "Limited Memory. Because of that 2000 was

shortened to 00. Million dollar were spent to handle this problem.

3) Arian- 5 Space Rocket: In 1996, developed at cost of $7000 Million Dollars

over a period of 10 years was destroyed within less than 1 minute after its launch.

As there was software bugs in rocket guidance system.

4) "Dollar 924 lakhs": In 1996, US bank credit accounts of nearly 800 customer

with dollar 924 lakhs. This problem was due to main programming bug in the

banking system.

5)1991 during Gulf War, The USA use patriot missiles as a defence against Iraqi

scud missile. However, patriot failed to hit the scud many times with cost life of 28

USA soldiers .In an inquiry it is found that a small bug had resulted in

miscalculation of missile path.

 User changing requirement:

As user changes its requirement slightly as world and technology

changing rapidly.
What is Software Crisis:

The difficulty of writing the code for a computer program which is correct and

understandable is referred to as software crisis or Software crisis is also referred as

inability to hire enough qualified programmers.

You might also like