28
Software Engineering II Lecture 1 Fakhar Lodhi

Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Embed Size (px)

Citation preview

Page 1: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Software Engineering II

Lecture 1

Fakhar Lodhi

Page 2: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Software Engineering - IEEE

1. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

2. The study of approaches as in 1.

Page 3: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

‘all aspects of software production’ - Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production.

-Sommerville

Software Engineering

Page 4: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

A software engineer is challenged to produce high-quality software with finite

amount of resources and to a predicted schedule and budget.

Page 5: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Law of diminishing returns

Making the engineering decision!

Benefit

Cos

t

Page 6: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Software Engineering

Software Engineering is not just about producing software, but about producing software in a COST-

EFFECTIVE manner.

Page 7: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

The Balancing Act!

Potentially conflicting requirements

Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface

Challenge is to balance these requirements.

Page 8: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Software Development Loop

ProblemDefinition

SolutionIntegration

TechnicalDevelopment

Status Quo

Page 9: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

The name of the game is continuous change and evolution in all

dimensions!

Page 10: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Well-Engineered Software

Provides the required functionality

Reliable User-friendly Cost-effective

Efficient Maintainable

Page 11: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Breakdown of Effort Cost - Software Cost Estimation by

Capers Jones No. Activity Effort1 Requirements 3.84%2 Prototyping 4.50%3 Architecture 2.25%4 Project Plans 1.33%5 Initial Design 3.84%6 Detailed Design4.50%7 Design Reviews3.02%8 Coding 13.50%9 Reuse acquisition 1.13%10 Package Purchase 1.69%11 Code Inspection 4.50%12 Independent V&V 5.42%

13 Configuration Mgt. 0.41%14 Integration 2.71%15 User Documentation 9.67%16 Unit Testing 4.50%17 Function Testing 4.50%18 Integration Testing 3.84%19 System Testing 3.38%20 Beta Testing 3.02%21 Acceptance Testing 1.94%22 Independent Testing 3.38%23 Quality Assurance 4.50%24 Installation and Training

1.94%25 Project Management 6.75%

Page 12: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Effort Breakdown

• Project Management 8.08%• Requirements 14.43%• Design 11.36% • Coding 13.50%• SQA 30.64%• SCM 13.02%• Integration 6.54%• Misc. ~3%

Page 13: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Software Engineering Practices

• Software product realization• Software project management• Software process management• Software quality assurance• Software configuration management

Page 14: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Management

Construction

project planning and managementconfiguration managementquality assuranceinstallation and trainingetc.

RequirementsDesignCodingTestingMaintenanceetc.

Page 15: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Quality Focus

Process

TOOLS

Task Set

Method

A Software Engineering Framework

Page 16: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Common Process Framework

Umbrella Activities

Framework Activities

TASKS

MILESONES, DELIVERABLES

SQA POINTS

Task Sets

Page 17: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

The Process

• A software process is a road map that helps you create a timely, high quality result.

• It is the way we produce software• Provides stability and control• Work Product

– Programs, documents, and data produced as a consequence of the software engineering activities

Page 18: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Process Maturity

• SEI – Software Engineering Institute • 5 maturity levels • Capability Maturity Model (CMM)

Page 19: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

INITIAL – Ad hoc Process

REPEATABLE – Project Management

DEFINED – Process Definition

MANAGED – Process Measurement

OPTIMIZED – Process Improvement

CMM Maturity Levels

Page 20: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

• Goals• Abilities

Key Process Areas (KPAs)

• Methods for monitoring implementation

• Commitments• Activities

• Methods for verifying implementation

Page 21: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

• Software Configuration Management• Software Quality Assurance• Software subcontract Management

Level 2 KPAs

Page 22: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

• Software project tracking and oversight• Software project planning• Requirement management

Level 2 KPAs - Continued

Page 23: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

• Peer reviews• Inter-group coordination• Software product Engineering• Integrated software management

Level 3 KPAs

Page 24: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Level 3 KPAs - Continued• Training program• Organization process management• Organization process focus

Page 25: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

• Software quality management

• Quantitative process management

Level 4 KPAs

Page 26: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

• Process change management• Technology change management• Defect prevention

Level 5 KPAs

Page 27: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

Software Lifecycle Models

• The way you organize your activities• Lifecycle model is a series of steps through which

the product progresses

Page 28: Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the

1. Vision – focus on why2. Definition – focus on what2. Development – focus on how3. Maintenance – focus on change

Software Engineering Phases

Vision Definition Development Maintenance