Chapter 5 - Software engineering practice. What you will learn in this chapter? • Concepts and principles of software engineering practice. • Communication practice principles. • Planning practice. • Modeling practice. • Construction practice. • Deployment practice. 6/6/22 1 Ref : Roger S Pressman - 6th Edition
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 1
Chapter 5 - Software engineering practice.What you will learn in this chapter?
• Concepts and principles of software engineering practice.• Communication practice principles.• Planning practice.• Modeling practice.• Construction practice.• Deployment practice.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 2
Practice
• Action rather than ideas.• A thing that is done regularly, a habit or a custom.• Practice means doing an activity or training regularly• so that you can improve your skill, the time you spend doing this.• “Practice makes perfect”
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 3
SOFT WARE ENGINEERING PRACTICE
Practice is a broad array of concepts, principles, methodologies and tools that must be considered as software is planned and developed.
It represents the details- technical considerations and how to s’ that are below the surface of the software process: the things that are required to build high quality software.
Practice is what you do day in and day out as software evolves from idea to reality.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 4
Angular Vision of SW Practice• Practice is a collection of Concepts, principles, methods and tools that a
software engineer calls up on day today basis to build software.
• Practice allows Software managers to manage software projects.
• Practice populates a software process model with the necessary technical and management how to s’ to get the job done.
• Practice transforms a haphazard, unfocussed approach in to some thing that is more organized, more effective and more likely to achieve success.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 5
THE ESSENCE OF SW ENGG PRACTICE
1. Understand the problem(C&A)
2. Plan a solution(M&D)
3. Carry out the plan(code)
4. Examine the result for accuracy(T& QA)
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 6
Understand the problem:• Who are the stake holders?• What are the unknowns?• Can the problem be compartmentalized? Is it possible to represent smaller
problems that may be easier to understand.• Can the problem be represented graphically?
Plan the Solution:• Have you seen similar problems before?• Has a similar problem been solved?• Can problems be defined?• Can you represent a solution in a manner that leads to effective implementation?
Or can a design model be created?
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 7
Carry out the plan:• Does the solution confirm to the plan?• Is each component part of the solution is probably correct?
Examine the result:• Is it possible to test each component part of the solution?• Does a solution produces the result that confirms data, functions, features and
behavior that are required?
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 8
The Seven Core principlesPrinciple is an important underlying law or assumption required in a system of
thought.
1.THE REASON IT ALL EXISTS(To provide value to its customers)
2. KISS(All design should be as simple as possible, but not simpler)No quick & dirty.
3.MAINTAIN THE VISION(Clear vision is essential)
4.WHAT YOU PRODUCE OTHERS WILL CONSUME(Some one else has to understand)
5.BE OPEN TO THE FUTURE(Never design yourself into a corner)
6.PLAN AHEAD FOR REUSE(Long term cost advantage)
7.THINK! (Placing clear, complete thought before action almost always produces better results)
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 9
Communication practice(requirements elicitation)
• Principle 1.Listen & Focus on speaker’s words• P2.Prepare before you communicate.• P3.Some one should facilitate the Activity.• P4. Face to Face communication is the best (“PLAIN QUESTIONS AND
PLAIN ANSWERS MAKE THE SHORTEST ROAD TO MOST PERPLEXITIES” Mark Twain)
• P5.Take notes and Document DECISIONS• P6.Strive for Collaboration.• P7.Stay focused, modularize the discussion• P8.If some thing is unclear draw a picture.• P9.Move on regardless – once you agree to something, move on.• P10. Negotiation is not a contest or game. It works well when both the
parties win
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 10
Planning Practices1.Understand the scope of the project
2.Involve the customer in the planning activity
3.Recognize that planning is Iterative
4.Consider risk as you define the plan
5.Estimate based on what you know.
6.Be realistic
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.
Common sense questions to develop a realistic Project Plan????????
5W2H
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 11
5W2H Questions?• Why is the system being developed.• What will be done.• When will it be accomplished.• Who is responsible for a function.• Where are they organizationally located.• How will the job be done technically or managerially.• How much of each resource is needed.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 12
Design models provide a concrete specification for the construction of software.
• ANALYSIS MODELING PRINCIPLES1.The domain problem must be understood &represented2.Software functionalities must be defined.3.The behavior of the software must be represented.4.Models depicting info, functions & behavior must be
partitioned in a layered architecture.5.The analysis task should move from essential info towards
implementation details. The ‘essence’ of a problem is described without any consideration how solution is implemented.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 13
DESIGN MODELING PRINCIPLES Design model represents characteristics of the software that help developers to
construct effectively.
1. Design should be traceable to Analysis model
2. Always consider the architecture of the system to be built.
3. Design of data is as important as processing function.
4. Interfaces design should be done with care
5. UI to be tuned to the end user needs
6. Component level design should be functionally independent – should be cohesive (should focus on only one function)
7. Loose coupling of Components is recommended
8. Design representations should be easily understood.
9. Iterative design with simplicity to be preferred.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 14
CONSTRUCTION PRACTICE
• The construction activity encompasses a set of coding and testing tasks that lead to operational software that is ready to be delivered to the Customer/ end user.
1.Coding Principles and Concepts. And 2.Testing principles
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 15
Coding Principles and Concepts
I. Preparatory principles.(before you write one line of code, be sure you:
1. Understand the problem to be solved2. Understand the basic design principles & concepts.3. Pick a PL that meets the needs of SW and the environment
of operation.4. Select a Programming environment with suitable tools for
ease of work.5. Create adequate set of unit test cases.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 16
Coding Principles and Concepts
II. Coding Principles: As you begin to write a code, be sure you:
1.Follow structured programming practice.2.Select data structures that should meet the design
requirements.3.Know the SW architecture and create CONSISTENT INTERFACES.4.Use Simple Conditional logic.5.Create easily testable nested loops.6.Follow coding standards and naming conventions.7.Write Self documenting Code8.Create Visual lay out.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 17
Coding Principles and Concepts
III. Validation Principles.After you have completed your first coding pass, be sure you:
1.Do code walk through when appropriate.
2.Perform Unit Tests and correct errors noted.
3.Refactor the code.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 18
Testing Principles.
What are the objectives?Testing is a Process of executing a program with
the intent of finding an error.What is a good test case?The one that has high probability of finding an
as –yet undiscovered error.What is a successful test?That uncovers an as-yet – undiscovered error
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 19
Testing Principles. 1. All tests should be traceable to customer
requirements.2.Plan the tests long before the testing begins.3.The Pareto principle applies to SW testing.4.Testing should begin “in the Small” and
progress toward testing ‘in the large”.5.Exhaustve testing is not possible. All path
combinations is difficult, but adequate program logic should be covered
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 20
DEPLOYMENT
Deployment activity consists of three action cycles:
1. Delivery: This provides the customer/ end user with an operational software increment that provides usable functions and features.
2. Support cycle: Gives documentation and human assistance for all features& functions introduced during all deployment cycles till date.
3. Feedback cycle: Here the Software team gets important guidance that results in modifications to the functions, features and approach taken for the next increment.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 21
DEPLOYMENT
1. Manage the Customer expectations for the Software.(no conflicting messages) Most Important Activity.
2. Assemble and Test the complete Delivery package.3. Establish a support regime before the software is
delivered.4. Provide appropriate instructional material to end
user.5. Buggy software should be fixed first and delivered
later.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 22
SUMMARY.1.SW Engineering Practice comprises Concepts,
Principles, methods and tools & their application through out the SW process.
2. Technical and Management essentials.
3. Customer communication (Reduce noise and improve bandwidth)
4.Planning principle should generate the best map for the journey.
5.Solid model that provides technical guidance to implementers.
6.Construction incorporates standard coding &test results.
7.Evolutionary SW development, deployment, Delivery,Support and Feedback effect(lessons learnt) are the key principles of Software Engineering practice.
Apr 9, 2023 Ref : Roger S Pressman - 6th Edition 23