1 / 11

Tools for Efficient Implementation

Tools for Efficient Implementation. Tools for efficient implementation: Design environments Configuration management Good coding habits--PSP. Design Environments. Design Environment chosen should match process goals Example: GUI design

marvel
Download Presentation

Tools for Efficient Implementation

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. Tools for Efficient Implementation • Tools for efficient implementation: • Design environments • Configuration management • Good coding habits--PSP

  2. Design Environments Design Environment chosen should match process goals Example: GUI design Eclipse—code: requires programmer to understand details of the GUI design can produce clean, understandable code can modify others’ code easily NetBeans—code + “form”: provides automatic support for a “quick and dirty” design to be generated good for quick implementation of a prototype difficult to modify, especially if someone else wrote it Examples: on blackboard page—calculator from first lab

  3. Configuration management • Configuration management: • Goal: allow efficient file sharing but protect code integrity • Important concepts (from IEEE standard 1042-1987): • configuration items (e.g., a device driver) are grouped into a configuration management (CM) aggregate (e.g., Linux) • change control mechanisms ensure project goals being met • status accounting enables tracking of versions and overall project • auditing by a quality control team ensures completeness, consistence, and quality of versions which are released • build management minimizes recompilation; may also support customized versions for different environments • process management goals are included, e.g., notification of affected developers, documentation updates, error notification • Example: CVS

  4. Personal Software Process Good coding practices: PSP--Personal Software Process

  5. Software Engineering Phases Recall:

  6. CMM : capability maturity model--DEFINES LEVEL OF THE DEVELOPMENT PROCESS ITSELF (THIS DOES NOT refer to the process but to the MATURITY LEVEL OF THE PROCESS!!!!) 1. Initial: ad hoc 2. Repeatable: basic project management processes in place 3. Defined: documented process integrated into an organization-wide software process 4. Managed: detailed measures are collected 5. Optimizing--desired level: Continuous process improvement from quantitative feedback Capability Maturity Model

  7. CMU Software Engineering Institute CMM--developed by Carnegie Mellon Institute for Software Engineering designed to improve software development process for an organization what about improving performance of the individual developer / programmer?

  8. How do you personally develop a program? 1. what planning do you do? 2. how do you estimate how long the job will take? 3. how do you keep track of the time you are spending on the project? 4. how do you learn from your mistakes? 5. how do you improve your coding for the next project? 6. do you think your coding ability is steadily improving? 7. how have your answers to these questions changed from when you completed your first programming course up until now? 8. how have you used coding standards, etc. to improve your team efficiency on the quarter project? Programming Practices

  9. PSP PSP--Personal Software Process Apply similar strategies to the work of one individual requires: measurement planning analysis / modification of work habits

  10. TSP TSP--Team Software Process For teams of programmers who have been trained in the PSP

  11. Primary reference: Watts Humphrey, A Discipline for Software Engineering, 1996 additional useful reference: Example work by a programmer attempting to use the PSP http://www.nyx.net/~vputz/psp_index/book1.html Open Source project to make PSP available widely: http://www.processdash.com/ --the Software Process Dashboard initiative PSP--reference

More Related