01- Introduction to Software Engineering

34
1 ن الرحيم الرحم بسمIntroduction to Software Engineering Prepared By: Eng.\ Tarig Ahmed Khalid, M.Sc., PMP , CEC, CBAP , MIEEE General Manager, Financial & Banking Systems Co. (FBS)

Transcript of 01- Introduction to Software Engineering

Page 1: 01- Introduction to Software Engineering

1

بسم هللا الرحمن الرحيم

Introduction to

Software Engineering

Prepared By:

Eng.\ Tarig Ahmed Khalid, M.Sc., PMP, CEC, CBAP , MIEEE

General Manager, Financial & Banking Systems Co. (FBS)

Page 2: 01- Introduction to Software Engineering

2

Name 4 non- American/ non –European

software companies that have international

existence.

Page 3: 01- Introduction to Software Engineering

3

Software Terminologies

Programmer Vs. Developer

Programmer Vs. Software Engineer

System Analyst Vs. Business Analyst

System Designer Vs. System Architect

Software Engineering Vs. Computer Science

Software Engineering Vs. System Engineering

Page 4: 01- Introduction to Software Engineering

4

Discussion

Do you feel that there are major problems facing

the software industry in Sudan?

Explain?

Do you think that the availability of good

analysts/designers/programmers is quite

sufficient to create successful software industry?

Page 5: 01- Introduction to Software Engineering

5

Successful Software Projects

Successful projects always finish:

within the planned duration Schedule

within the estimated budget Cost

up to the customers’ requirements Quality

Page 6: 01- Introduction to Software Engineering

6

Software Product Life Cycle

Product or Service Project Strategy

1. Business Strategy

2. Business Goals

3. Feasibility + ROI

4. IT Strategy

5. IT Goals

1. Development

Lifecycle

2. Project Management

1. IT Operations

a. Maintenances

b. Upgrading

c. Scrapping

Business Strategy

IT Strategy Successful IT Projects Sustainable IT Operations

Page 7: 01- Introduction to Software Engineering

7

Software Development Project Life Cycle

Initiating Planning Executing Closing

Monitoring & Controlling

Project Phase (Life Cycle)

Page 8: 01- Introduction to Software Engineering

8

Standish Group Survey:

72% of IT projects come in late, over budget, or

not at all

– 26% of the IT projects cancelled before

completion

– 46% were behind schedule, over budget, or

both

• 52% of the IT projects cost 189% of its original

estimates

16.2% of the IT projects are completed on time and

on budget.

Page 9: 01- Introduction to Software Engineering

9

Failure Stories

Oregon Department of Motor Vehicles (DMV) Automation

Project

Objectives:

Downsize the workforce by 20%

Save 7.5 M$ annually

Start date: 1993 Estimated end date: 1998

Budget: 50 M$

In 1995:

Re-estimated end date: 2001 (60% slippage)

Re-estimated total budget: 123 M$ (146% slippage)

In 1996:

Total Failure

Project was cancelled

DMV officials were fired

Page 10: 01- Introduction to Software Engineering

10

Failure Stories….. Washington State: License Application Mitigation Project (LAMP)

Objectives:

Automating the state vehicles registration & renewal processes

Start date: 1991 Estimated end date: 1995

Estimated Budget: 16 M$

In 1992:

Re-estimated total budget: 41.8 M$

In 1993:

Re-estimated total budget: 51 M$

In 1997:

Re-estimated total budget: 67.5 M$

40 M$ was lost without result

Annual cost of manual process: 800,000 $

Estimated annual cost of automated process: 5 M$ ??????

Project was killed Washington State officials were fired

Page 11: 01- Introduction to Software Engineering

11

Why do software projects fail?

1. Lack of top management commitment.

2. Lack of vision: some projects do not meet the strategic vision of

the company.

3. Poorly Defined Requirements

4. Poor staffing

5. Poor project planning.

6. Insufficient funding, and incorrect budgeting.

7. No formal Project Management methodologies.

8. Use of new/unproven technology

9. Lack of stakeholders commitment.

10. Lack of public acceptance (negative media)

11. Etc……….

Page 12: 01- Introduction to Software Engineering

12

Page 13: 01- Introduction to Software Engineering

13

Knowledge, Standards, and Regulations

Each profession has a set of accepted standards and

practices, often codified in regulations.

Standards: “document established by consensus and

approved by a recognized body that provides guidelines or

characteristics for activities or their results, aimed at the

achievement of the optimum degree of order in a given

context”.

Regulations: “a government-imposed requirements,

which specify product, process or service characteristics,

including the applicable administrative provisions, with

which compliance is mandatory”.

Page 14: 01- Introduction to Software Engineering

14

Important Definitions

Specification: A document that prescribes, in a

complete, precise, and verifiable manner, the

requirements, design, behavior, or characteristics of a

system/system component.

De Facto Standards: Specifications that emerge as

standards because of popular use.

De Jure Standards: Specifications released by an

accredited standards development organization.

Page 15: 01- Introduction to Software Engineering

15

Benefits of Standards

1. Market growth for new and emerging technologies

2. Reduced development time and cost

3. Common practices

4. Decreased trading costs and lowered trade barriers

5. Increased product quality and safety

6. Reduced market risks

7. Protection against obsolescence

Page 16: 01- Introduction to Software Engineering

16

Development of Standards

Standards -----------

-----------

-----------

-----------

Consensus

Approved by Recognized Body

1. Knowledge Guide to the Body of Knowledge

2. Accreditation Certification (Career Development)

3. Ethics Code of Ethics

Page 17: 01- Introduction to Software Engineering

17

Software Engineering Organizations

1. Software Engineering Institute (SEI):

web site: www.sei.cmu.edu

Part of Carnegie Mellon University

Established in 1984

Purpose: is to help organizations to:

1. improve their software engineering capabilities

2. develop or acquire the right software, defect free, within budget and on time, every time.

Famous Standards:

1. CMMI

2. People CMMI

Page 18: 01- Introduction to Software Engineering

18

Software Engineering Organizations…

2. Institute of Electrical & Electronic Engineers (IEEE):

Web Site: www.ieee.org

– American Non pfoit organization

– Is the world's leading professional association for the

advancement of technology.

– Established in 1963 as the merger of:

1. AIEE (American Institute of Electrical Engineers,

formed in 1884)

2. IRE (Institute of Radio Engineers, formed in 1912).

Page 19: 01- Introduction to Software Engineering

19

IEEE Quick Facts:

425,000 members over 160 countries.

More than 116,000 student members

333 sections in 10 geographic regions worldwide.

2,195 chapters in 10 regions.

2,345 student branches in 80 countries.

38 societies and 7 technical councils.

148 transactions, journals and magazines

3 million documents in the IEEE Digital Library with 8

million downloads/month

1300 IEEE sponsored or cosponsored conferences

worldwide each year.

1,400 active IEEE standards

Page 20: 01- Introduction to Software Engineering

20

IEEE standards cover the following fields:

1. Information Technology

2. Software & System Engineering

3. Power And Energy

4. Nuclear Power

5. Instrumentation And Measurement

6. Internet Best Practices

7. Mobile And Stationary Batteries

8. Nanotechnology

9. Organic Electronics

10. Telecommunications

11. Transportation

12. Electrical Safety

13. Green & Clean Technology

Page 21: 01- Introduction to Software Engineering

21

Software Engineering Organizations…

3. IEEE – Computer Society:

Web Site: www.computer.org

Founded in 1946 as part of the AIEE (American Institute of Electrical Engineers, formed in 1884)

Part of the IEEE since 1963

100,000 member

The largest of the 39 societies of the IEEE.

50 % of our members are outside the United States,

The Society maintains a service center office in Tokyo, a publications office in California, and its headquarters in Washington DC.

Page 22: 01- Introduction to Software Engineering

22

IEEE Software Engineering Standards

1. Knowledge

Guide to the Software Engineering Body of Knowledge (SWEBOK)

2. Accreditation Certification (Career Development)

IEEE- Certified Software Development Professional

3. Ethics Code of Ethics

Page 23: 01- Introduction to Software Engineering

23

IEEE Accreditations

IEEE released the IEEE Certified Software

Development Professional (CSDP) Credential.

IEEE-CSDP is vendor-neutral.

It covers the whole topics of Software Engineering

It has three stages:

1. Eligibility

2. Exam

3. Continuous Development (Professional Development

Units-PDU)

Page 24: 01- Introduction to Software Engineering

24

Code of Ethics:

Professional & Ethical Responsibility

Software engineering involves wider responsibilities

than simply the application of technical skills.

Software engineers must behave in an honest and

ethically responsible way if they are to be respected

as professionals.

Ethical behaviour is more than simply upholding the

law.

Page 25: 01- Introduction to Software Engineering

25

Code of Ethics:

Issues of professional responsibility

1. Confidentiality

2. Competence

3. Intellectual Property Rights

4. Computer Misuse

Page 26: 01- Introduction to Software Engineering

26

Guide to SWEBOK

Objectives

1. Promote a consistent view of SE worldwide

2. Clarify the place and boundaries of SE relative to other related

disciplines

3. Define/characterize the contents of the SE discipline

4. Provide access to the various components of the SWEBOK

5. Provide a foundation for curriculum development and

individual certification and licensing

Page 27: 01- Introduction to Software Engineering

27

Project Background:

The Guide to the Software Engineering Body of Knowledge

(SWEBOK) describes generally accepted knowledge about

software engineering.

For the 2004 SWEBOK Guide, SWEBOK editors received and

replied to almost 10,000 comments from 378 reviewers in 41

countries.

The 2004 Guide has also gained international recognition as ISO

Technical Report 19759.

Available free on the web (www.swebok.org)

Currently, SWEBOK ver. 3 is now under development.

Page 28: 01- Introduction to Software Engineering

28

Engineering:

“The application of science and mathematics by which

properties of matter and the sources of energy are made

useful to people”

Software Engineering:

“The application of a systematic, disciplined,

quantifiable approach to development, operation and

maintenance of software: that is, the application of

engineering to software.”

Page 29: 01- Introduction to Software Engineering

29

Guide to SWEBOK…

Knowledge Areas

1. Software Requirements

2. Software Design

3. Software Construction

4. Software Testing

5. Software Maintenance

6. Software Configuration Management

7. Software Engineering Management

8. Software Engineering Tools & Methods

9. Software Engineering Process

10.Software Quality

Page 30: 01- Introduction to Software Engineering

30

SWEBOK Guide = 10 Knowledge Areas

Software Quality

Software Engineering Tools and Methods

Software Engineering Process

Software Engineering Management

Software Configuration Management

Maintenance Testing Construction Design Requirements

Primary Processes Supporting Processes

Page 31: 01- Introduction to Software Engineering

31

Quality VS. Grade

Quality: is “the degree to which a set of inherent

characteristics fulfill requirements”.

Grade: is a category assigned to products or services

having the same functional use but different technical

characteristics.

Low quality is always a problem; low grade may not be.

Examples:

1. A software product can be of high quality (no obvious

defects, readable manual) and low grade (a limited

number of features),

2. A software product can be of low quality (many

defects, poorly organized user documentation) and high

grade (numerous features).

Page 32: 01- Introduction to Software Engineering

32

SE- Related Disciplines

1. Computer Engineering

2. Computer Science

3. Management

4. Mathematics

5. Projects Management

6. Quality Management

7. Software Ergonomics: Cognitive Science and Human Factors

8. Systems Engineering

Page 33: 01- Introduction to Software Engineering

33

Recommended References

1. Text Book: Ian Sommerville, Software Engineering - 9th Edition, Addison Wesley

2. Further Readings :

a. Guide to Software Engineering Body of Knowledge (www.swebok.org)

b. Business Analysis Body of Knowledge (www.iiba.org)

c. Capability Maturity Model Integration (CMMI) (www.sei.cmu.edu)

d. IEEE-Computer Society (www.computer.org)

e. Guide to Project Management Body of Knowledge (PMBOK) (www.pmi.org )

f. System Engineering Body of Knowledge (www.incose.org)

Page 34: 01- Introduction to Software Engineering

34