Se Unit I PPT Updated
Se Unit I PPT Updated
Programming
Individual Writes Complete Program
One Person, One Computer
Well-Defined Problem
Programming-in-the-Small
Software Engineering
Individuals Write Program Components
Team Assembles Complete Program
Programming-in-the-Large
What is the difference between software engineering and computer
science?
Maintainability
Software must evolve to meet changing needs
Dependability
Software must be trustworthy
Efficiency
Software should not make wasteful use of system resources
Usability
Software must be usable by the users for which it was designed
Software - Characteristics
Software has a dual role. It is a product, but also a vehicle
for delivering a product.
12
The Evolving role of software
Dual role of Software
A Product
13
Software Evolution
Software Evolution is a term which refers to the
process of developing software initially, then
timely updating it for various reasons, i.e., to add
new features or to remove obsolete functionalities
etc.
The evolution process includes fundamental
activities of change analysis, release planning,
system implementation and releasing a system to
customers.
The necessity of Software evolution
Software evaluation is necessary just because of the
following reasons:
18
THE CHANGING NATURE OF SOFTWARE
System software: System software is a collection of programs
written to service other programs Ex.OS
Application software : It is a group of program designed for end
users.
Ex. Email
Engineering and scientific software: Engineering and scientific
software have been characterized by "number crunching"
algorithms. Ex. CAD
Embedded software
-- resides in read-only memory
--is used to control products and systems for the consumer and
industrial markets.
Ex. GPS devices,modren smart watches
19
THE CHANGING NATURE OF SOFTWARE
Web Applications: It is a client- server computer program
Which the client runs in a web browser.
Ex. Online auction
Artificial intelligence software:
It is a machine learning includes algorithm that are developed to
tell a computer how to respond to something by example.
It uses a structure as close as possible to human brain.
Ex. Speech recognition.
Internet Software :
Programs that support internet accesses and applications. For
example, search engine, browser, e-commerce software, authoring
tools.
20
LEGACY SOFTWARE
Legacy software are older programs that are
developed decades ago.
(or)
Legacy software refers to older software solutions
that businesses continue to use even after they've
become outdated.
The quality of legacy software is poor because it
has inextensible design,convoluted code, poor and
nonexistent documentation,test cases and results
that are not achieved.
21
Astime passes legacy systems
evolve due to following reasons:
The software must be adapted to meet the needs of
new computing environment or technology.
The software must be enhanced to implement new
business requirements.
The software must be extended to make it
interoperable with more modern systems or
database
The software must be re architected to make it
viable within a network environment.
22
Who uses Legacy software
Companies use it to fulfill their operational needs, though the
software they use may not have the new advancements or updates.
For example, a company may use old computers that have legacy
software. The software may store data efficiently, even if new
software systems have larger storage capacities.
Companies typically use legacy software when they have older
technology systems. Often, older machines are only compatible
with software from the same period, so it's easier for companies to
use legacy software instead of purchasing new equipment. While
using legacy software, IT professionals need to observe extra
security protocols, perform frequent data backups, convert files to
compatible formats with new software and drivers and purchase
additional storage.
SOFTWARE MYTHS
Widely held but false view
Def:Software myths are misleading
attitudes that have caused serious
problems for managers and technical
people alike. Software myths propagate
misinformation and confusion
Three types of myth
- Management myth
- Customer myth
- Practitioner’s myth 24
MANAGEMENT MYTHS
Myth(1)
-The available standards and procedures for s/w
are enough.
Myth(2)
-Each organization feel that they have state-of-art
software development tools since they have latest
computer.
Myth(3)
-Adding more programmers when the work is
behind schedule can catch up.
Myth(4)
-Outsourcing the software project to third party,
we can relax and let that party build it. 25
CUSTOMER MYTH
Myth(1)
26
PRACTITIONER’S MYTH
Myth(1)
-Once the program is written, the job has
been done.
Myth(2)
-Until the program is running, there is no
way of assessing the quality.
Myth(3)
-The only deliverable work product is the
working program
Myth(4)
-Software Engineering creates unnecessary
documentation and invariably slows down 27
software development.
SOFTWARE MYTHS
Widely held but false view
Propagate misinformation and confusion
S/W myths are belief about the s/w & the
process used to build it.
Three types of myth
- Management myth
- Customer myth
- Practitioner’s myth
28
Management myths
Managers with software responsibility are often under
pressure to maintain budgets, keep schedules from
slipping, and improve quality.
Following are the management myths:
Myth 1: We already have a book that’s full of standards
and procedures for building software, won’t that provide
my people with everything they need to know?
Reality: The book of standards may very well exist, but
isn’t used. Most software practitioners aren’t aware of its
existence. Also, it doesn’t reflect modern software
engineering practices and is also complete.
Contd..
Myth 2: My people have state-of-the-art software
development tools, after all, we buy them the
newest computers.
Reality: It takes much more than the latest model
mainframe, workstation, or PC to do high-quality
software development. Computer-aided software
engineering (CASE) tools are more important
than hardware for achieving good quality and
productivity, yet the majority of software
developers still do not use them effectively.
Contd..
Myth 3: If we get behind schedule, we can add
more programmers and catch up
Reality: Software development is not a
mechanistic process like manufacturing. As new
people are added, people who were working
must spend time educating the newcomers,
thereby reducing the amount of time spent on
productive development effort. People can be
added but only in a planned and well-coordinated
manner.
Contd..
Myth 4: If I decide to outsource the software
project to a third party, I can just relax and let
that firm build it.
Reality: If an organization does not understand
how to manage and control software projects
internally, it will invariably struggle when it
outsources software projects.
Customer myths:
Customer myths lead to false expectations (by the
customer) and ultimately, dissatisfaction with the
developer
Myth 1: A general statement of objectives is
sufficient to begin writing programs-we can fill in
the details later.
Reality: A poor up-front definition is the major
cause of failed software efforts. A formal and
detailed description of the functions, behavior,
performance, interfaces, design constraints, and
validation criteria is essential.
Contd..
Myth 2: Project requirements continually change, but
change can be easily accommodated because software is
flexible.
Reality: It is true that software requirements change, but
the impact of change varies with the time at which it is
introduced. When changes are requested during software
design, the cost impact grows rapidly. Resources have
been committed and a design framework has been
established. Change can cause heavy additional costs.
Change, when requested after software is in production,
can be much more expensive than the same change
requested earlier.
Practitioner’s myths
Myth 1: Once we write the program and get it to work, our
job is done.
Reality: Industry data indicate that between 60 and 80
percent of all effort expended on software will be
expended after it is delivered to the customer for the
first time.
Myth 2: Until I get the program “running” I have no way
of assessing its quality.
Reality: One of the most effective software quality
assurance mechanisms can be applied from the inception
of a project—the formal technical review.
Contd..
Myth 3: The only Deliverable work product for a successful
project is the working Program..
Reality: A working Program is only one part of a software
configuration that include many elements. Documentation
Provides a foundation for successful engineering and
more importantly, guidance for software support
Myth 4: Software Engineering will make us create
voluminous and unnecessary documentation and
invariably slow us down.
Reality: Software Engineering is not about creating
documents. It is about creating Quality leads to Reduced
rework & reduced rework results in faster delivery times.
A Generic view of process
Tools
Methods
Process
Quality of Focus
38
SOFTWARE ENGINEERING-A LAYERED TECHNOLOGY
Quality focus:
It defines the continuous process improvement principles of
software.
It provides integrity that means providing security to the software
so that data can be accessed by only an authorized person, no
outsider can access the data. It also focuses on maintainability and
usability..
Process
It is key that binds all the layers together which enables the
development of software before the deadline or on time.
Methods
During the process of software development the answers to all
“how-to-do” questions are given by method.
It has the information of all the tasks which includes communication,
requirement analysis, design modeling, program construction, testing,
and support.
Tools
Software engineering tools provide a self-operating system for
processes and methods.
Tools are integrated which means information created by one tool can
be use d by another.
41
SOFTWARE PROCESS FRAMEWORK
Establishes the foundation for a complete software process
Identifiesa number of framework activities applicable to
all software projects
Also include a set of umbrella activities that are applicable
across the entire software process.
Software process includes:
45
A PROCESS FRAMEWORK
Generic view of engineering complimented by a number
of umbrella activities
Software project tracking and control
Risk management
Software quality assurance
Formal technical reviews
Software configuration management
Document preparation and production
Reusability management
Measurement
46
1.Software project tracking and control: Take action to
keep the project on time by comparing the project’s progress
against the plan.
Level 1 : Initial
Level 2 : Repeatable
Level 3 : Defined
Level 4 : Managed
Level 5 : Optimized
Level 1 : Initial [Work is performed
informally]
PROCESS MODELS
What is a software process model?
•Waterfall model
•V model
•Incremental model
•RAD model
•Agile model
•Iterative model
•Prototype model
•Spiral model
SOFTWARE DEVELOPMET LIFE
CYCLE
Requirements Gathering and
Analysis
• In this phase, We collect all the requirements
from the customer through discussion and
written in requirement specification document
called SRSsoft ware requirements specificationdocument.
• Each phase in spiral model begins with design goal and ends with
customer reviews.
Common focus.
Collaboration.
Decision-making ability.
Fuzzy problem-solving ability.
Mutual trust and respect.
Self-organization.
Agility and the Cost of Change
8
3
Agile Model
The meaning of Agile is swift or versatile. "Agile process
model" Agile SDLC model is a combination of iterative and
incremental process models with focus on process adaptability and
customer satisfaction by rapid delivery of working software
product..
Each iteration is considered as a short time "frame" in the Agile
process model, which typically lasts from one to four weeks.
•Scrum
•Crystal
•DynamicSoftware Development Method(DSDM)
•Feature Driven Development(FDD)
•Lean Software Development
•eXtreme Programming(XP)
Scrum 9
Originally proposed by Schwaber and Beedle 2
Scrum—distinguishing features
Development work is partitioned into “packets”
Testing and documentation are on-going as the product
is constructed
Work occurs in “sprints” and is derived from a
“backlog” of existing requirements
Meetings are very short and sometimes conducted
without chairs
“demos” are delivered to the customer with the time-
box allocated
Scrum Development process
SCRUM is an agile development process focused primarily on ways
to manage tasks in team-based development conditions.
•Scrum Team: The team manages its work and organizes the
work to complete the sprint or cycle.
Scrum 9
4
1.Eliminating Waste
2.Amplifying learning
3.Defer commitment (deciding as late as possible)
4.Early delivery
5.Empowering the team
6.Building Integrity
7.Optimize the whole
Agility Principles - I
1. Our highest priority is to satisfy the customer through early
and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development.
Agile processes harness change for the customer's
competitive advantage.
3. Deliver working software frequently, from a couple of weeks
to a couple of months, with a preference to the shorter
timescale.
4. Business people and developers must work together daily
throughout the project.
5. Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the
job done.
6. The most efficient and effective method of conveying
information to and within a development team is face–to–
face conversation.
Agility Principles - II
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development.
The sponsors, developers, and users should be able to
maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good
design enhances agility.
10. Simplicity – the art of maximizing the amount of
work not done – is essential.
11. The best architectures, requirements, and designs
emerge from self–organizing teams.
12. At regular intervals, the team reflects on how to
become more effective, then tunes and adjusts its
behavior accordingly.