PLANNING
PLANNING
PLANNING
SOFTWARE
ENGINEERING
PLANNING
CONTENT
Introduction
D. Overview
DEFINITION OF SOFTWARE PLANNING
PHASE
• The software planning phase is a critical part of the software development life
cycle.
• The planning phase is essential because it lays the foundation for the entire
software development process, and the success of the project depends on the
quality of the planning.
IMPORTANCE OF SOFTWARE PLANNING PHASE
• The software planning phase is crucial because it helps to identify the software
requirements, project goals, and risks associated with the project.
• The software planning phase ensures that the project team has a clear
understanding of what is expected of them, and it helps to prevent any
misunderstandings or confusion that could lead to project delays or failure.
KEY GOALS OF SOFTWARE PLANNING PHASE
1 .D ef i n i n g t h e p ro j e c t s co p e a n d o b j e c t ive s
2 .I d e nti f yi ng s o f t wa re re q u i re me nt s a n d d e p e n d e nc ie s
4 .C re at ing a p ro j e c t p l a n w i t h t i m e l i n e s, m i l e stone s, a n d d e l i ve ra bl e s
• G a ntt c h a r t: a v i s u a l re p re s e ntati on o f t h e p ro j e c t s c h e d ul e , s h o w i ng ta s k d e p e n d e nc ie s ,
t i m e l i n e s, a n d m i l e stone s .
• P ro j e c t r i s k s a r e e v e n t s o r s i t u a t i o n s t h a t c o u l d n e ga t i v e l y i m p a c t p ro j e c t o b j e c t i v e s , t i m e l i n e s , o r b u d g e t s .
• R i s k m a n a g e m e n t i s t h e p ro c e s s o f i d e n t i f y i n g , a n a l y z i n g , a n d m i t i ga t i n g p ro j e c t r i s k s t o r e d u c e t h e
l i ke l i h o o d a n d i m p a c t o f n e ga t i v e e v e n t s .
Ef fe c t i v e r i s k m a n a g e m e n t t e c h n i q u e s i n c l u d e :
• R i s k i d e n t i f i c a t i o n : t h e p ro c e s s o f i d e n t i f y i n g p o t e n t i a l p ro j e c t r i s k s a n d t h e i r ro o t c a u s e s .
• R i s k a n a l y s i s : t h e p ro c e s s o f a s s e s s i n g t h e l i ke l i h o o d a n d i m p a c t o f e a c h r i s k , a n d p r i o r i t i z i n g t h e m b a s e d o n
their potential impact.
• R i s k m i t i ga t i o n : t h e p ro c e s s o f d e v e l o p i n g st ra t e g i e s t o r e d u c e t h e l i ke l i h o o d a n d i m p a c t o f p ro j e c t r i s k s .
• R i s k m o n i t o r i n g : t h e p ro c e s s o f t ra c k i n g p ro j e c t r i s k s t h ro u g h o u t t h e p ro j e c t l i fe c y c l e a n d t a k i n g c o r r e c t i v e
action as needed.
PLANNING TOOLS AND TECHNIQUES
• Software estimation is the process of predicting the amount of time, effort, and
resources required to complete a software project.
• Pa ra met ri c e st i m ati on: u s i n g stat i sti cal d ata a n d m at h e mati cal m o d e l s to e st i m ate p ro j e c t
re q u i re m e nts a n d t i m e l i ne s .
• These tools typically include features for scheduling, task management, resource
allocation, budgeting, and reporting.
EXAMPLE OF POPULAR PROJECT MANAGEMENT TOOLS
E xa m p l e s o f p o p u l a r s o f t wa r e p ro j e c t m a n a g e m e n t t o o l s i n c l u d e :
• M i c ro s o f t P ro j e c t : a c o m p r e h e n s i v e p ro j e c t m a n a g e m e n t t o o l w i t h fe a t u r e s fo r s c h e d u l i n g , r e s o u rc e
allocation, budgeting, and reporting.
• J i ra : a p o p u l a r a g i l e p ro j e c t m a n a g e m e n t t o o l w i t h fe a t u r e s fo r s p r i n t p l a n n i n g , b a c k l o g m a n a g e m e n t , a n d
i s s u e t ra c k i n g .
• Tr e l l o : a s i m p l e , v i s u a l p ro j e c t m a n a g e m e n t t o o l w i t h fe a t u r e s fo r t a s k m a n a g e m e n t , c o l l a b o ra t i o n , a n d
p ro g r e s s t ra c k i n g .
• A s a n a : a v e rs a t i l e p ro j e c t m a n a g e m e n t t o o l w i t h fe a t u r e s fo r t a s k m a n a g e m e n t , t e a m c o l l a b o ra t i o n , a n d
p ro j e c t t ra c k i n g .
• B a s e c a m p : a u s e r - f r i e n d l y p ro j e c t m a n a g e m e n t t o o l w i t h fe a t u r e s fo r t a s k m a n a g e m e n t , t e a m c o m m u n i c a t i o n ,
and file sharing.
COLLABORATIVE SOFTWARE DEVELOPMENT TOOLS
• These tools typically include features for version control, code review, bug tracking,
and continuous integration and delivery.
EXAMPLES OF POPULAR COLLABORATIVE SOFTWARE
DEVELOPMENT TOOLS
E xa m p l e s o f p o p u l a r co l l a b o rat i v e s o f t wa re d e v e l o p m e nt t o o l s i n c l u d e :
• G i t : a d i s t r i b u t e d v e rs i o n co nt ro l sy s t e m fo r t ra c k i n g c h a n g e s i n s o f t wa re co d e a n d co l l a b o rat i n g a m o n g
d e v e l o p e rs .
• G i t H u b : a w e b - b a s e d p l a t fo r m fo r h o s t i n g , s h a r i n g , a n d co l l a b o rat i n g o n s o f t wa re co d e .
• B i t b u c ke t : a w e b - b a s e d p l a t fo r m fo r h o s t i n g , s h a r i n g , a n d co l l a b o ra t i n g o n s o f t wa re co d e , s i m i l a r t o
GitHub.
• J F ro g : a p l a t fo r m fo r m a n a g i n g s o f t wa re a r t i fa c t s , d e p e n d e n c i e s , a n d re l e a s e s , w i t h fe a t u re s fo r
a u t o m a t e d t e s t i n g a n d d e p l o y m e nt .
• J e n k i n s : a p o p u l a r co nt i n u o u s i nt e g ra t i o n a n d d e l i v e r y t o o l fo r a u t o m a t i n g s o f t wa re t e s t i n g a n d
d e p l o y m e nt .
Objective: To provide an interactive activity that
enables participants to apply the knowledge they
TASK: have learned about the software planning phase to
plan their own software project.
PLANNING Materials needed:
SOFTWARE project