Software Engineering II
By: Muhammad Usman
email:mu702823@gmail.co
m
• Process models
Traditional and agile models
• Requirement engineering
Different phases
• Software Design
Conceptual and architectural design
• Modeling
UML diagrams
• Software Testing
What you have learned
• Software Development Process Models
• Project Management Concepts,
• Project Metrics
• Software Project Planning
• Risk Analysis and Management
• Project Schedules and Tracking
• Software Quality Assurance
• Requirement Engineering Processes
• Software Re-engineering.
Software Engineering II
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.
Software Engineering
IEEE
‘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
Law of diminishing returns
Making the engineering decision!
Benefit
Cost
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
Solution
Integration
Technical
Development
Status Quo
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 Effort
1 Requirements 3.84%
2 Prototyping 4.50%
3 Architecture 2.25%
4 Project Plans 1.33%
5 Initial Design 3.84%
6 Detailed Design 4.50%
7 Design Reviews 3.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%
No. Activity Effort
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
management
configuration management
quality assurance
installation and training
etc.
Requirements
Design
Coding
Testing
Maintenance
etc.
Quality Focus
Process
T
O
O
L
S
Task Set
Method
A Software Engineering Framework
Software Engineering Phases
1. Vision – focus on why
2. Definition – focus on what
3. Development – focus on how
4. Maintenance – focus on change
Vision Definition Development Maintenance
Different Lifecycle Models
1. Build-and-fix model
2. Waterfall model
3. Rapid prototyping model
4. Incremental model
5. Extreme programming
6. Synchronize-and-stabilize model
7. Spiral model
8. Object-oriented life-cycle models
Build and Fix Model
Build first
version
Modify until
client is satisfied
Maintenance
phase
Retirement
Development
Maintenance
Waterfall Model
Requirement
Definition
System and
Software Design
Implementation
and Unit Testing
Integration and
System Testing
Operation and
Maintenance
Waterfall ModelRequirement
Definition
System and
Software Design
Implementation
and Unit Testing
Integration and
System Testing
Operation and
Maintenance
Text books
R. S. Pressman, Software Engineering: A
Practitioner’s Approach, 7th Edition, McGraw Hill
Education.
I. Sommerville, Software Engineering, 9th Edition,
Pearson Education, 2011.

Software Engineering II

  • 1.
    Software Engineering II By:Muhammad Usman email:mu702823@gmail.co m
  • 2.
    • Process models Traditionaland agile models • Requirement engineering Different phases • Software Design Conceptual and architectural design • Modeling UML diagrams • Software Testing What you have learned
  • 3.
    • Software DevelopmentProcess Models • Project Management Concepts, • Project Metrics • Software Project Planning • Risk Analysis and Management • Project Schedules and Tracking • Software Quality Assurance • Requirement Engineering Processes • Software Re-engineering. Software Engineering II
  • 4.
    1. The applicationof a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. Software Engineering IEEE
  • 5.
    ‘All aspects ofsoftware 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
  • 6.
    Law of diminishingreturns Making the engineering decision! Benefit Cost
  • 7.
    Software Engineering Software Engineeringis not just about producing software, but about producing software in a COST-EFFECTIVE manner.
  • 8.
    The Balancing Act! Potentiallyconflicting requirements  Cost vs. Efficiency  Cost vs. Reliability  Efficiency vs. User-interface Challenge is to balance these requirements.
  • 9.
  • 10.
    Continuous change andevolution in all dimensions!
  • 11.
    Well-Engineered Software Provides therequired functionality  Reliable  User-friendly  Cost-effective  Efficient  Maintainable
  • 12.
    Breakdown of EffortCost - Software Cost Estimation by Capers Jones No. Activity Effort 1 Requirements 3.84% 2 Prototyping 4.50% 3 Architecture 2.25% 4 Project Plans 1.33% 5 Initial Design 3.84% 6 Detailed Design 4.50% 7 Design Reviews 3.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% No. Activity Effort 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%
  • 13.
    Effort Breakdown  ProjectManagement 8.08%  Requirements 14.43%  Design 11.36%  Coding 13.50%  SQA 30.64%  SCM 13.02%  Integration 6.54%  Misc. ~3%
  • 14.
    Software Engineering Practices Software product realization  Software project management  Software process management  Software quality assurance  Software configuration management
  • 15.
    Management Construction project planning and management configurationmanagement quality assurance installation and training etc. Requirements Design Coding Testing Maintenance etc.
  • 16.
  • 17.
    Software Engineering Phases 1.Vision – focus on why 2. Definition – focus on what 3. Development – focus on how 4. Maintenance – focus on change Vision Definition Development Maintenance
  • 18.
    Different Lifecycle Models 1.Build-and-fix model 2. Waterfall model 3. Rapid prototyping model 4. Incremental model 5. Extreme programming 6. Synchronize-and-stabilize model 7. Spiral model 8. Object-oriented life-cycle models
  • 19.
    Build and FixModel Build first version Modify until client is satisfied Maintenance phase Retirement Development Maintenance
  • 20.
    Waterfall Model Requirement Definition System and SoftwareDesign Implementation and Unit Testing Integration and System Testing Operation and Maintenance
  • 21.
    Waterfall ModelRequirement Definition System and SoftwareDesign Implementation and Unit Testing Integration and System Testing Operation and Maintenance
  • 22.
    Text books R. S.Pressman, Software Engineering: A Practitioner’s Approach, 7th Edition, McGraw Hill Education. I. Sommerville, Software Engineering, 9th Edition, Pearson Education, 2011.