SlideShare a Scribd company logo
1 of 15
Nadar saraswathi college of arts and
Science
Software Engineering
Software Engineering Practice
Submitted by,
S.Vijayalakshmi.
SOFTWARE ENGINEERING PRACTICE
 In this part of “software engineering; a practitioner’s approach”
you’ll learn about the principles, concepts, and methods that comprise
software engineering practice.
 Practice is a broad array of concepts, principles, methods, and tools
that you must consider as software planned and developed. It
represents the details-the technical considerations and how to—that are
below the surface of the software process: the things that you’ll need
to actually build high-quality computer software.
 Practice encompasses the technical activities that produce all work
products that are defined by the software process model that has been
chosen.
The essence Practice
 In a classic book, How to Solve It, written before modern computes
existed, gorge Polya outlined the essence of problem solving, and
consequently, the essence of software engineering practice:
1. Understand the problem (communication and analysis).
2. Plan a solution (modeling and software design).
3. Carry out the plan (code generation).
4. Examine the result for accuracy (testing and quality assurance).
Understand the problem:
 Who has a stake in the solution to the problem? That is, who are the
stakeholders?
 What are the unknowns? What data, functions, features, and behavior
are required to properly solve the problem?
 Can the problem be compartmentalized? Is it possible to represent
smaller problems that may be easier to understand?
 Can the problem be represented graphically? Can an analysis model be
created?
Plan the solution:
 Have you seen similar problems before? Are there patterns that are
recognizable in a potential solution? Is there existing software that
implements the data, functions, features, and behavior that are
required?
 Has a similar problem been solved? If so, are solutions readily
apparent for the sub-problems?
 Can you represent a solution in a manner that leads to effective
implementation? Can a design model be created?
Carry out the plan:
 Does the solution confirm to the plan? IS source code traceable to the
design model?
 Is each component part of the solution probably correct? Have the
design and code been received, or better, has correctness proof been
applied to the algorithm?
Examine the result:
 Is it possible to test each component part of the solution? Has a
reasonable testing strategy been implemented?
 Does the solution produce results that confirm to the data? Functions,
features and behavior that are required? Has the software been
validated against all stakeholder requirements?
CORE PRINCIPLES
The Reason It All Exists
 A software system exists for one reason: to value to its users. All
decisions should be made with this in mind. Before specifying a
system requirement, before noting a piece of system functionality,
before determining the hardware platforms or development processes,
ask yourself questions such as: Does this add real value to the system?
If the answer is no, don’t do it. All other principles support this one.
KISS (Keep It Simple, Stupid)
 Software design is not a haphazard process. There are many factors to
consider in any design effort. All design should be as simple as
possible, but no simpler. This facilities having a more easily
understood, and easily maintained system. This is not to say that
features, even internal features, should be discarded in the name of
simplicity. Indeed, the more elegant designs are usually the simple
ones. Simple also does not mean “quick and dirty.” In fact, it often, it
often takes a lot of thought and works over multiple iterations to
simplify.
Maintain the Vision
 A clear vision is essential to the success of a software project. Without
one, a project almost unfailingly ends up being “of two [or more]
minds” about itself. Without conceptual integrity, a system threatens to
become a patchwork of incompatible designs, held together by the
wrong kind of screws…
what you produce, others will consume
 In some way or other, someone else will use, maintain, document, or
otherwise depend on being able to understand your system. So always
specify, design and implement knowing someone else will have to
understand what you are doing. The audience for any product of
software development is potentially large. Specify with an eye to the
users. Design, keeping the implementers in mind.. Someone may have
to debug the code you writ, and that makes them a user of your code.
Making their job easier adds value to the system.
Think!
 Placing clear, complete thought before action almost always produces
better results. When you think about something, you are more likely to
do it right. You also gain knowledge about how to do it right again. If
you do think about something and still do it wrong, it becomes
valuable experience. A side effect of thinking is learning to recognize
when you don’t know something, at which point you can research the
answer. When clear thought has gone into a system, value comes out.
Applying the first Six Principles requires intense thought, for which
the potential rewards are enormous.
COMMUNICATION PRACTICES
 Before customer requirements can be analyzed, modeled, or specified
they must be gathered through a communication (also called
requirements elicitation) activity. A customer has a problem that may
be amenable to a computer- based solution. A developer responds to
the customer’s request for help. Communication has begun. But the
road from communication to understanding is often full of potholes
 Effective communication (among technical peers, with the customer
and other stakeholders, and with project managers) is among the most
challenging activities that confront software engineer. In this context,
we discuss communication principles that apply equally to all forms of
communication that occur within a software project.
Prepare before you communicate
 Spend the time to understand the problem before you meet with others.
If necessary, do some research to understand business domain jargon.
If you have responsibility for conducting a meeting, prepare an agenda
in advance of the meeting.
Someone should facilitate the activity.
 Every communication meeting should have a leader (facilitator) to
keep the conversation moving in a productive direction: (2) to mediate
any conflict that does occur; (3) to ensure that other principles are
followed.
Face–to-face communication is best.
 But it usually works better when some other representation of the
relevant information is present. For example, a participant may create
a drawing or a “strawman” document that serves as a focus for
discussion.
Take notes and documentation decisions:
 Things have a way of falling into the cracks. Someone
participating in the communication should serves to build trust
among team members and creates a common goal for the team.
Stay focused, modularize your discussion.
The more the people involved in any communication, the more likely
that discussion will bounce from one topic to the next. The facilitator
should keep the conversation modular, leaving one topic to the next.
The facilitator should keep the conversation modular, leaving one topic
only after it has been resolved
If something is unclear, draw a picture.
Verbal communication goes only so far. A sketch or drawing can often
provide clarity when words fail to do the job.
Negotiation is not a contest or a game. It works best when both parties
win.
There are many instances in which the software engineer and the
customer must negotiate functions and features, priorities, and delivery
dates. If the team has collaborated well, all parties have a common
goal. Therefore, negotiation will demand compromise from all parties.
PLANNING PRACTICES
 The communication activity helps a software team to define its
overall goals and objectives (subject, of course, to change as time
passes). However, understanding these goals and objectives is not
the same as defining a plan for getting there. The planning
activity encompasses a set of management and technical practices
that enable the software tam to define a road map as it travels
towards its strategic goal and technical objectives.
 Here are many different planning philosophies. Some people are
“minimalists, “arguing that change often obviates the need for a
detailed plan. Others are “traditionalists,” arguing that the plan
provides an effective road map, and the more detail it has, the
less likely the team will become lost. Still others are “agilists,”
arguing that quick “planning game” may be necessary, but that
the road map will emerge as “real work” on the software begins.
Understand the scope of the project
 It’s impossible to use a road map if you don’t know
where you’re going. Scope provides the software.
Involve the customer in planning activity
 The customer defines priorities and establishes the
project constraints.
Recognize that planning is iterative.
As work begins, it is very likely that things will
change. As a consequence, the plan must be adjusted
to accommodate these changes. In addition, iterative
and incremental process models dictate re-planning
based on feedback received from users.
Estimate based on what you know.
 The intent of estimation is to provide an indication of effort, cost, and task
duration, based on the team’s current understanding of the work to be done.
Consider risk as you define the plan
 If the team has defined risks that have high impact and high
probability, contingency planning is necessary.
Be realistic. People don’t work 100 percent every
day.
 Noise always enters into any human communication. Omission and
ambiguity are facts of life. Change will occur. Even the best software
engineers make mistakes. These and other realities should be
considered as a project plan is established.
Adjust granularity as you define the plan.
 Granularity refers to the level of detail that is introduced as a project
plan is developed. A “fine granularity” plan provides significant work
detail that is planned over relatively short time increments.
Define how you intend to ensure quality.
 The plan should identify how the software team intends to ensure
quality. If formal technical reviews are to be conducted, they should be
scheduled.
Describe how you intend to accommodate change.
 Even the best planning can be obviated by uncontrolled change. The
software team should identify how changes are to be accommodated as
software engineering work proceeds.
Track the plan frequently and make adjustments
are required.
 Software project falls behind schedule one day at a time. Therefore, it
makes sense to track progress on a daily basis, looking for a problem
areas and situation in which scheduled work does not confirm to actual
work conducted. When slippage is encountered, the plan is adjusted
accordingly.
Thank you

More Related Content

What's hot

Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-softwareAlenaDion
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineeringSHREEHARI WADAWADAGI
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineeringRupesh Vaishnav
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSweta Kumari Barnwal
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system developmentcymark09
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering processRaheel Aslam
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introductionDr. Loganathan R
 
Software Engineering 2 lecture slide
Software Engineering 2 lecture slideSoftware Engineering 2 lecture slide
Software Engineering 2 lecture slideAdil Mehmoood
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering noteNeelamani Samal
 
Software engineering
Software engineeringSoftware engineering
Software engineeringsweetysweety8
 

What's hot (20)

An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Software Processes
Software ProcessesSoftware Processes
Software Processes
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introduction
 
Software Engineering 2 lecture slide
Software Engineering 2 lecture slideSoftware Engineering 2 lecture slide
Software Engineering 2 lecture slide
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Design - SDLC Model
Software Design - SDLC ModelSoftware Design - SDLC Model
Software Design - SDLC Model
 
Sdlc 4
Sdlc 4Sdlc 4
Sdlc 4
 

Similar to Software engineering

Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)FarjanaAhmed3
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersSarah Dutkiewicz
 
Management Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxManagement Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxcroysierkathey
 
How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...christiemarie4
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for DevelopersSarah Dutkiewicz
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project managementjhudyne
 
Five Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme careerFive Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme careerRock Interview
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software EngineeringMuhammadTalha436
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cardsTudor Girba
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandDavid O'Dowd
 
Create free website
Create free websiteCreate free website
Create free websitefullerhqim
 
Part C Developing Your Design SolutionThe Production Cycle.docx
Part C Developing Your Design SolutionThe Production Cycle.docxPart C Developing Your Design SolutionThe Production Cycle.docx
Part C Developing Your Design SolutionThe Production Cycle.docxsmile790243
 
Lecture2 2
Lecture2 2Lecture2 2
Lecture2 2soloeng
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XPSemen Arslan
 

Similar to Software engineering (20)

Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for Developers
 
Management Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxManagement Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docx
 
How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...How Custom Software Development is Transforming the Traditional Business Prac...
How Custom Software Development is Transforming the Traditional Business Prac...
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
How To Plan a Software Project
How To Plan a Software ProjectHow To Plan a Software Project
How To Plan a Software Project
 
Learning Curve
Learning CurveLearning Curve
Learning Curve
 
The UX Toolbelt for Developers
The UX Toolbelt for DevelopersThe UX Toolbelt for Developers
The UX Toolbelt for Developers
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project management
 
Five Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme careerFive Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme career
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software Engineering
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
 
Ba notes
Ba notesBa notes
Ba notes
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Software developer
Software developerSoftware developer
Software developer
 
3.pptx
3.pptx3.pptx
3.pptx
 
Create free website
Create free websiteCreate free website
Create free website
 
Part C Developing Your Design SolutionThe Production Cycle.docx
Part C Developing Your Design SolutionThe Production Cycle.docxPart C Developing Your Design SolutionThe Production Cycle.docx
Part C Developing Your Design SolutionThe Production Cycle.docx
 
Lecture2 2
Lecture2 2Lecture2 2
Lecture2 2
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 

More from sweetysweety8

Artificial neural network
Artificial neural networkArtificial neural network
Artificial neural networksweetysweety8
 
Software engineering
Software engineeringSoftware engineering
Software engineeringsweetysweety8
 
WEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSISWEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSISsweetysweety8
 
Software engineering
Software engineeringSoftware engineering
Software engineeringsweetysweety8
 
WEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSISWEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSISsweetysweety8
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management Systemsweetysweety8
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management Systemsweetysweety8
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management Systemsweetysweety8
 

More from sweetysweety8 (20)

Artificial neural network
Artificial neural networkArtificial neural network
Artificial neural network
 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
WEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSISWEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSIS
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
 
WEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSISWEB PROGRAMMING ANALYSIS
WEB PROGRAMMING ANALYSIS
 
WEB PROGRAMMING
WEB PROGRAMMINGWEB PROGRAMMING
WEB PROGRAMMING
 
Bigdata
BigdataBigdata
Bigdata
 
BIG DATA ANALYTICS
BIG DATA ANALYTICSBIG DATA ANALYTICS
BIG DATA ANALYTICS
 
BIG DATA ANALYTICS
BIG DATA ANALYTICSBIG DATA ANALYTICS
BIG DATA ANALYTICS
 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
 
WEB PROGRAMMING
WEB PROGRAMMINGWEB PROGRAMMING
WEB PROGRAMMING
 
BIG DATA ANALYTICS
BIG DATA ANALYTICSBIG DATA ANALYTICS
BIG DATA ANALYTICS
 
Data mining
Data miningData mining
Data mining
 
Operating System
Operating SystemOperating System
Operating System
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management System
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management System
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management System
 
Operating system
Operating systemOperating system
Operating system
 

Recently uploaded

If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaKayode Fayemi
 
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verifiedSector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verifiedDelhi Call girls
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfSkillCertProExams
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalFabian de Rijk
 
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...Pooja Nehwal
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatmentnswingard
 
Causes of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCauses of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCamilleBoulbin1
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxraffaeleoman
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoKayode Fayemi
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfSenaatti-kiinteistöt
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Baileyhlharris
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...amilabibi1
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIINhPhngng3
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar TrainingKylaCullinane
 
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Delhi Call girls
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lodhisaajjda
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Vipesco
 

Recently uploaded (18)

If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verifiedSector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
Causes of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCauses of poverty in France presentation.pptx
Causes of poverty in France presentation.pptx
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 

Software engineering

  • 1. Nadar saraswathi college of arts and Science Software Engineering Software Engineering Practice Submitted by, S.Vijayalakshmi.
  • 2. SOFTWARE ENGINEERING PRACTICE  In this part of “software engineering; a practitioner’s approach” you’ll learn about the principles, concepts, and methods that comprise software engineering practice.  Practice is a broad array of concepts, principles, methods, and tools that you must consider as software planned and developed. It represents the details-the technical considerations and how to—that are below the surface of the software process: the things that you’ll need to actually build high-quality computer software.  Practice encompasses the technical activities that produce all work products that are defined by the software process model that has been chosen.
  • 3. The essence Practice  In a classic book, How to Solve It, written before modern computes existed, gorge Polya outlined the essence of problem solving, and consequently, the essence of software engineering practice: 1. Understand the problem (communication and analysis). 2. Plan a solution (modeling and software design). 3. Carry out the plan (code generation). 4. Examine the result for accuracy (testing and quality assurance). Understand the problem:  Who has a stake in the solution to the problem? That is, who are the stakeholders?  What are the unknowns? What data, functions, features, and behavior are required to properly solve the problem?  Can the problem be compartmentalized? Is it possible to represent smaller problems that may be easier to understand?
  • 4.  Can the problem be represented graphically? Can an analysis model be created? Plan the solution:  Have you seen similar problems before? Are there patterns that are recognizable in a potential solution? Is there existing software that implements the data, functions, features, and behavior that are required?  Has a similar problem been solved? If so, are solutions readily apparent for the sub-problems?  Can you represent a solution in a manner that leads to effective implementation? Can a design model be created? Carry out the plan:  Does the solution confirm to the plan? IS source code traceable to the design model?  Is each component part of the solution probably correct? Have the design and code been received, or better, has correctness proof been applied to the algorithm?
  • 5. Examine the result:  Is it possible to test each component part of the solution? Has a reasonable testing strategy been implemented?  Does the solution produce results that confirm to the data? Functions, features and behavior that are required? Has the software been validated against all stakeholder requirements? CORE PRINCIPLES The Reason It All Exists  A software system exists for one reason: to value to its users. All decisions should be made with this in mind. Before specifying a system requirement, before noting a piece of system functionality, before determining the hardware platforms or development processes, ask yourself questions such as: Does this add real value to the system? If the answer is no, don’t do it. All other principles support this one.
  • 6. KISS (Keep It Simple, Stupid)  Software design is not a haphazard process. There are many factors to consider in any design effort. All design should be as simple as possible, but no simpler. This facilities having a more easily understood, and easily maintained system. This is not to say that features, even internal features, should be discarded in the name of simplicity. Indeed, the more elegant designs are usually the simple ones. Simple also does not mean “quick and dirty.” In fact, it often, it often takes a lot of thought and works over multiple iterations to simplify. Maintain the Vision  A clear vision is essential to the success of a software project. Without one, a project almost unfailingly ends up being “of two [or more] minds” about itself. Without conceptual integrity, a system threatens to become a patchwork of incompatible designs, held together by the wrong kind of screws…
  • 7. what you produce, others will consume  In some way or other, someone else will use, maintain, document, or otherwise depend on being able to understand your system. So always specify, design and implement knowing someone else will have to understand what you are doing. The audience for any product of software development is potentially large. Specify with an eye to the users. Design, keeping the implementers in mind.. Someone may have to debug the code you writ, and that makes them a user of your code. Making their job easier adds value to the system. Think!  Placing clear, complete thought before action almost always produces better results. When you think about something, you are more likely to do it right. You also gain knowledge about how to do it right again. If you do think about something and still do it wrong, it becomes valuable experience. A side effect of thinking is learning to recognize when you don’t know something, at which point you can research the answer. When clear thought has gone into a system, value comes out. Applying the first Six Principles requires intense thought, for which the potential rewards are enormous.
  • 8. COMMUNICATION PRACTICES  Before customer requirements can be analyzed, modeled, or specified they must be gathered through a communication (also called requirements elicitation) activity. A customer has a problem that may be amenable to a computer- based solution. A developer responds to the customer’s request for help. Communication has begun. But the road from communication to understanding is often full of potholes  Effective communication (among technical peers, with the customer and other stakeholders, and with project managers) is among the most challenging activities that confront software engineer. In this context, we discuss communication principles that apply equally to all forms of communication that occur within a software project. Prepare before you communicate  Spend the time to understand the problem before you meet with others. If necessary, do some research to understand business domain jargon. If you have responsibility for conducting a meeting, prepare an agenda in advance of the meeting.
  • 9. Someone should facilitate the activity.  Every communication meeting should have a leader (facilitator) to keep the conversation moving in a productive direction: (2) to mediate any conflict that does occur; (3) to ensure that other principles are followed. Face–to-face communication is best.  But it usually works better when some other representation of the relevant information is present. For example, a participant may create a drawing or a “strawman” document that serves as a focus for discussion. Take notes and documentation decisions:  Things have a way of falling into the cracks. Someone participating in the communication should serves to build trust among team members and creates a common goal for the team.
  • 10. Stay focused, modularize your discussion. The more the people involved in any communication, the more likely that discussion will bounce from one topic to the next. The facilitator should keep the conversation modular, leaving one topic to the next. The facilitator should keep the conversation modular, leaving one topic only after it has been resolved If something is unclear, draw a picture. Verbal communication goes only so far. A sketch or drawing can often provide clarity when words fail to do the job. Negotiation is not a contest or a game. It works best when both parties win. There are many instances in which the software engineer and the customer must negotiate functions and features, priorities, and delivery dates. If the team has collaborated well, all parties have a common goal. Therefore, negotiation will demand compromise from all parties.
  • 11. PLANNING PRACTICES  The communication activity helps a software team to define its overall goals and objectives (subject, of course, to change as time passes). However, understanding these goals and objectives is not the same as defining a plan for getting there. The planning activity encompasses a set of management and technical practices that enable the software tam to define a road map as it travels towards its strategic goal and technical objectives.  Here are many different planning philosophies. Some people are “minimalists, “arguing that change often obviates the need for a detailed plan. Others are “traditionalists,” arguing that the plan provides an effective road map, and the more detail it has, the less likely the team will become lost. Still others are “agilists,” arguing that quick “planning game” may be necessary, but that the road map will emerge as “real work” on the software begins.
  • 12. Understand the scope of the project  It’s impossible to use a road map if you don’t know where you’re going. Scope provides the software. Involve the customer in planning activity  The customer defines priorities and establishes the project constraints. Recognize that planning is iterative. As work begins, it is very likely that things will change. As a consequence, the plan must be adjusted to accommodate these changes. In addition, iterative and incremental process models dictate re-planning based on feedback received from users. Estimate based on what you know.  The intent of estimation is to provide an indication of effort, cost, and task duration, based on the team’s current understanding of the work to be done.
  • 13. Consider risk as you define the plan  If the team has defined risks that have high impact and high probability, contingency planning is necessary. Be realistic. People don’t work 100 percent every day.  Noise always enters into any human communication. Omission and ambiguity are facts of life. Change will occur. Even the best software engineers make mistakes. These and other realities should be considered as a project plan is established. Adjust granularity as you define the plan.  Granularity refers to the level of detail that is introduced as a project plan is developed. A “fine granularity” plan provides significant work detail that is planned over relatively short time increments.
  • 14. Define how you intend to ensure quality.  The plan should identify how the software team intends to ensure quality. If formal technical reviews are to be conducted, they should be scheduled. Describe how you intend to accommodate change.  Even the best planning can be obviated by uncontrolled change. The software team should identify how changes are to be accommodated as software engineering work proceeds. Track the plan frequently and make adjustments are required.  Software project falls behind schedule one day at a time. Therefore, it makes sense to track progress on a daily basis, looking for a problem areas and situation in which scheduled work does not confirm to actual work conducted. When slippage is encountered, the plan is adjusted accordingly.