The document provides an overview of the Software Development Life Cycle (SDLC) including its various stages and models. The key points are:
1. SDLC is a process that consists of planning, analysis, design, implementation, testing, deployment, and maintenance phases to develop and maintain software.
2. The stages include planning, requirements analysis, design, development, testing, deployment, and maintenance.
3. Common models include waterfall, iterative, spiral, V-model, and agile. Waterfall is the earliest and most basic sequential model while iterative and agile are more flexible to changing requirements.
The document discusses several software development life cycle (SDLC) models: Waterfall, V-shaped, structured evolutionary prototyping, rapid application development (RAD), incremental, and spiral. For each model, it describes the key steps, strengths, weaknesses, and scenarios where the model is best applied. The Waterfall model involves sequential phases from requirements to maintenance, while the V-shaped model adds verification and validation phases. Structured evolutionary prototyping uses iterative prototyping for requirements gathering. RAD emphasizes rapid delivery through time-boxing and productivity tools. Incremental development prioritizes requirements delivery in groups. The spiral model incorporates risk analysis, prototyping, and iterative cycles.
List of Software Development Model and MethodsRiant Soft
RiantSoft a Software Development Company derived the most useful and different types of Software Development Model for the users who want to know the development process. RiantSoft is specialized in custom software development with latest cutting edge technologies.
The document discusses the Software Development Life Cycle (SDLC), which is a process used for software projects within organizations. It describes the typical 7 phases of the SDLC: requirements collection and analysis, feasibility study, design, coding, testing, installation/deployment, and maintenance. Each phase is explained in 1-2 sentences. The document also briefly discusses the waterfall model design process and common problems in software development projects before introducing agile methodologies like SCRUM.
The document discusses the waterfall model, which is a sequential software development process where progress flows steadily from one phase to the next - conception, initiation, analysis, design, construction, testing, production/implementation, and maintenance. The key phases and deliverables are completed one at a time before moving to the next phase. The waterfall model is simple and easy to understand, manage, and works well for smaller projects with well-defined requirements. However, it is inflexible and carries high risks since changes are difficult once a later phase has begun and no working software is produced until late in the lifecycle. The model is not suitable for complex, long-term, or ambiguous projects where requirements may change.
The document provides an overview of various software development processes and models, including traditional waterfall and iterative models as well as agile methods like Scrum and Extreme Programming (XP). It discusses key aspects of each approach such as phases, roles, meetings, practices, and values. The document aims to introduce different process options and considerations for developing software.
SDLC - Software Development Life Cycle
and Waterfall Model :
The SDLC aims to produce a high quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
The document discusses several software development life cycle (SDLC) models including Waterfall, V-Shaped, Prototyping, Rapid Application Development (RAD), Incremental, and Spiral models. For each model, it describes the key steps, strengths, weaknesses, and when each model is best applied. The models range from traditional sequential models like Waterfall to more iterative models like Prototyping and RAD.
The document discusses several software development life cycle (SDLC) models including waterfall, V-shaped, prototyping, rapid application development (RAD), incremental, spiral, and agile models. It provides details on the key steps, strengths, weaknesses, and scenarios for using each model. Quality assurance is important for any SDLC and includes elements like defect tracking, unit testing, code reviews, and integration/system testing.
This document provides an overview of key concepts in the field of software engineering. It defines software engineering as the application of systematic and disciplined approaches to software development, operation, and maintenance. The document discusses the importance of software engineering in producing reliable and economical software. It also summarizes essential attributes of good software such as maintainability, dependability, efficiency, and acceptability. Additionally, the document outlines a generic software engineering process framework involving activities like communication, planning, modeling, construction, and deployment. It notes that the process should be adapted to the specific project.
The document describes an online railway reservation system project submitted by students. It discusses software engineering principles and methods used to develop the system. It includes UML diagrams like use case, class, sequence, and activity diagrams that were created as part of the analysis and design of the system. It also describes testing done on the project in the form of alpha testing.
Software development life cycle (sdlc) phases.pdfPrayas Gokhale
Software development life cycle (SDLC) is the life cycle of the software product. It comprises of certain defined phases that are interlinked. The requirements are translated into design, the design is used to write the codes. The code is tested and verified before delivering it to customers.
Learn how and what is Spiral Model. This was made during 3RD Year. From Eastern Visayas State University - Main Campus, Tacloban City, Leyte, Philippines
CREATED BY:
Aguilar, Fatima Joy
Arpon, Benedict Julius Steven
The document describes the six main phases of the Software Development Life Cycle (SDLC): 1) Planning and Requirement Analysis, 2) Defining Requirements, 3) Designing the product architecture, 4) Building or Developing the Product, 5) Testing the Product, and 6) Deployment in the Market and Maintenance. Each phase is explained in 1-2 sentences with an emphasis on gathering requirements, designing the architecture, coding, testing, and deploying the final product.
The document discusses the software development process and defines key terms. It states that a software process organizes development activities and includes roles, workflows, procedures and standards. Following a defined process makes software development more orderly, predictable and repeatable. However, some view following a process as unnecessary overhead. The reality is that not following a process can lead to more rework that outweighs any initial time savings. The document also discusses software life cycle models, such as waterfall and iterative models, and how a good process is repeatable, predictable, adaptable, learnable and measurable.
The Spiral Model is an iterative software development process that is used for large, complex projects where requirements are not fully known. It consists of loops called phases that each have four quadrants - identification, design, construction, and evaluation. This allows for risk analysis, prototyping, customer evaluation and feedback at each phase of development. The Spiral Model supports risk handling, changing requirements, and customer involvement throughout the life cycle, making it well-suited for complex projects, though it is more complex and expensive than other models.
The document discusses the spiral model of software development. The spiral model is an iterative approach that combines prototyping and aspects of the waterfall model. It was defined by Barry Boehm in 1988 as a way to address risks through iterative evaluation and improvement of prototypes. The spiral model is best for medium to high risk projects where requirements are complex or expected to change. It involves evaluating prototypes, defining new prototypes based on learnings, and repeating this process until the final product is delivered.
Software Engineering- Requirement Elicitation and SpecificationNishu Rastogi
The document discusses the process of requirements engineering for software development. It involves four main steps:
1) Feasibility study to determine if the project is possible.
2) Requirements gathering by communicating with clients and users to understand what the software should do.
3) Creating a software requirements specification (SRS) document that defines system functions and constraints.
4) Validating requirements to ensure they are clear, consistent, and can be implemented.
The document discusses several software development life cycle (SDLC) models including waterfall, V-shaped, prototyping, incremental, spiral, rapid application development (RAD), dynamic systems development method (DSDM), adaptive software development, and agile methods. It provides an overview of the key characteristics, strengths, weaknesses, and types of projects that each model is best suited for. Tailored SDLC models are recommended to customize processes based on specific project needs and risks.
The document discusses software processes and iterative process models. It describes incremental delivery and spiral development as two iterative process models. Incremental delivery breaks development into increments with each delivering part of the functionality. Spiral development represents the process as a spiral with phases addressing objectives, risks, development and planning. Both models allow for iteration and incorporate user feedback earlier.
- The document discusses quality assurance in the software development lifecycle, including key concepts, practices, and challenges.
- It defines quality assurance, software development lifecycle phases, and differences between verification and validation. Common testing types like unit, integration, and non-functional testing are also covered.
- The document then describes quality assurance practices used in industry, such as creating QA plans, requirements reviews, test case development, and validation activities at different stages. Finally, challenges of quality assurance are discussed around testing focus, cost of fixes, schedules, and career opportunities.
The document discusses several software development life cycle models:
1) The waterfall model is a linear and sequential process with distinct stages for requirements, design, implementation, testing, and deployment.
2) The spiral model emphasizes risk identification and addresses risks iteratively before fully developing a system.
3) Evolutionary prototyping develops a system incrementally through iterative prototypes based on client feedback between iterations.
4) Code-and-fix lacks structure and results in inconsistent code that is difficult to update.
The document concludes that the software discussed was developed using an evolutionary prototyping approach in incremental iterations.
How to build the PERFECT ecommerce websiteFadi Shuman
This document discusses planning the perfect ecommerce website. It provides statistics on the growth of ecommerce in markets like the UK. Examples are given of successful ecommerce sites like Made.com and Naked Wines that are tailored to their audiences. The document outlines seven pillars of ecommerce, including having a plan, focusing on customers, defining success, evolving websites gradually, making sites sticky, prioritizing customer service, and avoiding cutting corners. It emphasizes that there is no single perfect model and strategies must adapt as ecommerce landscapes change.
The document describes different network topologies including mesh, star, tree, bus, and ring. It defines topology as the physical and logical arrangement of links in a network. Each topology is then explained in more detail with diagrams, along with their advantages and disadvantages. For example, a mesh topology connects every device to every other device, providing redundancy but at a higher cost. A star topology connects all devices to a central hub, making it less expensive but reliant on the hub.
Intro to Software Engineering - Life Cycle ModelsRadu_Negulescu
This document discusses various software life cycle models and their characteristics. It begins by defining a software life cycle and life cycle model. It then examines the build-and-fix, waterfall, V-model, prototyping, spiral model, incremental/iterative model, extreme programming, and formal methods life cycle models. Key factors in selecting a life cycle model are also discussed, such as application domain, schedule constraints, and risk tolerance. The document concludes by comparing agile and plan-driven methods and introducing the Capability Maturity Model for assessing the maturity of an organization's software development processes.
Introduction To Software Quality Assuranceruth_reategui
The document discusses software quality assurance (SQA) and defines key terms and concepts. It outlines the components of an SQA plan according to IEEE standard 730, including required sections, documentation to review, standards and metrics, and types of reviews. It also summarizes approaches to SQA from the Software Capability Maturity Model and the Rational Unified Process.
The document discusses software quality assurance (SQA) and defines key terms related to quality. It describes SQA as encompassing quality management, software engineering processes, formal reviews, testing strategies, documentation control, and compliance with standards. Specific SQA activities mentioned include developing an SQA plan, participating in process development, auditing work products, and ensuring deviations are addressed. The document also discusses software reviews, inspections, reliability, and the reliability specification process.
This document discusses different types of computer network topologies. It describes bus, star, ring, tree, mesh, and hybrid topologies. For each topology, it provides details on the logical arrangement of nodes, advantages like ease of installation and disadvantages like single point of failure. A hybrid topology combines two or more standard topologies to achieve flexibility and reliability, though it is more expensive than a single topology.
The document discusses the system development life cycle (SDLC) as a systematic method for organizations to implement change through new technologies. It describes the four phases of SDLC - planning, analysis, design, and implementation. The planning phase involves feasibility studies to understand economic, organizational, and technical factors. The analysis phase breaks down the problem and gathers stakeholder requirements. The design phase decides if the system will be internal or outsourced. The implementation phase builds, tests, trains users on, and evaluates the new system. SDLC provides a systematic strategy for large development projects involving many stakeholders.
The document discusses different network topologies including mesh, star, bus, ring, tree, and hybrid topologies. For each topology, it describes the logical layout, advantages, disadvantages, and examples of applications. Mesh topology has every device connected to every other device but requires a large amount of cabling. Star topology has each device connected to a central hub, requiring less cabling than mesh. Bus topology uses a single backbone that devices connect to via taps. Ring topology passes signals in one direction between devices connected in a closed loop. Tree topology connects multiple star networks. A hybrid uses elements of different topologies under a single backbone. Factors like cost, cable needs, growth and cable type should be considered when choosing a topology
The document discusses several software development life cycle (SDLC) models, including waterfall, iterative, prototyping, and spiral models. It describes the basic stages and processes involved in each model. The waterfall model involves sequential stages of requirements analysis, design, implementation, testing, and deployment. The iterative model allows revisiting earlier stages and incremental releases. The prototyping model uses prototypes to gather early user feedback. Finally, the spiral model combines iterative development and risk analysis, proceeding in cycles of planning, risk analysis, development, and evaluation.
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.
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
The document discusses various software development processes. It begins by defining a software process as a framework that describes the activities performed at each stage of a project. It then categorizes common activities as software specification, development, validation, and evolution. The document goes on to describe plan-driven and agile processes, and notes that most practical processes include elements of both. It provides details on specific process models like waterfall, V-model, prototyping, incremental development, component-based development, and spiral model.
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.
This document discusses software process models. It defines a software process as a framework for activities required to build high-quality software. A process model describes the phases in a product's lifetime from initial idea to final use. The document then describes a generic process model with five framework activities - communication, planning, modeling, construction, and deployment. It provides an example of identifying task sets for different sized projects. Finally, it discusses the waterfall process model as the first published model, outlining its sequential phases and problems with being rarely linear and requiring all requirements up front.
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 discusses the V-model of the system development life cycle (SDLC). It begins by defining the SDLC as a structured process or framework for developing software. It then describes the key phases of the V-model - requirements analysis, design, implementation, unit testing, integration testing, system testing, and acceptance testing. Each phase in the development process (left side of the V) has a corresponding testing phase (right side of the V) to validate the work. The V-model aims to ensure quality at each stage and prevent defects from propagating through the lifecycle.
The document discusses the Software Development Life Cycle (SDLC) which is a methodology for developing high quality software through defined processes and phases. It describes the typical phases of SDLC as requirement analysis and planning, defining requirements, software design, development, testing, and deployment. Popular SDLC models include waterfall, iterative, spiral, incremental, and prototype models. Each phase and model is then explained in more detail over the course of the document.
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.
The document discusses software testing and the software development life cycle (SDLC). It provides an agenda that covers topics like types of testing, test case design, bug tracking, and SDLC models. The SDLC models discussed include waterfall, V-model, spiral model, and agile development models. The document describes the phases of the waterfall model SDLC such as requirements gathering, analysis, design, coding, testing, and deployment/maintenance.
This document provides an overview of manual testing materials and concepts. It includes:
- The address for manual testing training materials.
- Definitions of key testing terms like software testing, defects, quality, and software development life cycles.
- Descriptions of different testing methodologies like black box testing, white box testing, and grey box testing.
- Explanations of different levels of testing like unit testing and module/component testing.
The document provides an overview of manual testing material, including:
1. The address for manual testing is provided.
2. Software testing concepts like what testing is, why it's needed, benefits, quality, defects, and differences between projects and products are defined in 1-2 sentences each.
3. Software development life cycles like waterfall, V-model, prototyping, and agile models are briefly described with their advantages and disadvantages. When each model should be used is also mentioned.
The document discusses several system development life cycle (SDLC) models including waterfall, iterative, incremental, spiral, RAD, concurrent, and unified process models. The key phases of SDLC are defined as preliminary survey, analysis, design, implementation, post-implementation/maintenance, and project termination. Each model takes different approaches such as sequential, iterative, incremental, or concurrent development through the SDLC phases.
The document discusses different software process models. It describes the waterfall model, which involves sequential phases of requirement analysis, design, implementation, testing, and maintenance. The waterfall model suggests a systematic approach but real projects rarely follow sequential phases and instead involve overlap and feedback between phases. The document also briefly describes the build-and-fix model, which develops software without specifications or design and relies on repeated modifications until requirements are met.
The document discusses the software development life cycle (SDLC) which consists of 7 stages: 1) Planning and requirements analysis, 2) Defining requirements, 3) Designing the software, 4) Coding, 5) Testing, 6) Deployment, and 7) Maintenance. It provides details about the activities in each stage. The waterfall model is introduced as one of the popular SDLC models which follows a linear sequential process where each stage must be completed before moving to the next. Some other models mentioned are iterative, spiral, V-model, and big bang. Advantages and disadvantages of the waterfall model are also outlined.
This is about software engineering.Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users. Software engineers design and develop computer games, business applications, operating systems, network control systems, and middleware—to name just a few of the many career paths available.
Evolution of software; Characteristics of software; Software applications; Components of software; Software myths; Software problems; Software reuse; Overview of risk management; Process visibility; Professional responsibility.
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.
The document discusses various topics related to software engineering including:
1. It defines software and describes attributes of good software such as functionality, maintainability, dependability, and usability.
2. It explains that software engineering is concerned with all aspects of software production, whereas computer science focuses more on theory and fundamentals.
3. Key attributes of good software are discussed including maintainability, dependability, efficiency, and acceptability.
4. Various software engineering models such as waterfall, prototyping, spiral, and agile models are briefly introduced.
This document provides an overview of software development life cycle (SDLC) models, including the waterfall model, V-shaped model, and prototype model. It describes the key phases of each model - requirement gathering, design, implementation, testing, deployment, and maintenance. The waterfall model is a linear sequential process where each phase must be completed before the next begins. The V-shaped model adds testing phases that run parallel to the development phases. The prototype model involves building prototypes to get early customer feedback before developing the actual software. Adhering to an SDLC process helps ensure a high-quality product is delivered systematically.
Similar to Software Development Life Cycle (SDLC ) (20)
Profiling of Cafe Business in Talavera, Nueva Ecija: A Basis for Development ...IJAEMSJORNAL
This study aimed to profile the coffee shops in Talavera, Nueva Ecija, to develop a standardized checklist for aspiring entrepreneurs. The researchers surveyed 10 coffee shop owners in the municipality of Talavera. Through surveys, the researchers delved into the Owner's Demographic, Business details, Financial Requirements, and other requirements needed to consider starting up a coffee shop. Furthermore, through accurate analysis, the data obtained from the coffee shop owners are arranged to derive key insights. By analyzing this data, the study identifies best practices associated with start-up coffee shops’ profitability in Talavera. These findings were translated into a standardized checklist outlining essential procedures including the lists of equipment needed, financial requirements, and the Traditional and Social Media Marketing techniques. This standardized checklist served as a valuable tool for aspiring and existing coffee shop owners in Talavera, streamlining operations, ensuring consistency, and contributing to business success.
In May 2024, globally renowned natural diamond crafting company Shree Ramkrishna Exports Pvt. Ltd. (SRK) became the first company in the world to achieve GNFZ’s final net zero certification for existing buildings, for its two two flagship crafting facilities SRK House and SRK Empire. Initially targeting 2030 to reach net zero, SRK joined forces with the Global Network for Zero (GNFZ) to accelerate its target to 2024 — a trailblazing achievement toward emissions elimination.
20CDE09- INFORMATION DESIGN
UNIT I INCEPTION OF INFORMATION DESIGN
Introduction and Definition
History of Information Design
Need of Information Design
Types of Information Design
Identifying audience
Defining the audience and their needs
Inclusivity and Visual impairment
Case study.
An Internet Protocol address (IP address) is a logical numeric address that is assigned to every single computer, printer, switch, router, tablets, smartphones or any other device that is part of a TCP/IP-based network.
Types of IP address-
Dynamic means "constantly changing “ .dynamic IP addresses aren't more powerful, but they can change.
Static means staying the same. Static. Stand. Stable. Yes, static IP addresses don't change.
Most IP addresses assigned today by Internet Service Providers are dynamic IP addresses. It's more cost effective for the ISP and you.
Unblocking The Main Thread - Solving ANRs and Frozen FramesSinan KOZAK
In the realm of Android development, the main thread is our stage, but too often, it becomes a battleground where performance issues arise, leading to ANRS, frozen frames, and sluggish Uls. As we strive for excellence in user experience, understanding and optimizing the main thread becomes essential to prevent these common perforrmance bottlenecks. We have strategies and best practices for keeping the main thread uncluttered. We'll examine the root causes of performance issues and techniques for monitoring and improving main thread health as wel as app performance. In this talk, participants will walk away with practical knowledge on enhancing app performance by mastering the main thread. We'll share proven approaches to eliminate real-life ANRS and frozen frames to build apps that deliver butter smooth experience.
Understanding Cybersecurity Breaches: Causes, Consequences, and PreventionBert Blevins
Cybersecurity breaches are a growing threat in today’s interconnected digital landscape, affecting individuals, businesses, and governments alike. These breaches compromise sensitive information and erode trust in online services and systems. Understanding the causes, consequences, and prevention strategies of cybersecurity breaches is crucial to protect against these pervasive risks.
Cybersecurity breaches refer to unauthorized access, manipulation, or destruction of digital information or systems. They can occur through various means such as malware, phishing attacks, insider threats, and vulnerabilities in software or hardware. Once a breach happens, cybercriminals can exploit the compromised data for financial gain, espionage, or sabotage. Causes of breaches include software and hardware vulnerabilities, phishing attacks, insider threats, weak passwords, and a lack of security awareness.
The consequences of cybersecurity breaches are severe. Financial loss is a significant impact, as organizations face theft of funds, legal fees, and repair costs. Breaches also damage reputations, leading to a loss of trust among customers, partners, and stakeholders. Regulatory penalties are another consequence, with hefty fines imposed for non-compliance with data protection regulations. Intellectual property theft undermines innovation and competitiveness, while disruptions of critical services like healthcare and utilities impact public safety and well-being.
2. Software Development Life Cycle(SDLC )
What is SDLC
SDLC stands for Software Development Life Cycle. A Software Development
Life Cycle is essentially a series of steps, or phases, that provide a model for
the development and lifecycle management of an application or piece of
software.
The Software Development Life Cycle is a process that ensures good software
is built. Each phase in the life cycle has its own process and deliverables that
feed into the next phase.
3. Software Development Life Cycle(SDLC )
Requirements Gathering and Analysis
Design
Testing
Implementation
Operation and Maintenance
Fig: Software Development Life Cycle(SDLC )
4. Requirements Gathering and Analysis
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 or obsolete system and software,
• Conducting interviews of users and developers,
• Referring to the database or collecting answers from the questionnaires.
• Build multiple use cases to describe each action that a user will take in
the new system.
• Prototypes can be built to show the client what the end product will look
like. Tools like Omnigraffle, HotGloo and Balsalmiq are great for this
part of the process.
5. 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 meta-data and data dictionaries,
logical diagrams, data-flow diagrams, and in some cases pseudo codes.
Let’s look in more detail at some of the activities involved in this stage:
• Risk analysis
• Functional Specifications
• Non-Functional Specifications
6. 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.
7. Testing
Once the application is migrated to a test environment, different types
of testing will be performed including integration and system
testing. User acceptance testing is the last part of testing and is
performed by the end users to ensure the system meets their
expectations. At this point, defects may be found and more work may
be required in the analysis, design or coding. Once sign-off is obtained
by all relevant parties, implementation and deployment can begin.
8. 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.
9. Operation and Maintenance
This phase confirms the software operation in terms of more
efficiency and less errors. 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.
10. # What is software process & software process model ?Write the
activities of software processes .
• A software process is a set of activities that leads to the production of a
software Product. These activities may involve the development of software
from scratch in a standard programming language like Java or C.
• A software process model is an abstract representation of a process. It presents
a description of a process from some particular perspective.
Although there are many software processes, some fundamental activities are
common to all software processes:
1. Software specification: The functionality of the software and constraints on
its operation must be defined.
2. Software design and implementation: The software to meet the specification
must be produced.
3. Software validation: The software must be validated to ensure that it does
what the customer wants.
4. Software evolution: The software must evolve to meet changing customer
needs.
11. SDLC Models
• Water Fall Model
• The Prototyping model / Evolutionary development
• Spiral Model
• The Incremental model
• Agile Model
12. Why following a model…
• Without using of a particular life cycle model the development of a
software product would not be in a systematic and disciplined manner.
• When a software product is being developed by a team there must be a
clear understanding among team members about
• what to do and
• when to do
• Not following = chaos and project failure.
14. Waterfall model phases
• Requirements analysis and definition:
– Develop understanding of problem domain, user needs, function, performance, interfaces.
– Software Design
– Multi-step process to determine architecture, interfaces, data structures, functional detail.
Produces (high-level) form that can be checked for quality, conformance before coding.
• System and software design:
-The systems design process partitions the requirements to either hardware or software systems.
-It establishes overall system architecture.
- Software design involves identifying and describing the fundamental software system
abstractions and their relationships.
• Coding :
– Produce machine readable and executable form, match HW, OS and design needs.
• Integration and system testing:
– Confirm that components, subsystems and complete products meet requirements,
specifications and quality, find and fix defects.
• Operation and maintenance: Normally (although not necessarily) this is the longest life-
cycle phase. The system is installed and put into practical use.
Maintenance: Incrementally, evolve software to fix defects, add features, adapt to new
condition. Often 80% of effort spent here!
15. Advantage & Disadvantage of Waterfall
model
Advantage:
• the waterfall model are that documentation is produced at each phase and that it fits with other
engineering process models.
• Disciplined approach
• Careful checking by the Software Quality Assurance Group at the end of each phase.(or Testing
in each phase.)
• Documentation available at the end of each phase
• Linear model..
• Easy to understand and implement.
• Identifies deliverables and milestones
Disadvantage:
• the waterfall model is the difficulty of accommodating change after the process is
underway. One phase has to be complete before moving onto the next phase.
• Unidirectional
• Unclear requirements lead to confusion.
• Client’s approval is in the final stage.
• Difficult to integrate risk management
• Idealised, doesn’t match reality well.
• Doesn’t reflect iterative nature of exploratory development.
16. The Prototyping model / Evolutionary
development
Often, a customer defines a set of general objectives for software but does not identify
detailed input, processing, or output requirements. In other cases, the developer may be
unsure of The efficiency of an algorithm, The adaptability of an operating system, or
The form that human/machine interaction should take.
• In this case prototyping paradigm may offer the best approach.
• Requirements gathering.
• Developer and customer meet and define the overall objectives for the software,
identify whatever requirements are known, and outline areas where further definition
is mandatory.
• A "quick design" then occurs. The quick design focuses on a representation of those
aspects of the software that will be visible to the customer/user (e.g.,input
approaches and output formats).
• Prototype building
• Prototype evaluation by customers
• Prototype may be refined
18. # The quick design leads to the construction of a prototype.
There are two fundamental types of evolutionary / Prototyping development
model. Such as,
1. Exploratory development:
The objective of the process is to work with the customer to explore their
requirements and deliver a final system. The development starts with the parts of
the system that are understood. The system evolves by adding new features
proposed by the customer.
(Figure: Exploratory development.)
Buildprototype
system
Develop abstract
specification
Use prototype
system
Deliver
system
System
adequate?
YES
N
19. 2. Throw-away prototyping:
The objective of the evolutionary development process is to understand
the customer's requirements and hence develop a better requirements definition
for the system. The prototype concentrates on experimenting with the customer
requirements that are poorly understood.
(Figure: Throw-away prototyping.)
20. Advantage & Disadvantage of prototyping model
Merits:
Reduces development costs.
requires user involvement.
Developers receive quantifiable user feedback.
Facilitates system implementation since users know what to except.
Results in higher user satisfaction.
Exposes developers to potential future system enhancements.
Demerits:
Can lead to insufficient analysis.
Users expect the performance of the ultimate system to be the same as
the prototype.
Can cause systems to be left unfinished and/or implemented before they are
ready.
Sometimes leads to incomplete documentation.
If sophisticated software prototypes (4th GL or CASE Tools) are
employed, the time saving benefit of prototyping can be lost.
22. Spiral Model sectors…
• Customer communication
– Tasks required to establish effective communication between developer and
customer
• Planning
– The tasks required to define recourses, timelines, and project is reviewed and the
next phase of the spiral is planned
• Risk analysis
– Risks are assessed and activities put in place to reduce the key
• Risks engineering
– Tasks required to build one or more representations of the application
• Construction & release
– Tasks required to construct, test, install and provide user support (e.g
documentation and training)
• Customer evaluation
– Customer feedback collected every stage
23. Basic Principles of Spiral Model
Focus is on risk assessment and on minimizing project risk by breaking a project
into smaller segments and providing more ease-of-change during the
development process, as well as providing the opportunity to evaluate risks and
weigh consideration of project continuation throughout the life cycle.
"Each cycle involves a progression through the same sequence of steps, for each
part of the product and for each of its levels of elaboration, from an overall
concept-of-operation document down to the coding of each individual program."
Each trip around the spiral traverses four basic quadrants/step:
– determine objectives, alternatives, and constraints of the iteration;
– evaluate alternatives; Identify and resolve risks;
– develop and verify deliverables from the iteration; and
– plan the next iteration
Begin each cycle with an identification of stakeholders and their "win
conditions", and end each cycle with review and commitment
24. Advantage & Disadvantage of Spiral Mode
Merits:
High amount of risk analysis
Good for large and mission-critical projects.
Software is produced early in the software life cycle.
Users can be closely tied to all lifecycle steps
Early and frequent feedback from users
Cumulative costs assessed frequently
Focuses attention on early error elimination.
Demerits:
Can be a costly model to use.
Project’s success is highly dependent on the risk analysis phase.
Doesn’t work well for smaller projects.
Time spent for evaluating risks too large for small or low-risk projects
The model is complex
The design does not have to be perfect
Risk assessment expertise is required
Spiral may continue indefinitely
Developers must be reassigned during non-development phase activities
26. Various methods are acceptable for combining linear and iterative systems
development methodologies, with the primary objective of each being to reduce
inherent project risk by breaking a project into smaller segments and providing
more ease-of-change during the development process.
The basic principles are:
A series of mini-Waterfalls are performed, where all phases of the Waterfall are
completed for a small part of a system, before proceeding to the next
increment, or
Overall requirements are defined before proceeding to evolutionary, mini-
Waterfall development of individual increments of a system, or
The initial software concept, requirements analysis, and design of architecture
and system core are defined via Waterfall, followed by iterative Prototyping,
which culminates in installing the final prototype, a working system.
27. Incremental Model…
Problems
– Management problems
• Progress can be hard to judge and problems hard to find because there
is little documentation.
– Contractual problems
• The normal contract may include a specification; without a
specification, different forms of contract have to be used.
– Validation problems
• Without a specification, what is the system being tested against?
– Maintenance problems
• Continual change tends to corrupt software structure making it more
expensive to change and evolve to meet new requirements.
28. Advantage & Disadvantage of Incremental
Model
Merits:
Develop high-risk or major functions first
Each release delivers an operational product
Customer can respond to each build
Lowers initial delivery cost
Initial product delivery is faster
Customers get important functionality early
Risk of changing requirements is reduced
Easier to test and debug during a smaller iteration.
Each iteration is an easily managed milestone.
Demerits:
Requires good planning and design
Requires early definition of a complete and fully functional system to allow for the
definition of increments
Well-defined module interfaces are required (some will be developed long before others)
Total cost of the complete system is not lower
Each phase of an iteration is rigid and do not overlap each other
30. Agile
• An alternative way of managing software development
• Different values & principles to traditional development
• Incremental, iterative & collaborative, rather than distinct
stages
• It is adaptive, people centric and it always welcome changes
32. Agile (XP) Manifesto
XP = Extreme Programming
• Individuals and interactions
– Over processes and tools
• Working software
– Over documentation
• Customer collaboration
– Over contract negotiation
• Responding to change
– Over following a plan
33. Agile Principles (Summary)
Continuous delivery of software
Continuous collaboration with customer
Continuous update according to changes
Value participants and their interaction
Simplicity in code, satisfy the space
34. XP Practices (Summary)
• Programming in pairs
• Test driven development
• Continuous planning, change , delivery
• Shared project metaphors, coding standards and ownership of
code
• No overtime! (Yeah right!)
35. 10 Key Principles of Agile
1. Active user involvement is imperative
2. Agile teams must be empowered
3. Time waits for no man
4. Agile requirements are barely sufficient
5. How do you eat an elephant?
6. Fast but not so furious
7. Done means DONE!
8. Enough’s enough
9. Agile testing is not for dummies
10. No place for snipers
37. Advantage & Disadvantage of Agile
Advantages
Customer Satisfaction.
Saves Time.
Suitable for fixed or changing requirements.
Lightweight methods suit small-medium size projects
Produces good team cohesion
Emphasises final product
Iterative
Test based approach to requirements and quality assurance
Disadvantages
Difficult to scale up to large projects where documentation is essential
Needs experience and skill if not to degenerate into code-and-fix
Programming pairs is costly
Test case construction is a difficult and specialised skill.
Not suitable for handling complex dependencies.
More risk of sustainability, maintainability and extensibility.
38. Difference between agile and waterfall
Metric Waterfall Agile
Planning scale Long-team Short-team
Distance between customer
and developer
Long Short
Time between specification
and implementation
Long Short
Time to discover problems Long Short
Project schedule risk High Low
Ability to respond quickly to
change
low High
39. Difference between agile and waterfall and
Iterative model
http://www.slideshare.net/MarrajuBollapRagada/agile-vs-iterativevswaterfall