1 / 15

Software Engineering – Practice: A Generic View

Software Engineering – Practice: A Generic View. INTRODUCTION Practice is the collection of concepts , principles, methods, and tools that a software engineer calls upon a daily basis. The Essence of Practice Understand the problem (Communication and analysis)

shawn
Télécharger la présentation

Software Engineering – Practice: A Generic View

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering – Practice: A Generic View INTRODUCTION Practice is the collection of concepts , principles, methods, and tools that a software engineer calls upon a daily basis. The Essence of 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)

  2. Software Engineering – Practice: A Generic View UNDERSTANDING THE PROBLEM Who has a stake in the solution to the problem? What are the unknowns? Can the problems be compartmentalized? Can the problem be represented graphically?

  3. Software Engineering – Practice: A Generic View PLAN THE SOLUTION Have you seen similar problems before? Has a similar problem been solved? Can subproblems be defined? Can you represent a solution in a manner that leads to an effective implementation?

  4. Software Engineering – Practice: A Generic View CARRY OUT THE PLAN Does the solution conform? Is each component part of the solution probably correct?

  5. Software Engineering – Practice: A Generic View EXAMINE THE RESULT Is it possible to test each component part of the solution? Does the solution produce results that conform to the data, function, features, and behavior that are required?

  6. Software Engineering – Practice: A Generic View CORE PRINCIPLES The reason it all exists. Provide value to the user. KISS (Keep It Simple, Stupid!) Maintain the vision. What you rpoduce, someone else will have to consume. (implement knowing somone else will have to understand what you are doing) Be open to the future Plan ahead for reuse Think!

  7. Software Engineering – Practice: A Generic View COMMUNICATION PRACTICES Listen Prepare before you communicate Someone should facilitate the activity Face to Face communication is best Take notes and document decisions Strive for collaborations Stay focused If something is unclear, draw a picture Once you agree, move on. If you can’t agree, move on. Negotiation must be win win.

  8. Software Engineering – Practice: A Generic View PLANNING PRACTICE Understand the scope Involve the customer in planning Recognize that planning is iterative Estimate based on what you know Consider the risk Be realistic. Define how you intend to ensure quality Describe how you intend to accommodate change.

  9. Software Engineering – Practice: A Generic View MODELING PRACTICE The domain must be understood Functions of the software must be defined Behavior of software must be represented The models that depict information, function, and behavior must be partitioned in a manner that uncovers detail in a layered fashion. Analysis task should move from essential information toward implementation detail.

  10. Software Engineering – Practice: A Generic View MODELING PRACTICE Design should be traceable. Consider the architecture of the system to be built. Design of data is as important as processing functions. Interfaces must be designed with User interfaces should be tuned to needs of the end-user. Component level design should be functionally independent – Single mindedness Components should be loosely coupled Design representations should be easily understandable – contradicts formal mathematical Design is iterative

  11. Software Engineering – Practice: A Generic View CODING PRINCIPLES PREPARATION Understand the problem Understand basic design principles and concepts Pick a programming language that meets the needs of the software being built Select a programming environment that makes you work easier Create sets of unit tests

  12. Software Engineering – Practice: A Generic View CODING PRINCIPLES CODING Select data structure that meet the needs of design Keep conditional logic as simple as possible Use meaningful variable names Follow local coding standards Write code that is self-documenting, Create a visual layout, i.e. indenting, better have a tool do it for you

  13. Software Engineering – Practice: A Generic View CODING PRINCIPLES VALIDATION Conduct a code walkthrough when appropriate Perform unit tests, correct errors you uncovered Refactor code

  14. Software Engineering – Practice: A Generic View TESTING PRINCIPLES Testing is a process of executing a program with the intent of finding an error A good test case is one that has a high probability of finding as-yet undiscovered error A successful test case is one that uncovers an as-yet undiscovered error. PRINCIPLES All tests should be traceable to customer requirements Test should be planned long before testing begins 80% of all errors uncovered during testing is traceable to 20 percent of all program components Testing should begin “in the small” and progress toward testing “in the large” Exhaustive testing is not possible.

  15. Software Engineering – Practice: A Generic View DEPLOYMENT PRINCIPLES Customer expectations for the software must be managed A complete delivery package should be assembled and tested. A support regime must be established before the software is delivered Appropriate instructional material must be provided to end-users. Buggy software should be fixed first, delivered later.

More Related