Software Construction and Evolution - CSSE 375 Software Documentation 2 Shawn & Steve Left – Ideally, online documents would let you comment and highlight,

Slides:



Advertisements
Similar presentations
Constructing a Task List ITSW 1410 Presentation Media Software Instructor: Glenda H. Easter.
Advertisements

Ch-11 Project Execution and Termination. System Testing This involves two different phases with two different outputs First phase is system test planning.
Programming Paradigms and languages
Chapter 29: Integration Jacob Harper. The Integration Approach The order of adding components to a system is crucial Benefits to careful integration –
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Internal Documentation Conventions. Kinds of comments javadoc (“doc”) comments describe the user interface: –What the classes, interfaces, fields and.
Revealing the Secrets of Self-Documenting Code Svetlin Nakov Telerik Corporation
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Project Management Information Systems A APPENDIX.
Documentation 1 Comprehending the present – Investing in the future.
Chapter 5: Common Support Problems
1 Software User Documentation Don Bagert CSSE 375, Rose-Hulman October 9, 2006.
1 Software Craftsmanship Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Right – Making sundials. From website
User Documentation (no quiz) Tori Bowman CSSE 375 October 8 th, 2007.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
CSE1301 Computer Programming: Lecture 13 Documentation.
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 3 Software Documentation Steve Chenoweth Office Phone: (812) Cell: (937)
Process, Communication, and Certification Padma Venkata
4 types of implementing information systems
CSSE 375 Software Construction and Evolution: Configuration Management
System Implementation
Software Construction and Evolution - CSSE 375 Software Documentation 1 Shawn & Steve Right – For programmers, it’s a cultural perspective. He’d feel almost.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Terms: Test (Case) vs. Test Suite
This chapter is extracted from Sommerville’s slides. Text book chapter
LGC Website and Customer On-line Tools LGC RESOURCE 2014.
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
Introduction to Software Quality Assurance (SQA)
Term 2, 2011 Week 3. CONTENTS The physical design of a network Network diagrams People who develop and support networks Developing a network Supporting.
WORKING EFFECTIVELY IN AN INFORMATION TECHNOLOGY ENVIRONMENT
By Anthony W. Hill & Course Technology1 Common End User Problems.
ITEC224 Database Programming
YourClassPage.com TM Inservice Quickstart Guide Getting YOUR classpage up and running!
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
MAPLDDesign Integrity Concepts You Mean We’re Still Working On It? Sustaining a Design.
End HomeWelcome! The Software Development Process.
Upgrading to IBM Cognos 10
CH10: Delivering the System help users to understand and feel comfortable with our product * Training * Documentation TECH Computer Science.
Ch. 8 StudyCast SarahBeth Walker. Software Selection  Software does the critical work in the classroom.  Mindtools  Support for conversation/community.
Writing User Guide CSC207 – Software Design. Writing in CS /Newsgroup/Forum/Blog Code Comments Software User Guide Presentations Project Plans Software.
XA System-Link A Powerful Development Tool
I Power Higher Computing Software Development The Software Development Process.
INTRODUCTION TO USER DOCUMENTATION Function and purpose Production specifications Evaluate the effectiveness.
Code Documentation and Comments
Self-Documenting Code Chapter 32. Kinds of Comments  Repeat of code  Explanation of code  Marker in code  Summary of code  Description of code’s.
Software quality factors
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
The Software Development Process
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Comments in the Program and Self-Documenting Code
Revealing the Secrets of Self-Documenting Code Nikolay Kostov Telerik Software Academy academy.telerik.com Senior Software Developer and Technical Trainer.
Copyright 2010, The World Bank Group. All Rights Reserved. Testing and Documentation Part II.
Revealing the Secrets of Self-Documenting Code Svetlin Nakov Telerik Corporation
1 Maintenance of Documentation and Documentation of Maintenance Quiz 7 Tori Bowman CSSE 375, Rose-Hulman October 1, 2006.
Objectives Understand Corrective, Perfective and Preventive maintenance Discuss the general concepts of software configuration management.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Writing to Teach - Tutorials Chapter 2. Writing to Teach - Tutorials The purpose of a tutorial is to accommodate information to the needs of the user.
State of Georgia Release Management Training
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
NASBLA Social Media: What is it for? NASBLA is involved in numerous Social Media that all serve a distinct purpose. So, what are they all for?
Communicating in Code: Commenting Programming Studio Spring 2009 Note: several examples in this lecture taken from The Practice of Programming by Kernighan.
Slide title :40-47pt Slide subtitle :26-30pt Color::white Corporate Font : FrutigerNext LT Medium Font to be used by customers and partners : Arial HUAWEI.
Code Documentation and Comments in the Program
Managing the Project Lifecycle
Chapter 11: Software Configuration Management
Introduction to the New SSA OnePoint Online Website
Communicating in Code: Commenting
Chapter 11: Software Configuration Management
Developing Web Specifications
Presentation transcript:

Software Construction and Evolution - CSSE 375 Software Documentation 2 Shawn & Steve Left – Ideally, online documents would let you comment and highlight, just like paper documents.

2 Recall: User Documentation Constituent DocumentFunction Installation Manual / Guide System installation and set up, configuration and customization to hardware and other software systems Beginner’s Guide / Tutorial Simple explanations of how to get started using the system Reference Guide Provides in-depth description of each system facility and how it can be used Maintenance Manual / Guide Outlines the software change processes Refers to req’ts & design specifications Refers to test data and results Summary of new features for releases Quick Reference Card Serves as a lookup for key capabilities System Administration Guide Provides information on services such as networking, security, and upgrading

3 Example User Documents Online  User Documentation Plan – documentation-plan.html documentation-plan.html  Google – resources/documentation-templates resources/documentation-templates  Project Connections templates –

4 Maintaining Documentation

5 Documentation Updates  Updating Source Code l Understandable code, Commenting…  Updating Development Documents l SRS’s, SDS’s, Test Cases…  Updating User Documents l User’s Guide, Installation and Maintenance Guides, Getting Started instructions…  The larger the product, the more critical the need for traceability Q1

6 What does this code do? for (int i = 1; i < num; ++i) { meetsCriteria[i] = true; } for (int i = 2; i < num / 2; ++i) { int j = i + i; while (j <= num) { meetsCriteria[j] = false; j += i; } for (int i = 0; i < num; ++i) { if (meetsCriteria[i]) Console.WriteLine(i + " meets criteria"); } Q2

7 More effective (self-documenting) Code for (int primeCandidate = 1; primeCandidate < num; ++primeCandidate) { isPrime[primeCandidate] = true; } for (int factor = 2; factor < num / 2; ++factor) { int factorableNumber = factor + factor; while (factorableNumber <= num) { isPrime[factorableNumber] = false; factorableNumber += factor; } for (int primeCandidate = 0; primeCandidate < num; ++primeCandidate) { if (isPrime[primeCandidate]) Console.WriteLine(primeCandidate + " is prime."); }

8 Consider Commenting that Documents (1 of 2)  Repeat of the code l Gives reader more to read without adding value  Marker in the code l E.g., To-do, TBD, ********NOT DONE  Summary of the code l Especially helpful in maintenance Q3

9 Consider Commenting that Documents (2 of 2)  Explanation of the code l If the code is so complicated that it needs to be explained – rewrite it!  Description of code’s intent l E.g., // ClearHiddenChars() used to remove all codes // in file to condition it for HTML editor.  Information that can’t be expressed in code l E.g., // This attribute is accessed by foobar() later… Q4

10 Some Tips for Commenting Efficiently  Use styles that don’t break down or discourage modification  Integrate commenting into your development style l Make this apart of your coding standards!  IBM study suggests: 1 comment for every 10 lines of code l What do you think?

11 Focus of Comments  Don’t focus on How // if account flag is zero If (accountFlag == 0) …  Focus on Why! // if establishing a new account If (accountFlag == 0) … Q5

12 Documenting a Workaround for an Error  It would be better to fix the error, but for a temporary fix, this would do…

13 Don’t comment tricky code - Rewrite it! // Very important note: // The constructor for this class take a reference to a // UiPublication. The UiPublication object MUST NOT // BE DESTROYED before the DatabasePublication // object. If it is, the DatabasePublication object will // cause the program to die a horrible death.  While sometimes it is necessary to write clever code, it is often better to rewrite the code to avoid problems in maintenance Q6

14 Document Input/Output where Declared

15 What about using something like JavaDoc?  Same as previous slide, but with JavaDoc l JavaDoc parses the comments for specific elements to produce documentation…  Check out Doxygen: Q7

16 General Self-Documenting Guidelines  Ease of Maintenance – #1 Objective  Meaningful variable names  Comments only when needed  Extra variables used to clarify  Data types simple  Nominal path thru code is clear  Interfaces obvious  Refs to variables close together  Class name and interface says it all l Purpose is clear Q8

17 Revisiting the Documentation Survey  Survey of software industry professionals  Highlights preferences for and aversions against software documentation tools  Participants agree that documentation tools should seek to better extract knowledge from software artifacts  2 Observations l Some large-scale software projects had an abundance of documentation l small to medium-scale software projects had little to no software documentation

18 What the 50 Questions Addressed?  Participant’s personal preference for different types of documentation, and their effectiveness  Ability of a document’s attributes, as opposed to its content, to promote (or hinder) effective communication  State of software documentation in the participant’s organization  Comparison of past projects to current ones  Effectiveness of documentation tools and technologies Q9

19 Are Documents Updated?

20 How long is Documentation Useful?

21 Documentation Technologies  Other tools included ArgoUML, Visio, FrameMaker, Author-IT, whiteboards and digital cameras, JUnit and XML editors

22 Maintenance Quality in Question

23 Documenting Maintenance

24 Additional Documentation Needed for Software Maintenance  Depends on Maintenance Process Used… l Change Request Process l Emergency l Priority l Release planning…  Software Maintenance Plan  Delta Vision Documents  Design Record Q9

25 Maintenance-Related Documents  Software Maintenance Plan  Maintenance Project Plan l Maintenance project => a release…  Maintenance Oriented Guidelines/Manuals  Transition Plan l From old way to new way…