01- Introduction to Software Engineering

Post on 30-Apr-2017

221 views 1 download

Transcript of 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)

2

Name 4 non- American/ non –European

software companies that have international

existence.

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

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?

5

Successful Software Projects

Successful projects always finish:

within the planned duration Schedule

within the estimated budget Cost

up to the customers’ requirements Quality

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

7

Software Development Project Life Cycle

Initiating Planning Executing Closing

Monitoring & Controlling

Project Phase (Life Cycle)

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.

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

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

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……….

12

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”.

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.

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

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

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

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).

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

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

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.

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

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)

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.

25

Code of Ethics:

Issues of professional responsibility

1. Confidentiality

2. Competence

3. Intellectual Property Rights

4. Computer Misuse

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

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.

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.”

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

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

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).

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

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)

34