Software Documentation



Similar documents
The So5ware Development Process (SDLC)

So#ware Development. Overview. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

SOFTWARE DEVELOPMENT PLAN

Team Foundation Server

Agile So6ware Development

Software Engineering. A Short Overview. Hans- Petter Halvorsen, M.Sc.

This is the software system proposal document for the <name of the project> project sponsored by <name of sponsor>.

Database Systems. S. Adams. Dilbert. Available: Hans-Petter Halvorsen, M.Sc.

Software Project Management Plan (SPMP)

<name of project> Software Project Management Plan

Agile So)ware Development

So#ware Deployment. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

Design Document Version 0.0

Data Logging and Monitoring Pro. Hans-Petter Halvorsen, M.Sc.

The Agile Drupalist. Methodologies & Techniques for Running Effective Drupal Projects. By Adrian AJ Jones (Canuckaholic)

Overview. System Definition Webster s Dictionary. System Engineering Hierarchy. System Engineering. Computer-Based Systems [PRE2005]

Chapter 3. Technology review Introduction

h(p://home.hit.no/~hansha/?page=so3ware_development So3ware Maintenance Hans- Pe(er Halvorsen, M.Sc.

Introduction and Overview

The Role of the Software Architect

CMSC 435: Software Engineering Course overview. Topics covered today

A Database Re-engineering Workbench

Managing Successful Software Development Projects Mike Thibado 12/28/05

Socio-Technical Systems

Software Requirements

Frank Tsui. Orlando Karam. Barbara Bernal. State. University. Polytechnic. Ail of Southern JONES & BARTLETT LEARNING

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Applying 4+1 View Architecture with UML 2. White Paper

Chap 1. Introduction to Software Architecture

Project Management Planning

44-76 mix 2. Exam Code:MB Exam Name: Managing Microsoft Dynamics Implementations Exam

Under moderate supervision, tests and troubleshoots hardware and/or software problems, makes repairs. May supervise or provide leadership to staff.

Surveying and evaluating tools for managing processes for software intensive systems

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Cloud-based Data Logging, Monitoring and Analysis

Time Monitoring Tool Software Development Plan. Version <1.1>

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Socio technical Systems. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 2 Slide 1

Project Management Planning

Increasing Development Knowledge with EPFC

Software Engineering UNIT -1 OVERVIEW

Data Modeling Basics

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

D25-2. Agile and Scrum Introduction

Software Processes. Topics covered

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

Basic Trends of Modern Software Development

Software Engineering Reference Framework

Chapter 13: Program Development and Programming Languages

DATA ITEM DESCRIPTION

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

Classical Software Life Cycle Models

Source Code Control & Bugtracking

Section C. Requirements Elicitation

Software Requirements. Descriptions and specifications of a system. Ian Sommerville 2000 Software Engineering, 6th edition.

Introduction to Project Management

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Project Management Standards: A Review of Certifications/Certificates

Project Management Step Wise. Sunday, 4 November 12

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

VAIL-Plant Asset Integrity Management System. Software Development Process

SCATS SALES AND CUSTOMER TRACKING SYSTEM SOFTWARE REQUIREMENTS SPECIFICATION VERSION: FINAL 1.0

Project Plan for <project name>

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Software Development in the Large!

Configuration & Build Management

What is Automotive Software Engineering? What is Automotive Software Engineering? What is Automotive Software Engineering?

Business Analyst Interview Questions And Answers

An Introduction to Software Engineering

ISO 9001 for Small Projects

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

<Company Name> <Project Name> Software Development Plan. Version <1.0>

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

PROJECT PLAN TEMPLATE

Rapid Software Development

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

8. Master Test Plan (MTP)

Lecture Slides for Managing and Leading Software Projects. Chapter 5: Project Planning Techniques

AN OVERVIEW OF SYSTEMS ANALYSIS: SYSTEMS ANALYSIS AND THE ROLE OF THE SYSTEMS ANALYST. Lecture , Tuesday

How Silk Central brings flexibility to agile development

Software Test Plan (STP) Template

<Business Case Name> <Responsible Entity> <Date>

SLIM Estimate and Microsoft Project Best Practices

How To Adopt Rup In Your Project

Chapter 3 Managing the Information Systems (IS) Project

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

Requirements engineering

Department of Administration Portfolio Management System 1.3 June 30, 2010

MIDLANDS STATE UNIVERSITY

Karunya University Dept. of Information Technology

How To Develop A Multi Agent System (Mma)

Work Breakdown Structure (WBS) Emanuele Della Valle

System Development and Life-Cycle Management (SDLCM) Methodology

VIII. Project Management Glossary

To provide a procedure and associated guidelines to facilitate the management of project dependencies.

Web Application Development Process

Transcription:

Software Documentation B. Lund. Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/ Hans-Petter Halvorsen, M.Sc.

System Documentation End-User Documentation User Guides Deployment Maintenance Installation Guides Planning SDP Software Development Plan STD Testing Software Test Documentation Test Plan Test Documentation Your Software with Documentation Project Planning Gantt Chart Requirements Analysis Implementation Code System Documenation Design SDD SRS Software Requirements Specifications Software Design Documents with ER Diagram, UML Diagrams, CAD Drawings

Project Documentation Project Start Project Management (Gantt Chart, etc.) Time 1. Planning (stakeholders, the software team; architects, UX designers, developers) 2. Testing (QA people) 3. End-user Documentation (The people that shall actually use the software) Project Planning High-Level Requirements and Design Documents Detailed Requirements and Design Documents Test Plans Test Documentation System Documentation Installation Guides User Manuals Software Development Plan (SDP) WHAT HOW ER Diagram UML Diagrams CAD Drawings How to Test/ What to Test Proof that you have tested and that the software works as expected Technical Stuff (Super User/ IT dep.) How to install it How to use it (End User) Project Finish 4. Handover (Business people) Final Report

Software Project Documentation Categories Project Documentation Process Documentation Project Plan, Gant Chart, Meeting Documents, Requirements & Design documentation, Emails, other kind of Workin Documents, etc. Product Documentation System Documentation Technical Documentation needed in order to maintain the software, etc. Installation Guides User Documentation User Manual, Wikis, Online Help, etc.

Software Process Documentation 1. Software Development Plan (SDP) 2. Software Requirements Specifications (SRS) 3. Software Design Documents (SDD) 4. Software Test Documents (STD)

Software Requirements & Design Requirements (WHAT): WHAT the system should do Describe what the system should do with Words and Figures,etc. SRS Software Requirements Specification Software Design (HOW): HOW it should do it Examples: GUI Design, UML, ER diagram, CAD, etc. SDD Software Design Document Many dont separate SRS and SDD documents, but include everything in a Requirements document. In practice, requirements and design are inseparable.

The Software Requirements Document Software Requirments Specifications (SRS) The software requirements document is the official statement of what is required of the system developers. Should include both a definition of user requirements and a specification of the system requirements. It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it. I. Sommerville, Software Engineering: Pearson, 2015.

The Structure of the SRS Document Chapter Preface Description This should define the expected readership of the document and describe its version history, including a rationale for the creation of a new version and a summary of the changes made in each version. Introduction This should describe the need for the system. It should briefly describe the system s functions and explain how it will work with other systems. It should also describe how the system fits into the overall business or strategic objectives of the organization commissioning the software. Glossary User requirements definition This should define the technical terms used in the document. You should not make assumptions about the experience or expertise of the reader. Here, you describe the services provided for the user. The nonfunctional system requirements should also be described in this section. This description may use natural language, diagrams, or other notations that are understandable to customers. Product and process standards that must be followed should be specified. System architecture This chapter should present a high-level overview of the anticipated system architecture, showing the distribution of functions across systemmodules. Architectural components thatare reused should be highlighted. System requirements specification This should describe the functional and nonfunctional requirements in more detail. If necessary, further detail may also be added to the nonfunctional requirements. Interfacesto other systems may be defined. System models This might include graphical system models showing the relationships between the system components and the system and its environment. Examples of possible models are object models, data-flowmodels, or semantic data models. System evolution This should describe the fundamental assumptions on which the system is based, and any anticipated changes due to hardware evolution, changing user needs, and so on. This section is useful for system designers as it may help them avoid design decisions that would constrain likely future changes to the system. Appendices These should provide detailed, specific information that is related to the application being developed; for example, hardware and database descriptions. Hardware requirements define the minimal and optimal configurations for the system. Database requirements define the logical organization of the data used by the systemand the relationships between data. Index index of functions, and so on. I. Sommerville, Software Engineering: Pearson, 2015. Several indexes to the document may be included. As well as a normal alphabetic index, there may be an index of diagrams, an 8

Software Documentation Requirements Should act as a communication medium between members of the Development Team Information respository used by Maintenance Engineers Information for Management to help them Plan, Budget and Schedule the Software Development Process Some of the documents should tell users how to use and administer the system Documents for Quality Control, System Certification, etc. => Satisfying these requirements requires different types of documents from informal working documents through professionally produced User Manuals

Software Documentation If the documentation is not useful dont make it!!

Software Documentation System/Technical Documentation Class Diagrams State Diagrams Sequence Diagrams Code Comments User Documentation User Manual Installation Guide Wiki Online Documentation and Help

Software Documentation For large projects, it is usually the case that documentation starts being generated well before the development process begins The set of documents that you have to produce for any system depends on the contract with the client for the system (the customer) the type of system being developed its expected lifetime the company culture the size of the company developing the system the development schedule

Programmers don't document L But they should J!!!

Software Project Documentation Documentation produced during a software Project can be divided into 2 Categories: Process Documentation These documents record the process of development and maintenance, e.g., Plans, Schedules (e.g., Gantt Charts), etc. Product Documentation These documents describe the product that is being developed. Can be divided into 2 sub categories: System Documentation Used by engineers developing and maintaining the system User Documentation Used by the people that is using the system

Process Documentation 15

Process Documentation Purpose: Process Documentation is produced so that the development of the system can be managed It is an essential component of plan-driven approaches (e.g., Waterfall) Agile Approaches: The Goal is to minimize the amount of Process Documentation

Process Documentation Categories: 1. Plans, estimates and schedules. These are documents produced by managers which are used to predict and to control the software process. 2. Reports. These are documents which report how resources were used during the process of development. 3. Standards. These are documents which set out how the process is to be implemented. These may be developed from organizational, national or international standards. 4. Working papers. These are often the principal technical communication documents in a project. They record the ideas and thoughts of the engineers working on the project, are interim versions of product documentation, describe implementation strategies and set out problems which have been identified. They often, implicitly, record the rationale for design decisions. 5. E-mail messages, wikis, etc. These record the details of everyday communications between managers and development engineers.

Software Development Plan (SDP) An SDP normally include the following sections: 1. Introduction: This briefly describes the objectives of the project and set out the constraints (e.g., budget, time, etc.) that affects the management of the project 2. Project Orgianization (Team Description) This section describes how the development team is organized, the peaople involved and their roles in the team. Software Process Model Description (Scrum, XP, Waterfall,...), etc. 3. Risk Analysis 4. Hardware and Software Resource Requirements 5. Work Breakdown (WBS, Work Breakdown Structure): Break down the project in into activities and identifies milestones 6. Project Schedule: Shows dependencies between activities, the estimated time required to reach each milestone, allocation of people to activities. (5) and (6) is typically done in a Gantt Chart (created in e.g. Microsoft Project) 7. Monitoring and Reporting Mechanisms: Definition of the Management Report that should be produced, when thes should be produced, etc. 8. Tools that you are using

Gantt Chart 19

Test Documentation Software Test Plan (STP) Test Logs Planning Tests Perform Tests Document Test Results Software Test Documentation (STD) Software Design Document (SDD) Software Requirements Specifications (SRS) - Functional & Non-Functional Requirements - User & System Requirements These documents will be the foundation for all Testing

Product Documentation

Product Documentation Purpose: Describing the delivered software product Unlike most process documentation, it has a relatively long life. It must Evolve in step with the product that it describes. Product documentation includes User documentation, which tells users how to use the software product, System Documentation, which is principally intended for maintenance engineers.

Product Documentation Types & Readers To cater for these different classes of user and different levels of user expertise, several documents (or perhaps chapters in a single document) should be delivered with the software system.

Product Documentation User Documentation

User Documentation

User Documentation Readers Users of a system are not all the same. The producer of documentation must structure it to cater for different user tasks and different levels of expertise and experience. It is particularly important to distinguish between end-users and system administrators: 1. End-users use the software to assist with some task. This may be flying an aircraft, managing insurance policies, writing a book, etc. They want to know how the software can help them. They are not interested in computer or administration details. 2. System administrators are responsible for managing the software used by end-users. This may involve acting as an operator if the system is a large mainframe system, as a network manager is the system involves a network of workstations or as a technical guru who fixes end-users software problems and who liaises between users and the software supplier.

User Manual

Wiki O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com

Product Documentation System Documentation

System Documentation 30

System Documentation System documentation includes all of the documents describing the system itself from the requirements specification to the final acceptance test plan. Documents describing the design, implementation and testing of a system are essential if the program is to be understood and maintained. Like user documentation, it is important that system documentation is structured, with overviews leading the reader into more formal and detailed descriptions of each aspect of the system.

Code Documentation O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com

System Documentation For large systems that are developed to a customer s specification, the system documentation should include: 1. The requirements document. 2. A document describing the system architecture. 3. For each program in the system, a description of the architecture of that program. 4. For each component in the system, a description of its functionality and interfaces. 5. Program source code listings, which should be commented where the comments should explain complex sections of code and provide a rationale for the coding method used. If meaningful names are used and a good, structured programming style is used, much of the code should be self documenting without the need for additional comments. This information is now normally maintained electronically rather than on paper with selected information printed on demand from readers. 6. Validation documents describing how each program is validated and how the validation information relates to the requirements. These may be required for the quality assurance processes in the organization. 7. A System Maintenance Guide, which describes known problems with the system, describes which parts of the system are hardware and software dependent and which describes how evolution of the system has been taken into account in its design

Use Case Diagrams UML Class Diagrams Sequence Diagrams

Example: Database ER Diagram

Summary

References I. Sommerville, Software Engineering: Pearson, 2015. Wikipedia. (2013). Scrum Development. Available: http://en.wikipedia.org/wiki/scrum_(development) Wikipedia. (2013). Agile Software Development. Available: http://en.wikipedia.org/wiki/agile_software_development CoreTrek. (2013). Scrum i et nøtteskall. Available: http://www.coretrek.no/scrum-i-et-noetteskall/category642.html S. Adams. Dilbert. Available: http://dilbert.com O. Widder. (2013). Geek & Poke. Available: http://geek-andpoke.com B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/

Hans-Petter Halvorsen, M.Sc. University College of Southeast Norway www.usn.no E-mail: hans.p.halvorsen@hit.no Blog: http://home.hit.no/~hansha/