Project
Planning &
Structuring
Agenda
• Business Analysis & Requirements Engineering
• Identify customer needs
• Functional non-functional requirements
• User Stories, Use Case Diagrams tools
• Software Architecture Patterns
• Software Estimation Techniques, cost and time
• Resource estimation (COCOMO or Function Point Analysis)
Project Planning &
Structuring
Team 20
Sameh Taher
Ahmed Ibrahim
Doaa Abdelfatah
Zakeia Shehata
Anis Mansour
Project Lifecycle & Feasibility
Initiate Initiate: define goals and feasibility
Plan Plan: structure tasks, schedule, resources
Project
Life
Cycle Execute and Execute and Monitor: deliverables, risk
Monitor management
Close Close: evaluate and document outcomes
Project
Life
Cycle
Feasibility Analysis
IDENTIFY PROJECT VALUE USE TECHNIQUES: SWOT ENSURE STRATEGIC
AND RISKS ANALYSIS, PAYBACK ALIGNMENT AND
PERIOD, ROI, NPV SUSTAINABILITY
Planning (SWOT & Scope)
SWOT
Analysis
Formalizi
ng Goals 1 2 3
and
Scope Define SMART
objectives
Apply MoSCoW
prioritization
(Must, Should,
Manage scope
creep through
documentation
Could, Won’t)
Work Decompose project into
Breakdo work packages
wn
Structure Product-oriented vs
(WBS) Process-oriented WBS
Use WBS dictionary for task
definitions and ownership
Work
Breakdo
wn
Structure
(WBS)
Business Analyses &
Requirements Engineering
Business Analysis
Identify
Analyze business
stakeholders,
environment and
processes, and
workflows
information systems
Identifying Requirements
Techniques:
interviews, Focus on operational
workshops, document needs and pain points
analysis
Requireme Find Early validation
nts inconsistencies, reduces
incompleteness, implementation
Validation duplication errors
Identifying Customer Needs
From
Customer
Needs to
Requirements
• Translate business needs
into system functionality
• Focus on what users need
to achieve, not just system
behavior
Functional Requirements
• Describe system actions and user interactions
• Examples: 'submit form', 'generate report', 'notify user'
Non-Functional
Requirements
• Define performance, reliability, usability
• Use FURPS model: Functionality, Usability, Reliability, Performance,
Supportability
Diagrams & Tools
Format: As a [user] I want
[goal] so that [reason]
User
Stories: Agile-friendly, customer-centric
Capturi
ng User
Needs Easy for stakeholders to
validate
Use Case Diagrams:
System Interactions
Actors and system Clarifies functional
interaction scope and
visualization dependencies
Use
Case
Diagram
Architecture Patterns
Software
Architecture
Patterns
Architecture defines component structure and
interaction
• Pipe and filter
– Composition of data processing units
– Focus: I/O specification
• Layered/Hierarchical
– Hierarchy of components
– Focus: control and information flow; block
responsibilities
Software
Architecture
Patterns
• Data-Centric
– MVC: data, presentation, and logic
– Focus: data model, operations
– Many web applications and many desktop
applications use the data-centric architectural style
• Client-server
– Server (main functions) and clients (requesting
services)
– Focus: communication protocolo/service
specifications
Pipeline
Architectu
re
• Composition of data
processing units
• Focus: I/O
specification
Layered
Architectu
re
• Divide system
responsibilities into
layers
• Common in
enterprise
applications
Data-
Centric
and MVC
• Model-View-
Controller separates
concerns
• Common in web and
desktop applications
Client-
Server
Architectur
e
• Servers provide
services, clients
request them
• Distributed
processing model for
scalability
Choosing Suitable Pattern
Monolithic
Architectu
re
• Single unified
codebase
• Easy to develop
initially
• Harder to scale and
modify later
Microservices Architecture
Decomposed into Enables scalability Requires complex
independent services and flexibility orchestration
Serverless Architecture
Event-driven, Highly scalable, low Suitable for specific
functions as services maintenance small modules
Selecting Architecture Style
CONSIDER PROJECT SIZE, MONOLITHIC FOR SIMPLE MICROSERVICES OR
EXPECTED GROWTH, TEAM PROJECTS SERVERLESS FOR SCALABLE
EXPERTISE SYSTEMS
Estimation Techniques
Basics of Software Estimation
Estimate effort Duration = Effort / Plan for direct +
(work), manpower, Available indirect project
and duration Resources activities
Expert-Based Estimation
Based on experience Top-down: estimate Bottom-up: sum
and similar past projects major deliverables first detailed task estimates
PERT Estimation Technique
Use three points: Useful for uncertainty modeling
Optimistic (a)
Most Likely (m)
Pessimistic (b)
PERT
Formula
COCOMO Model for Estimation
Basic COCOMO: Estimate effort based Organic, Semi-detached, Embedded
on KLOC (thousands of lines of code) project types
Advanced COCOMO Usage
Adjust factors: product complexity, Detailed cost drivers improve estimate
team capability, tools, and environment accuracy
Function Point Analysis
1 2 3
Measure Classify: Inputs, Assign weight
functional user Outputs, Files, and calculate
requirements Interfaces, project size
Inquiries
Refining Resource Estimation
Combine multiple techniques (Expert, COCOMO, Function
Combine Points)
Adjust Adjust based on project risks and unknowns
Monitor Monitor estimation accuracy throughout project lifecycle
Thank You