Introduction To Software Engineering
Introduction To Software Engineering
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?
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.
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