You are on page 1of 14

Introduction to

Software Engineering?
JAHANGIR ALI
What is Software Engineering?

Software engineering is a concept in and of itself, but to better understand it, you need to know
what each part of the term means before you can fully understand how they operate together.
Software engineering has two parts: software and engineering.
Software is a collection of codes, documents, and triggers that does a specific job and fills a
specific requirement.
Engineering is the development of products using best practices, principles, and methods.
Software Engineering It is a branch of engineering that deals with the development of software
products. It operates within a set of principles, best practices, and methods that have been
carefully honed throughout the years, changing as software and technology change. Software
engineering leads to a product that is reliable, efficient, and effective at what it does. While
software engineering can lead to products that do not do this, the product will almost always go
back into the production stage.
What is Software Engineering?
The IEEE(Institute of Electrical and Electronics Engineers) fully 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.
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.
 Large software - It is easier to build a wall than to a house or building, likewise, as the size of software
become 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 he price of
computer and electronic hardware. But the cost of software remains high if proper process is not adapted.
 Dynamic Nature- The always growing and adapting nature of software hugely depends upon the
environment in which user works. If the nature of software is always changing, new enhancements need to
be done in the existing one. This is where software engineering plays a good role.
 Quality Management- Better process of software development provides better and quality software product.
What was the Software Crisis?

 It was in the late 1960s when many software projects failed.


 Many software became over budget. Output was an unreliable software which is
expensive to maintain.
 Larger software was difficult and quite expensive to maintain.
 Lots of software not able to satisfy the growing requirements of the customer.
 Complexities of software projects increased whenever its hardware capability
increased.
 Demand for new software increased faster compared with the ability to generate new
software.
All the above issues lead to ‘Software Crisis.’
The Solution
Solution was to the problem was transforming unorganized coding effort into a
software engineering discipline. These engineering models helped companies
to streamline operations and deliver software meeting customer requirements.
 The late 1970s saw the widespread uses of software engineering principles.
 In the 1980s saw the automation of software engineering process and
growth of (CASE) Computer-Aided Software Engineering.
 The 1990s have seen an increased emphasis on the ‘management’ aspects of
projects standard of quality and processes just like ISO 9001
Why Software Engineering is Popular?
 Large software – In our real life, it is quite more comfortable to build a wall than a house or building. In
the same manner, as the size of the software becomes large, software engineering helps you to build
software.
 Scalability- If the software development process were based on scientific and engineering concepts, it is
easier to re-create new software to scale an existing one.
 Adaptability: Whenever the software process was based on scientific and engineering, it is easy to re-
create new software with the help of software engineering.
 Cost- Hardware industry has shown its skills and huge manufacturing has lower the cost of the computer
and electronic hardware.
 Dynamic Nature– Always growing and adapting nature of the software. It depends on the environment in
which the user works.
 Quality Management: Offers better method of software development to provide quality software
products.
Why Software Engineering is Popular?
Relationship of Software Engineering with Other Disciplines

Here, how software engineering related to other disciplines:


 Computer Science: Gives the scientific foundation for the software as electrical engineering
mainly depends on physics.
 Management Science: Software engineering is labor-intensive work which demands both
technical and managerial control. Therefore, it is widely used in management science.
 Economics: In this sector, software engineering helps you in resource estimation and cost
control. Computing system must be developed, and data should be maintained regularly
within a given budget.
 System Engineering: Most software is a component of a much larger system. For example,
the software in an Industry monitoring system or the flight software on an airplane.
Software engineering methods should be applied to the study of this type of systems.
Summary

 Software engineering is a process of analyzing user requirements and then designing, building, and testing software
application which will satisfy that requirements
 Important reasons for using software engineering are: 1) Large software, 2) Scalability 3) Adaptability 4) Cost and 5)
Dynamic Nature.
 In late 1960s many software becomes over budget. Therefore it offers unreliable software which is expensive to
maintain.
 The late 1970s saw the widespread uses of software engineering principles.
 Software engineering concept 1) Computer Science 2) Management Science 3) System engineering and 4) Economics
 Increased market demands for fast turnaround time is the biggest challenges of software engineering field.
 1)Maintainability, 2) Dependability, 3) Efficiency and, 4) Usability are the most important attributes of software
products.
 Three most important characteristics of good software are 1) Operational 2)Transitional 3)Maintenance.
What does a Software Engineer do?
Software engineering is a branch of computer science that includes the
development and building of computer systems software and applications
software. Computer systems software is composed of programs that include
computing utilities and operations systems. Applications software consists of
user-focused programs that include web browsers, database programs, etc.

Software engineers have extensive knowledge of programming languages,


software development, and computer operating systems, and they apply
engineering principles to software creation.
By applying these engineering principles to every stage of the development
process, from requirements analysis to the software process, they can create
customized systems for individual clients. Just as a civil engineer will make sure
that a bridge has a solid foundation, a software engineer will also begin with a
thorough study of requirements and work through the development process in a
systematic way.
What does a Software Engineer do?
Software engineers must also possess interpersonal skills, and be able to effectively communicate
with users in order to train, test, and debug software all the way to the end product. They are often
involved from the early stages of software planning right through to the testing, development,
training, and support stages.
Software engineers can be divided into two categories:

Applications Engineers
Applications engineers create or adapt applications for businesses and organizations by analyzing the end
user's needs. They will design, build, install, and maintain these applications or programs.
Systems Engineers
Systems engineers coordinate the creation, maintenance and growth of a business or organization's computer
systems. They coordinate each department's needs, suggest technical direction, and set up any networks that
link up computers with the company.
Being a software engineer is a great career choice for someone who is exceptionally good at both left and
right-brained thinking (analytical skills as well as problem-solving skills). Software engineers are instinctive
problem-solvers, good at working with others and focused on seeing issues through to their successful
completion.
A software engineer should be well-versed in:
 Programming and coding
 Fundamentals of computer science
 Design and architecture
 Algorithms and data structures
 Information analysis
 Debugging software
 Testing software

You might also like