The document discusses software engineering and provides definitions and explanations of key concepts. It defines software, engineering, and software engineering. It explains that software engineering uses scientific principles and methods to develop reliable and efficient software products. The document also summarizes different software life cycle models including waterfall, incremental, prototyping, spiral and agile models. It explains the various phases in the software development life cycle such as requirements gathering, design, coding, testing etc.
The document outlines the steps in the software development life cycle (SDLC), including initial communication, requirement gathering, feasibility analysis, system analysis, software design, coding, testing, integration, implementation, and maintenance. It describes each step in the SDLC process such as gathering requirements from stakeholders, analyzing feasibility, designing the software system, writing code, testing at various stages, integrating the software, implementing it for users, and maintaining it with updates. The SDLC provides a framework for software development projects by describing the key activities that occur at each phase.
The document discusses the software engineering basics, including the software crisis, causes of the crisis, and solutions. It describes software engineering as applying scientific principles to invent, design, build, maintain and improve software products. The importance of software engineering is that it reduces complexity, minimizes costs, decreases timelines, and handles large projects to deliver reliable, effective software. The document also outlines the software development life cycle (SDLC) which includes planning, defining requirements, designing, developing, testing, deploying, and maintaining software through different stages.
Esoft Metro Campus - Diploma in Information Technology - (Module VII) Software Engineering
(Template - Virtusa Corporate)
Contents:
What is software?
Software classification
Attributes of Software
What is Software Engineering?
Software Process Model
Waterfall Model
Prototype Model
Throw away prototype model
Evolutionary prototype model
Rapid application development
Programming styles
Unstructured programming
Structured programming
Object oriented programming
Flow charts
Questions
Pseudo codes
Object oriented programming
OOP Concepts
Inheritance
Polymorphism
Encapsulation
Generalization/specialization
Unified Modeling Language
Class Diagrams
Use case diagrams
Software testing
Black box testing
White box testing
Software documentation
This document summarizes a seminar presentation on project management. It defines key terms like project, management, and project management. It also discusses the software development life cycle including requirements gathering, design, implementation, testing, deployment, and maintenance. Common software development models are outlined like waterfall, V-shaped, prototyping, spiral, iterative, and agile. Data flow diagrams are introduced as a way to graphically represent data flows in a system.
software engineering , its characteristic ,changing nature of software,evolving nature of software,legacy software,generic view of software,process flow ,umbrella activity,CMMI,PROCESS ASSESSMENT ,team and personal software process
The document discusses several software process models:
- The Linear Sequential (Waterfall) Model is a simple, systematic approach where each phase must be completed before moving to the next. It is best for small, well-defined projects.
- The Incremental Model applies the Linear Sequential Model iteratively to increments, delivering working software in stages. This allows for early delivery and flexibility.
- The Prototyping Model involves building prototypes to refine requirements through client feedback in iterations. This helps establish clear objectives.
- Rapid Application Development (RAD) is a fast version of the Linear Sequential Model using a component-based approach to accelerate delivery of fully functional projects.
The document outlines the steps in the software development life cycle (SDLC), including initial communication, requirement gathering, feasibility analysis, system analysis, software design, coding, testing, integration, implementation, and maintenance. It describes each step in the SDLC process such as gathering requirements from stakeholders, analyzing feasibility, designing the software system, writing code, testing at various stages, integrating the software, implementing it for users, and maintaining it with updates. The SDLC provides a framework for software development projects by describing the key activities that occur at each phase.
The document discusses the software engineering basics, including the software crisis, causes of the crisis, and solutions. It describes software engineering as applying scientific principles to invent, design, build, maintain and improve software products. The importance of software engineering is that it reduces complexity, minimizes costs, decreases timelines, and handles large projects to deliver reliable, effective software. The document also outlines the software development life cycle (SDLC) which includes planning, defining requirements, designing, developing, testing, deploying, and maintaining software through different stages.
Esoft Metro Campus - Diploma in Information Technology - (Module VII) Software Engineering
(Template - Virtusa Corporate)
Contents:
What is software?
Software classification
Attributes of Software
What is Software Engineering?
Software Process Model
Waterfall Model
Prototype Model
Throw away prototype model
Evolutionary prototype model
Rapid application development
Programming styles
Unstructured programming
Structured programming
Object oriented programming
Flow charts
Questions
Pseudo codes
Object oriented programming
OOP Concepts
Inheritance
Polymorphism
Encapsulation
Generalization/specialization
Unified Modeling Language
Class Diagrams
Use case diagrams
Software testing
Black box testing
White box testing
Software documentation
This document summarizes a seminar presentation on project management. It defines key terms like project, management, and project management. It also discusses the software development life cycle including requirements gathering, design, implementation, testing, deployment, and maintenance. Common software development models are outlined like waterfall, V-shaped, prototyping, spiral, iterative, and agile. Data flow diagrams are introduced as a way to graphically represent data flows in a system.
software engineering , its characteristic ,changing nature of software,evolving nature of software,legacy software,generic view of software,process flow ,umbrella activity,CMMI,PROCESS ASSESSMENT ,team and personal software process
The document discusses several software process models:
- The Linear Sequential (Waterfall) Model is a simple, systematic approach where each phase must be completed before moving to the next. It is best for small, well-defined projects.
- The Incremental Model applies the Linear Sequential Model iteratively to increments, delivering working software in stages. This allows for early delivery and flexibility.
- The Prototyping Model involves building prototypes to refine requirements through client feedback in iterations. This helps establish clear objectives.
- Rapid Application Development (RAD) is a fast version of the Linear Sequential Model using a component-based approach to accelerate delivery of fully functional projects.
This document provides an overview of software engineering concepts including different types of software, software classification, software attributes, and common software development process models. It describes system software and application software, and distinguishes between generic/off-the-shelf software and custom software. Popular process models covered include waterfall, prototyping, and rapid application development (RAD). The waterfall model and its stages are explained in detail.
Unit_1(Software and Software Engineering).pptxtaxegap762
software enginneering introduction for better understanding brief intoduce software technology and related topics software enginneering introduction for better understanding brief intoduce software technology and related topics
In this presentation, it will cover different software development methodologies. These include the common types of SDM, and the pros and cons.
A software development methodology involves several steps. These include planning, structuring, and performance tracking.
In some instances, it may also include extreme programming. The objective is to streamline the process when developing software or any product.
Almost all software development methodologies are non-technical. This means they do not deal with the technical aspects of software design and development. They focus more on the internal operations, and other processes involved in the project.
Take note that each has its specific features. Gauge your options, and choose the best one that suits your needs.
This document discusses the scope of software engineering. It begins by defining software and engineering. It then explains that software engineering aims to produce software that meets client needs, is fault-free, delivered on time and budget, and is easy to modify. It discusses why software engineering is needed due to past software failures. The document then covers various aspects of software engineering including historical, economic, and maintenance aspects. It also discusses common software engineering roles and development team members. Finally, it provides an overview of different software development lifecycle models.
The document describes the key activities and concepts in software development processes including requirements analysis, specification, architecture, design, implementation, testing, deployment, and maintenance. It discusses various process models like waterfall, agile, iterative, RAD, and XP. It also covers supporting disciplines such as configuration management, documentation, quality assurance, and project management as well as development tools.
Greate Introduction to Software Engineering @ Track IT AcademyMohamed Shahpoup
The document provides an overview of software engineering concepts including software processes, rapid software development, practices, and a case study on the V-Model process. It defines software and software engineering. It describes common software process models like waterfall, iterative development, and component-based development. It also covers rapid software development approaches like incremental delivery and agile methods. Key practices discussed include pair programming, prototyping, and activities in the software development lifecycle. Finally, it presents the phases of the V-Model process and how it maps testing to requirements and design.
The document discusses different software development models:
- The classical waterfall model divides development into sequential phases: feasibility study, requirements, design, coding/testing, integration/testing, and maintenance. It lacks mechanisms to handle errors between phases.
- The iterative waterfall model and V-model are more suitable for well-defined problems with clear requirements. The evolutionary model is suitable for large problems developed incrementally.
- The prototyping model uses initial toy implementations to refine requirements before full development. Different models suit different types of projects based on factors like size, risks, and requirements stability.
The document discusses the software development life cycle (SDLC) and different software development models. SDLC involves stages like requirements gathering, design, coding, testing, implementation and maintenance. The waterfall model follows a linear sequence of stages from requirements to maintenance. Prototyping allows for user feedback earlier to refine requirements before implementation.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
This document outlines the topics covered in a software engineering course across 5 units: introduction, software design, software testing and maintenance, software metrics, and software configuration management. The introduction unit discusses software engineering paradigms like waterfall and spiral models. Software design covers concepts like abstraction, modularity, and design notations. Software testing and maintenance examines strategies, tools, and maintenance. Software metrics focuses on process and product measurement. Software configuration management needs and version control are also introduced.
This document provides an overview of software engineering. It discusses key topics like software evolution, paradigms, characteristics, and the software development life cycle (SDLC). The SDLC is described as a structured sequence of stages to develop software, including communication, requirements gathering, feasibility study, system analysis, design, coding, testing, integration, implementation, and operation and maintenance. Software engineering aims to develop high-quality software using well-defined principles and methods, addressing issues like exceeding timelines and budgets seen in traditional software development.
1. The document discusses various software engineering process models including waterfall, prototyping, RAD, incremental, and spiral models. It describes the key phases and advantages/disadvantages of each.
2. It also covers system engineering and how software engineering occurs as part of developing larger systems. Business process engineering and product engineering are introduced for developing information systems and products respectively.
3. Key aspects of developing computer-based systems are outlined including the elements of software, hardware, people, databases, documentation and procedures.
This document provides an introduction to software engineering. It discusses the objectives of software engineering which include producing high quality software products on time and within budget. Software engineering is defined as applying engineering principles to software development through the use of methods, tools, and techniques. The document then discusses why software engineering principles are needed, especially for large, complex software projects. It provides examples of software engineering failures that occurred when principles were not followed. The rest of the document outlines the software development process, including requirements, design, implementation, testing, and maintenance. It also discusses different process models like waterfall and spiral.
This document provides an introduction to software engineering. It begins with the course outcomes, which are to apply the software engineering lifecycle, gain knowledge of software and UI design, and apply testing guidelines. It then covers topics like the definition of software engineering, its objectives like maintainability and portability, and the software development lifecycle which includes stages like requirements analysis, design, development, testing, and deployment. The importance of software engineering is discussed as helping to reduce complexity, minimize costs, decrease time, and handle large projects. References are provided at the end.
This document outlines the topics covered in five units of a Software Engineering course. Unit I introduces software engineering paradigms like waterfall and spiral models. Unit II covers software design concepts like abstraction and modularity. Unit III discusses software testing and maintenance. Unit IV covers software metrics and quality assurance. Unit V focuses on software configuration management. Key concepts covered include software development lifecycles, risk analysis, requirements engineering, and project planning techniques.
This document discusses various process models for software engineering:
- The waterfall model defines sequential phases of requirements, design, implementation, testing, and maintenance. It is inflexible to change.
- Iterative models allow repetition of phases to incrementally develop software. The incremental model delivers functionality in increments.
- Evolutionary models like prototyping and spiral development use iterative evaluation and refinement of prototypes to evolve requirements and manage risk.
- Other models include component-based development, formal methods, aspect-oriented development, and the Unified Process with iterative development of use cases. Personal and team software processes focus on self-directed teams, planning, metrics, and process improvement.
In systems engineering and software engineering, requirements analysis encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders, analyzing, documenting, validating and managing software or system requirements.
How to Create User Notification in Odoo 17Celine George
This slide will represent how to create user notification in Odoo 17. Odoo allows us to create and send custom notifications on some events or actions. We have different types of notification such as sticky notification, rainbow man effect, alert and raise exception warning or validation.
This document provides an overview of software engineering concepts including different types of software, software classification, software attributes, and common software development process models. It describes system software and application software, and distinguishes between generic/off-the-shelf software and custom software. Popular process models covered include waterfall, prototyping, and rapid application development (RAD). The waterfall model and its stages are explained in detail.
Unit_1(Software and Software Engineering).pptxtaxegap762
software enginneering introduction for better understanding brief intoduce software technology and related topics software enginneering introduction for better understanding brief intoduce software technology and related topics
In this presentation, it will cover different software development methodologies. These include the common types of SDM, and the pros and cons.
A software development methodology involves several steps. These include planning, structuring, and performance tracking.
In some instances, it may also include extreme programming. The objective is to streamline the process when developing software or any product.
Almost all software development methodologies are non-technical. This means they do not deal with the technical aspects of software design and development. They focus more on the internal operations, and other processes involved in the project.
Take note that each has its specific features. Gauge your options, and choose the best one that suits your needs.
This document discusses the scope of software engineering. It begins by defining software and engineering. It then explains that software engineering aims to produce software that meets client needs, is fault-free, delivered on time and budget, and is easy to modify. It discusses why software engineering is needed due to past software failures. The document then covers various aspects of software engineering including historical, economic, and maintenance aspects. It also discusses common software engineering roles and development team members. Finally, it provides an overview of different software development lifecycle models.
The document describes the key activities and concepts in software development processes including requirements analysis, specification, architecture, design, implementation, testing, deployment, and maintenance. It discusses various process models like waterfall, agile, iterative, RAD, and XP. It also covers supporting disciplines such as configuration management, documentation, quality assurance, and project management as well as development tools.
Greate Introduction to Software Engineering @ Track IT AcademyMohamed Shahpoup
The document provides an overview of software engineering concepts including software processes, rapid software development, practices, and a case study on the V-Model process. It defines software and software engineering. It describes common software process models like waterfall, iterative development, and component-based development. It also covers rapid software development approaches like incremental delivery and agile methods. Key practices discussed include pair programming, prototyping, and activities in the software development lifecycle. Finally, it presents the phases of the V-Model process and how it maps testing to requirements and design.
The document discusses different software development models:
- The classical waterfall model divides development into sequential phases: feasibility study, requirements, design, coding/testing, integration/testing, and maintenance. It lacks mechanisms to handle errors between phases.
- The iterative waterfall model and V-model are more suitable for well-defined problems with clear requirements. The evolutionary model is suitable for large problems developed incrementally.
- The prototyping model uses initial toy implementations to refine requirements before full development. Different models suit different types of projects based on factors like size, risks, and requirements stability.
The document discusses the software development life cycle (SDLC) and different software development models. SDLC involves stages like requirements gathering, design, coding, testing, implementation and maintenance. The waterfall model follows a linear sequence of stages from requirements to maintenance. Prototyping allows for user feedback earlier to refine requirements before implementation.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
This document outlines the topics covered in a software engineering course across 5 units: introduction, software design, software testing and maintenance, software metrics, and software configuration management. The introduction unit discusses software engineering paradigms like waterfall and spiral models. Software design covers concepts like abstraction, modularity, and design notations. Software testing and maintenance examines strategies, tools, and maintenance. Software metrics focuses on process and product measurement. Software configuration management needs and version control are also introduced.
This document provides an overview of software engineering. It discusses key topics like software evolution, paradigms, characteristics, and the software development life cycle (SDLC). The SDLC is described as a structured sequence of stages to develop software, including communication, requirements gathering, feasibility study, system analysis, design, coding, testing, integration, implementation, and operation and maintenance. Software engineering aims to develop high-quality software using well-defined principles and methods, addressing issues like exceeding timelines and budgets seen in traditional software development.
1. The document discusses various software engineering process models including waterfall, prototyping, RAD, incremental, and spiral models. It describes the key phases and advantages/disadvantages of each.
2. It also covers system engineering and how software engineering occurs as part of developing larger systems. Business process engineering and product engineering are introduced for developing information systems and products respectively.
3. Key aspects of developing computer-based systems are outlined including the elements of software, hardware, people, databases, documentation and procedures.
This document provides an introduction to software engineering. It discusses the objectives of software engineering which include producing high quality software products on time and within budget. Software engineering is defined as applying engineering principles to software development through the use of methods, tools, and techniques. The document then discusses why software engineering principles are needed, especially for large, complex software projects. It provides examples of software engineering failures that occurred when principles were not followed. The rest of the document outlines the software development process, including requirements, design, implementation, testing, and maintenance. It also discusses different process models like waterfall and spiral.
This document provides an introduction to software engineering. It begins with the course outcomes, which are to apply the software engineering lifecycle, gain knowledge of software and UI design, and apply testing guidelines. It then covers topics like the definition of software engineering, its objectives like maintainability and portability, and the software development lifecycle which includes stages like requirements analysis, design, development, testing, and deployment. The importance of software engineering is discussed as helping to reduce complexity, minimize costs, decrease time, and handle large projects. References are provided at the end.
This document outlines the topics covered in five units of a Software Engineering course. Unit I introduces software engineering paradigms like waterfall and spiral models. Unit II covers software design concepts like abstraction and modularity. Unit III discusses software testing and maintenance. Unit IV covers software metrics and quality assurance. Unit V focuses on software configuration management. Key concepts covered include software development lifecycles, risk analysis, requirements engineering, and project planning techniques.
This document discusses various process models for software engineering:
- The waterfall model defines sequential phases of requirements, design, implementation, testing, and maintenance. It is inflexible to change.
- Iterative models allow repetition of phases to incrementally develop software. The incremental model delivers functionality in increments.
- Evolutionary models like prototyping and spiral development use iterative evaluation and refinement of prototypes to evolve requirements and manage risk.
- Other models include component-based development, formal methods, aspect-oriented development, and the Unified Process with iterative development of use cases. Personal and team software processes focus on self-directed teams, planning, metrics, and process improvement.
In systems engineering and software engineering, requirements analysis encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders, analyzing, documenting, validating and managing software or system requirements.
How to Create User Notification in Odoo 17Celine George
This slide will represent how to create user notification in Odoo 17. Odoo allows us to create and send custom notifications on some events or actions. We have different types of notification such as sticky notification, rainbow man effect, alert and raise exception warning or validation.
Cross-Cultural Leadership and CommunicationMattVassar1
Business is done in many different ways across the world. How you connect with colleagues and communicate feedback constructively differs tremendously depending on where a person comes from. Drawing on the culture map from the cultural anthropologist, Erin Meyer, this class discusses how best to manage effectively across the invisible lines of culture.
The Science of Learning: implications for modern teachingDerek Wenmoth
Keynote presentation to the Educational Leaders hui Kōkiritia Marautanga held in Auckland on 26 June 2024. Provides a high level overview of the history and development of the science of learning, and implications for the design of learning in our modern schools and classrooms.
Creativity for Innovation and SpeechmakingMattVassar1
Tapping into the creative side of your brain to come up with truly innovative approaches. These strategies are based on original research from Stanford University lecturer Matt Vassar, where he discusses how you can use them to come up with truly innovative solutions, regardless of whether you're using to come up with a creative and memorable angle for a business pitch--or if you're coming up with business or technical innovations.
8+8+8 Rule Of Time Management For Better ProductivityRuchiRathor2
This is a great way to be more productive but a few things to
Keep in mind:
- The 8+8+8 rule offers a general guideline. You may need to adjust the schedule depending on your individual needs and commitments.
- Some days may require more work or less sleep, demanding flexibility in your approach.
- The key is to be mindful of your time allocation and strive for a healthy balance across the three categories.
How to Download & Install Module From the Odoo App Store in Odoo 17Celine George
Custom modules offer the flexibility to extend Odoo's capabilities, address unique requirements, and optimize workflows to align seamlessly with your organization's processes. By leveraging custom modules, businesses can unlock greater efficiency, productivity, and innovation, empowering them to stay competitive in today's dynamic market landscape. In this tutorial, we'll guide you step by step on how to easily download and install modules from the Odoo App Store.
Get Success with the Latest UiPath UIPATH-ADPV1 Exam Dumps (V11.02) 2024yarusun
Are you worried about your preparation for the UiPath Power Platform Functional Consultant Certification Exam? You can come to DumpsBase to download the latest UiPath UIPATH-ADPV1 exam dumps (V11.02) to evaluate your preparation for the UIPATH-ADPV1 exam with the PDF format and testing engine software. The latest UiPath UIPATH-ADPV1 exam questions and answers go over every subject on the exam so you can easily understand them. You won't need to worry about passing the UIPATH-ADPV1 exam if you master all of these UiPath UIPATH-ADPV1 dumps (V11.02) of DumpsBase. #UIPATH-ADPV1 Dumps #UIPATH-ADPV1 #UIPATH-ADPV1 Exam Dumps
Get Success with the Latest UiPath UIPATH-ADPV1 Exam Dumps (V11.02) 2024
SE Unit-1.pptx
1. Software Engineering
Software Engineering, A Practitioner’s Approach, Roger S,
Pressman.(2014).
An Integrated Approach to Software Engineering, Pankaj
Jalote, Narosa,3rd edition.
Software Testing - Concepts & Practices, K. Mustafa, R. A.
Khan, Narosa,Reprint 2009.
2. What is Software?
• Software is a set of programs performs a
specific task.
• Software, when made for a specific
requirement is called software product.
3. What is Engineering
• Engineering is all about developing products,
using well-defined, scientific principles and
methods.
4. What is Software Engineering?
• Software engineering is an engineering
branch associated with development of
software product using well-defined scientific
principles, methods and procedures.
• The outcome of software engineering is an
efficient(max productivity with min. wasted
efforts) and reliable(good quality of s/w)
software product.
5. Why Software Engineering is
important?
• It enables us to build complex system in a
timely manner.
• It ensures high quality of software.
6. What is work Product?
• It means result/outcome of software.
• 1. Software Engineer:
• The work product of s/w eng. is set of
programs, the content along with
documentation that is a part of s/w.
• 2. User/Customers:
• The functionality delivered by the s/w that
improves user experience.
7. Software Engineering Focuses on?
• 1. Quality:
• A) Functional: Degree to which correct software
is produced.
• B)Non-functional(Structured):
robustness,efficient,reliable.
• 2. Maintainability:
• After the s/w has been developed and delivered.
• Should be easily enhanced and adapt to change
requirements whenever required.
8. Types of Software.
• 1. System Software: The software that provides a platform
for other software to run.
• Eg. Operating system etc.
• 2. Application Software: They serve a particular purpose.
• Eg. Payroll , online shopping, Ms office etc.
• 3. Engineering/Scientific software:
• Solves complex numerical problems.
• Eg. Genetic Analysis, Astronomical etc.
• 4. Embedded S/w:
• Provides limlited features and functionality.
• Eg. Washing Machines, Micro wave ovens etc.
• 5. AI S/w:
• Induce human like intelligence in machines.
• Eg. Robotic, game playing s/w.
9. • 6. Legacy software:
• Very old and traditional software.
• Changed from time to time.
• Do not have good quality.
• 7. web/ Mobile application:
• Those s/w that run on browser or mobile.
• Eg candy crush etc.
• 8. Real world s/w:
• Control,monitor,analyse real world events in real time.
• Eg. Weather forecasting etc.
10. Software engineering - Layered
technology
• Software engineering is a fully layered
technology.
• To develop a software, we need to go from
one layer to another.
• All these layers are related to each other and
each layer demands the fulfillment of the
previous layer.
11. • Software eng. Comprises of a process, aset of
methods for managing and developing the s/w
and a collection of tools,
• The main layer of software eng. Is Quality.
• 1. Quality:
• A. Functional: Degree to which correct software
is developed.
• B)Non-functional(Structured):
• Robustness, maintainability.
• Eg. Six sigma
12. 2. Process:
• A framework that must be estabilished for
effective delivery of s/w.
• Timely development of software.
• Management and control of software projects.
3. Methods:
• Provide technical “how to” for building a
software.
• Each method consis of multiple tasks.
• Eg. Requirement analysis,testing,support etc.
4. Tools:
• Provides automated/semi automated support for
process and methods.
• Eg. CAD.
13. Software Development Life Cycle,
SDLC
• Software Development Life Cycle, is a well-
defined, structured sequence of stages in
software engineering to develop the intended
software product.
14. SDLC Activities
• SDLC provides a series of steps to be followed
to design and develop a software product
efficiently. SDLC framework includes the
following steps:
15. • Communication
• This is the first step where the user initiates the request for a desired software
product.
• He contacts the service provider and tries to negotiate the terms.
• He submits his request to the service providing organization in writing.
• Requirement Gathering
• This step onwards the software development team works to carry on the project.
• The team holds discussions with various stakeholders from problem domain and
tries to bring out as much information as possible on their requirements.
• The requirements are contemplated and segregated into user requirements,
system requirements and functional requirements.
• The requirements are collected using a number of practices as given –
– studying the existing system and software,
– conducting interviews of users and developers,
– referring to the database or
– collecting answers from the questionnaires.
16. • Feasibility Study
• After requirement gathering, the team comes up with a rough plan of software
process.
• At this step the team analyzes if a software can be made to fulfill all requirements
of the user and if there is any possibility of software being no more useful.
• It is found out, if the project is financially, practically and technologically feasible
for the organization to take up.
• There are many algorithms available, which help the developers to conclude the
feasibility of a software project.
• System Analysis
• At this step the developers decide a roadmap of their plan and try to bring up the
best software model suitable for the project.
• System analysis includes Understanding of software product limitations, learning
system related problems or changes to be done in existing systems beforehand,
identifying and addressing the impact of project on organization and personnel
etc.
• The project team analyzes the scope of the project and plans the schedule and
resources accordingly.
17. • Software Design
• Next step is to bring down whole knowledge of requirements and
analysis on the desk and design the software product.
• The inputs from users and information gathered in requirement
gathering phase are the inputs of this step.
• The output of this step comes in the form of two designs; logical
design and physical design.
• Engineers produce data-flow diagrams and in some cases pseudo
codes.
• Coding
• This step is also known as programming phase.
• The implementation of software design starts in terms of writing
program code in the suitable programming language and
developing error-free executable programs efficiently.
18. • Testing
• Software testing is done while coding by the developers
and thorough testing is conducted by testing experts at
various levels of code such as module testing, program
testing, product testing, in-house testing and testing the
product at user’s end.
• Early discovery of errors and their remedy is the key to
reliable software.
• Integration
• Software may need to be integrated with the libraries,
databases and other program(s).
• This stage of SDLC is involved in the integration of software
with outer world entities.
19. • Implementation
• This means installing the software on user machines.
• At times, software needs post-installation configurations at user
end.
• Software is tested for portability and adaptability and integration
related issues are solved during implementation.
• Operation and Maintenance
• If required, the users are trained on, or aided with the
documentation on how to operate the software and how to keep
the software operational.
• The software is maintained timely by updating the code according
to the changes taking place in user end environment or technology.
• This phase may face challenges from hidden bugs and real-world
unidentified problems.
20. • Disposition
• As time elapses, the software may decline on the
performance front.
• It may go completely obsolete or may need
intense upgradation.
• This phase includes archiving data and required
software components, closing down the system,
planning disposition activity and terminating
system at appropriate end-of-system time.
21. Software LifeCycle Models
• The process followed in the development of
the software depends upon the Life cycle
model chosen for development.
• Types of Life Cycle Model.
• (A) Prescriptive Models
• 1. Waterfall Model.
• 2. Incremental process model.
– Iterative model.
– Rapid application model.
22. • 3. Evolutionary Models.
– Prototyping model.
– Spiral Model
(B) Specialized Process Models.
1. Agile Model.
2. Rational Unified process model.
23. Waterfall Model
Design
Coding and unit testing
Integration & system
Testing
Requirement Gathering
Implementation
Operation and Maintenance
24. Waterfall Model.
• The waterfall model is also called as 'Linear
sequential model' or 'Classic life cycle model'.
• It says that all the phases of SDLC will function
one after another in linear manner.
• That is, when the first phase is finished then
only the second phase will start and so on.
• This model does not work smoothly if there
are some issues left at the previous step.
• The sequential nature of model does not allow
us go back and undo or redo our actions.
25. Requirement Gathering
Purpose:To understand customer requirements
and document them Properly.
Work product: SRS(Software requirement
specification)
Use: Used as a contract between developer and
customer.
26. Design
• Purpose: Transforms requirements into a
structure suitable for implementation in some
programming language.
• Software architecture is specified in detail.
• Work Product: SDD(Software Design
Document)
• Use: Useful for start coding.
27. • Coding: SDD is used for coding.
• Testing:
1. Unit Testing: Each module is tested
independently of other module.
• Integration & System Testing:
• Integration: Bring all the modules together,
combine it to form a complete software & test
it.
• System Testing:The whole software is tested
by considering environment,hardware etc.
• Actual software is deployed at customer place
and tested.
28. Operation and Maintenance:
• Purpose: After the delivery and deployment of
the software to the customer, maintanance
can be done like error correction, Improve
software .
29. Problems with waterfall model.
• Expects complete and accurate requirements
early in s/w development process.
• Working s/w is not available till very late in the
s/w development cycle.(delay in error
discovery)
• Change- not suitable for accomodating
changing during development.
• Sequential Nature-not realistic in todays
world and this model is not suitable for large
projects
30. When to use waterfall model.
• When the requirements are very clearly
understood and they will not change during
SDLC.
• Can be used by an organization:
– That has an experience in developing a particular
kind of software.
– When it wants to build a new software based on
an existing software.
32. Incremental Process Model.
• Aim: Deliver limited functionality quickly.
• Requirements: defined clearly.
• No confusion about requirements.
• Delivery of Functionality: is done in multiple
phases depending upon the priorities of the
requirements.
• Every Cycle: deliveres a semi-completed product
with limited functionality.
• Last Cycle: Complete s/w.
33. Iterative Enhancement Model.
• Phase Same phases as waterfall model
• They are implemented with less restriction.(No need to
follow sequential manner)
• Occurs in same order but in several cycles.
• Requirement Major requirements are specified by the
customer at beginning and SRS is prepared.
• Priorities- decided for different requi. by customer and
developer.
• Implementation of these requirement is done based
on priorities.
34.
35. Waterfall vs Incremental
• Waterfall
• One final product at the end of SDLC with all the
functionalities.
• Long wait for the software.
• Incremental.
• Complete s/w is divided into releases.
• Limited functionality is released in every cycle.
• First release is available within a weeks/months.
36. RAD(Rapid Application Development) Model.
• Developed by IBM.
• In RAD user participation is very important.
• RAD model is Rapid Application Development
model. It is a type of incremental model.
• In RAD model the components or functions
are developed in parallel as if they were mini
projects.
• The developments are time boxed, delivered
and then assembled into a working prototype.
Requirement
Planning
User
Description
Construction Cut Over
37. 1. Requirement Planning:
• Using group elicitation techniques like brain
stroming.
• User communication required for good
understanding of requirements..
• To gather and finalize the requirement by using
following prototype.
• As long as requirements is finalized the process
continues.
Feedback
User Evaluation
Build Rapid
prototype
Prototype
refined
38. 2. User Description:A joint team of customers
and developers understands and reviews the
gathered requirements.
• Automated tools may also be used.
3. Construction:Designcoding testing
• Product is released.
• For quick development we use automated
code,screen generator.
4. Cut over:All development is over.
• Install the software+Acceptance
testing+Training of the user.
39. Major Features.
• Rapid Prototype: Quick initial views about
product.
• Powerful development tools: Development
time goes down.
• User involvement: Acceptability of the
product increase.
40. Not useful when
• User cannot be involved continuously.
• Tools & resuable components cannot be used.
• Highly skilled & specialized developers.
41. SDLC Evolutionary Model
• SDLC Evolutionary model builds the required product
in several successive versions.
• It is also known as incremental model.
• Important points on SDLC Evolutionary model
• Requirement is broken down into different functional
units/Modules.
• These modules can be incrementally built and
delivered.
• Here at the beginning the core module of the software
product is developed.
• New functionality is built, added to existing one and
released as new version.
• Each successive version is capable of performing more
functions in comparision to its previous versions.
42.
43.
44. Useful when
• It is also suitable for large products where
requirements can be divided into modules.
• Every version will get built and delivered to
customer who can then use it instead of
waiting for the complete system.
45. Difference between Evolutionarly vs
Iterative.
• Iteravtive:A usable product is delivered at end
of each cycle.
• Requirements implemented priority wise.
• Evolutionary: No usable product at end of
each cycle.
• Requirements implemented category wise.
46. • For example, in a simple database application, one cycle might implement
the graphical user interface (GUI); another file manipulation; another
queries; and other updates.
- All four cycles must complete before there is working product available.
- GUI allows the users to interact with the system; file manipulation allows
data to be saved and retrieved; queries allow users to get data out of the
system; and updates allow users to put data into the system.
- With any one of those parts missing, the system will be unusable.
- In contrast, an iterative enhancement model would start by developing a
very simplistic, but usable database.
- On the completion of each cycle, the system would become more
sophisticated.
- It would provide all the critical functionality by the end of the first cycle.
- Evolutionary development and iterative enhancement are somewhat
interchangable.
48. Prototyping Model.
• Prototype is a working model of software with some
limited functionality.
• The prototype does not always hold the exact logic
used in the actual software application and is an extra
effort to be considered under effort estimation.
• Prototyping is used to allow the users evaluate
developer proposals and try them out before
implementation.
• It also helps understand the requirements which are
user specific and may not have been considered by the
developer during product design.
• Continuous customer support in requirement phase.
49. Drawbacks
• Limited Functionality.
• Not very good quality.
• Not good performance.
• Advantages:
• Refine requirements.
• Prepare final SRS documents.
50. • Is prototype our final product?
• Benefits of developing a prototype?
• Does prototype development incur extra cost?
52. • Developed by Barry Boehm.
• Main feature: Handling uncertainity/Risk.
• Phase: Mulitiple phases having 4 Activities.
• 1. Planning: Determine objectivies,alternatives.
• Imposes constraints.
• 2. Risk: Identify & resolve risk, classify into levels
• Tries to find alternatives and plan ahead.
• 3. Development and testing
• 4. Assessment: Customer Evaluation.
53. • Phase1: PlanningAnalyse
RiskPrototypebuiltCustomer Evaluation &
feedback.
• Phase2:prototype is refinedReqirements are
documented & validated by
customersfinalprototype.
• Phase3:Risks are knownuse traditional
approach for development.
54. Focus Area.
• Identify problemclassify into different risk
levelseliminate them before they affect
software.
• Continuous validation(review) by concerned
people(designers/developers) to check the
work product quality.
55. • Advantages:
• Accommodate good features of other SDLC
models.
• Software quality maintained during development
– By continuous risk analysis.
– Reviews conducted.
Disadvantages:
Experties required in risk handling to carry out spiral
model
56. Software Requirements Engineering.
• The process to gather the software requirements
from client, analyze and document them is
known as requirement engineering.
• Understanding the requirements of the
customers, then document the requirements.
• Document the Requirement Specification what to
do, & does not tell us How to do.
• Work Product: It Produces one large document
written in Natural language containing a
description of WHAT system will do without
describing HOW it will do it.
• SRS
57. Importance of Requirements Eng.
• Without well written document:
• The developers will not know what to do.
• Customers may not be consistent about
requirements.
• It becomes difficult to validate/accept the
software.
58. 4 steps in Requirement Engineering
• 1. Requirement Elicitation: Gathering of requi, requi
are identified with the help of customers(Existing
system)
• 2.Requi. Analysis: Requi are analysed to find
inconsistencies , defects, omittions , priorities.
• 3. Requi. Documentation: end product of first 2 steps.
• Leads to prepration of SRS.
• It becomes foundation for design of s/w.
• 4. Requi. Review or verification: To improve the
quality of SRS.
59. Software Requirement
Elicitation(Requi. Gathering)
• Requi elicitation is an activity that helps us to
understand what problem has to be solved and wat
customers expect from the software.
• Foundation: Effective communication between
customer and the developer.
• Method: Developer questions customers.
• Customer responds, based on response cross questions
carry outs.
• Hurdles: Misunderstanding/conflict(customer &
developers are not understanding each others point of
view)
• Communication gap.(unanswered questions)
60. Reason for Conflicts
• Developers is efficient in the knowledge of his
own development domain while customer is
efficient only in his domain(not suitable to
implement some functionality)
• Lack of proper communication skills(not
understanding technical terms)
61. Requi Elicitation Methods.
1. Interviews: Understanding each other.
• Requi engineers act as mediators between customer
and development team.
• Open minded, co-operative,understanding,flexible.
• Types of interviews:
• 1. open-ended:No pre-set agenga.
• No pre-defined list of questions are prepared.
• 2. Structure: There is a set agenda.
• pre-defined list of questions are prepared.
• In both interviews questions should be short,simple &
clear.
• Both parties should be open for discussion in any
direction.
62. Types of stakeholders to interview.
• 1. Entry level personnel: They don’t have much
domain knowledge.
• They have new ideas,opinions.general ideas(not
technical)
• 2. Mid level: Experience people with good
domain knowledge they know the criticality of
the project. Eg. Project Managers
• 3. Mangers and higher managements: Useful
insights about the project.
• 4. Users of S/W: They will be using the software
max no. of time.
63. 2. BrainStroming Session.
• Group Discussion techniques.
• Promotes creative thinking & new ideas.
• Platform to express and share your views, expectations &
difficulties in implementation.
• Facilitators: Ego clashes/conflicts(to avoid them)
• Encourage people to participate as much as possible.
• Work Product:all ideas are Documented and displayed on
projector , so that all participant can see.
• Detailed report containing each idea in simple language is
prepared and reviewed by facilitator.
• At end a document is prepared with list of requirements
and their priority.
64. Types of Requirements
1. Functional and non-functional requi.
2. User and system requi.(language difference)
3. Interface specification.
65. • Functional Requi: (Product Features)
- Describes what the system has to do.
- What are expectations from the software.
- What the system should not do.
• Non-Function Requi.:
- Highlight how well the software programs its function.
- Eg: for user: High performance.goog interface,usability.
- For developers: maintainability,testability,portability.
66. • User Requi.: Written for users who are not experts of
software field
- Highlight the overview of the system without design
description.
- Specifies:
- functional+non functional requi.
- Constraints.
- Quality.
- External behaviour(user interaction like interfaces)
- What to avoid?
- Complex lang.
- Technical terms.
67. • System requi.: (expanded form of user requi.)
• Used as input to designers so that they can
prepared SDD.
• Both user and system requi are a part of SRS.
• Interface specification:
• API(Application programming interfaces) are
specified in SRS.
• What kind of interfaces customer desires.
68. SRS (software requirements
specification)
• A software requirements specification (SRS) is
a document that captures complete
description about what the system is expected
to perform.
• It is usually signed off at the end of
requirements engineering phase.
69. Characteristics of good SRS.
1. Consistency:No conflict between the requirements.
- Every requi must be specified using standard
terminiology.
- Eg. Module A should take 3 inputs but later the same
module A should take 2 inputs
2. Correct: What is stated is exactly what is desired.
- Expected functionality matches the requi present in
SRS.
3. Unambiguos: Every stated requi has only 1 unique
meaning.
- Words with multiple meaning(these words should be
specified with meaning)
- SRS lang is used.
- Advantage: lang processors exist which tell diff kinds
of errors.
70. 4. Complete: include all functional+non functional
requi+constraints.
- Specifies expected output from all kinds(valid/invalid)
inputs from the user.
5. Traceable: each requi should be clear.
- Important is because future referencing may be
required for development/maintenance.(ask
concerned people)
6. verifiable:Each requi is verifiable.
7. modifiable: easy to make changes in SRS retaining its
structure.
72. What is Agile Model?(ability to move quickly
and easily)
• Agile model, the requirements are decomposed into many small parts
that can be incrementally developed.
• The Agile model adopts Iterative development.
• Each iteration is intended to be easily manageable and that can be
completed within a couple of weeks only.
• At a time one iteration is planned, developed and deployed to the
customers.
• Long-term plans are not made.
• Agile model is the combination of iterative and incremental process
models.
• Steps involve in agile SDLC models are:
• Requirement gathering
• Requirement Analysis
• Design
• Coding
• Unit testing
• Acceptance testing
73. Agile Vs Traditional SDLC Models
• Agile is based on the adaptive software development
methods, whereas the traditional SDLC models like the
waterfall model is based on a predictive approach.
• Predictive teams in the traditional SDLC models
usually work with detailed planning and have a
complete forecast of the exact tasks and features to be
delivered in the next few months or during the product
life cycle.
• Predictive methods entirely depend on
the requirement analysis and planning done in the
beginning of cycle.
• Any changes to be incorporated go through a strict
change control management and prioritization.
74. • Agile uses an adaptive approach where there is no
detailed planning and there is clarity on future tasks
only in respect of what features need to be developed.
• There is feature driven development and the team
adapts to the changing product requirements
dynamically.
• The product is tested very frequently, through the
release iterations, minimizing the risk of any major
failures in future.
• Customer Interaction is the backbone of this Agile
methodology, and open communication with minimum
documentation are the typical features of Agile
development environment.
• The agile teams work in close collaboration with each
other and are most often located in the same
geographical location.
75. Use of Agile Model
• In earlier days Iterative Waterfall model was very
popular to complete a project.
• But nowadays developers face various problems while
using it to develop a software.
• The main difficulties included
- handling change requests from customers during
project development
- the high cost and time required to incorporate these
changes.
- To overcome these drawbacks , in the mid-1990s the
Agile Software Development model was proposed.
76. Why agility is Required?
• The Agile model was primarily designed to
help a project to adapt to change requests
quickly.
• So, the main aim of the Agile model is to
facilitate quick project completion.
• Agility is achieved by removing activities that
may not be essential for a specific project.
Also, anything that is wastage of time and
effort is avoided.
77. Agile SDLC models
• Crystal
• Atern
• Feature-driven development
• Scrum
• Extreme programming (XP)
• Lean development
• Unified process
• These are now collectively referred to as Agile
Methodologies, after the Agile Manifesto was
published in 2001.
78. Following are the Agile Manifesto
principles −
• Individuals and interactions − In Agile development, self-
organization and motivation are important, as are
interactions like co-location and pair programming.
• Working software − Demo working software is considered
the best means of communication with the customers to
understand their requirements, instead of just depending
on documentation.
• Customer collaboration − As the requirements cannot be
gathered completely in the beginning of the project due to
various factors, continuous customer interaction is very
important to get proper product requirements.
• Responding to change − Agile Development is focused on
quick responses to change and continuous development.
79. Software Delivery.
• The time to complete an iteration is known as a Time
Box.
• Time-box refers to the maximum amount of time
needed to deliver an iteration to customers.
• So, the end date for an iteration does not change.
• The development team can decide to reduce the
delivered functionality during a Time-box if necessary
to deliver it on time.
• The principle of the Agile model is the delivery of an
increment to the customer after each Time-box.
80. Advantages of Agile model:
• Customer satisfaction by rapid, continuous delivery of
useful software.
• Customers, developers and testers constantly interact
with each other.
• Working software is delivered frequently (weeks rather
than months).
• Face-to-face conversation is the best form of
communication.
• Daily cooperation between business people and
developers.
• Continuous attention to technical excellence and good
design.
• Regular adaptation to changing circumstances.
• Even late changes in requirements are welcomed.
81. Disadvantages of Agile model:
• In case of some software deliverables, especially the
large ones, it is difficult to assess the effort required at
the beginning of the software development life cycle.
• There is lack of emphasis on necessary designing and
documentation.
• The project can easily get taken off track if the
customer representative is not clear what final
outcome that they want.
• Only senior programmers are capable of taking the
kind of decisions required during the development
process. Hence it has no place for new programmers,
unless combined with experienced resources.
82. Example of Agile software
development
• Example: Google is working on project to
come up with a competing product for MS
Word, that provides all the features provided
by MS Word and any other features requested
by the marketing team. The final product
needs to be ready in 10 months of time. Let us
see how this project is executed in traditional
and Agile methodologies.
83. In traditional Waterfall model –
• At a high level, the project teams would spend 15% of
their time on gathering requirements and analysis (1.5
months)
• 20% of their time on design (2 months)
• 40% on coding (4 months) and unit testing
• 20% on System and Integration testing (2 months).
• At the end of this cycle, the project may also have 2
weeks of User Acceptance testing by marketing teams.
• In this approach, the customer does not get to see the
end product until the end of the project, when it
becomes too late to make significant changes.
85. With Agile development methodology–
• In the Agile methodology, each project is broken up into several
‘Iterations’.
• All Iterations should be of the same time duration (between 2 to 8 weeks).
• At the end of each iteration, a working product should be delivered.
• In simple terms, in the Agile approach the project will be broken up into
10 releases (assuming each iteration is set to last 4 weeks).
• Rather than spending 1.5 months on requirements gathering, in Agile
software development, the team will decide the basic core features that
are required in the product and decide which of these features can be
developed in the first iteration.
• Any remaining features that cannot be delivered in the first iteration will
be taken up in the next iteration or subsequent iterations, based on
priority.
• At the end of the first iterations, the team will deliver a working software
with the features that were finalized for that iteration.
• There will be 10 iterations and at the end of each iteration the customer is
delivered a working software that is incrementally enhanced and updated
with the features that were shortlisted for that iteration.
88. Unified Model
• The Unified Process Model (UPM) is an iterative,
incremental, architecture-centric and use-case driven
approach to software development.
• Use-case driven approach
• The list of requirements specified by a customer are
converted to functional requirements by a business analyst
and generally referred to as use cases.
• For example, the online cake shop can be specified in terms
of use cases such as 'Add cake to cart', 'Change the quantity
of added cakes in cart', 'Cake Order Checkout' and so on.
• Architecture-centric approach
• creating a blueprint of the organization of the software
system.
• It would include taking into account the different
technologies, programming languages, operating systems,
development and release environments, for developing the
software.
89. Phases of Unified Process Model.
• Inception: initial concept(requirement
gathering)
• Elaboration: exploring requirements
• Construction: building the software
• Transition: final packaging
90. • Inception : The inception phase is similar to the 'Requirements
Collection and Analysis' stage of the Waterfall Model of software
development.
• In this phase, you'd collect requirements from the customer,
analyse the project's feasibility, it's cost, risks and profits.
• Elaboration : In this phase, you'd be expanding upon the activities
undertaken in the inception phase.
• The major goals of this phase include creating fully functional
requirements (use cases) and creating a detailed architecture for
fulfillment of the requirements.
• You'd also prepare a business case document for the customer.
• Construction : In this phase, you'd be writing actual code and
implementing the features for each iteration.
• You'd be rolling out the first iteration of the software depending on
the key use cases that make up the core functionalities of the
software system.
• Transition : In this phase, you'd be rolling out the next iterations to
the customer and fixing bugs for previous releases.
• You would also deploy 'builds' of the software to the customer.
91. Advantages of UP
• Rapid feedback from users and developers
– Then adapt to changes in the next iteration
(adaptive development)
• Visible progress.
• Manage complexity by dividing the problem
into smaller ones.
92. Scrum
• Scrum is a project management framework
that is applicable to any project with
aggressive deadlines, complex requirements.
• In Scrum, projects move forward via a series of
iterations called sprints.
• Each sprint is typically two to four weeks long.
97. Scrum Best Practices
• Define requirements just in time to keep product
features as relevant as possible.
• Test and incorporate product owner feedback
daily.
• Sprint reviews with stakeholders need to be
regular.
• The scrum team needs to use the sprint
retrospectives to improve how they work.
• Conduct face-to-face conversations to reduce
miscommunications.
• Trust the teams to do the best job possible.
• Don’t burn out the team members. Respect the
balance between their personal and professional
lives to ease stress.
98. Extreme Programming(XP)
• Extreme Programming (XP) is an agile
software development framework that aims
to produce higher quality software, and higher
quality of life for the development team.
99. Values of XP
• The five values of XP are:
• Communication
• communication to transfer knowledge from one team member to
everyone else on the team.
• XP of communication - face to face discussion with the aid of a white
board or other drawing mechanism.
• Simplicity
• Simplicity means “what is the simplest thing that will work?” The purpose
of this is to avoid waste and do only absolutely necessary things such as
keep the design of the system as simple as possible so that it is easier to
maintain, support, and revise.
• Simplicity also means address only the requirements that you know
about; don’t try to predict the future.
• Feedback
• Through constant feedback about their previous efforts, teams can
identify areas for improvement and revise their practices.
• Feedback also supports simple design. Your team builds something,
gathers feedback on your design and implementation, and then adjust
your product going forward.
100. • Courage
• You need courage to raise organizational issues that
reduce your team’s effectiveness.
• courage to stop doing something that doesn’t work
and try something else.
• courage to accept and act on feedback, even when it’s
difficult to accept.
• Respect
• The members of your team need to respect each other
in order to communicate with each other, provide and
accept feedback that honors your relationship, and to
work together to identify simple designs and solutions.
101. Project Manager.
• A software project manager is the most important
person inside a team who takes the overall
responsibilities to manage the software projects and
play an important role in the successful completion of
the projects.
• A project manager has to face many difficult situations
to accomplish activities like building up team moral.
• Most of the managers take responsibility for writing
the project proposal, project cost estimation,
scheduling, project staffing, project monitoring and
control, software configuration management, risk
management and interfacing with clients.
• The task of a project manager are classified into two
major types:
• Project planning
• Project monitoring and control
102. Project Planning
• Project planning is undertaken immediately after the feasibility
study phase and before the starting of the requirement analysis
phase.
• Once a project has been found to be feasible, Software project
managers started project planning.
• Project planning is completed before any development phase
starts.
• Project planning involves estimating several characteristics of a
project and then plan the project activities based on these
estimations.
• Project planning is done with most care and attention.
• A wrong estimation can result in :
• Schedule delay can cause customer dissatisfaction, which may lead
to a project failure.
• For effective project planning, in addition to a very good knowledge
of various estimation techniques, past experience is also very
important. During the project planning the project manager
performs the following activities:
103. During the project planning the project
manager performs the following
activities:
• Project Estimation: Project Size Estimation is the most important
parameter based on which all other estimations like cost, duration and
effort are made.
– Cost Estimation: Total expenses to develop the software product is estimated.
– Time Estimation: The total time required to complete the project.
– Effort Estimation: The effort needed to complete the project is estimated.
• The effectiveness of all later planning activities is dependent on the
accuracy of these three estimations.
• Scheduling: After completion of estimation of all the project parameters,
scheduling for manpower and other resources are done.
• Staffing: Team structure and staffing plans are made.
• Risk Management: The project manager should identify the unanticipated
risks that may occur during project development risk, analysis the damage
might cause these risks and take risk reduction plan to cope up with these
risks.
• Miscellaneous plans: This includes making several other plans such as
quality assurance plan, configuration management plan, etc.
104. Project monitoring and control
• Project monitoring and control activities are
undertaken once the development activities start.
• The main focus of project monitoring and control
activities is to ensure that the software
development proceeds as per plan.
• This includes checking whether the project is
going on as per plan or not if any problem
created then the project manager must take
necessary action to solve the problem.
105. knowledge areas of Project
Management:
• Project Integration Management : Project Integration Management
includes the processes and activities needed to identify, define,
combine, unify, and coordinate the various processes and project
management activities within the Project Management Process
Groups.
• Project Scope Management : Project Scope Management includes
the processes required to ensure that the project includes all the
work required, and only the work required, to complete the project
successfully.
• Project Time Management : Project Time Management includes the
processes required to manage the timely completion of the project.
• Project Cost Management : Project Cost Management includes the
processes involved in planning, estimating, budgeting, financing,
funding, managing, and controlling costs so that the project can be
completed within the approved budget.
• Project Quality Management : Project Quality Management
includes the processes and activities of the performing organization
that determine quality policies, objectives, and responsibilities so
that the project will satisfy the needs for which it was undertaken.
106. • Project Human Resource Management : Project Human Resource
Management includes the processes that organize, manage, and lead the
project team.
• Project Communications Management : Project Communications
Management includes the processes that are required to ensure timely
and appropriate planning, collection, creation, distribution, storage,
retrieval, management, control, monitoring, and the ultimate disposition
of project information.
• Project Risk Management : Project Risk Management includes the
processes of conducting risk management planning, identification,
analysis, response planning, and controlling risk on a project.
• Project Procurement Management : Project Procurement Management
includes the processes necessary to purchase or acquire products,
services, or results needed from outside the project team
• Project Stakeholders Management : Project Stakeholder Management
includes the processes required to identify all people or organizations
impacted by the project, analyzing stakeholder expectations and impact
on the project, and developing appropriate management strategies for
effectively engaging stakeholders in project decisions and execution.