Unit 1
Unit 1
Unit 1
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
1
SYLLABUS
SOFTWARE PROCESS AND AGILE DEVELOPMENT: The Evolving Role of Software, Software Characteristics, Software
Process: Software Process Models - Linear Sequential Model - Prototyping Model - RAD Model - Evolutionary Software Process
Models - Incremental model - Spiral model, Agile Methodology: Extreme Programming (XP) - Scrum and Kanban, ITIL.
(9 + 3)
REQUIREMENT ENGINEERING AND COST ESTIMATION: Requirements Engineering: Elicitation - Analysis and Negotiation
- Validation - Management, Software Requirement Specification (SRS), Cost estimation: Function Point- Cocomo Models.
(9 + 3)
DESIGN MODELING: Design concepts: Abstraction, Architecture, patterns, Separation of Concerns, Modularity, Information
Hiding, Functional Independence, Cohesion - Coupling, Refinement and Refactoring, Modeling with UML- Use Case Diagrams-
Class Diagrams - Interaction Diagrams - Sequence Diagrams - Activity Diagrams - Component Diagrams - Deployment
Diagrams. (9 + 3)
SOFTWARE CODING AND TESTING: Coding standards, Styles and Guidelines, Software testing fundamentals - White box
testing - Basis path testing - Control structure testing - Black box testing - Unit Testing – Integration Testing - Validation Testing
- System Testing and Debugging. (9 + 3)
SOFTWARE MAINTENANCE AND MANAGEMENT: Software Maintenance and Configuration Management, Types of
Software Maintenance, Re-Engineering, Reverse Engineering, Forward Engineering, SCM Process, Version Control and
Change Control. (9 + 3)
Total
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are L: 45 +T: 15 = 60
provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
2
OUTCOM
CO Unit E
Course Outcome
No.
CO3 III Apply suitable architectural style and create design documents.
CO4 IV Employ standard coding guidelines during software development and apply various testing
techniques.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
3
What is Software?
1) Instructions (programs) that when executed
provide desired function and performance
2) data structures that enable the programs to
adequately manipulate information
3) documents that describe the operation and use of
the programs
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
4
What is Software?
software is engineered
software doesn’t wear out
software is custom built
software is complex
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
5
Failure (“Bathtub”) Curve for Hardware
Failure Rate
Infant
mortality
Wear
out
Time
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
6
Wear vs. Deterioration
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
7
Software Applications
system software
real-time software
business software
engineering/scientific software
embedded software
PC software
WebApps (Web applications)
AI software
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
8
Software Myths
Management
We have standards
We have new computers
We’ll add more people to catch up
I outsourced it, I’m done
Customer
We have general objectives, let’s start
Change is easily accommodated
Practitioner
We’ll write it and be done
I can’t assess quality until it is running
I only need deliver code
Software engineering is about meaningless documents
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
9
The Cost of Change
60-100x
1.5-6x
1x
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
10
Software Poses Challenges
How do we ensure the quality of the software
we produce?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
11
Software Engineering
12
A Layered Technology
Software
Software Engineering
Engineering
- provide support for methods
tools and processes
methods - technical how tos
-glue that holds layers
process model together
a “quality” focus
- bedrock
A quality focus: It defines the continuous process improvement principles of software.
Process: It is the foundation or base layer of software engineering. It is key that binds all the
layers together which enables the development of software
13
Process activities
•Communication: It is the first and foremost thing for the development of software.
Communication is necessary to know the actual demand of the client.
•Planning: It basically means drawing a map for reduced the complication of development.
•Modeling: In this process, a model is created according to the client for better
understanding.
•Construction: It includes the coding and testing of the problem.
•Deployment:- It includes the delivery of software to the client for evaluation and feedback.
14
Types of Software Maintenance
Corrective
Adaptive
Perfective
Preventive
15
A Common Process Framework
16
Umbrella Activities
Software project management (tracking and
control)
Formal technical reviews
Software quality assurance
Software configuration management
Document preparation and production
Reusability management
Measurement
Risk management
17
The Process Model:
Adaptability
the framework activities will always be
applied on every project ... BUT
the tasks (and degree of rigor) for each
activity will vary based on:
the type of project (an “entry point” to the model)
characteristics of the project
common sense judgment; concurrence of the project
team
18
SEI CMM Levels
19
Process as Problem Solving
problem
definition
status technical
quo development
solution
integration
20
The Linear Model
System/information
engineering
21
Waterfall Model
Software Software
Software
Reqmts Detailed
Integration
Analysis Design
Software Item 1 Software Software Software
Architectural Coding & Qualification
Design Testing Testing
System System
Reqmts System Software Integration,
Analysis Architectural Item n Qualification
Design ... & Release
Activities
Hardware
Items
listen
to build/revise
customer mock-up
customer
test-drives
mock-up
Prototyping
23
RAD
team #3
team #2
business
modeling
business
process
modeling
modeling data
modeling application
generation
testing
&
process turnover
data modeling
modeling
application
generation
process
modeling testing
&
turnover
application
generation
testing
&
turnover
60 - 90 days
24
The Incremental Model
System/information increment 1
engineering
delivery of
4th increment
calendar time
25
26
An Evolutionary (Spiral) Model
Pla n n in g
Risk Ana lysis
C usto m e r
C o m m unic a tio n
Eng in e e rin g
C usto m e r
Eva lua tio n C o nstruc tio n & Re le a se
27
28
Still Other Process Models
WINWIN spiral model - defines negotiating activities and adds
anchor points to spiral model
Concurrent process model—recognizes that different part of
the project will be at different places in the process
Component-based development model—the process to apply
when reuse is a development objective
Formal methods—the process to apply when a mathematical
specification is to be developed
Cleanroom software engineering—emphasizes error detection
before testing
29