SlideShare a Scribd company logo
1 of 53
SOFTWARE DEVELOPMENT
AND PROCESS MODELS
INTRODUCTION TO SOFTWARE DEVELOPMENT
 Software development- Set of computer science activities dedicated to the
process of creating, designing, deploying and supporting software.
 Three basic types
 System software - Core functions such as operating systems, disk
management, utilities, hardware management
 Programming software - Give programmers tools such as text editors,
compilers, linkers, debuggers and other tools to
create code
 Application software - Office productivity suites, data management
software, media players and security programs
 A possible fourth type is embedded software
SOFTWARE DEVELOPMENT
 Programmers, or coders
 Write source code to program computers for specific tasks like merging
databases, processing online orders, routing communications, conducting
searches or displaying text and graphics
 Software engineers
 Apply engineering principles to build software and systems to solve
problems.
 They use modeling language and other tools to devise solutions that can
often be applied to problems in a general way, as opposed to merely
solving for a specific instance or client
 Software developers
 Have a less formal role than engineers and can be closely involved with
specific project areas - including writing code
Developing software typically involves the following
steps
 Selecting a methodology
 Gathering requirements
 Choosing or building an architecture
 Developing a design
 Building a model
 Constructing code
 Testing
 Managing configuration and defects
 Deploying
 Migrating data
 Managing and measuring the project
CHALLENGES
 Changing Requirements during the development process brings challenges for
the software developers. Sometimes they won’t be able to deal with changing
requirements
 Providing complete Security to the software applications is a major challenge
for developers as hackers are trying each moment there to hack the software
applications and steal the data
 Sometimes Misinterpreted requirements to give rise to a problem as a result the
software product fails to give the actual result to the end-users
 Many times software developers face problems during System and Application
integration leading to the failure of software projects also
 Further Maintenance and Upgradation become a problem for software
developers for some software projects
 Adapting to the latest Technology becomes a big challenge for software
developers when they don’t have sufficient experience with the latest market
trends
 Sometimes when the developers don’t get the appropriate Project infrastructure
for the development and deployment of projects they face problems in delivering
the product.
 Getting Defects or Errors in the product during its last stage creates an unwanted
challenge for the software developers
 Time limitations play a vital role in software development. When there is not
sufficient time for the development times the product doesn’t meet the quality
standards as the developers work under pressure and output decreases.
 When a new developer lacks proper Communication and Coordination with the
other developers of the same development team it creates a problem at some
point.
 It feels like a common problem when one developer Works with another
developer’s code This situation creates a problem for the developer as it takes
a lot of time for the new developer to understand the code.
 In last, most software developers face this problem if they Don’t get the
required support from the Project Manager/Leader, and sometimes it gets
difficult to handle the relationship between colleagues and managers which in
terms decreases productivity
 Software developers face a number of challenges in their work
COMMON CHALLENGES
 Complexity
 Maintaining Quality
 Meeting Deadlines
 Keeping up with new technologies
 Managing changing requirements
 Collaboration
 Debugging
 Dealing with legacy code
 Managing complexity in distributed development
 Balancing short-term and long-term goals
HOW TO FACE THIS CHALLENGES
 Complexity: Use design patterns and architecture principles to simplify the
software systems and make it easy to understand and manage
 Maintaining Quality: Use software testing and quality assurance techniques to
ensure the quality of software systems, and conduct code reviews to identify
and fix issues early on.
 Meeting Deadlines: Use project management techniques such as Agile
development and Scrum to plan and manage work effectively
 Keeping up with new technologies: Continuously learn and explore new
technologies and programming languages to stay current
 Managing changing requirements: Use flexible development methodologies
such as Agile and Scrum to handle changing requirements effectively
Contd…
 Collaboration: Use collaboration tools such as communication platforms and
version control systems to facilitate effective collaboration among team
members
 Debugging: Use debugging tools and techniques to simplify the debugging
process and make it more efficient
 Dealing with legacy code: Use refactoring techniques to improve the quality and
maintainability of legacy code.
 Managing complexity in distributed development: Use communication tools and
techniques to effectively coordinate and communicate with team members
located in different parts of the world.
 Balancing short-term and long-term goals: Use techniques such as Test-driven
development and Continuous Integration to balance short-term goals and long-
term goals.
OBJECT ORIENTATION
 OOPs Concepts
 Class
 Objects
 Data Abstraction
 Encapsulation
 Inheritance
 Polymorphism
 Dynamic Binding
 Message Passing
 Class
 A class is a user-defined data type. It consists of data members and member
functions, which can be accessed and used by creating an instance of that
class. It represents the set of properties or methods that are common to all
objects of one type.
 Object
 It is a basic unit of Object-Oriented Programming and represents the real-life
entities. An Object is an instance of a Class. When a class is defined, no
memory is allocated but when it is instantiated memory is allocated.
 Data Abstraction
 Data abstraction refers to providing only essential information about the data to the
outside world, hiding the background details or implementation
 Encapsulation
 Encapsulation is defined as the wrapping up of data under a single unit. It is the
mechanism that binds together code and the data it manipulates
 Inheritance
 Inheritance is an important pillar of OOP(Object-Oriented Programming).
 The capability of a class to derive properties and characteristics from another class
is called Inheritance.
 When we write a class, we inherit properties from other classes.
 Polymorphism
 The word polymorphism means having many forms. In simple words, we can define
polymorphism as the ability of a message to be displayed in more than one form.
For example, A person at the same time can have different characteristics
 Dynamic Binding
 Dynamic binding means that the code associated with a given procedure call is not
known until the time of the call at run time. Dynamic Method Binding One of the
main advantages of inheritance is that some derived class D has all the members
of its base class B. Once D is not hiding any of the public members of B, then an
object of D can represent B in any context where a B could be used. This feature is
known as subtype polymorphism
 Message Passing -It is a form of communication used in object-oriented
programming as well as parallel programming
SOFTWARE DEVELOPMENT PROCESS
Stage 1: Planning and Requirement Analysis
 Requirement analysis is the most important and fundamental stage in SDLC. It
is performed by the senior members of the team with inputs from the customer,
the sales department, market surveys and domain experts in the industry.
 This information is then used to plan the basic project approach and to conduct
product feasibility study in the economical, operational and technical areas.
 Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage.
 The outcome of the technical feasibility study is to define the various technical
approaches that can be followed to implement the project successfully with
minimum risks.
Stage 2: Defining Requirements
 Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer
or the market analysts.
 This is done through an SRS (Software Requirement Specification)
document which consists of all the product requirements to be designed and
developed during the project life cycle
Stage 3: Designing the Product Architecture
 SRS is the reference for product architects to come out with the best
architecture for the product to be developed.
 Based on the requirements specified in SRS, usually more than one design
approach for the product architecture is proposed and documented in a DDS –
Design Document Specification.
 A design approach clearly defines all the architectural modules of the product
along with its communication and data flow representation with the external and
third party modules (if any).
 The internal design of all the modules of the proposed architecture should be
clearly defined with the minutest of the details in DDS.
Stage 4: Building or Developing the Product
 In this stage of SDLC the actual development starts and the product is built.
 The programming code is generated as per DDS during this stage. If the design is
performed in a detailed and organized manner, code generation can be
accomplished without much hassle.
 Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to
generate the code.
 Different high level programming languages such as C, C++, Pascal, Java and
PHP are used for coding.
 The programming language is chosen with respect to the type of software being
developed.
Stage 5: Testing the Product
 This stage is usually a subset of all the stages as in the modern SDLC
models, the testing activities are mostly involved in all the stages of SDLC.
 This stage refers to the testing only stage of the product where product
defects are reported, tracked, fixed and retested, until the product reaches
the quality standards defined in the SRS.
Stage 6: Deployment in the Market and
Maintenance
 Once the product is tested and ready to be deployed it is released formally in the
appropriate market.
 Sometimes product deployment happens in stages as per the business strategy of
that organization.
 The product may first be released in a limited segment and tested in the real
business environment (UAT- User acceptance testing).
 Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment.
 After the product is released in the market, its maintenance is done for the existing
customer base.
SDLC - Waterfall Model
SDLC - Waterfall Model
 Requirement Gathering and analysis − All possible requirements of the system to
be developed are captured in this phase and documented in a requirement
specification document.
 System Design − The requirement specifications from first phase are studied in this
phase and the system design is prepared. This system design helps in specifying
hardware and system requirements and helps in defining the overall system
architecture.
 Implementation − With inputs from the system design, the system is first developed
in small programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred to as Unit Testing.
Contd..
 Integration and Testing − All the units developed in the implementation
phase are integrated into a system after testing of each unit. Post
integration the entire system is tested for any faults and failures.
 Deployment of system − Once the functional and non-functional testing is
done; the product is deployed in the customer environment or released into
the market.
 Maintenance − There are some issues which come up in the client
environment. To fix those issues, patches are released. Also to enhance
the product some better versions are released. Maintenance is done to
deliver these changes in the customer environment.
SDLC - Waterfall Model
 Advantages are
 Simple and easy to understand and
use
 Easy to manage due to the rigidity of
the model. Each phase has specific
deliverables and a review process.
 Phases are processed and completed
one at a time.
 Works well for smaller projects where
requirements are very well
understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well
documented
 Disadvantages are
 No working software is produced until late
during the life cycle.
 High amounts of risk and uncertainty.
 Not a good model for complex and object-
oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where
requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with
this process model.
 It is difficult to measure progress within
stages.
 Cannot accommodate changing
requirements.
 Adjusting scope during the life cycle can end
a project.
 Integration is done as a "big-bang. at the very
SDLC - ITERATIVE MODEL
SDLC - ITERATIVE MODEL
 Iterative and Incremental development is a combination of both iterative design or
iterative method and incremental build model for development.
 "During software development, more than one iteration of the software development
cycle may be in progress at the same time."
 This process may be described as an "evolutionary acquisition" or "incremental build“
approach."
 In this incremental model, the whole requirement is divided into various builds. During
each iteration, the development module goes through the requirements, design,
implementation and testing phases.
 Each subsequent release of the module adds function to the previous release.
 The process continues till the complete system is ready as per the requirement.
 Pros are
 Some working functionality can be developed quickly and early in the life cycle.
 Results are obtained early and periodically.
 Parallel development can be planned.
 Progress can be measured.
 Less costly to change the scope/requirements.
 Testing and debugging during smaller iteration is easy.
 Risks are identified and resolved during iteration; and each iteration is an easily
 managed milestone.
 Easier to manage risk - High risk part is done first.
 With every increment, operational product is delivered.
 Issues, challenges and risks identified from each increment can be utilized/applied to the next
increment.
 Risk analysis is better.
 It supports changing requirements.
 Initial Operating time is less.
 Better suited for large and mission-critical projects.
 During the life cycle, software is produced early which facilitates customer evaluation and
feedback.
Cons
 More resources may be required.
 Although cost of change is lesser, but it is not very suitable for changing requirements.
 More management attention is required.
 System architecture or design issues may arise because not all requirements are
 gathered in the beginning of the entire life cycle.
 Defining increments may require definition of the complete system.
 Not suitable for smaller projects.
 Management complexity is more.
 End of project may not be known which is a risk.
 Highly skilled resources are required for risk analysis.
 Projects progress is highly dependent upon the risk analysis phase.
SDLC - SPIRAL MODEL
Identification
 This phase starts with gathering the business requirements in the baseline
spiral.
 In the subsequent spirals as the product matures, identification of system
requirements, subsystem requirements and unit requirements are all done in
this phase.
 This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst.
 At the end of the spiral, the product is deployed in the identified market.
 Design
 The Design phase starts with the conceptual design in the baseline spiral and
involves architectural design, logical design of modules, physical product design and
the final design in the subsequent spirals.
 Construct or Build
 The Construct phase refers to production of the actual software product at every
spiral.
 In the baseline spiral, when the product is just thought of and the design is being
developed a POC (Proof of Concept) is developed in this phase to get customer
feedback.
 Then in the subsequent spirals with higher clarity on requirements and design details
a working model of the software called build is produced with a version number.
These builds are sent to the customer for feedback.
 Evaluation and Risk Analysis
 Risk Analysis includes identifying, estimating and monitoring the technical
feasibility and management risks, such as schedule slippage and cost overrun.
 After testing the build, at the end of first iteration, the customer evaluates the
software and provides feedback.
 The following illustration is a representation of the Spiral Model, listing the
activities in each phase.
Advantages are
 Changing requirements can be
accommodated.
 Allows extensive use of prototypes.
 Requirements can be captured
more accurately.
 Users see the system early.
 Development can be divided into
smaller parts and the risky parts
can be developed earlier which
helps in better risk management.
Disadvantages are
 Management is more complex.
 End of the project may not be
known early.
 Not suitable for small or low risk
projects and could be expensive for
small projects.
 Process is complex
 Spiral may go on indefinitely.
 Large number of intermediate
stages requires excessive
documentation
SDLC - BIG BANG MODEL
 The Big Bang model is an SDLC model where we do not follow any specific
process.
 The development just starts with the required money and efforts as the input,
and the output is the software developed which may or may not be as per
customer requirement.
 This Big Bang Model does not follow a process/procedure and there is a very
little planning required.
 Even the customer is not sure about what exactly he wants and the
requirements are implemented on the fly without much analysis.
 Usually this model is followed for small projects where the development teams
are very small.
 Advantages are
 This is a very simple model
 Little or no planning required
 Easy to manage
 Very few resources required
 Gives flexibility to developers
 It is a good learning aid for new
comers or students
 Disadvantages are
 Very High risk and uncertainty.
 Not a good model for complex and
object-oriented projects.
 Poor model for long and ongoing
projects.
 Can turn out to be very expensive if
requirements are misunderstood
SOFTWARE DEVELOPMENT LIFE CYCLE
 Stage1: Planning and requirement analysis
 Requirement Analysis is the most important and necessary stage in SDLC. The senior members of the
team perform it with inputs from all the stakeholders and domain experts or SMEs in the industry
 Stage2: Defining Requirements
 Once the requirement analysis is done, the next stage is to certainly represent and document the
software requirements and get them accepted from the project stakeholders
 Stage3: Designing the Software
 The next phase is about to bring down all the knowledge of requirements, analysis, and design of the
software project. This phase is the product of the last two, like inputs from the customer and
requirement gathering.
 Stage4: Developing the project
 In this phase of SDLC, the actual development begins, and the programming is
built. The implementation of design begins concerning writing code. Developers
have to follow the coding guidelines described by their management and
programming tools like compilers, interpreters, debuggers, etc. are used to
develop and implement the code.
 Stage5: Testing
 After the code is generated, it is tested against the requirements to make sure
that the products are solving the needs addressed and gathered during the
requirements stage
 Stage6: Deployment
 Once the software is certified, and no bugs or errors are stated, then it is
deployed. Then based on the assessment, the software may be released as it
is or with suggested enhancement in the object segment
 Stage7: Maintenance
 Once when the client starts using the developed systems, then the real issues
come up and requirements to be solved from time to time
UNIFIED PROCESS MODEL
The phases of the unified process
 Inception
 The main goal of this phase involves delimiting the project scope.
 This is where we define why we are making this product in the first place.
 It should have the following:
 What are the key features?
 How does this benefit the customers?
 Which methodology will we follow?
 What are the risks involved in executing the project?
 Schedule and cost estimates.
Contd..
 Elaboration
 We build the system given the requirements, cost, and time constraints and all the risks
involved.
 It should include the following:
 Develop with the majority of the functional requirements implemented.
 Finalize the methodology to be used.
 Deal with the significant risks involved.
 Construction
 This phase is where the development, integration, and testing take place.
 We build the complete architecture in this phase and hand the final documentation to the
client.
 Transition
 This phase involves the deployment, multiple iterations, beta releases, and improvements of
the software.
 The users will test the software, which may raise potential issues.
ITERATIVE MODEL
ITERATIVE MODEL
 Requirement gathering & analysis:
 In this phase, requirements are gathered from customers and check by an analyst whether
requirements will fulfil or not.
 Analyst checks that need will achieve within budget or not. After all of this, the software
team skips to the next phase.
 Design:
 In the design phase, team design the software by the different diagrams like Data Flow
diagram, activity diagram, class diagram, state transition diagram, etc.
 Implementation:
 In the implementation, requirements are written in the coding language and transformed into
computer programmes which are called Software.
 Testing:
 After completing the coding phase, software testing starts using different test methods.
There are many test methods, but the most common are white box, black box, and grey box
test methods.
 Deployment:
 After completing all the phases, software is deployed to its work environment.
 Review:
 In this phase, after the product deployment, review phase is performed to check
the behavior and validity of the developed product.
 And if there are any error found then the process starts again from the
requirement gathering.
 Maintenance:
 In the maintenance phase, after deployment of the software in the working
environment there may be some bugs, some errors or new updates are
required.
 Maintenance involves debugging and new addition options.
INCREMENTAL MODEL
INCREMENTAL MODEL
 Requirement analysis:
 In the first phase of the incremental model, the product analysis expertise identifies the
requirements. And the system functional requirements are understood by the requirement
analysis team. To develop the software under the incremental model, this phase performs a
crucial role.
 Design & Development:
 In this phase of the Incremental model of SDLC, the design of the system functionality and
the development method are finished with success. When software develops new
practicality, the incremental model uses style and development phase.
 Testing:
 In the incremental model, the testing phase checks the performance of each existing
function as well as additional functionality. In the testing phase, the various methods are
used to test the behavior of each task.
 Implementation:
 Implementation phase enables the coding phase of the development system. It involves
the final coding that design in the designing and development phase and tests the
functionality in the testing phase. After completion of this phase, the number of the product
working is enhanced and upgraded up to the final system product
AGILE MODEL
AGILE MODEL
 Requirements gathering:
 In this phase, you must define the requirements. You should explain business
opportunities and plan the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.
 Design the requirements:
 When you have identified the project, work with stakeholders to define requirements.
You can use the user flow diagram or the high-level UML diagram to show the work of
new features and show how it will apply to your existing system.
 Construction/ iteration:
 When the team defines the requirements, the work begins. Designers and developers
start working on their project, which aims to deploy a working product. The product will
undergo various stages of improvement, so it includes simple, minimal functionality.
 Testing:
 In this phase, the Quality Assurance team examines the product's performance
and looks for the bug.
 Deployment:
 In this phase, the team issues a product for the user's work environment.
 Feedback: After releasing the product, the last step is feedback. In this, the
team receives feedback about the product and works through the feedback.
 Agile Testing Methods:
 Scrum
 Crystal
 Dynamic Software Development Method(DSDM)
 Feature Driven Development(FDD)
 Lean Software Development
 eXtreme Programming(XP)
Dynamic Software Development
Method(DSDM):
 DSDM is a rapid application development strategy for software development
and gives an agile project distribution structure.
 The essential features of DSDM are that users must be actively connected, and
teams have been given the right to make decisions.
 The techniques used in DSDM are:
 Time Boxing
 MoSCoW Rules
 Prototyping
 The DSDM project contains seven stages:
 Pre-project
 Feasibility Study
 Business Study
 Functional Model Iteration
 Design and build Iteration
 Implementation
 Post-project
 Advantage(Pros) of Agile Method:
 Frequent Delivery
 Face-to-Face Communication with clients.
 Efficient design and fulfils the business requirement.
 Anytime changes are acceptable.
 It reduces total development time.
 Disadvantages(Cons) of Agile Model:
 Due to the shortage of formal documents, it creates confusion and crucial decisions
taken throughout various phases can be misinterpreted at any time by different
team members.
 Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can
become a difficulty.
SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx

More Related Content

Similar to SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx

want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.orgnazeer pasha
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)MuhammadTalha436
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 MuhammadTalha436
 
Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfchristiemarie4
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
Introduction of software engineering
Introduction of software engineeringIntroduction of software engineering
Introduction of software engineeringBhagyashriMore10
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleshubhamkumar2004
 
Software developer occupational brief
Software developer occupational briefSoftware developer occupational brief
Software developer occupational briefEnda Crossan
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro pptNancyBeaulah_R
 
Software Evaluation
Software EvaluationSoftware Evaluation
Software EvaluationLori Gilbert
 

Similar to SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx (20)

want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.org
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020
 
Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdf
 
software engineering
 software engineering software engineering
software engineering
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Session3
Session3Session3
Session3
 
Introduction of software engineering
Introduction of software engineeringIntroduction of software engineering
Introduction of software engineering
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software developer occupational brief
Software developer occupational briefSoftware developer occupational brief
Software developer occupational brief
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 
Software developer
Software developerSoftware developer
Software developer
 
SIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdfSIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdf
 
Software Evaluation
Software EvaluationSoftware Evaluation
Software Evaluation
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 

Recently uploaded

Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayMakMakNepo
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationAadityaSharma884161
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 

Recently uploaded (20)

Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up Friday
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint Presentation
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 

SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx

  • 2. INTRODUCTION TO SOFTWARE DEVELOPMENT  Software development- Set of computer science activities dedicated to the process of creating, designing, deploying and supporting software.  Three basic types  System software - Core functions such as operating systems, disk management, utilities, hardware management  Programming software - Give programmers tools such as text editors, compilers, linkers, debuggers and other tools to create code  Application software - Office productivity suites, data management software, media players and security programs  A possible fourth type is embedded software
  • 3. SOFTWARE DEVELOPMENT  Programmers, or coders  Write source code to program computers for specific tasks like merging databases, processing online orders, routing communications, conducting searches or displaying text and graphics  Software engineers  Apply engineering principles to build software and systems to solve problems.  They use modeling language and other tools to devise solutions that can often be applied to problems in a general way, as opposed to merely solving for a specific instance or client  Software developers  Have a less formal role than engineers and can be closely involved with specific project areas - including writing code
  • 4. Developing software typically involves the following steps  Selecting a methodology  Gathering requirements  Choosing or building an architecture  Developing a design  Building a model  Constructing code  Testing  Managing configuration and defects  Deploying  Migrating data  Managing and measuring the project
  • 5. CHALLENGES  Changing Requirements during the development process brings challenges for the software developers. Sometimes they won’t be able to deal with changing requirements  Providing complete Security to the software applications is a major challenge for developers as hackers are trying each moment there to hack the software applications and steal the data  Sometimes Misinterpreted requirements to give rise to a problem as a result the software product fails to give the actual result to the end-users  Many times software developers face problems during System and Application integration leading to the failure of software projects also  Further Maintenance and Upgradation become a problem for software developers for some software projects
  • 6.  Adapting to the latest Technology becomes a big challenge for software developers when they don’t have sufficient experience with the latest market trends  Sometimes when the developers don’t get the appropriate Project infrastructure for the development and deployment of projects they face problems in delivering the product.  Getting Defects or Errors in the product during its last stage creates an unwanted challenge for the software developers  Time limitations play a vital role in software development. When there is not sufficient time for the development times the product doesn’t meet the quality standards as the developers work under pressure and output decreases.  When a new developer lacks proper Communication and Coordination with the other developers of the same development team it creates a problem at some point.
  • 7.  It feels like a common problem when one developer Works with another developer’s code This situation creates a problem for the developer as it takes a lot of time for the new developer to understand the code.  In last, most software developers face this problem if they Don’t get the required support from the Project Manager/Leader, and sometimes it gets difficult to handle the relationship between colleagues and managers which in terms decreases productivity  Software developers face a number of challenges in their work
  • 8. COMMON CHALLENGES  Complexity  Maintaining Quality  Meeting Deadlines  Keeping up with new technologies  Managing changing requirements  Collaboration  Debugging  Dealing with legacy code  Managing complexity in distributed development  Balancing short-term and long-term goals
  • 9. HOW TO FACE THIS CHALLENGES  Complexity: Use design patterns and architecture principles to simplify the software systems and make it easy to understand and manage  Maintaining Quality: Use software testing and quality assurance techniques to ensure the quality of software systems, and conduct code reviews to identify and fix issues early on.  Meeting Deadlines: Use project management techniques such as Agile development and Scrum to plan and manage work effectively  Keeping up with new technologies: Continuously learn and explore new technologies and programming languages to stay current  Managing changing requirements: Use flexible development methodologies such as Agile and Scrum to handle changing requirements effectively
  • 10. Contd…  Collaboration: Use collaboration tools such as communication platforms and version control systems to facilitate effective collaboration among team members  Debugging: Use debugging tools and techniques to simplify the debugging process and make it more efficient  Dealing with legacy code: Use refactoring techniques to improve the quality and maintainability of legacy code.  Managing complexity in distributed development: Use communication tools and techniques to effectively coordinate and communicate with team members located in different parts of the world.  Balancing short-term and long-term goals: Use techniques such as Test-driven development and Continuous Integration to balance short-term goals and long- term goals.
  • 11. OBJECT ORIENTATION  OOPs Concepts  Class  Objects  Data Abstraction  Encapsulation  Inheritance  Polymorphism  Dynamic Binding  Message Passing
  • 12.  Class  A class is a user-defined data type. It consists of data members and member functions, which can be accessed and used by creating an instance of that class. It represents the set of properties or methods that are common to all objects of one type.  Object  It is a basic unit of Object-Oriented Programming and represents the real-life entities. An Object is an instance of a Class. When a class is defined, no memory is allocated but when it is instantiated memory is allocated.
  • 13.  Data Abstraction  Data abstraction refers to providing only essential information about the data to the outside world, hiding the background details or implementation  Encapsulation  Encapsulation is defined as the wrapping up of data under a single unit. It is the mechanism that binds together code and the data it manipulates  Inheritance  Inheritance is an important pillar of OOP(Object-Oriented Programming).  The capability of a class to derive properties and characteristics from another class is called Inheritance.  When we write a class, we inherit properties from other classes.
  • 14.  Polymorphism  The word polymorphism means having many forms. In simple words, we can define polymorphism as the ability of a message to be displayed in more than one form. For example, A person at the same time can have different characteristics  Dynamic Binding  Dynamic binding means that the code associated with a given procedure call is not known until the time of the call at run time. Dynamic Method Binding One of the main advantages of inheritance is that some derived class D has all the members of its base class B. Once D is not hiding any of the public members of B, then an object of D can represent B in any context where a B could be used. This feature is known as subtype polymorphism  Message Passing -It is a form of communication used in object-oriented programming as well as parallel programming
  • 16. Stage 1: Planning and Requirement Analysis  Requirement analysis is the most important and fundamental stage in SDLC. It is performed by the senior members of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry.  This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas.  Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage.  The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks.
  • 17. Stage 2: Defining Requirements  Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts.  This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle
  • 18. Stage 3: Designing the Product Architecture  SRS is the reference for product architects to come out with the best architecture for the product to be developed.  Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS – Design Document Specification.  A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any).  The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.
  • 19. Stage 4: Building or Developing the Product  In this stage of SDLC the actual development starts and the product is built.  The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle.  Developers must follow the coding guidelines defined by their organization and programming tools like compilers, interpreters, debuggers, etc. are used to generate the code.  Different high level programming languages such as C, C++, Pascal, Java and PHP are used for coding.  The programming language is chosen with respect to the type of software being developed.
  • 20. Stage 5: Testing the Product  This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC.  This stage refers to the testing only stage of the product where product defects are reported, tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.
  • 21. Stage 6: Deployment in the Market and Maintenance  Once the product is tested and ready to be deployed it is released formally in the appropriate market.  Sometimes product deployment happens in stages as per the business strategy of that organization.  The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing).  Then based on the feedback, the product may be released as it is or with suggested enhancements in the targeting market segment.  After the product is released in the market, its maintenance is done for the existing customer base.
  • 23. SDLC - Waterfall Model  Requirement Gathering and analysis − All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.  System Design − The requirement specifications from first phase are studied in this phase and the system design is prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture.  Implementation − With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit Testing.
  • 24. Contd..  Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures.  Deployment of system − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market.  Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.
  • 25. SDLC - Waterfall Model  Advantages are  Simple and easy to understand and use  Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.  Phases are processed and completed one at a time.  Works well for smaller projects where requirements are very well understood.  Clearly defined stages.  Well understood milestones.  Easy to arrange tasks.  Process and results are well documented  Disadvantages are  No working software is produced until late during the life cycle.  High amounts of risk and uncertainty.  Not a good model for complex and object- oriented projects.  Poor model for long and ongoing projects.  Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.  It is difficult to measure progress within stages.  Cannot accommodate changing requirements.  Adjusting scope during the life cycle can end a project.  Integration is done as a "big-bang. at the very
  • 27. SDLC - ITERATIVE MODEL  Iterative and Incremental development is a combination of both iterative design or iterative method and incremental build model for development.  "During software development, more than one iteration of the software development cycle may be in progress at the same time."  This process may be described as an "evolutionary acquisition" or "incremental build“ approach."  In this incremental model, the whole requirement is divided into various builds. During each iteration, the development module goes through the requirements, design, implementation and testing phases.  Each subsequent release of the module adds function to the previous release.  The process continues till the complete system is ready as per the requirement.
  • 28.  Pros are  Some working functionality can be developed quickly and early in the life cycle.  Results are obtained early and periodically.  Parallel development can be planned.  Progress can be measured.  Less costly to change the scope/requirements.  Testing and debugging during smaller iteration is easy.  Risks are identified and resolved during iteration; and each iteration is an easily  managed milestone.  Easier to manage risk - High risk part is done first.  With every increment, operational product is delivered.  Issues, challenges and risks identified from each increment can be utilized/applied to the next increment.  Risk analysis is better.  It supports changing requirements.  Initial Operating time is less.  Better suited for large and mission-critical projects.  During the life cycle, software is produced early which facilitates customer evaluation and feedback.
  • 29. Cons  More resources may be required.  Although cost of change is lesser, but it is not very suitable for changing requirements.  More management attention is required.  System architecture or design issues may arise because not all requirements are  gathered in the beginning of the entire life cycle.  Defining increments may require definition of the complete system.  Not suitable for smaller projects.  Management complexity is more.  End of project may not be known which is a risk.  Highly skilled resources are required for risk analysis.  Projects progress is highly dependent upon the risk analysis phase.
  • 30. SDLC - SPIRAL MODEL
  • 31. Identification  This phase starts with gathering the business requirements in the baseline spiral.  In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase.  This phase also includes understanding the system requirements by continuous communication between the customer and the system analyst.  At the end of the spiral, the product is deployed in the identified market.
  • 32.  Design  The Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and the final design in the subsequent spirals.  Construct or Build  The Construct phase refers to production of the actual software product at every spiral.  In the baseline spiral, when the product is just thought of and the design is being developed a POC (Proof of Concept) is developed in this phase to get customer feedback.  Then in the subsequent spirals with higher clarity on requirements and design details a working model of the software called build is produced with a version number. These builds are sent to the customer for feedback.
  • 33.  Evaluation and Risk Analysis  Risk Analysis includes identifying, estimating and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun.  After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback.  The following illustration is a representation of the Spiral Model, listing the activities in each phase.
  • 34. Advantages are  Changing requirements can be accommodated.  Allows extensive use of prototypes.  Requirements can be captured more accurately.  Users see the system early.  Development can be divided into smaller parts and the risky parts can be developed earlier which helps in better risk management. Disadvantages are  Management is more complex.  End of the project may not be known early.  Not suitable for small or low risk projects and could be expensive for small projects.  Process is complex  Spiral may go on indefinitely.  Large number of intermediate stages requires excessive documentation
  • 35. SDLC - BIG BANG MODEL  The Big Bang model is an SDLC model where we do not follow any specific process.  The development just starts with the required money and efforts as the input, and the output is the software developed which may or may not be as per customer requirement.  This Big Bang Model does not follow a process/procedure and there is a very little planning required.  Even the customer is not sure about what exactly he wants and the requirements are implemented on the fly without much analysis.  Usually this model is followed for small projects where the development teams are very small.
  • 36.  Advantages are  This is a very simple model  Little or no planning required  Easy to manage  Very few resources required  Gives flexibility to developers  It is a good learning aid for new comers or students  Disadvantages are  Very High risk and uncertainty.  Not a good model for complex and object-oriented projects.  Poor model for long and ongoing projects.  Can turn out to be very expensive if requirements are misunderstood
  • 37. SOFTWARE DEVELOPMENT LIFE CYCLE  Stage1: Planning and requirement analysis  Requirement Analysis is the most important and necessary stage in SDLC. The senior members of the team perform it with inputs from all the stakeholders and domain experts or SMEs in the industry  Stage2: Defining Requirements  Once the requirement analysis is done, the next stage is to certainly represent and document the software requirements and get them accepted from the project stakeholders  Stage3: Designing the Software  The next phase is about to bring down all the knowledge of requirements, analysis, and design of the software project. This phase is the product of the last two, like inputs from the customer and requirement gathering.
  • 38.  Stage4: Developing the project  In this phase of SDLC, the actual development begins, and the programming is built. The implementation of design begins concerning writing code. Developers have to follow the coding guidelines described by their management and programming tools like compilers, interpreters, debuggers, etc. are used to develop and implement the code.  Stage5: Testing  After the code is generated, it is tested against the requirements to make sure that the products are solving the needs addressed and gathered during the requirements stage  Stage6: Deployment  Once the software is certified, and no bugs or errors are stated, then it is deployed. Then based on the assessment, the software may be released as it is or with suggested enhancement in the object segment  Stage7: Maintenance  Once when the client starts using the developed systems, then the real issues come up and requirements to be solved from time to time
  • 40. The phases of the unified process  Inception  The main goal of this phase involves delimiting the project scope.  This is where we define why we are making this product in the first place.  It should have the following:  What are the key features?  How does this benefit the customers?  Which methodology will we follow?  What are the risks involved in executing the project?  Schedule and cost estimates.
  • 41. Contd..  Elaboration  We build the system given the requirements, cost, and time constraints and all the risks involved.  It should include the following:  Develop with the majority of the functional requirements implemented.  Finalize the methodology to be used.  Deal with the significant risks involved.  Construction  This phase is where the development, integration, and testing take place.  We build the complete architecture in this phase and hand the final documentation to the client.  Transition  This phase involves the deployment, multiple iterations, beta releases, and improvements of the software.  The users will test the software, which may raise potential issues.
  • 43. ITERATIVE MODEL  Requirement gathering & analysis:  In this phase, requirements are gathered from customers and check by an analyst whether requirements will fulfil or not.  Analyst checks that need will achieve within budget or not. After all of this, the software team skips to the next phase.  Design:  In the design phase, team design the software by the different diagrams like Data Flow diagram, activity diagram, class diagram, state transition diagram, etc.  Implementation:  In the implementation, requirements are written in the coding language and transformed into computer programmes which are called Software.  Testing:  After completing the coding phase, software testing starts using different test methods. There are many test methods, but the most common are white box, black box, and grey box test methods.
  • 44.  Deployment:  After completing all the phases, software is deployed to its work environment.  Review:  In this phase, after the product deployment, review phase is performed to check the behavior and validity of the developed product.  And if there are any error found then the process starts again from the requirement gathering.  Maintenance:  In the maintenance phase, after deployment of the software in the working environment there may be some bugs, some errors or new updates are required.  Maintenance involves debugging and new addition options.
  • 46. INCREMENTAL MODEL  Requirement analysis:  In the first phase of the incremental model, the product analysis expertise identifies the requirements. And the system functional requirements are understood by the requirement analysis team. To develop the software under the incremental model, this phase performs a crucial role.  Design & Development:  In this phase of the Incremental model of SDLC, the design of the system functionality and the development method are finished with success. When software develops new practicality, the incremental model uses style and development phase.  Testing:  In the incremental model, the testing phase checks the performance of each existing function as well as additional functionality. In the testing phase, the various methods are used to test the behavior of each task.  Implementation:  Implementation phase enables the coding phase of the development system. It involves the final coding that design in the designing and development phase and tests the functionality in the testing phase. After completion of this phase, the number of the product working is enhanced and upgraded up to the final system product
  • 48. AGILE MODEL  Requirements gathering:  In this phase, you must define the requirements. You should explain business opportunities and plan the time and effort needed to build the project. Based on this information, you can evaluate technical and economic feasibility.  Design the requirements:  When you have identified the project, work with stakeholders to define requirements. You can use the user flow diagram or the high-level UML diagram to show the work of new features and show how it will apply to your existing system.  Construction/ iteration:  When the team defines the requirements, the work begins. Designers and developers start working on their project, which aims to deploy a working product. The product will undergo various stages of improvement, so it includes simple, minimal functionality.
  • 49.  Testing:  In this phase, the Quality Assurance team examines the product's performance and looks for the bug.  Deployment:  In this phase, the team issues a product for the user's work environment.  Feedback: After releasing the product, the last step is feedback. In this, the team receives feedback about the product and works through the feedback.  Agile Testing Methods:  Scrum  Crystal  Dynamic Software Development Method(DSDM)  Feature Driven Development(FDD)  Lean Software Development  eXtreme Programming(XP)
  • 50. Dynamic Software Development Method(DSDM):  DSDM is a rapid application development strategy for software development and gives an agile project distribution structure.  The essential features of DSDM are that users must be actively connected, and teams have been given the right to make decisions.  The techniques used in DSDM are:  Time Boxing  MoSCoW Rules  Prototyping
  • 51.  The DSDM project contains seven stages:  Pre-project  Feasibility Study  Business Study  Functional Model Iteration  Design and build Iteration  Implementation  Post-project
  • 52.  Advantage(Pros) of Agile Method:  Frequent Delivery  Face-to-Face Communication with clients.  Efficient design and fulfils the business requirement.  Anytime changes are acceptable.  It reduces total development time.  Disadvantages(Cons) of Agile Model:  Due to the shortage of formal documents, it creates confusion and crucial decisions taken throughout various phases can be misinterpreted at any time by different team members.  Due to the lack of proper documentation, once the project completes and the developers allotted to another project, maintenance of the finished project can become a difficulty.