Upload
robert-flowers
View
225
Download
9
Embed Size (px)
Citation preview
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.
‘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
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
Making the engineering decision!
Benefit
Cos
t
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
ProblemDefinition
SolutionIntegration
TechnicalDevelopment
Status Quo
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 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%
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%
Software Engineering Practices
• Software product realization• Software project management• Software process management• Software quality assurance• Software configuration management
Management
Construction
project planning and managementconfiguration managementquality assuranceinstallation and trainingetc.
RequirementsDesignCodingTestingMaintenanceetc.
Quality Focus
Process
TOOLS
Task Set
Method
A Software Engineering Framework
Common Process Framework
Umbrella Activities
Framework Activities
TASKS
MILESONES, DELIVERABLES
SQA POINTS
Task Sets
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
Process Maturity
• SEI – Software Engineering Institute • 5 maturity levels • Capability Maturity Model (CMM)
INITIAL – Ad hoc Process
REPEATABLE – Project Management
DEFINED – Process Definition
MANAGED – Process Measurement
OPTIMIZED – Process Improvement
CMM Maturity Levels
• Goals• Abilities
Key Process Areas (KPAs)
• Methods for monitoring implementation
• Commitments• Activities
• Methods for verifying implementation
• Software Configuration Management• Software Quality Assurance• Software subcontract Management
Level 2 KPAs
• Software project tracking and oversight• Software project planning• Requirement management
Level 2 KPAs - Continued
• Peer reviews• Inter-group coordination• Software product Engineering• Integrated software management
Level 3 KPAs
Level 3 KPAs - Continued• Training program• Organization process management• Organization process focus
• Software quality management
• Quantitative process management
Level 4 KPAs
• Process change management• Technology change management• Defect prevention
Level 5 KPAs
Software Lifecycle Models
• The way you organize your activities• Lifecycle model is a series of steps through which
the product progresses
1. Vision – focus on why2. Definition – focus on what2. Development – focus on how3. Maintenance – focus on change
Software Engineering Phases
Vision Definition Development Maintenance