1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Principles That Guide Practice Unit II
Software Process Models
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Chapter 2 The Software Process
Chapter 4 Principles that Guide Practice
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
Chapter 5 Software Engineering Practice
An Agile View of Process
Software engineering Process models Pavel Agejkin.
Chapter 4 Requirements Engineering
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Chapter 2 The process Process, Methods, and Tools
Chapter 4 Agile Development
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (McGraw-Hill 2008) by Roger Pressman and David Lowe, copyright
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Design Issues Practice: A generic View Design Principles.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Chapter 5 CS 8532: Advanced Software Engineering Dr. Hisham Haddad Class will start momentarily.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Chapter 7 실무가이드 원칙 Principles that Guide Practice
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
1. copyright © 1996, 2001, Software Engineering a “quality” focus process model methods tools.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
The Software Development Process
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Principles That Guide Practice
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
CS 281 Intro to Software Engineering Lecture 02 Software Engineering (1)
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
CMPS 435 Fall 08 These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
CS 281 Intro to Software Engineering Lecture 08b Principles that Guide Practice (1)
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Engineering Principles I (Spring 2017)
Lecture 3 Prescriptive Process Models
Principles that Guide Practice
Chapter 2 Software Engineering
Software Quality Engineering
Chapter 4 CS435: Introduction to Software Engineering
Chapter 2 Software Engineering
Software engineering practices And Software requirements Engineering
Software Process Models
For University Use Only
Chapter 4 Principles that Guide Practice
Software Engineering Practice: A Generic View
Chapter 7 Principles that Guide Practice
REQUIREMENT ENGINEERING
Chapter 4 Principles that Guide Practice
Chapter 4 Principles that Guide Practice
Chapter 4 Principles that Guide Practice
Software Requirements Engineering
Chapter 2 Software Engineering
Presentation transcript:

1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

2 What is “Practice”?  Practice consists of the  concepts  principles  methods  tools that must be considered as software is planned and developed.  It represents the details—the how-to’s—of the software process.  Practice consists of the  concepts  principles  methods  tools that must be considered as software is planned and developed.  It represents the details—the how-to’s—of the software process.

3 The Essence of Practice  George Polya, in a book written in 1945 (!), describes the essence of software engineering practice …  Understand the problem (communication and analysis).  Plan a solution (modeling and software design).  Carry out the plan (code generation).  Examine the result for accuracy (testing and quality assurance).  At its core, good practice is common-sense problem solving  George Polya, in a book written in 1945 (!), describes the essence of software engineering practice …  Understand the problem (communication and analysis).  Plan a solution (modeling and software design).  Carry out the plan (code generation).  Examine the result for accuracy (testing and quality assurance).  At its core, good practice is common-sense problem solving

4 Core Software Engineering Principles 1.Provide Value to Your Users 2.KIS (Keep It Simple) 3.Maintain the Vision 4.What You Produce, Others Will Consume 5.Be Open to the Future 6.Plan Ahead for Reuse 7.Think before You Do 1.Provide Value to Your Users 2.KIS (Keep It Simple) 3.Maintain the Vision 4.What You Produce, Others Will Consume 5.Be Open to the Future 6.Plan Ahead for Reuse 7.Think before You Do

5 Software Engineering Practices  Consider the generic process framework  Communication  Planning  Modeling  Analysis Modeling  Design Modeling  Construction  Coding  Testing  Deployment  Consider the generic process framework  Communication  Planning  Modeling  Analysis Modeling  Design Modeling  Construction  Coding  Testing  Deployment

6 Communication Practices  Principles 1.Listen effectively 2.Prepare before you communicate 3.Someone should facilitate the activity 4.Face-to-face communication is best 5.Take notes and document decisions 6.Strive for collaboration 7.Stay focused, modularize your discussion 8.If something is unclear, draw a picture 9.Know when to move on 10.Negotiation works best when both parties win.  Principles 1.Listen effectively 2.Prepare before you communicate 3.Someone should facilitate the activity 4.Face-to-face communication is best 5.Take notes and document decisions 6.Strive for collaboration 7.Stay focused, modularize your discussion 8.If something is unclear, draw a picture 9.Know when to move on 10.Negotiation works best when both parties win.

7 Planning Practices  Principles 1.Understand the project scope 2.Involve the customer in planning 3.Recognize that planning is iterative 4.Estimate based on what you know 5.Consider risk as you define the plan 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 changes 10.Track the plan frequently and make necessary adjustments  Principles 1.Understand the project scope 2.Involve the customer in planning 3.Recognize that planning is iterative 4.Estimate based on what you know 5.Consider risk as you define the plan 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 changes 10.Track the plan frequently and make necessary adjustments

8 Planning Practices  Bohem’s W5HH Organizing Principle. Answers to the following questions lead to the project plan:  Why is the system begin developed?  What will be done?  When will it be accomplished?  Who is responsible?  Where are they located (organizationally)?  How will the job be done technically and managerially?  How much of each resource is needed?  Bohem’s W5HH Organizing Principle. Answers to the following questions lead to the project plan:  Why is the system begin developed?  What will be done?  When will it be accomplished?  Who is responsible?  Where are they located (organizationally)?  How will the job be done technically and managerially?  How much of each resource is needed?

9 Modeling Practices  Analysis modeling principles 1.Represent the information domain 2.Represent software functions 3.Represent software behavior 4.Partition these representations 5.Move from essence toward implementation  Analysis modeling principles 1.Represent the information domain 2.Represent software functions 3.Represent software behavior 4.Partition these representations 5.Move from essence toward implementation

10 Modeling Practices  Design Modeling Principles 1.Design must be traceable to the analysis model 2.Always consider architecture 3.Focus on the design of data 4.Interfaces (both user and internal) must be designed 5.User interface should consider the user first 6.Components should exhibit functional independence 7.Components should be loosely coupled 8.Design representations should be easily understood 9.The design model should be developed iteratively  Design Modeling Principles 1.Design must be traceable to the analysis model 2.Always consider architecture 3.Focus on the design of data 4.Interfaces (both user and internal) must be designed 5.User interface should consider the user first 6.Components should exhibit functional independence 7.Components should be loosely coupled 8.Design representations should be easily understood 9.The design model should be developed iteratively

11 Modeling Practices  Agile Modeling Principles [Ambler 2002] 1.The primary goal is to create software, not build models 2.Don’t create more models than you need 3.Produce the simplest model that will describe the problem 4.Build models that are easy to change 5.Be able to state an explicit purpose for each model 6.Adapt the models you develop to the system at hand 7.Build useful models, not perfect ones 8.Focus on the what the model communicates, not its syntax 9.If you are uncomfortable with a model, something’s probably wrong 10.Get feedback as soon as you can  Agile Modeling Principles [Ambler 2002] 1.The primary goal is to create software, not build models 2.Don’t create more models than you need 3.Produce the simplest model that will describe the problem 4.Build models that are easy to change 5.Be able to state an explicit purpose for each model 6.Adapt the models you develop to the system at hand 7.Build useful models, not perfect ones 8.Focus on the what the model communicates, not its syntax 9.If you are uncomfortable with a model, something’s probably wrong 10.Get feedback as soon as you can

12 Construction Practices  Coding Principles  Preparation. Before you write one line of code, be sure you: 1.Understand of the problem you’re trying to solve 2.Understand basic design principles and concepts. 3.Pick an appropriate programming language. 4.Select an appropriate programming environment and tools. 5.Create unit tests for each component you plan to create.  Coding Principles  Preparation. Before you write one line of code, be sure you: 1.Understand of the problem you’re trying to solve 2.Understand basic design principles and concepts. 3.Pick an appropriate programming language. 4.Select an appropriate programming environment and tools. 5.Create unit tests for each component you plan to create.

13 Construction Practices  Coding Principles  Coding. As you begin writing code, be sure you: 1.Follow structured programming [BOH00] practice. 2.Select data structures that will meet the needs of the design. 3.Create interfaces consistent with the software architecture. 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 that aids understanding.  Coding Principles  Coding. As you begin writing code, be sure you: 1.Follow structured programming [BOH00] practice. 2.Select data structures that will meet the needs of the design. 3.Create interfaces consistent with the software architecture. 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 that aids understanding.

14 Construction Practices  Coding Principles  Validation. After you’ve completed the first pass, be sure you: 1.Conduct a code walkthrough when appropriate. 2.Perform unit tests and correct errors you’ve uncovered. 3.Refactor the code.  Coding Principles  Validation. After you’ve completed the first pass, be sure you: 1.Conduct a code walkthrough when appropriate. 2.Perform unit tests and correct errors you’ve uncovered. 3.Refactor the code.

15 Construction Practices  Testing Principles 1.All tests should be traceable to requirements 2.Tests should be planned 3.The Pareto Principle applies to testing 4.Testing begins “in the small” and moves toward “in the large” 5.Exhaustive testing is not possible  Note: A successful test is one that uncovers an as-yet-undiscovered error.  Testing Principles 1.All tests should be traceable to requirements 2.Tests should be planned 3.The Pareto Principle applies to testing 4.Testing begins “in the small” and moves toward “in the large” 5.Exhaustive testing is not possible  Note: A successful test is one that uncovers an as-yet-undiscovered error.

16 Deployment Practices  Principles 1.Manage customer expectations for each increment 2.A complete delivery package should be assembled and tested 3.A support regime should be established 4.Instructional materials must be provided to end- users 5.Buggy software should be fixed first, delivered later  Principles 1.Manage customer expectations for each increment 2.A complete delivery package should be assembled and tested 3.A support regime should be established 4.Instructional materials must be provided to end- users 5.Buggy software should be fixed first, delivered later