SlideShare a Scribd company logo
1 of 21
Chapter 5
Software Engineering
Practice
- Software engineering practice
- Communication practices
- Planning practices
- Analysis modeling practices
- Design modeling practices
- Construction practices
- Deployment practices
(Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)
2
Software Engineering Practice
• Consists of a collection of concepts, principles, methods, and tools that
a software engineer calls upon on a daily basis
• Equips managers to manage software projects and software engineers
to build computer programs
• Provides necessary technical and management how to’s in getting the
job done
• Transforms a haphazard unfocused approach into something that is
more organized, more effective, and more likely to achieve success
3
The Essence of Problem Solving
1) Understand the problem (communication and analysis)
• Who has a stake in the solution to the problem?
• What are the unknowns (data, function, behavior)?
• Can the problem be compartmentalized?
• Can the problem be represented graphically?
1) Plan a solution (planning, modeling and software design)
• Have you seen similar problems like this before?
• Has a similar problem been solved and is the solution reusable?
• Can subproblems be defined and are solutions available for the
subproblems?
(more on next slide)
4
The Essence of Problem Solving
(continued)
3) Carry out the plan (construction; code generation)
• Does the solution conform to the plan? Is the source code traceable
back to the design?
• Is each component of the solution correct? Has the design and code
been reviewed?
3) Examine the results for accuracy (testing and quality assurance)
• Is it possible to test each component of the solution?
• Does the solution produce results that conform to the data, function,
and behavior that are required?
5
Seven Core Principles for Software
Engineering
1) Remember the reason that the software exists
• The software should provide value to its users and satisfy the requirements
1) Keep it simple, stupid (KISS)
• All design and implementation should be as simple as possible
1) Maintain the vision of the project
• A clear vision is essential to the project’s success
1) Others will consume what you produce
• Always specify, design, and implement knowing that someone else will later
have to understand and modify what you did
1) Be open to the future
• Never design yourself into a corner; build software that can be easily changed
and adapted
1) Plan ahead for software reuse
• Reuse of software reduces the long-term cost and increases the value of the
program and the reusable components
1) Think, then act
• Placing clear, complete thought before action will almost always produce
better results
6 6
Communication Practices
(Requirements Elicitation)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
7
Communication Principles
1) Listen to the speaker and concentrate on what is being said
2) Prepare before you meet by researching and understanding the problem
3) Someone should facility the meeting and have an agenda
4) Face-to-face communication is best, but also have a document or
presentation to focus the discussion
5) Take notes and document decisions
6) Strive for collaboration and consensus
7) Stay focused on a topic; modularize your discussion
8) If something is unclear, draw a picture
9) Move on to the next topic a) after you agree to something, b) if you
cannot agree to something, or c) if a feature or function is unclear and
cannot be clarified at the moment
10) Negotiation is not a contest or a game; it works best when both parties
win
8 8
Planning Practices
(Defining a Road Map)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
9
Planning Principles
1) Understand the scope of the project
2) Involve the customer in the planning activity
3) Recognize that planning is iterative; things will change
4) Estimate based only on what you know
5) Consider risk as you define the plan
6) Be realistic on how much can be done each day by each person and
how well
7) Adjust granularity as you define the plan
8) Define how you intend to ensure quality
9) Describe how you intend to accommodate change
10) Track the plan frequently and make adjustments as required
10
Barry Boehm’s W5
HH Principle
• Why is the system being developed?
• What will be done?
• When will it be accomplished?
• Who is responsible for each function?
• Where are they organizationally located?
• How will the job be done technically and managerially?
• How much of each resource is needed?
The answers to these questions lead to a definition of key
project characteristics and the resultant project plan
11 11
Modeling Practices
(Analysis and Design)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
12
Analysis Modeling Principles
1) The information domain of a problem (the data that flows in and out of a
system) must be represented and understood
2) The functions that the software performs must be defined
3) The behavior of the software (as a consequence of external events) must
be represented
4) The models that depict information, function, and behavior must be
partitioned in a manner that uncovers detail in a layered (or hierarchical)
fashion
5) The analysis task should move from essential information toward
implementation detail
13
Design Modeling Principles
1) The design should be traceable to the analysis model
2) Always consider the software architecture of the system to be built
3) Design of data is as important as design of processing functions
4) Interfaces (both internal and external) must be designed with care
5) User interface design should be tuned to the needs of the end-user and
should stress ease of use
6) Component-level design should be functionally independent (high cohesion)
7) Components should be loosely coupled to one another and to the external
environment
8) Design representations (models) should be easily understandable
9) The design should be developed iteratively; with each iteration, the designer
should strive for greater simplicity
External quality factors: those properties that can be readily observed
Internal quality factors: those properties that lead to a high-quality design from a technical
perspective
14 14
Construction Practices
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
15
Coding Principles
(Preparation before coding)
1) Understand the problem you are trying to solve
2) Understand basic design principles and concepts
3) Pick a programming language that meets the needs of the software to
be built and the environment in which it will operate
4) Select a programming environment that provides tools that will make
your work easier
5) Create a set of unit tests that will be applied once the component you
code is completed
16
Coding Principles
(As you begin coding)
1) Constrain your algorithms by following structured programming
practices
2) Select data structures that will meet the needs of the design
3) Understand the software architecture and create interfaces that are
consistent with it
4) Keep conditional logic as simple as possible
5) Create nested loops in a way that makes them easily testable
6) Select meaningful variable names and follow other local coding
standards
7) Write code that is self-documenting
8) Create a visual layout (e.g., indentation and blank lines) that aids
code understanding
17
Coding Principles
(After completing the first round of code)
1) Conduct a code walkthrough
2) Perform unit tests (black-box and white-box) and correct errors you
have uncovered
3) Refactor the code
18
Testing Principles
1) All tests should be traceable to the software requirements
2) Tests should be planned long before testing begins
3) The Pareto principle applies to software testing
• 80% of the uncovered errors are in 20% of the code
1) Testing should begin “in the small” and progress toward testing “in
the large”
• Unit testing --> integration testing --> validation testing --> system
testing
1) Exhaustive testing is not possible
19
Test Objectives
1) Testing is a process of executing a program with the intent of finding
an error
2) A good test case is one that has a high probability of finding an as-
yet undiscovered error
3) A successful test is one that uncovers an as-yet undiscovered error
20 20
Deployment Practices
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
21
Deployment Principles
1) Customer expectations for the software must be managed
• Be careful not to promise too much or to mislead the user
1) A complete delivery package should be assembled and tested
2) A support regime must be established before the software is delivered
3) Appropriate instructional materials must be provided to end users
4) Buggy software should be fixed first, delivered later


More Related Content

What's hot

Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design conceptssrijavel
 
Ddb 1.6-design issues
Ddb 1.6-design issuesDdb 1.6-design issues
Ddb 1.6-design issuesEsar Qasmi
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSKathirvel Ayyaswamy
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating SystemAjithaG9
 
EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM Sahil Garg
 
Architecture of Mobile Computing
Architecture of Mobile ComputingArchitecture of Mobile Computing
Architecture of Mobile ComputingJAINIK PATEL
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecturenupurmakhija1211
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuseMarco Brambilla
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factorsNancyBeaulah_R
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software conceptsPrajakta Rane
 
Context model
Context modelContext model
Context modelUbaid423
 
Fragmentation and types of fragmentation in Distributed Database
Fragmentation and types of fragmentation in Distributed DatabaseFragmentation and types of fragmentation in Distributed Database
Fragmentation and types of fragmentation in Distributed DatabaseAbhilasha Lahigude
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 

What's hot (20)

Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Ddb 1.6-design issues
Ddb 1.6-design issuesDdb 1.6-design issues
Ddb 1.6-design issues
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMS
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
 
EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM
 
CORBA
CORBACORBA
CORBA
 
Direct linking loaders
Direct linking loadersDirect linking loaders
Direct linking loaders
 
Architecture of Mobile Computing
Architecture of Mobile ComputingArchitecture of Mobile Computing
Architecture of Mobile Computing
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
Replication in Distributed Systems
Replication in Distributed SystemsReplication in Distributed Systems
Replication in Distributed Systems
 
Distributed database
Distributed databaseDistributed database
Distributed database
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts
 
Context model
Context modelContext model
Context model
 
Fragmentation and types of fragmentation in Distributed Database
Fragmentation and types of fragmentation in Distributed DatabaseFragmentation and types of fragmentation in Distributed Database
Fragmentation and types of fragmentation in Distributed Database
 
Osi reference model
Osi reference modelOsi reference model
Osi reference model
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Naming in Distributed System
Naming in Distributed SystemNaming in Distributed System
Naming in Distributed System
 
Link state routing protocol
Link state routing protocolLink state routing protocol
Link state routing protocol
 

Similar to Software engineering -core topics

softwareengineeringpractice-141002214920-phpapp02 (1).pdf
softwareengineeringpractice-141002214920-phpapp02 (1).pdfsoftwareengineeringpractice-141002214920-phpapp02 (1).pdf
softwareengineeringpractice-141002214920-phpapp02 (1).pdfSanRock2
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringKanchanPatil34
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software EngineeringMuhammadTalha436
 
Software Project management
Software Project managementSoftware Project management
Software Project managementsameer farooq
 
CSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxCSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxAbdulMateen516672
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesNesrine Shokry
 
CSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxCSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxMrSDeepakRajAssistan
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
software engineering 2 Chapter notes of software engineering in detail to stu...
software engineering 2 Chapter notes of software engineering in detail to stu...software engineering 2 Chapter notes of software engineering in detail to stu...
software engineering 2 Chapter notes of software engineering in detail to stu...preetidamakale
 

Similar to Software engineering -core topics (20)

softwareengineeringpractice-141002214920-phpapp02 (1).pdf
softwareengineeringpractice-141002214920-phpapp02 (1).pdfsoftwareengineeringpractice-141002214920-phpapp02 (1).pdf
softwareengineeringpractice-141002214920-phpapp02 (1).pdf
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement Engineering
 
3.pptx
3.pptx3.pptx
3.pptx
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software Engineering
 
The art of project estimation
The art of project estimationThe art of project estimation
The art of project estimation
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
CSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxCSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptx
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
CSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxCSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptx
 
Lecture 1 SE.pptx
Lecture 1 SE.pptxLecture 1 SE.pptx
Lecture 1 SE.pptx
 
Slides chapter 5
Slides chapter 5Slides chapter 5
Slides chapter 5
 
SE chapter 5
SE chapter 5SE chapter 5
SE chapter 5
 
Ch 9-design-engineering
Ch 9-design-engineeringCh 9-design-engineering
Ch 9-design-engineering
 
Principles that Guide Practice
Principles that Guide PracticePrinciples that Guide Practice
Principles that Guide Practice
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
software engineering 2 Chapter notes of software engineering in detail to stu...
software engineering 2 Chapter notes of software engineering in detail to stu...software engineering 2 Chapter notes of software engineering in detail to stu...
software engineering 2 Chapter notes of software engineering in detail to stu...
 
Unified process
Unified processUnified process
Unified process
 

Recently uploaded

Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfSumit Kumar yadav
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptxRajatChauhan518211
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxgindu3009
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...anilsa9823
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsAArockiyaNisha
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCESTERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCEPRINCE C P
 
GFP in rDNA Technology (Biotechnology).pptx
GFP in rDNA Technology (Biotechnology).pptxGFP in rDNA Technology (Biotechnology).pptx
GFP in rDNA Technology (Biotechnology).pptxAleenaTreesaSaji
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisDiwakar Mishra
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)Areesha Ahmad
 
Orientation, design and principles of polyhouse
Orientation, design and principles of polyhouseOrientation, design and principles of polyhouse
Orientation, design and principles of polyhousejana861314
 
SOLUBLE PATTERN RECOGNITION RECEPTORS.pptx
SOLUBLE PATTERN RECOGNITION RECEPTORS.pptxSOLUBLE PATTERN RECOGNITION RECEPTORS.pptx
SOLUBLE PATTERN RECOGNITION RECEPTORS.pptxkessiyaTpeter
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bSérgio Sacani
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Sérgio Sacani
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...ssifa0344
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000Sapana Sha
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPirithiRaju
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSSLeenakshiTyagi
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)PraveenaKalaiselvan1
 

Recently uploaded (20)

Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdf
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based Nanomaterials
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCESTERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
 
GFP in rDNA Technology (Biotechnology).pptx
GFP in rDNA Technology (Biotechnology).pptxGFP in rDNA Technology (Biotechnology).pptx
GFP in rDNA Technology (Biotechnology).pptx
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)
 
Orientation, design and principles of polyhouse
Orientation, design and principles of polyhouseOrientation, design and principles of polyhouse
Orientation, design and principles of polyhouse
 
SOLUBLE PATTERN RECOGNITION RECEPTORS.pptx
SOLUBLE PATTERN RECOGNITION RECEPTORS.pptxSOLUBLE PATTERN RECOGNITION RECEPTORS.pptx
SOLUBLE PATTERN RECOGNITION RECEPTORS.pptx
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSS
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)
 

Software engineering -core topics

  • 1. Chapter 5 Software Engineering Practice - Software engineering practice - Communication practices - Planning practices - Analysis modeling practices - Design modeling practices - Construction practices - Deployment practices (Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)
  • 2. 2 Software Engineering Practice • Consists of a collection of concepts, principles, methods, and tools that a software engineer calls upon on a daily basis • Equips managers to manage software projects and software engineers to build computer programs • Provides necessary technical and management how to’s in getting the job done • Transforms a haphazard unfocused approach into something that is more organized, more effective, and more likely to achieve success
  • 3. 3 The Essence of Problem Solving 1) Understand the problem (communication and analysis) • Who has a stake in the solution to the problem? • What are the unknowns (data, function, behavior)? • Can the problem be compartmentalized? • Can the problem be represented graphically? 1) Plan a solution (planning, modeling and software design) • Have you seen similar problems like this before? • Has a similar problem been solved and is the solution reusable? • Can subproblems be defined and are solutions available for the subproblems? (more on next slide)
  • 4. 4 The Essence of Problem Solving (continued) 3) Carry out the plan (construction; code generation) • Does the solution conform to the plan? Is the source code traceable back to the design? • Is each component of the solution correct? Has the design and code been reviewed? 3) Examine the results for accuracy (testing and quality assurance) • Is it possible to test each component of the solution? • Does the solution produce results that conform to the data, function, and behavior that are required?
  • 5. 5 Seven Core Principles for Software Engineering 1) Remember the reason that the software exists • The software should provide value to its users and satisfy the requirements 1) Keep it simple, stupid (KISS) • All design and implementation should be as simple as possible 1) Maintain the vision of the project • A clear vision is essential to the project’s success 1) Others will consume what you produce • Always specify, design, and implement knowing that someone else will later have to understand and modify what you did 1) Be open to the future • Never design yourself into a corner; build software that can be easily changed and adapted 1) Plan ahead for software reuse • Reuse of software reduces the long-term cost and increases the value of the program and the reusable components 1) Think, then act • Placing clear, complete thought before action will almost always produce better results
  • 6. 6 6 Communication Practices (Requirements Elicitation) Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback
  • 7. 7 Communication Principles 1) Listen to the speaker and concentrate on what is being said 2) Prepare before you meet by researching and understanding the problem 3) Someone should facility the meeting and have an agenda 4) Face-to-face communication is best, but also have a document or presentation to focus the discussion 5) Take notes and document decisions 6) Strive for collaboration and consensus 7) Stay focused on a topic; modularize your discussion 8) If something is unclear, draw a picture 9) Move on to the next topic a) after you agree to something, b) if you cannot agree to something, or c) if a feature or function is unclear and cannot be clarified at the moment 10) Negotiation is not a contest or a game; it works best when both parties win
  • 8. 8 8 Planning Practices (Defining a Road Map) Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback
  • 9. 9 Planning Principles 1) Understand the scope of the project 2) Involve the customer in the planning activity 3) Recognize that planning is iterative; things will change 4) Estimate based only on what you know 5) Consider risk as you define the plan 6) Be realistic on how much can be done each day by each person and how well 7) Adjust granularity as you define the plan 8) Define how you intend to ensure quality 9) Describe how you intend to accommodate change 10) Track the plan frequently and make adjustments as required
  • 10. 10 Barry Boehm’s W5 HH Principle • Why is the system being developed? • What will be done? • When will it be accomplished? • Who is responsible for each function? • Where are they organizationally located? • How will the job be done technically and managerially? • How much of each resource is needed? The answers to these questions lead to a definition of key project characteristics and the resultant project plan
  • 11. 11 11 Modeling Practices (Analysis and Design) Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback
  • 12. 12 Analysis Modeling Principles 1) The information domain of a problem (the data that flows in and out of a system) must be represented and understood 2) The functions that the software performs must be defined 3) The behavior of the software (as a consequence of external events) must be represented 4) The models that depict information, function, and behavior must be partitioned in a manner that uncovers detail in a layered (or hierarchical) fashion 5) The analysis task should move from essential information toward implementation detail
  • 13. 13 Design Modeling Principles 1) The design should be traceable to the analysis model 2) Always consider the software architecture of the system to be built 3) Design of data is as important as design of processing functions 4) Interfaces (both internal and external) must be designed with care 5) User interface design should be tuned to the needs of the end-user and should stress ease of use 6) Component-level design should be functionally independent (high cohesion) 7) Components should be loosely coupled to one another and to the external environment 8) Design representations (models) should be easily understandable 9) The design should be developed iteratively; with each iteration, the designer should strive for greater simplicity External quality factors: those properties that can be readily observed Internal quality factors: those properties that lead to a high-quality design from a technical perspective
  • 14. 14 14 Construction Practices Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback
  • 15. 15 Coding Principles (Preparation before coding) 1) Understand the problem you are trying to solve 2) Understand basic design principles and concepts 3) Pick a programming language that meets the needs of the software to be built and the environment in which it will operate 4) Select a programming environment that provides tools that will make your work easier 5) Create a set of unit tests that will be applied once the component you code is completed
  • 16. 16 Coding Principles (As you begin coding) 1) Constrain your algorithms by following structured programming practices 2) Select data structures that will meet the needs of the design 3) Understand the software architecture and create interfaces that are consistent with it 4) Keep conditional logic as simple as possible 5) Create nested loops in a way that makes them easily testable 6) Select meaningful variable names and follow other local coding standards 7) Write code that is self-documenting 8) Create a visual layout (e.g., indentation and blank lines) that aids code understanding
  • 17. 17 Coding Principles (After completing the first round of code) 1) Conduct a code walkthrough 2) Perform unit tests (black-box and white-box) and correct errors you have uncovered 3) Refactor the code
  • 18. 18 Testing Principles 1) All tests should be traceable to the software requirements 2) Tests should be planned long before testing begins 3) The Pareto principle applies to software testing • 80% of the uncovered errors are in 20% of the code 1) Testing should begin “in the small” and progress toward testing “in the large” • Unit testing --> integration testing --> validation testing --> system testing 1) Exhaustive testing is not possible
  • 19. 19 Test Objectives 1) Testing is a process of executing a program with the intent of finding an error 2) A good test case is one that has a high probability of finding an as- yet undiscovered error 3) A successful test is one that uncovers an as-yet undiscovered error
  • 20. 20 20 Deployment Practices Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback
  • 21. 21 Deployment Principles 1) Customer expectations for the software must be managed • Be careful not to promise too much or to mislead the user 1) A complete delivery package should be assembled and tested 2) A support regime must be established before the software is delivered 3) Appropriate instructional materials must be provided to end users 4) Buggy software should be fixed first, delivered later 