0% found this document useful (0 votes)
5 views10 pages

Lecture Notes - Introduction To Software Engineering

This document introduces software engineering, explaining its importance, methodologies, and the challenges faced in building software products. It highlights the complexity of software development, the need for a methodical approach, and the various career opportunities in the software industry. Additionally, it emphasizes the ethical responsibilities of software engineers in their work.

Uploaded by

feras766500
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)
5 views10 pages

Lecture Notes - Introduction To Software Engineering

This document introduces software engineering, explaining its importance, methodologies, and the challenges faced in building software products. It highlights the complexity of software development, the need for a methodical approach, and the various career opportunities in the software industry. Additionally, it emphasizes the ethical responsibilities of software engineers in their work.

Uploaded by

feras766500
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

2/23/2026

1
CS-0901341

Software Engineering
Chapter 1: Introduction to Software Engineering

Instructor:
Prof. Omar Shatnawi

Prince Hussein bin Abdullah College for Information Technology

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,

Chapter 1 CRC Press – Taylor & Francis, 2016 2


Introduction to Software Engineering

 This chapter provides an overview of software engineering and points at emerging


trends that influence the way software is developed.
 In this chapter, you will learn
 What computers are
 What software engineering is
 Why software engineering is important
 Challenges in building software products
 Software engineering careers
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 3
What Computer are

 In today’s world, the computer benefits can not be denied. It provides


support in every aspect of life.
 A computer is made of hardware and software parts. While hardware engineers
make hardware parts, software engineers create software parts of a computer.
 Software engineers can create software products using software engineering
techniques much like a civil engineer building an apartment building using
civil engineering techniques.
 For building a small software product, knowledge of software engineering is not
needed much like when a small log cabin needs to be built, then expertise in
civil engineering is not needed.
 But when a large software product needs to be built then sound software
engineering techniques are required. It is similar to the case when civil
engineering techniques are needed for building a large apartment building.

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 4
Building an Apartment vs
Building a Software Product

Objectives of building an apartment building Objectives of building a software product


using a project using a project
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 5
What Software Engineering is

 Software engineering can be defined as the study and application of


engineering to the design, development, and maintenance of software
products.
 The keyword here is engineering. Engineering always connotes two
things: designing a product in detail and a methodical approach to
carrying out the design and production
 So that the product is produced with the desired qualities and a large
number of people can use it.
 Software engineering thus annotates building a software product with a
detailed design, and at the same time, the tasks of designing and
building will involve a methodical approach at each and every step.

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 6
What Software Engineering is …. cont.

 As a note, software engineering is not only limited to creating new


products.
 Existing software products need maintenance.
 Maintenance includes activities such as correcting the defects in a
product, enhancing the capabilities of a product, and removing the
outdated features from a product.
 As a comparison, consider, again, the apartment example. An
apartment needs maintenance such as fixing water leaks and
installation of a security system.
 Software maintenance is also a part of software engineering.
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 7
Why Software Engineering is Important

 Reduction of Development Costs


 Software engineering helps reduce the cost of development by reusing
the existing code, using better tools, and following sound software
engineering practices.
 Reduction of Development Time
 The availability of better development tools and awareness of better
software engineering practices, enhance the productivity of the project
team, which allows the faster development of software products.
 Increasing the Quality
 Software engineering plays an important role in building quality software
products. By using better software engineering methodologies and
tools, it is possible to build better-quality software products.

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 8
Software Engineering Processes &
Software Industry Focus
 Software engineering is a methodology consisting of processes including
 core processes include requirement gathering and specification, design,
construction (coding), testing, and release.
 Peripheral processes include feasibility studies, configuration management,
maintenance, and project management.
term definition
process a hierarchical collection of process steps; hierarchical means that a process step can in turn
have sub-steps.
process step one of the activities of a software process, for example "Analyze and Specify Software
Requirements" is a step; for clarity and consistency of definition, process steps are named
with verbs or verb phrases.
software artifact a software work product produced by a process step; for example, a requirements
specification document is an artifact produced by the "Analyze and Specify" step; for clarity
and consistency, process artifacts are named with nouns or noun phrases
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 9
Software Engineering Processes &
Software Industry Focus …. cont.
 Any industry produces products keeping in focus to increase product quality
and reduce product cost. These goals are achieved by using more
automation and improving production processes.
 Software engineering industry achieves the same goals by improving
software engineering processes and using more productive methods like
reusable libraries, improved development infrastructure etc.
 Development of a software product takes a lot of time: to the tune of many
months to many years.
 Reducing time to develop a software product is also a goal for any
software project team and can be achieved by employing the same
above-mentioned techniques.

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 10
Challenges in Building Software Products

 Even though software engineering provides solutions for building software


products nevertheless it is not easy to do so. The foremost problem
encountered in developing a software product is the complexity.
 This complexity comes from the large size of requirements. The minute users
of the software product want more detailed output from the software product,
the complexity in designing the software product increases manifold.
 As the complexity and size of the user requirements increase, the design and
implementation sizes of the product also increase. This increase in
complexity and size is the main problem associated with the development of
software products.
 This is the reality that most of software product development projects face.
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 11
Challenges in Building Software Products …. cont.

 For example a simple visitor counter on a website may provide


information about number of visitors on the website. Building such a visitor
counter will be very simple.
 But if a user wants information about country, web browser used,
operating system used etc. about each visitor to the website then the
design of the software product will become very complex.
 If you add some more user requirements like number of hits per year, per
day and per month, number of unique visitors etc.
 Then the design for the software product for visitor counter will indeed
become very challenging.

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 12
Software Engineering &
Software Project Management

 Software products are built using software projects because building a


software product is not like producing a mobile phone in a factory. Rather
building a software product is more like building an apartment building.
 In both these cases, there is a definite start date and an end date.
 At the same time; the time required to build an apartment building or a
software product is large (to the tune of months to years).
 Building a software product indeed is a labor intensive work.
 Software engineering processes are embedded inside project management
processes. This is done to ensure that software engineering can be used to
build software products using a software project.
 Thus, both project management and software engineering are needed to
develop a new software product or maintain an existing software product.
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 13
Software Engineering Methodologies
(methodology ≈ model ≈ approach)

 Software engineering processes can be used in many ways. It depends on


the kind of project being undertaken as well as on how the software
product will be built.
 If software product needs to be built incrementally then any of the many
popular agile methodologies such as eXtreme Programming (XP),
Scrum, and Rational Unified Process (RUP used by Eclipse platforms) will
be used.
 If a complete software product needs to be built under one large project
then a Waterfall based software engineering methodology will be used.
 There are many factors that need to be considered in deciding which
model is best suited for a given project. (more details in Chapter 2.).

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 14
Careers in Software Industry

 Software engineering provides many avenues of careers. A person can


work on a software project as a software engineer, business analyst,
database administrator, software designer, software developer, software
tester, user interface designer etc.
 Well experienced people can also become software project managers.
 Most of the careers related to software engineering are well paid.
 People with skills related to software engineering are also always in high
demand.
 New careers are emerging as new software technologies emerges.
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 15
Software Industry Size

 The software industry is a large and fast-growing industry, where millions of


people are currently employed.
 Billions of people use computers, the Internet, and cell phones, and play
games every day. All these items use software in one way or another.
 The size of the software industry in the United States stood at US$131 billion in
2014. There are more than 100,000 software companies registered in the
United States that cater to software development, software maintenance,
and other software-related services.
 These companies hire software engineers, software architects, software
testers, software project managers, business analysts, and so on.
 The total number of people employed with these software companies is
in excess of 2 million in the United States alone.

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 16
Ethics & Software Engineering

 Many modern fields of human activity touch lives of many people. If a person
employed in one of these fields has mala fide intentions or employs bad ethics,
can damage lives of many people.
 For example, the power of medical science can easily be misused to destroy lives instead
of saving them.
 Therefore, the medical practitioners, including doctors and health professionals, abide by
a code of ethics to prevent misuse by their profession.
 Software products also touch lives of many people and it can be misused to
harm people.
 For example, malware can be created to steal money from bank accounts of other
people. Similarly, viruses can be created to infect the computer systems of other
people.
 Thus, a software engineer needs to abide by a code of ethics to work for the
betterment of humanity and not to harm others.
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 17
Summary

 Software engineering is a branch of computer science that is used for


building commercial-grade software products.
 Software engineering methodologies consist of a set of well-defined
processes for collecting and preparing the requirements and then
designing, building, and testing the software products.
 The process of building or maintaining a software product is similar to
the processes that are used to construct an apartment building.
 Most software projects are large in nature; thus, they require a team of
software professionals to perform specialized tasks such as
 Analysis, design, construction (also known as coding or
implementation), testing, and maintenance.

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 18
Summary …. cont.

 Software product development is not an easy task because of the


complexity of the products, difficulty in learning the technology,
immaturity of available processes, and intangibility of these products.
 To address these challenges, relatively new and easy-to-handle
technologies, such as object-oriented design and multilayered product
architecture, are being widely used.
 The software industry is large and it employs millions of people worldwide.
 Software engineers and all types of professionals engaged in building or
maintaining the software products are always in demand and are well paid.
2/23/2026

@ Foundation of Software Engineering, A. Ahmed and B. Prasad,


CRC Press – Taylor & Francis, 2016 19
Questions

 What is software engineering? Explain with some examples.


 What is a computer? Explain some advantages of computers.
 What is a software engineering methodology?
 Why is the cost of building software products so high?
 Why is the task of building software products difficult?
 What are the remedies to mitigate the challenges in building software?
 What career options are available to software engineers?
 What is a software project?

You might also like