0% found this document useful (0 votes)
22 views

Devops Unit-1

Uploaded by

sreereshma2004
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Devops Unit-1

Uploaded by

sreereshma2004
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Unit-1

Definition of Software
 Software is a set of programs (sequence of
instructions) that allows the users to perform a
well-defined function or some specified task.
 Software is
(1) instructions (computer programs) that
when executed provide desired features,
function, and performance.
(2) data structures that enable the programs to
adequately manipulate information, and
(3) descriptive information(documentation)
that describes the operation and use of the
programs.
What is Software Crisis?
 In Late 1960’s many software projects failed.
 Software crisis is a term used for the difficulty of
developing software on time, within budget, and
with in requirements.
 The term "software crisis" was coined by some
attendees at the first NATO Software Engineering
Conference in 1968 at Garmisch, Germany.
What is Software Crisis?
 Size: Software is becoming more expensive and more
complex with the growing size. For example, the code
in the consumer product is doubling every couple of
years.
 Quality: Many software products have poor quality,
i.e., the software has more defects after delivery due to
ineffective testing technique.
 Cost: Software development is costly. Highly qualified
and skilled manpower is required to develop the
software.
 Delayed Delivery: Serious schedule overruns are
common. Very often the software takes longer than the
estimated time to develop, which in turn leads to cost
shooting up. For example, one in four large-scale
development projects is never completed.
Software Crisis
The following are the main reasons for software crisis:
 Increase in size of software.
 Increase in cost of developing a software.
 Software is delivered late.
 Software is unreliable.
 Increased complexity of the problem area.
 Poor Project management.
 Lack of understanding of the problem and its environment.
 Duplication of efforts (rework)due to absence of automation
in most of the software development activities.
 High optimistic estimates regarding software development
time and cost.
Software Engineering
 Solution to the problem was to transform unorganized
coding effort into a software engineering discipline.
 Software engineering is a process of analysing user
requirements and then designing, building, and testing
software application which will satisfy those requirements.
 These engineering models helped companies to streamline
operations and deliver software meeting customer
requirements.
▪ In the late 1970s widespread use of software
engineering principles.
▪ In the 1980s , automation of software engineering
process and growth of (CASE) Computer Aided
Software Engineering tools.
▪ The 1990s have seen an increased emphasis on the
management aspects of projects for quality.
Definition of Software Engineering
 various definitions of software engineering:
 IEEE standard defines software engineering as the
application of a systematic, disciplined, quantifiable
approach for the development, operation,and
maintenance of software.

 Fritz Bauer defined it as 'the establishment and use of


standard engineering principles that helps you to
obtain economically software which is reliable and
works efficiently on the real machines'.
Definition of Software Engineering
 Boehm defines as 'the practical application of
scientific knowledge to the creative design and
building of computer programs. It also includes
associated documentation needed for developing,
operating and maintaining them.'
Importance of software Engineering
 Large software - In our real life, it is quite more
comfortable to build a wall than a house or building.
In the same manner, as the size of the software
becomes large, software engineering helps you to build
software.
 Adaptability: Whenever the software process was
based on scientific and engineering principles,it is easy
to re-create new software.
Importance of software Engineering
 Cost: As the hardware industry has demonstrated its
skills and huge manufacturing has let down the cost of
computer hardware. But the cost of programming
remains high if the proper process is not adapted.
 Dynamic Nature: The continually growing and
adapting nature of programming hugely depends upon
the environment in which the client works. If the
quality of the software is continually changing, new
upgrades need to be done in the existing one.
 Quality Management: Better procedure of software
development provides a better and quality software
product.
Importance of Software Engineering
Characteristics of a Good software
 Software is treated as a good software by the means of
different factors.
 A good software is one that meets the needs of its
users, performs its intended functions reliably, and is
easy to maintain.
 The factors that decide the software properties are
divided into three categories:
 Operational, Transitional, and Maintenance.
Characteristics of a Good
software
Characteristics of a Good
software
 Operational: In operational category, the factors that
decide the software performance in operations can be
measured by
➢Budget
➢Usability
➢Efficiency
➢Correctness
➢Functionality
➢Security
➢Safety
Characteristics of a Good
software
 Transitional: When the software is moved from one
platform to another, the factors deciding the software
quality
➢ Portability
➢ Interoperability
➢ Reusability
➢ Adaptability
Characteristics of a Good
software
 Maintenance: In this categories all factors are
included that describes about how well a software has
the capabilities to maintain itself in the ever changing
environment:
➢Modularity
➢Maintainability
➢Flexibility
➢Scalability
Software Development Life Cycle (SDLC)
Software Development Life
Cycle (SDLC)
 Software Development Life Cycle (SDLC) is a process
used by the software industry to design, develop and
test high quality softwares.
 The SDLC aims to produce a high-quality software that
meets or exceeds customer expectations, reaches
completion within time and cost estimates.
Software Development Life Cycle
(SDLC)
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,operationaland technical areas.
 Planning for the quality assurance and identification of the
risks associated with the project is also done in the
planning stage.
Software Development Life
Cycle (SDLC)
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.
Software Development Life
Cycle (SDLC)
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 ,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).
 Internal design of all the modules of the proposed
architecture should be clearly defined with the minutest of
the details in DDS.
Software Development Life
Cycle (SDLC)
 Stage 4:coding
 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 with out
much hassle.
 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.
Software Development Life
Cycle (SDLC)
 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 allthe stages of SDLC.
 However,this stage refers to the testing only stage of
the product where product defects are reported,
tracked, fixed and retested, untilthe product reaches
the quality standards defined in the SRS.
Software Development Life
Cycle (SDLC)
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
acceptanee 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.
Waterfall model
 Winston Royce introduced the Waterfall Model in
1970.
 Waterfall model is a linear ,sequential approach to the
product development.
 The waterfall model uses a logical progression of SDLC
steps for a project, similar to the direction water flows
over the edge of a cliff.
 In the waterfall method, each step is dependent on the
output of the previous step.
Waterfall model
Who uses the waterfall model?
 The waterfall model is useful in situations where the
project requirements are well-defined and the project
goals are clear.
 The model is used in many different project
management contexts, such as in construction,
manufacturing, IT and software development.
Waterfall model
Who uses the waterfall model?
 This methodology is good for teams that want to
develop a project according to fixed or unchanging
requirements set forth at the beginning of the project.
 Waterfall projects have a high degree of process
definition with little or no output variability.
 Waterfall is also a good choice if the project is
constrained by cost or time.
Waterfall model
 Projects based on the waterfall model are well defined,
predictable and have specific documentation. They
also have the following characteristics:
✓fixed requirements
✓ample resources
✓an established timeline
✓well-understood technology
✓unlikely to require significant changes.
Phases of the waterfall model
 Requirements Gathering and Analysis: The first phase
involves gathering requirements from stakeholders and
analyzing them to understand the scope and objectives of
the project. These are placed into a formal requirements
document, also called SRS.
 Design: Once the requirements are understood, the design
phase begins. This involves creating a detailed design
document that outlines the software architecture, user
interface, and system components.
 Implementation/coding: The implementation phase
involves coding the software based on the design
specifications. This phase also includes unit testing to
ensure that each component of the software is working as
expected.
Phases of the waterfall model
 Testing: In the testing phase, the software is tested as
a whole to ensure that it meets the requirements and is
free from defects.
 Deployment: Once the software has been tested and
approved, it is deployed to the production
environment.
 Maintenance: The final phase of the Waterfall Model
is maintenance, which involves fixing any issues that
arise after the software has been deployed and
ensuring that it continues to meet the requirements
over time.
Advantages of the waterfall model
 Simple and easy to understand and use
 clearly defines milestones and deadlines.
 reinforces good coding habits to define before
implementing design and then code.
 enables large or changing teams to move toward a
common goal that's been defined in the requirements
stage.
 Phases are processed and completed one at a time.
 The start and end points for each phase is fixed,
which makes it easy to cover progress.
 Process and results are well documented.
Disadvantages of the waterfall
model
 Limited Stakeholder Involvement: stakeholders are
typically involved in the early phases of the project
(requirements gathering and analysis) but may not be
involved in the later phases.
 Limited Flexibility: Once a phase has been
completed, it is difficult to make changes or go back to
a previous phase. It is not well-suited for projects with
changing or uncertain requirements.
 No working software is produced until late during
the life cycle.
Disadvantages of the waterfall
model
 The Waterfall Model is not well-suited for complex
projects and high-risk projects.
 Waterfall doesn't let phases overlap for
simultaneous work, reducing overall efficiency and
increase of cost.
 Late Defect Detection: Testing is done toward the
end of the development process. This means that
defects may not be discovered until late in the
development process, which can be expensive and
time-consuming to fix.

You might also like