Cs 605
Cs 605
Includes:
Even designing a programming language (like Ada) is part of software engineering as it supports building
better systems.
Reliable
User-friendly
Efficient
High Quality
Cost-effective
Even with unlimited resources, building such software is still a challenge due to time and budget
constraints.
Engineers must decide which aspects to prioritize depending on the project (e.g., safety in missiles vs.
cost in business apps).
Like adding sugar to water, improvements in software (quality, UI, efficiency) yield less benefit after a
point despite increasing cost.
After achieving a “reasonable” quality, further investment may not be worth it.
Caper Jones studied 10,000 projects and categorized software work into ~25 tasks. Key ones include:
Project Management
Requirement Engineering
Design
Testing
SQA
Managers wish for a magical solution to software problems (costs, delays, flaws).
Just like germ theory revolutionized medicine, structured practices can improve software.
Construction Activities:
Requirement Gathering
Design
Coding
Testing
Management Activities:
Project Planning
Configuration Management
🧩 Conclusion
chap2
Software Process
A software process is a structured roadmap that guides the creation of high-quality software on time.
It includes activities that result in work products like code, documents, and data.
Developed by SEI (Software Engineering Institute), the CMM helps assess an organization’s software
process maturity.
CMM Levels:
4 Managed Processes and products are measured and controlled using metrics.
Each maturity level (except Level 1) has associated KPAs, which are essential software practices.
Level KPAs
- Requirements Management
3 - Peer Reviews
- Inter-group Coordination
- Training Program
- Defect Prevention
chap3
1. Build-and-Fix Model
No design or specification
Key features:
Emphasizes documentation.
✅ Reduces misunderstanding.
chap4
Incremental Models
Problem with Waterfall: Client feedback is delayed until full product delivery, making corrections
expensive and time-consuming.
Solution: Incremental Model divides the system into smaller pieces (increments) delivered regularly.
Benefits:
Cost-effective adjustments
Two Approaches:
Full Planning First: Requirements/specs/design done for full product, then builds are implemented.
Parallel Construction:
Process:
Process:
Identify objectives
Explore alternatives
Analyze risks
Diagram: Spiral path showing cumulative cost (radial) and progress (angular)
Strengths:
Limitations:
chap5
Object-Oriented Lifecycle Models
These models adapt better to changing requirements and evolving system design.
Stories → Build → Tasks → Write Test Cases → Code with Continuous Testing.
💧 Fountain Model
Developed by Rational Software; tightly integrated with UML and Krutchen’s architecture.
Vertical Axis: Static aspect — disciplines (e.g., design, testing), artifacts (e.g.,
diagrams), roles.
QA is ongoing:
Verification after each phase
chap6
Projects succeed with good management and fail with bad management.
Unrealistic deadlines.
Ineffective management.
People – The most critical asset; proper organization and motivation needed.
MOI Model:
According to DeMarco:
chap7,8
Problem complexity
Paradigm Description
Type Description
🔶 Coordination Techniques
Type Example
Context
Information objectives
Then decompose the problem (functional partitioning) for estimation and planning.
A 7-question framework:
Who is responsible?
✅ People-aware management
chap9
🔹 Estimation Techniques
Number of objects
Number of GUIs
🔹 LOC vs FP
✅ Benefits of FP:
Language/tool independent.
Cost per line may seem higher, but total project cost and time are lower with Ada.
🔹 Global Adoption of FP
Used by IEEE, UK, Canada, Hong Kong, Australia, IRS, IBM, etc.
Especially common in outsourcing, benchmarking, and public sector projects.
🔹 Uses of FP
Allocating resources.
Contract negotiation.
Effort: Staff-Months
chap 10
Function Point Analysis (FPA) is a standard method for measuring software size by
quantifying its functionality provided to the user.
Application Count:
A. Transactional Functions
EI (External Inputs)
EO (External Outputs)
EQ (External Inquiries)
B. Data Functions
EIF (External Interface Files): Used but not maintained by the application.
FP = UFP × VAF
🔹 Control Information
🔹 User Identifiable
Clearly defined and agreed by both users and developers.
🔹 Maintained
🔹 Elementary Process
✅ ILF Rules
✅ EIF Rules
Example:
12 monthly fields = 1 DET (for all) + 1 DET for month identifier = 2 DETs
chap11
Mandatory subgroup: User must use at least one during an elementary process.
Optional subgroup: User may use one or none during an elementary process.
Example: In an HR system:
Dependent (optional)
Count one RET for each optional or mandatory subgroup of an ILF or EIF.
Hints for Counting ILFs, EIFs, and RETs (not strict rules)
Cannot count the same logical file as both ILF and EIF.
Location of data:
ILF = data maintained inside the application boundary.
Entity: A distinct thing or object (person, place, concept, event) relevant to the
user and business.
Strong Entity: Can stand alone — corresponds to ILFs or EIFs (logical files).
Process Driven: Group entities that are created and deleted together as one logical
file.
External Input (EI) Processes data/control info entering the application. Maintains
ILFs or alters system behavior.
External Output (EO) Sends data/control info outside; presents info with
processing logic like calculations or derived data. Can maintain ILFs or alter
behavior.
External Inquiry (EQ) Sends data/control info outside; presents info by retrieval
only, without derived data or altering behavior.
Primary intents:
To count an EI:
Shared Rules:
No formulas or calculations.
No derived data.
Example Clarifications
Local hourly rate provided by user is a DET; US hourly rate internally calculated is
not
FTR (File Type Referenced) Counting Rules for EOs and EQs
Count one FTR for each ILF (Internal Logical File) or EIF (External Interface File)
read during the process.
Count one FTR for each ILF maintained (updated) during processing.
Count only one FTR per ILF even if it is both read and maintained.
EO: Outputs with processing or calculations (e.g., reports with computed fields).
EQ: Outputs with no processing beyond data retrieval (e.g., simple listings).
The elementary process is the smallest unit of user-visible work, triggered by user
or internal events.
Consider the application boundary carefully: Only count data crossing this
boundary as DETs.
Logical processes invoked by different methods still count as one DET if they
represent the same action.
Check whether the process changes data (EO) or just retrieves it (EQ).
If a user tries to add an existing employee and the system generates error
messages highlighting the incorrect field:
Count one DET for the whole set of system response messages indicating error or
confirmation.
Summary Table
User-entered unique fields (input) Yes, one DET each User recognizable, non-
repeated
Fields outputted (messages, reports) Yes, one DET each Include error,
confirmation messages
Multiple methods to invoke same process One DET One action initiation
regardless of method
Why measure?
Quoting Lord Kelvin: "If you can measure it and express it in numbers, you know
something about it."
Like doctors measure vital signs before treatment, software processes and
products should be measured to improve quality continuously.
Key concepts:
Measure: A quantitative value of an attribute (e.g., size of software).
Indicators: Metrics that suggest potential problems, not the problems themselves.
Helps plan and estimate project effort and quality based on historical data.
These help assess the effectiveness of quality assurance at team and individual
levels.
Operation phase:
Revision phase:
Adaptation phase:
Maintainability:
MMTC (Mean Time To Change): Time to analyze, design, implement, test, and
deploy a change.
Spoilage cost: Cost of fixing defects after release, tracked over time.
Productivity improvement
Formula:
𝐷
DRE=
E+D
where
Combining design and code inspections with testing can raise DRE up to 97%.
chap 14
Structural Complexity:
𝑜
𝑢
S=(f
out
Data Complexity:
D=
out
+1
v
System Complexity:
C=∑(S
+D
Accurate
Even small organizations (~20 people) benefit from a simple, cost-effective, value-
oriented metrics program.
Measure:
𝑡
queue
Evaluation effort
eval
(person-months)
eval
change
𝑐
ℎ
change
change
𝑐
ℎ
change
Project Size (FP) Effort (Pm) Cost (Rs. '000) Documentation (pages)
Pre-shipment errors Post-shipment defects People
chap 15
Structural Complexity:
S=(f
out
Data Complexity:
=
𝑣
D=
out
+1
System Complexity:
𝑖
+
C=∑(S
+D
Data from past projects must be collected, cleaned, and stored in a database.
Accurate
Even small organizations (~20 people) benefit from a simple, cost-effective, value-
oriented metrics program.
Measure:
queue
eval
(person-months)
eval
ℎ
𝑎
change
change
ℎ
𝑎
change
change
Project Size (FP) Effort (Pm) Cost (Rs. '000) Documentation (pages)
Pre-shipment errors Post-shipment defects People
chap16
Used to check if variations in process metrics over time are statistically valid or
due to random chance.
Helps distinguish between stable (in control) and unstable (out of control)
processes.
Multiply mean moving range by 3.268 to get the Upper Control Limit (UCL).
σ=
UNPL−Am
Variability decreased.
chap17
Defects tracking:
The gap between reported and fixed defects shows product stability:
Not-a-defect issues:
Resource requirements
Time requirements
Structural decomposition
E=A+B×(ev)
where
E is effort (person-months),
𝑣
ev is size (LOC or FP), and
3.2
1.05
E=3.2×(KLOC)
1.05
0.333
E=[
LOC×B
0.333
3
×(
where:
E = effort (person-months)
t = duration (months)
Steps:
Develop specs for function & performance.
Considerations:
Delivery date
Maintenance cost
Use decision tree with probabilities to calculate expected cost for each option.
Example costs calculated showed Buy was the most cost-effective option.
Risk is about future uncertain events that might affect the project.
It involves:
Future: Identifying risks that could cause the project to fail or deviate.
Risk Characteristics:
Reactive: Wait for problems to happen, then respond (like Indiana Jones).
Proactive: Identify and analyze risks before work starts, rank them, and prepare a
risk management plan.