You are on page 1of 28

Lesson 1 Introduction to Software Engineering – AUB

Part 1 ENMG 644 - Agile Software Project Management

Introduction to
Software
Engineering
INTRODUCTION TO CHAPTER 1

Learning
outcomes, Part ◦ Understand the difference between a software product
and a program
1 ◦ Understand the types of a software product
◦ Get an overview of the types of software applications
◦ Review software engineering goals
◦ Introduce the quality metrics of good software
◦ Understand the need for software engineering

INTRODUCTION TO CHAPTER 1 2

Imad Moukadem, PhD 1


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Learning
outcomes, Part ◦ Understand the problems faced by software engineers
and the difficulties of building software
2 ◦ Understand the software crisis and the software
engineering remedy

INTRODUCTION TO CHAPTER 1 3

Learning ◦ Understand stakeholder roles and types


outcomes, Part 3 ◦ Have an overview of information systems and types of
information system applications

INTRODUCTION TO CHAPTER 1 4

Imad Moukadem, PhD 2


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Learning
outcomes, Part oUnderstand the professional software development
process
4 oHave an overview of the different process models and
understand how to choose between them

INTRODUCTION TO CHAPTER 1 5

Software in Real-
Life
PART I: INTRODUCTION TO
SOFTWARE

Imad Moukadem, PhD 3


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

◦ Understand the importance of software in real-life


Learning outcomes

SOFTW ARE IN REAL-LIFE 7

Introduction
oImagine a world without software, can you live in it?
oThink about all the devices and systems that you encounter in your everyday life which
have software controlling them

SOFTW ARE IN REAL-LIFE 8

Imad Moukadem, PhD 4


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

We can’t run

Introduction the modern


world without
software
There are many software in our daily environment

They all have computers in them

SOFTW ARE IN REAL-LIFE 9

Introduction
oNational infrastructures and utilities are controlled by computer-based systems
oThe economies of all developed nations are dependent on software
oMost electrical products include a computer and controlling software

SOFTW ARE IN REAL-LIFE 10

Imad Moukadem, PhD 5


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

How it all starts?


o Every software project is driven by a business need
o The need to correct a defect in an existing application
o The need to adapt a “legacy system” to a changing business environment
o The need to extend the functions of an existing application
o The need to create a new software product

SOFTW ARE IN REAL-LIFE 11

Legacy software
oLegacy software are up to 30 years old, but in full use in organizations today
oThey are often poorly documented
o Either because there was no documentation in the first place
o Or because the documentation is useless because it has not been kept up to date as changes have
been made

SOFTW ARE IN REAL-LIFE 12

Imad Moukadem, PhD 6


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Legacy software
Why must it change?
o Must be adapted to meet the needs of new IT environments or technologies
o Needs to be improved to implement new business requirements
o Needs to be extended to make it interoperable with other more modern systems or databases
o Needs to be redesigned to make it viable in a network environment

SOFTW ARE IN REAL-LIFE 13

Software vs.
Program
PART I: INTRODUCTION TO
SOFTWARE

Imad Moukadem, PhD 7


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

◦ Understand the difference between a software and a


program
Learning outcomes

SOFTW ARE VS. PROGRAM 15

Software‘ dual role (1/2)

Software is a product that

◦ Delivers computing potential


◦ Produces, manages, acquires, modifies, displays, or transmits information

SOFTW ARE VS. PROGRAM 16

Imad Moukadem, PhD 8


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Software‘ dual role (2/2)

Software is a vehicle for delivering a product

◦ Supports or directly provides system functionality


◦ Controls other programs (e.g., an operating system)
◦ Effects communications (e.g., networking software)
◦ Helps build other software (e.g., software tools)

SOFTW ARE VS. PROGRAM 17

What is Software? (1/3)

Programs

Software
System
Documentation

Data Documentation

User Documentation

SOFTW ARE VS. PROGRAM 18

Imad Moukadem, PhD 9


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

What is Software? (2/3)

oA program is an executable code, which serves some computational purpose


oSoftware is a collection of executable programming code, associated libraries and
documentations
oThey may be developed for a particular customer/organization or may be developed for
a general market
oSoftware comes in different shapes and sizes

SOFTW ARE VS. PROGRAM 19

What is Software? (3/3)

oSoftware is developed or engineered, it is not manufactured in the classical sense


oAlthough the industry is moving toward component-based construction, most
software continues to be custom-built

SOFTW ARE VS. PROGRAM 20

Imad Moukadem, PhD 10


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Software product
oSoftware, when made for a specific set of requirements is called software product
oSoftware products are delivered to the customer with the documentation that describes
how to install and use the system
oRepresents software which is licensed or otherwise offered, provided, distributed, made
available, commercialized, or is being developed to be commercially released

SOFTW ARE VS. PROGRAM 21

Program vs. Software Product (1/3)

Program Software Product


They are usually small in size. They are lines of code or Very big inside. The lines of codes are in thousands, maybe
Size
maybe 100 to 2000 lines codes ore little more more
User Developer himself is sole user Large number of users
Single developer or maybe 2 developers make a A proper and well-trained team of developer indulge in
Developer
program development
User interface There is no or lacks proper user interface There is proper and full well designed user interface
A well systematic, organized, planned approach is used in
Development Unplanned, not systematic
development
Proper documentation and well documented and user manual
Documentations There is no documentation or lack in documentation
prepared
Functionality Provides limited functionality and less features More options and features are provided

SOFTW ARE VS. PROGRAM 22

Imad Moukadem, PhD 11


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Program vs. Software Product (2/3)

Program Software Product


They are usually small in size. They are lines of code or Very big inside. The lines of codes are in thousands, maybe
Size
maybe 100 to 2000 lines codes on little more more
User Developer himself is sole user Large number of users
Single developer or maybe 2 developers make a A proper and well-trained team of developers indulge in
Developer
program development
User interface There is no or lacks proper user interface There is proper and full well designed user interface
A well systematic, organized, planned approach is used in
Development Unplanned, not systematic
development
Proper documentation and well documented and user manual
Documentations There is no documentation or lack in documentation
prepared
Functionality Provides limited functionality and less features More options and features are provided

SOFTW ARE VS. PROGRAM 23

Program vs. Software Product (3/3)

Program Software Product


They are usually small in size. They are lines of code or Very big inside. The lines of codes are in thousands, maybe
Size
maybe 100 to 2000 lines codes on little more more
User Developer himself is sole user Large number of users
Single developer or maybe 2 developers make a A proper and well-trained team of developer indulge in
Developer
program development
User interface There is no or lacks proper user interface There is proper and full well designed user interface
A well systematic, organized, planned approach is used in
Development Unplanned, not systematic
development
Proper documentation and well documented and user manual
Documentations There is no documentation or lack in documentation
prepared
Functionality Provides limited functionality and less features More options and features are provided

SOFTW ARE VS. PROGRAM 24

Imad Moukadem, PhD 12


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Software Types
PART I: INTRODUCTION TO
SOFTWARE

◦ Distinguish between different types of software


Learning outcomes

SOFTW ARE TYPES 26

Imad Moukadem, PhD 13


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Software types
We can distinguish the following major types of software:
oSystem software
oApplication software
oEngineering/scientific software
oEmbedded software
oWeb applications
oAI software

SOFTW ARE TYPES 27

System software
oSystem software is a collection of programs that provide service to other software
oInfrastructure software come under this category, like:
o Compilers
o Operating systems
o Editors
o Drivers

SOFTW ARE TYPES 28

Imad Moukadem, PhD 14


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Application software
oDesigned to solve user problems as per the user’s requirements
oExamples of application software:
o Word processing software
o Graphics software
o Spreadsheet software
o Presentation software

SOFTW ARE TYPES 29

Engineering/Scientific software
oThis software are used for carrying out calculations, modeling, prediction,
interpretation of engineering and statistical data, and decision making
oExamples of engineering/scientific software:
o MATLAB
o AUTOCAD
o PSPICE
o ORCAD

SOFTW ARE TYPES 30

Imad Moukadem, PhD 15


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Embedded software
oThese are software control systems that control and manage hardware devices

SOFTW ARE TYPES 31

Web applications
oThe software related to web applications come under this category.
oWeb applications execute on a browser that runs on top of an operating system.
oThe frontend of web applications is created using languages such as HTML, CSS, and
JavaScript.
oThe backend can be programmed using a variety of Frameworks/languages such as
Laravel/PHP, Node/Express, Python/Django or ASP.Net/C#.

SOFTW ARE TYPES 32

Imad Moukadem, PhD 16


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

AI software
oArtificial Intelligence (AI) software makes use of non numerical algorithms to solve
complex problems that are not amenable to computation or straight forward analysis
oExamples of AI software:
o Speech & Voice Recognition
o Virtual Assistant
o Personalized shopping
o Autonomous vehicles

SOFTW ARE TYPES 33

Attributes of
Good Software
PART I: INTRODUCTION TO
SOFTWARE

Imad Moukadem, PhD 17


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

◦ Understand the operational, transitional & maintenance


quality attributes of a good software
Learning outcomes

OPERATIONAL ATTRIBUTES OF GOOD SOFTW ARE 35

Essential attributes of good software (1/2)

oFunctional attributes (what the system does)


oNon-functional attributes (quality; how the system does it)

OPERATIONAL ATTRIBUTES OF GOOD SOFTW ARE 36

Imad Moukadem, PhD 18


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Essential attributes of good software (2/2)

oA software product can be judged by what it offers and how well it can be used
oThis software must satisfy the following criteria:
◦ Operational
◦ Transitional
◦ Maintenance

OPERATIONAL ATTRIBUTES OF GOOD SOFTW ARE 37

Operational attributes
oThis tells us how well the software works in operations
oIt can be measured on:
o Usability
o Efficiency
o Correctness

OPERATIONAL ATTRIBUTES OF GOOD SOFTW ARE 38

Imad Moukadem, PhD 19


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Usability
oIt is the degree to which a software can be used by specified consumers to achieve the
desired objectives with satisfaction

OPERATIONAL ATTRIBUTES OF GOOD SOFTW ARE 39

Efficiency
oAs, doing the objective effectively and correctly
oIt can be defined as, using the resources optimally where resources could be CPU and
memory consumption, and response time

OPERATIONAL ATTRIBUTES OF GOOD SOFTW ARE 40

Imad Moukadem, PhD 20


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Correctness
oA software is correct if it always produces the correct result, when given valid inputs

OPERATIONAL ATTRIBUTES OF GOOD SOFTW ARE 41

Transitional attributes
oThis aspect is important when the software is moved from one platform to another
oIt can be measured on:
o Portability
o Reusability
o Interoperability

TRANSITIONAL ATTRIBUTES OF GOOD SOFTW ARE 42

Imad Moukadem, PhD 21


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Portability
oIt means the ability to move a software from one type of computer to another with the
minimum effort

TRANSITIONAL ATTRIBUTES OF GOOD SOFTW ARE 43

Reusability
oIt is the process of creating software systems from predefined software components

TRANSITIONAL ATTRIBUTES OF GOOD SOFTW ARE 44

Imad Moukadem, PhD 22


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Interoperability
oIt is the ease with which a software is used with other software systems
oLack of interoperability requires manual intervention to synchronize data between
different systems. For example, exporting a list of items through PDF from Software A to
be manually inserted in Software B.

TRANSITIONAL ATTRIBUTES OF GOOD SOFTW ARE 45

Maintenance attributes
oThis aspect briefs about how well a software has the capabilities to maintain itself in
the ever-changing environment
oIt can be measured on:
o Modularity
o Maintainability
o Flexibility
o Scalability

M AINTENANCE ATTRIBUTES OF GOOD SOFTW ARE 46

Imad Moukadem, PhD 23


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Modularity
oIt refers to the extent to which a software may be divided into smaller programs

M AINTENANCE ATTRIBUTES OF GOOD SOFTW ARE 47

Maintainability
oIt is defined as the degree to which the software is understood, repaired, or enhanced

M AINTENANCE ATTRIBUTES OF GOOD SOFTW ARE 48

Imad Moukadem, PhD 24


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Flexibility
oIt is the ability for the software to adapt to possible or future changes in its
requirements

M AINTENANCE ATTRIBUTES OF GOOD SOFTW ARE 49

Scalability
oIt refers to designing software systems in such a manner that, as the number of users
of the system increases, the software will continue to function with comparable
response times

M AINTENANCE ATTRIBUTES OF GOOD SOFTW ARE 50

Imad Moukadem, PhD 25


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Software Product
Specification
PART I: INTRODUCTION TO
SOFTWARE

◦ Understand the difference between generic and


customized software
Learning outcomes

SOFTW ARE PRODUCT SPECIFICATION 52

Imad Moukadem, PhD 26


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Generic products (1/2)

oThese are stand-alone systems that are produced by a development organization and
sold on the open market to customers
oExamples of this type of product include software for PCs such as databases, word
processors, drawing packages, and project-management tools

SOFTW ARE PRODUCT SPECIFICATION 53

Generic products (2/2)

oThe specification of what the software should do is owned by the software developer
and decisions on software change are made by the developer

SOFTW ARE PRODUCT SPECIFICATION 54

Imad Moukadem, PhD 27


Lesson 1 Introduction to Software Engineering – AUB
Part 1 ENMG 644 - Agile Software Project Management

Customized products (1/2)

oThese are systems that are commissioned by a particular customer


oExamples of this type of software include control systems for electronic devices,
systems written to support a particular business process, and air traffic control systems

SOFTW ARE PRODUCT SPECIFICATION 55

Customized products (2/2)

o The specification of what the software should do is owned by the customer for the
software and they make decisions on software changes that are required

SOFTW ARE PRODUCT SPECIFICATION 56

Imad Moukadem, PhD 28

You might also like