34
Engineering Economy (Introduction & Goals of Software) Dr. Mohamad Al - Dabbagh (Chapter 1) 1

(Introduction & Goals of Software) - lecture-notes.tiu.edu.iq

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Engineering Economy(Introduction & Goals of Software)

Dr. Mohamad Al-Dabbagh

(Chapter 1)

1

Outline− Introduction

− Software Engineering

− Software Trends

2

− Software Quality

− GOALS Approach

Dr. Mohamad Aldabagh

Introduction

− What is Software?

− Software is more than just a program code. A

program is an executable code

− Software, when made for a specific

requirement is called software product.3Dr. Mohamad Aldabagh

Introduction

− Software product:

4Dr. Mohamad Aldabagh

Introduction− What is Economics?

− The dictionary defines “economics” as “ a

social science concerned chiefly with

description and analysis of the production,

distribution, and consumption of goods &

services”5Dr. Mohamad Aldabagh

Introduction

− What is Software Economics?

− Software Economics is the field that seeks to

enable significant improvements in software

design and engineering through economic

reasoning about product, process, program, and

portfolio and policy issues6Dr. Mohamad Aldabagh

Introduction

− Develop Software

7Dr. Mohamad Aldabagh

Introduction− Needs of Software:− 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.8Dr. Mohamad Aldabagh

Introduction− Needs of Software:− Cost: As hardware industry has shown its skills and

huge manufacturing has lower down the price of

computer and electronic hardware. But the cost of

software remains high if proper process is not adapted.

9Dr. Mohamad Aldabagh

− Software Cost:

Introduction

10Dr. Mohamad Aldabagh

− Software Cost:

Introduction

11Dr. Mohamad Aldabagh

v What is Software Engineering?

Software Engineering

− Our definition of software engineering is based on the definitionsof software and engineering:

12

• Software: is the entire set of programs, procedures, and relateddocumentation associated with a system and especially a computersystem.

• Engineering is the application of science and mathematics by whichthe properties of matter and the sources of energy in nature are madeuseful to man in structures, machines, products, systems, andprocesses

Ø Software engineering is the application of science and mathematicsby which the capabilities of computer equipment are made useful toman via computer programs, procedures, and associateddocumentation.

− we can combine the two definitions above as follows:

Dr. Mohamad Aldabagh

v What is Software Engineering?

Software Engineering

− This definition of software engineering contains two key points:

13

1. First, our definition of software includes a good deal more thanjust computer programs.

− learning to be a good software engineer means a good dealmore than learning how to generate computer programs

− It also involves learning the skills required to produce gooddocumentation, data bases, and operational procedures forcomputer systems.

Dr. Mohamad Aldabagh

v What is Software Engineering?

Software Engineering

− This definition of software engineering contains two key points:

14

2. The second key point is the phrase "useful to man.”.

− From the standpoint of practice, this phrase places a responsibilityupon us as software engineers to make sure that our software productsare indeed useful to people.

− If we accept an arbitrary set of specifications and turn them into acorrect computer program satisfying the specifications, we are notdischarging our full responsibility as software engineers.

− Thus, concerns for the social implications of computer systems are partof the software engineer's job

− We must also apply our skills and judgment to the job of developing anappropriate set of specifications, to sure the outputs of software areuseful to society.

Dr. Mohamad Aldabagh

v What is Software Engineering?

Software Engineering

− This definition of software engineering contains two key points:

15

2. The second key point is the phrase "useful to man.”.

− From the standpoint of learning, the phrase "useful to man" impliesthat the science and mathematics involved in software engineeringcovers a good deal more than basic computer science.

− For something to be useful to people, it must satisfy a human need ata cost that society can afford. The science and mathematics of humaneconomics presented to provide an opportunity to learn some ways tohandle the cost and human-needs aspects of a software engineeringproblem, and to integrate them with the computer science aspects.,

Dr. Mohamad Aldabagh

v Cost

Software Trends

− The way we perform software engineering determines the costand the quality of the software produced. This makes softwareengineering important because of the following two trends:

16

1. Software is a large and increasingly costly item

− The annual cost of software in the U.S. in 1980 wasapproximately 40 billion dollars, or about 2% of the GrossNational Product.

2. Software makes a large and increasing impact on humanwelfare

− computer software grew to 8.5% of the GNP by 1985, and to13% of the GNP by 1990.

Dr. Mohamad Aldabagh

v Cost

Software Trends

17− Gartner’s Forcast For 2018 Worldwide Dollar-valued It SpendingDr. Mohamad Aldabagh

v Cost

Software Trends

18− The Iceberg ModelDr. Mohamad Aldabagh

v Cost

Software Trends

− This growth in demand for software creates a tremendouschallenge for the software engineering profession.

19

− The challenge is twofold:− first, to significantly increase software development productivity;− and second, to increase the efficiency of software maintenance.

Dr. Mohamad Aldabagh

v Social Impact

Software Trends

− Computers and software are making an even deeper impact onour personal lives.

20

− With every passing day, more and more of our personal records,bank accounts, community services, traffic control, air travel,medical services, and national security are being entrusted to thehopefully reliable and humane functioning of computers andsoftware.

Dr. Mohamad Aldabagh

v Social Impact

Software Trends

− This increasing impact on human welfare presents severaltremendous challenges for the software engineering profession.

− They are to develop and maintain software which ensures thatcomputer systems are:

21

• Extremely reliable• Humane• Easy to use• Hard to misuse• Auditable

Dr. Mohamad Aldabagh

v Software Quality :

Software Quality

− The measurement of software quality is − at a structural level, − and the functional level through testing.

22

− Differences of Software Quality− Software quality does not mean the same thing to a customer as it

does to a developer.

− Economic value has a different meaning to vendors than it has toconsumers.

• For vendors, revenue is the key element of value

• For consumers, operational factors represent primary value

Dr. Mohamad Aldabagh

Software Quality v Why is software quality important?

1. Number of users

− More than 93 million Americans are daily computerusers (2010).

− About 65% of the U.S. population use embedded software inthe form of smart phones, digital cameras, digital watches,home appliances,.. etc.

23

2. Software everywhere

− Almost 100% of the U.S. population has personal data storedin various online databases, such as state governments, banks,insurance companies, credit card companies,… etc.

Dr. Mohamad Aldabagh

Software Quality v Why is software quality important?

3. Business

− United States has more than 22 Millions companies(2011).

− About 65% of companies use computers and software forbusiness operations, retail sales, accounting, and otherpurposes.

24

4. Military

− The US Department of Defense (DoD) own and deploy moresoftware than any other organizations in history.

− The DoD probably owns and deploys more software than themilitary organizations of all other countries combined.

Dr. Mohamad Aldabagh

Software Quality v Why is software quality important?

5. Costs to find software bugs

− Due to poor quality control, about 1 Million of workers spend theday finding and fixing bugs (and, unwittingly, injecting new bugs aspart of the process).

25

6. The poor quality of software can effect on people

− Every time there is a billing error, every time taxes aremiscalculated, every time credit ratings change for incorrectreasons, hospital makes a medical mistake, airline flight isdelayed more than about 2 hours.

− The poor software quality is part of the problem.

Dr. Mohamad Aldabagh

Software Quality v Why is software quality important?

7. Our daily jobs require high-quality software

− Workers in the modern world are heavily dependent on computersand software to perform their jobs.

26

8. Security of personal information.

− Dozens of government agencies and thousands of companieshave personal information about us stored in their computers.

− Number of U.S. cyber attacks increased from about 43,000 in2008 to more than 80,000 in 2009, more than 10,000 in 2011

− The Every time there is a computer failure or a software failure,many knowledge workers will have to stop their jobs until repairsare made.

Dr. Mohamad Aldabagh

Software Quality v Why is software quality important?

9. Costs of failure

− Failed project cost for U.S in 1998– Estimated at $80 billion.

27

− Failed project cost for U.S in 2016– Estimated at $11 Trillion.

− The average cost in 2011 for cancelled projects is about$35,000,000.

Dr. Mohamad Aldabagh

GOALS Approachv Software Engineering Goal Structure

28Dr. Mohamad Aldabagh

GOALS Approachv Software Engineering Goal Structure

1. Achieving a successful software product.

29

− If we wish to be fully successful in software engineering, we needto pay attention to two primary sub-goals:

2. Conducting a successful software development andmaintenance process.

− Each of these sub-goals has three similar components:• Human relations• Resource engineering• Program engineering

− successful software engineering is the result of achieving anappropriate balance between these sub-goals, for both the softwareproduct and the software processDr. Mohamad Aldabagh

GOALS Approachv What is GOALApproach?

30

− The GOALS (Goal-Oriented Approachto Life-cycle Software) approach tosoftware engineering is the process bywhich the software engineering goalstructure of Fig. 3-5 can be used to guidehow we specify, develop, and maintainsoftware. he overall approach wasillustrated in Fig. 3-1

Dr. Mohamad Aldabagh

GOALS Approachv What is GOALApproach?

31Dr. Mohamad Aldabagh

GOALS Approachv Example of GOALApproach:

32Dr. Mohamad Aldabagh

Questions & Answers

33Dr. Mohamad Aldabagh

34Dr. Mohamad Aldabagh