Sei sulla pagina 1di 28

Software Engineering II

Lecture 1

Fakhar Lodhi

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.

Software Engineering
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

A software engineer is challenged to produce high-quality software with finite amount of resources and to a predicted schedule and budget.

Law of diminishing returns

Cost
Benefit
Making the engineering decision!

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

The Balancing Act!


Potentially conflicting requirements
Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface

Challenge is to balance these requirements.

Software Development Loop


Problem Definition Status Quo

Technical Development Solution Integration

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

Well-Engineered Software
Provides the required functionality Reliable User-friendly Cost-effective Efficient Maintainable

Breakdown of Effort Cost - Software Cost Estimation by Capers Jones


No. Activity 1 Requirements 2 Prototyping 3 Architecture 4 Project Plans 5 Initial Design 6 Detailed Design 7 Design Reviews 8 Coding 9 Reuse acquisition 10 Package Purchase 11 Code Inspection 12 Independent V&V Effort 3.84% 4.50% 2.25% 1.33% 3.84% 4.50% 3.02% 13.50% 1.13% 1.69% 4.50% 5.42% 13 14 15 16 17 18 19 20 21 22 23 24 25 Configuration Mgt. Integration User Documentation Unit Testing Function Testing Integration Testing System Testing Beta Testing Acceptance Testing Independent Testing Quality Assurance Installation and Training Project Management 0.41% 2.71% 9.67% 4.50% 4.50% 3.84% 3.38% 3.02% 1.94% 3.38% 4.50% 1.94% 6.75%

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

Software Engineering Practices

Software Software Software Software Software

product realization project management process management quality assurance configuration management

Management

project planning and management configuration management quality assurance installation and training etc.

Construction
Requirements Design Coding Testing Maintenance etc.

A Software Engineering Framework

Method Task Set Process Quality Focus

T O O L S

Common Process Framework


Framework Activities
Task Sets
TASKS MILESONES, DELIVERABLES SQA POINTS Umbrella Activities

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 o the software engineering activities

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

CMM Maturity Levels


OPTIMIZED Process Improvement MANAGED Process Measurement DEFINED Process Definition REPEATABLE Project Management INITIAL Ad hoc Process

Key Process Areas (KPAs)


Goals Abilities Methods for monitoring implementation Commitments Activities Methods for verifying implementation

Level 2 KPAs
Software Configuration Management Software Quality Assurance Software subcontract Management

Level 2 KPAs - Continued


Software project tracking and oversight Software project planning Requirement management

Level 3 KPAs
Peer reviews Inter-group coordination Software product Engineering Integrated software management

Level 3 KPAs - Continued


Training program Organization process management Organization process focus

Level 4 KPAs
Software quality management

Quantitative process management

Level 5 KPAs
Process change management Technology change management Defect prevention

Software Lifecycle Models


The way you organize your activities Lifecycle model is a series of steps through which the product progresses

Software Engineering Phases


1. Vision 2. Definition 2. Development 3. Maintenance focus focus focus focus on on on on

why what how change

Vision

Definition

Development

Maintenance

Potrebbero piacerti anche