SlideShare a Scribd company logo
30
Software Engineering
and
Best Practices
Sources: Various.
Rational Software Corporation slides,
OOSE textbook slides, Per Kroll talk, How to Fail with
the RUP article, textbooks
Most slides have been modified considerably
30 2
Fundamental Terms / Concepts
►Science and Engineering
 Discover
►Relationships that exist but are not found
►Formulas; chemical composition, d=r*t; calories in
fats, carbohydrates, proteins; experimentation;
►Astrophysics – origins of the universe
 Build
►Apply principles of science and mathematics to real
needs, commodities, structures, products, etc.
►Software Engineering; Software Development
30 3
Fundamental Concepts / Terms (2)
►Software Engineering; Software Development
►Job positions:
 Software developer
 Programmer
 Software engineer
 Analyst / Programmer
 Senior … what have you…
30 4
What is Software Engineering?
►The process of solving customers’ problems
by the systematic development and evolution
of large, high-quality software systems within
cost, time and other constraints
►Note:
 Process, systematic (not ad hoc), evolutionary…
 Constraints: high quality, cost, time, meets user
requirements
30 5
Analysis of the Definition:
► Systematic development and evolution
 An engineering process involves applying well understood techniques in a
organized and disciplined way
 Many well-accepted practices have been formally standardized
► e.g. by the IEEE or ISO
 Most development work is evolutionary
► Large, high quality software systems
 Software engineering techniques are needed because large systems cannot be
completely understood by one person
 Teamwork and co-ordination are required
 Key challenge: Dividing up the work and ensuring that the parts of the system
work properly together
 The end-product that is produced must be of sufficient quality
► Cost, time and other constraints
 Finite resources
 The benefit must outweigh the cost
 Others are competing to do the job cheaper and faster
 Inaccurate estimates of cost and time have caused many project failures
30 6
Comments:
► $250 billion annually in US.
► Over 175,000 projects!
► Complexity, size, distribution, importance push our
limits.
► Business pushes these limits:
 Great demands for rapid development and deployment
►  Incredible pressure: develop systems that are:
 On time,
 Within budget,
 Meets the users’ requirements
► Figures in the late 90s indicated that at most
 70% of projects completed
 Over 50% ran over twice the intended budget
 $81 billion dollars spent in cancelled projects!!
► Getting better, but we need better tools and
techniques!
30 7
What Happens in Practice
Sequential activities: (Traditional ‘Waterfall’ Process)
Requirements Design Code Integration Test
Late Design
Breakage
100%
Project Schedule
Development
Progress
(%
coded)
Original
Target Date
Integration
Begins
Risk inadequately addressed
Process not receptive to Change
Problems not really ‘seen’
until near delivery date!
Until then, ‘all is well…’
Big Bang approach – full delivery
Long development cycles…
Little user involvement, etc. etc…
30 8
Symptoms of Software
Development Problems
► Inaccurate understanding of end-user needs
► Inability to deal with changing requirements
► Modules that don’t fit together (integration)
► Software that’s hard to maintain or extend (brittle)
► Late discovery of serious project flaws (integration)
► Poor software quality (architecture, risks unanticipated…)
► Process not responsive to Change (Gantt Charts…)
► Unacceptable software performance
► Team members in each other’s way, unable to reconstruct who
changed what, when, where, why (software architecture, …
► …and we could go on and on…
30 9
► We need a process that
 Will serve as a framework for large scale and small
projects
  Adaptive – embraces ‘change!’
►Opportunity for improvement not identification of failure!
 Iterative (small, incremental ‘deliverables’)
 Risk-driven (identify / resolve risks up front)
 Flexible, customizable process (not a burden; adaptive to
projects)
 Architecture-centric (breaks components into ‘layers’ or
common areas of responsibility…)
 Heavy user involvement
► Identify best ways of doing things – a better process
– acknowledged by world leaders…
Need a Better Hammer!
30 10
Develop Iteratively
Control Changes
Use
Component
Architectures
Manage
Requirements
Model
Visually
Verify
Quality
Best Practices of Software
Engineering
Know these!
30 11
Symptoms
end-user needs
changing
requirements
modules don’t fit
hard to maintain
late discovery
poor quality
poor performance
colliding developers
build-and-release
Root Causes
insufficient requirements
ambiguous
communications
brittle architectures
overwhelming complexity
undetected
inconsistencies
poor testing
subjective assessment
waterfall development
uncontrolled change
insufficient automation
Best Practices
develop iteratively
manage requirements
use component
architectures
model the software
visually
verify quality
control changes
Addressing Root Causes
Eliminates the Symptoms
Symptoms of problems can be traced to having Root Causes.
Best Practices are ‘practices’ designed to address the root causes of software problems.
30 12
Practice 1: Develop Software
Iteratively
Develop Iteratively
Control Changes
Use
Component
Architectures
Manage
Requirements
Model
Visually
Verify
Quality
Considered by many practitioners to be the most significant of the six
30 13
Practice 1: Develop Software Iteratively
►Until recently, developed under assumption -
most requirements can be identified up front.
►The research deconstructing this myth includes
work by Capers Jones. (See next slide) In this
very large study of 6,700 projects, creeping
requirements — those not anticipated near the
start—are a very significant fact of software
development life, ranging from around 25% on
average projects up to 50% on larger ones.
30 14
 Look up a definition of ‘Function Points.’
30 15
Interestingly,
► An initial design will likely be flawed with respect to its key
requirements. Requirements rarely fully known up front!
► Late-phase discovery of design defects results in costly
over-runs and/or project cancellation
 Oftentimes requirements change – even during implementation!
► While large projects are more prone to cost overruns,
medium-size/small projects are vulnerable to cancellation.
► The key reasons continue to be
 poor project planning and management,
 shortage of technical and project management expertise,
 lack of technology infrastructure,
 disinterested senior management, and
 inappropriate project teams.”
30 16
Waterfall Delays Risks
R
I
S
K
T I M E
Integration
System
Test
Code
Design
Requirements
Waterfall risk
Walker Royce, 1995
30 17
Iterative Development
•  Earliest iterations address greatest risks
• Each iteration produces an executable release
• Each iteration includes integration, test, and assessment!
• Objective Milestones: short-term focus; short term successes!
Iteration 1 Iteration 2 Iteration 3
30 18
Accelerate Risk Reduction
Iterative
T I M E
Iteration Iteration Iteration Iteration Iteration
Risk reduction
R
I
S
K
Waterfall risk
Walker Royce, 1995
30 19
Iterative Development Characteristics
► Critical risks are resolved before making
large investments
► Initial iterations enable early user feedback
 Easy to resolve problems early.
 Encourages user feedback in meaningful ways
► Testing and integration are continuous –
assures successful integration (parts all fit)
 Continuous testing.
► Objective milestones provide short-term focus
► Progress measured by assessing implementations
► Partial implementations can be deployed
 Waterfall method – no delivery
 Incremental development? May be some great
values in delivering key parts of application.
Critical components delivered first?
► No big-bang approach!
30 20
UP Lifecycle Graph – Showing Iterations
In an iteration,
you may walk
through all
disciplines
C
O
N
T
E
N
T
S
T
R
U
C
T
U
R
E
T I M E
STUDY THIS!!!
30 21
Executable Releases
Unified Process Iterations and Phases
An iteration is a distinct sequence of activities
with an established plan and evaluation criteria,
resulting in an ‘executable release.’
(There is a lot of very important ‘key’ terminology used here…
(cycle, iteration, phase, milestones, core disciplines, content
of iterations, etc….)
Preliminary
Iteration
Architect.
Iteration
Architect.
Iteration
Devel.
Iteration
Devel.
Iteration
Devel.
Iteration
Transition
Iteration
Transition
Iteration
Elaboration Construction Transition
Inception
30 22
Enables and encourages user
feedback
Serious misunderstandings
evident early in the life cycle
Development focuses on critical
issues – break it down!
Objective assessment thru
testing and assessment
Inconsistencies detected early
Testing starts earlier –
continuous!
Risks identified and addressed
early - via planned iterations!
Problems Addressed by Iterative Development
Root Causes Solutions
 Insufficient requirements
 Ambiguous
communications
 Brittle architectures
 Overwhelming
complexity
 Subjective assessment
 Undetected
inconsistencies
 Poor testing
 Waterfall development
 Uncontrolled change
 Insufficient automation
30 23
No Free Lunch- Traps Abound…
► Major impacts on Project Managers, though….
► Trap: When the initial risks are mitigated, new ones emerge
Do not do just the easy stuff, to look good.
Keep re-planning based on all new information.
► Trap: Remember ‘some’ Rework enables you to enhance your solution
Accommodate change early in the project
► Trap: Iterative development does not mean never to commit to a solution
► Monitor ‘scrap and rework’
► Trap: Must Control “requirement creep, ” however… Some
clients will now naturally recognize many ‘musts…’
30 24
Many Traps in Iterative Development
Here is another trap: Too long initial iteration
► Winning is fun. Winning teams work better than loosing teams
► Better to have a short initial iteration, than one too long
 Cut scope if necessary (much more later)
► Avoid ‘analysis-paralysis’ by time-boxing; you can enhance
in later iterations (more later)
► Establish an even rhythm for project (at least w/i a phase)
► Focus on results and deliverables, not activities
30 25
Iterations Are Time-boxed
►Work is undertaken within an iteration.
►The iteration plan defines the artifacts to
be delivered, roles and activities.
►An iteration is clearly measurable.
►Iterations are risk-driven
►Iterations are planned.
►Iterations are assessed!
►Generally, initial iterations (in Construction)
based on high risk and core functionalities!
30 26
The Iteration Plan Defines….
The deliverables for
that iteration.
The to do list for the
team members
artifacts
30 27
Problem:
Fixed Plans Produced Upfront – Not
Real Practical!
►Yet, senior management wants firm, fixed plans!
 Part of their culture / upbringing/ experience
 Necessary for ‘planning’ budgeting, etc. of resources, projects…. BUT:
►Trap: Fine-grained planning from start to end?
 Takes too much time
 Frustrating as change occurs (and it will), if plans too fine-grained.
►Know that: Projects typically have some degree of uncertainty
►This makes detailed plans for the entire project meaningless
►Does not mean that we should not plan
30 28
Solution:
Plan With Evolving Levels of Detail
Current Iteration
Next Iteration
Phases and major milestones
 What and when
Iterations for each phase
 Number of iterations
 Objectives and Duration
One For Entire Project
Fine-grained Plans:
Iteration Plans
Coarse-grained Plan:
Software Development Plan
 Iterative Development does not mean less work and shorter schedule
 It is about greater predictability
30 29
Progress is made against MILESTONES
►In the Unified Process:
 Each phase is defined by a milestone.
 Progress is made by passing milestones.
 Milestones measure success
►Phases - NOT TIMEBOXED.
►Iterations ARE TIMEBOXED.
Inception Elaboration Construction Transition
Major Milestones
30 30
Summary
►Much more about iteration and iteration
planning later in the course…
►You will see some of these again – and,
more importantly, use this information in
your own iteration planning.

More Related Content

Similar to 1-SoftwareEngineeringandBestPractices.ppt

An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
Masoud Kalali
 
The process
The processThe process
The process
prakashvs7
 
Software process
Software processSoftware process
Software process
Amisha Patel
 
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
WrushabhShirsat3
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
moduledesign
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
ICS
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
3Quill Softwares
 
System Development
System  DevelopmentSystem  Development
System Development
Sharad Patel
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
moduledesign
 
Software Life Cycle Modelsrerfgrgreg.pptx
Software Life Cycle Modelsrerfgrgreg.pptxSoftware Life Cycle Modelsrerfgrgreg.pptx
Software Life Cycle Modelsrerfgrgreg.pptx
aryanchauhan040301
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Compare Infobase Limited
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
Jauhari Ismail
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
Compare Infobase Limited
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
Sharad Srivastava
 
System Development Life Cycle Overview.ppt
System Development Life Cycle Overview.pptSystem Development Life Cycle Overview.ppt
System Development Life Cycle Overview.ppt
KENNEDYDONATO1
 
lecture 1-5.pdf
lecture 1-5.pdflecture 1-5.pdf
lecture 1-5.pdf
AkankshaJha53
 
Sdlc
SdlcSdlc
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
BinyamBekele3
 
Chapter 8.ppt
Chapter 8.pptChapter 8.ppt
Chapter 8.ppt
balewayalew
 
SDLC
SDLCSDLC

Similar to 1-SoftwareEngineeringandBestPractices.ppt (20)

An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
The process
The processThe process
The process
 
Software process
Software processSoftware process
Software process
 
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
 
System Development
System  DevelopmentSystem  Development
System Development
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Software Life Cycle Modelsrerfgrgreg.pptx
Software Life Cycle Modelsrerfgrgreg.pptxSoftware Life Cycle Modelsrerfgrgreg.pptx
Software Life Cycle Modelsrerfgrgreg.pptx
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
 
System Development Life Cycle Overview.ppt
System Development Life Cycle Overview.pptSystem Development Life Cycle Overview.ppt
System Development Life Cycle Overview.ppt
 
lecture 1-5.pdf
lecture 1-5.pdflecture 1-5.pdf
lecture 1-5.pdf
 
Sdlc
SdlcSdlc
Sdlc
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
Chapter 8.ppt
Chapter 8.pptChapter 8.ppt
Chapter 8.ppt
 
SDLC
SDLCSDLC
SDLC
 

More from BUSHRASHAIKH804312

Andrew and Zac RVA-Beyond-Automated-Testing-2016.ppt
Andrew and Zac RVA-Beyond-Automated-Testing-2016.pptAndrew and Zac RVA-Beyond-Automated-Testing-2016.ppt
Andrew and Zac RVA-Beyond-Automated-Testing-2016.ppt
BUSHRASHAIKH804312
 
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
BUSHRASHAIKH804312
 
Direct infection: virus can infect files every time a user opens that specif...
Direct infection: virus can infect files every time a user  opens that specif...Direct infection: virus can infect files every time a user  opens that specif...
Direct infection: virus can infect files every time a user opens that specif...
BUSHRASHAIKH804312
 
Ch4-ControlFlowTesting.ppt
Ch4-ControlFlowTesting.pptCh4-ControlFlowTesting.ppt
Ch4-ControlFlowTesting.ppt
BUSHRASHAIKH804312
 
knowledge-portal-150406070618-conversion-gate01.pdf
knowledge-portal-150406070618-conversion-gate01.pdfknowledge-portal-150406070618-conversion-gate01.pdf
knowledge-portal-150406070618-conversion-gate01.pdf
BUSHRASHAIKH804312
 
chapter5-file system implementation.ppt
chapter5-file system implementation.pptchapter5-file system implementation.ppt
chapter5-file system implementation.ppt
BUSHRASHAIKH804312
 
SQA.ppt
SQA.pptSQA.ppt

More from BUSHRASHAIKH804312 (7)

Andrew and Zac RVA-Beyond-Automated-Testing-2016.ppt
Andrew and Zac RVA-Beyond-Automated-Testing-2016.pptAndrew and Zac RVA-Beyond-Automated-Testing-2016.ppt
Andrew and Zac RVA-Beyond-Automated-Testing-2016.ppt
 
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
 
Direct infection: virus can infect files every time a user opens that specif...
Direct infection: virus can infect files every time a user  opens that specif...Direct infection: virus can infect files every time a user  opens that specif...
Direct infection: virus can infect files every time a user opens that specif...
 
Ch4-ControlFlowTesting.ppt
Ch4-ControlFlowTesting.pptCh4-ControlFlowTesting.ppt
Ch4-ControlFlowTesting.ppt
 
knowledge-portal-150406070618-conversion-gate01.pdf
knowledge-portal-150406070618-conversion-gate01.pdfknowledge-portal-150406070618-conversion-gate01.pdf
knowledge-portal-150406070618-conversion-gate01.pdf
 
chapter5-file system implementation.ppt
chapter5-file system implementation.pptchapter5-file system implementation.ppt
chapter5-file system implementation.ppt
 
SQA.ppt
SQA.pptSQA.ppt
SQA.ppt
 

Recently uploaded

PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Assessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptxAssessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptx
Kavitha Krishnan
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
Celine George
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
Celine George
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
RitikBhardwaj56
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 

Recently uploaded (20)

PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Assessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptxAssessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptx
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 

1-SoftwareEngineeringandBestPractices.ppt

  • 1. 30 Software Engineering and Best Practices Sources: Various. Rational Software Corporation slides, OOSE textbook slides, Per Kroll talk, How to Fail with the RUP article, textbooks Most slides have been modified considerably
  • 2. 30 2 Fundamental Terms / Concepts ►Science and Engineering  Discover ►Relationships that exist but are not found ►Formulas; chemical composition, d=r*t; calories in fats, carbohydrates, proteins; experimentation; ►Astrophysics – origins of the universe  Build ►Apply principles of science and mathematics to real needs, commodities, structures, products, etc. ►Software Engineering; Software Development
  • 3. 30 3 Fundamental Concepts / Terms (2) ►Software Engineering; Software Development ►Job positions:  Software developer  Programmer  Software engineer  Analyst / Programmer  Senior … what have you…
  • 4. 30 4 What is Software Engineering? ►The process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints ►Note:  Process, systematic (not ad hoc), evolutionary…  Constraints: high quality, cost, time, meets user requirements
  • 5. 30 5 Analysis of the Definition: ► Systematic development and evolution  An engineering process involves applying well understood techniques in a organized and disciplined way  Many well-accepted practices have been formally standardized ► e.g. by the IEEE or ISO  Most development work is evolutionary ► Large, high quality software systems  Software engineering techniques are needed because large systems cannot be completely understood by one person  Teamwork and co-ordination are required  Key challenge: Dividing up the work and ensuring that the parts of the system work properly together  The end-product that is produced must be of sufficient quality ► Cost, time and other constraints  Finite resources  The benefit must outweigh the cost  Others are competing to do the job cheaper and faster  Inaccurate estimates of cost and time have caused many project failures
  • 6. 30 6 Comments: ► $250 billion annually in US. ► Over 175,000 projects! ► Complexity, size, distribution, importance push our limits. ► Business pushes these limits:  Great demands for rapid development and deployment ►  Incredible pressure: develop systems that are:  On time,  Within budget,  Meets the users’ requirements ► Figures in the late 90s indicated that at most  70% of projects completed  Over 50% ran over twice the intended budget  $81 billion dollars spent in cancelled projects!! ► Getting better, but we need better tools and techniques!
  • 7. 30 7 What Happens in Practice Sequential activities: (Traditional ‘Waterfall’ Process) Requirements Design Code Integration Test Late Design Breakage 100% Project Schedule Development Progress (% coded) Original Target Date Integration Begins Risk inadequately addressed Process not receptive to Change Problems not really ‘seen’ until near delivery date! Until then, ‘all is well…’ Big Bang approach – full delivery Long development cycles… Little user involvement, etc. etc…
  • 8. 30 8 Symptoms of Software Development Problems ► Inaccurate understanding of end-user needs ► Inability to deal with changing requirements ► Modules that don’t fit together (integration) ► Software that’s hard to maintain or extend (brittle) ► Late discovery of serious project flaws (integration) ► Poor software quality (architecture, risks unanticipated…) ► Process not responsive to Change (Gantt Charts…) ► Unacceptable software performance ► Team members in each other’s way, unable to reconstruct who changed what, when, where, why (software architecture, … ► …and we could go on and on…
  • 9. 30 9 ► We need a process that  Will serve as a framework for large scale and small projects   Adaptive – embraces ‘change!’ ►Opportunity for improvement not identification of failure!  Iterative (small, incremental ‘deliverables’)  Risk-driven (identify / resolve risks up front)  Flexible, customizable process (not a burden; adaptive to projects)  Architecture-centric (breaks components into ‘layers’ or common areas of responsibility…)  Heavy user involvement ► Identify best ways of doing things – a better process – acknowledged by world leaders… Need a Better Hammer!
  • 10. 30 10 Develop Iteratively Control Changes Use Component Architectures Manage Requirements Model Visually Verify Quality Best Practices of Software Engineering Know these!
  • 11. 30 11 Symptoms end-user needs changing requirements modules don’t fit hard to maintain late discovery poor quality poor performance colliding developers build-and-release Root Causes insufficient requirements ambiguous communications brittle architectures overwhelming complexity undetected inconsistencies poor testing subjective assessment waterfall development uncontrolled change insufficient automation Best Practices develop iteratively manage requirements use component architectures model the software visually verify quality control changes Addressing Root Causes Eliminates the Symptoms Symptoms of problems can be traced to having Root Causes. Best Practices are ‘practices’ designed to address the root causes of software problems.
  • 12. 30 12 Practice 1: Develop Software Iteratively Develop Iteratively Control Changes Use Component Architectures Manage Requirements Model Visually Verify Quality Considered by many practitioners to be the most significant of the six
  • 13. 30 13 Practice 1: Develop Software Iteratively ►Until recently, developed under assumption - most requirements can be identified up front. ►The research deconstructing this myth includes work by Capers Jones. (See next slide) In this very large study of 6,700 projects, creeping requirements — those not anticipated near the start—are a very significant fact of software development life, ranging from around 25% on average projects up to 50% on larger ones.
  • 14. 30 14  Look up a definition of ‘Function Points.’
  • 15. 30 15 Interestingly, ► An initial design will likely be flawed with respect to its key requirements. Requirements rarely fully known up front! ► Late-phase discovery of design defects results in costly over-runs and/or project cancellation  Oftentimes requirements change – even during implementation! ► While large projects are more prone to cost overruns, medium-size/small projects are vulnerable to cancellation. ► The key reasons continue to be  poor project planning and management,  shortage of technical and project management expertise,  lack of technology infrastructure,  disinterested senior management, and  inappropriate project teams.”
  • 16. 30 16 Waterfall Delays Risks R I S K T I M E Integration System Test Code Design Requirements Waterfall risk Walker Royce, 1995
  • 17. 30 17 Iterative Development •  Earliest iterations address greatest risks • Each iteration produces an executable release • Each iteration includes integration, test, and assessment! • Objective Milestones: short-term focus; short term successes! Iteration 1 Iteration 2 Iteration 3
  • 18. 30 18 Accelerate Risk Reduction Iterative T I M E Iteration Iteration Iteration Iteration Iteration Risk reduction R I S K Waterfall risk Walker Royce, 1995
  • 19. 30 19 Iterative Development Characteristics ► Critical risks are resolved before making large investments ► Initial iterations enable early user feedback  Easy to resolve problems early.  Encourages user feedback in meaningful ways ► Testing and integration are continuous – assures successful integration (parts all fit)  Continuous testing. ► Objective milestones provide short-term focus ► Progress measured by assessing implementations ► Partial implementations can be deployed  Waterfall method – no delivery  Incremental development? May be some great values in delivering key parts of application. Critical components delivered first? ► No big-bang approach!
  • 20. 30 20 UP Lifecycle Graph – Showing Iterations In an iteration, you may walk through all disciplines C O N T E N T S T R U C T U R E T I M E STUDY THIS!!!
  • 21. 30 21 Executable Releases Unified Process Iterations and Phases An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an ‘executable release.’ (There is a lot of very important ‘key’ terminology used here… (cycle, iteration, phase, milestones, core disciplines, content of iterations, etc….) Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Elaboration Construction Transition Inception
  • 22. 30 22 Enables and encourages user feedback Serious misunderstandings evident early in the life cycle Development focuses on critical issues – break it down! Objective assessment thru testing and assessment Inconsistencies detected early Testing starts earlier – continuous! Risks identified and addressed early - via planned iterations! Problems Addressed by Iterative Development Root Causes Solutions  Insufficient requirements  Ambiguous communications  Brittle architectures  Overwhelming complexity  Subjective assessment  Undetected inconsistencies  Poor testing  Waterfall development  Uncontrolled change  Insufficient automation
  • 23. 30 23 No Free Lunch- Traps Abound… ► Major impacts on Project Managers, though…. ► Trap: When the initial risks are mitigated, new ones emerge Do not do just the easy stuff, to look good. Keep re-planning based on all new information. ► Trap: Remember ‘some’ Rework enables you to enhance your solution Accommodate change early in the project ► Trap: Iterative development does not mean never to commit to a solution ► Monitor ‘scrap and rework’ ► Trap: Must Control “requirement creep, ” however… Some clients will now naturally recognize many ‘musts…’
  • 24. 30 24 Many Traps in Iterative Development Here is another trap: Too long initial iteration ► Winning is fun. Winning teams work better than loosing teams ► Better to have a short initial iteration, than one too long  Cut scope if necessary (much more later) ► Avoid ‘analysis-paralysis’ by time-boxing; you can enhance in later iterations (more later) ► Establish an even rhythm for project (at least w/i a phase) ► Focus on results and deliverables, not activities
  • 25. 30 25 Iterations Are Time-boxed ►Work is undertaken within an iteration. ►The iteration plan defines the artifacts to be delivered, roles and activities. ►An iteration is clearly measurable. ►Iterations are risk-driven ►Iterations are planned. ►Iterations are assessed! ►Generally, initial iterations (in Construction) based on high risk and core functionalities!
  • 26. 30 26 The Iteration Plan Defines…. The deliverables for that iteration. The to do list for the team members artifacts
  • 27. 30 27 Problem: Fixed Plans Produced Upfront – Not Real Practical! ►Yet, senior management wants firm, fixed plans!  Part of their culture / upbringing/ experience  Necessary for ‘planning’ budgeting, etc. of resources, projects…. BUT: ►Trap: Fine-grained planning from start to end?  Takes too much time  Frustrating as change occurs (and it will), if plans too fine-grained. ►Know that: Projects typically have some degree of uncertainty ►This makes detailed plans for the entire project meaningless ►Does not mean that we should not plan
  • 28. 30 28 Solution: Plan With Evolving Levels of Detail Current Iteration Next Iteration Phases and major milestones  What and when Iterations for each phase  Number of iterations  Objectives and Duration One For Entire Project Fine-grained Plans: Iteration Plans Coarse-grained Plan: Software Development Plan  Iterative Development does not mean less work and shorter schedule  It is about greater predictability
  • 29. 30 29 Progress is made against MILESTONES ►In the Unified Process:  Each phase is defined by a milestone.  Progress is made by passing milestones.  Milestones measure success ►Phases - NOT TIMEBOXED. ►Iterations ARE TIMEBOXED. Inception Elaboration Construction Transition Major Milestones
  • 30. 30 30 Summary ►Much more about iteration and iteration planning later in the course… ►You will see some of these again – and, more importantly, use this information in your own iteration planning.