A project documentation contains 4 parts, which are:
Planning
Testing
End-user documentation
Handover
The first part, planning, have high level requirements and design documents, which state what the system is planned to do, and how to perform the required actions
This an example of a software design documentation on the left. The purpose of a software design document is to give a description of the product. A software design documentation should contain the following information:
data design - describes a program structures, then uses information to map it out
architect design - design a program structures, then use information to map it out
interface design - describes the internal and external design interfaces
procedural design - uses graphical and textual notations to describe structural programming concepts
The second part of a project documentation is testing the product. The project should be tested throughout. Testing plans should include: the methods of testing, and what part of the program is being testing. All this information should be recorded down as test documentation. Advantages include:
The use of testing, in the purpose to remove and ambiguity of questionable areas of the development of a program
Good marketing strategy to showcase a mature testing process
Helps offer quality products to clients within a set amount of time
Disadvantages include:
Time consuming, and may not be worth the potential value of time put into the software
Poor documentation may lead to a bad reputation of the program.
The third part of the project documentation involves the creation of user documentation. User documentation is a guide that assists the user of the software they are using areas such as, how to use to program, what is does and how to install it, as suggested by the name. The main idea of user documentation is to aid the product user, which it is design solely for them. It should not require any extra form of knowledge of the development side of things, meaning that an average person is to be able to understand what is going on, step by step. Common solutions for problems should be quick and easy to resolve for the user if they do run into any problems. Formats of user documentation include the following:
FAQs
Video tutorials
Embedded assistance
continuously obtaining customer feedback
User manuals
Installations guides
End user guides
The final step, hand over is a plan which displays the project results, showing the satisfaction of meeting all requirements. This part of the project documentation needs to be well documented in terms of its performance and criteria met. It does not allow for doubt and ambiguity, as it should have been clarified during the testing process of the project. Main areas to be documented are:
Document requirements
Complete diagrams and drawings
A final report on project
Identifying key stakeholders of the project
Changes and problems, and how it should be resolved
2017 Q3: D
CASE stands for Computer Aided Software Engineering
Computer aided software engineering tools are set of various automated software used for the development and maintenance of software projects. These tools are used to automate aspects of the software development life cycle and a number of these tools exist to aid in various stages. The use of CASE tools accelerates the progress and helps uncover flaws before moving into the next stage of development.
These tools can be separated into three categories:
Upper CASE tools are used in planning, analysis and design stages of SDLC.
Lower CASE tools are used in implementation, testing and maintenance.
Integrated CASE tools are helpful in all the stages of SDLC, from Requirement gathering to Testing and documentation.
Widely used types of tools are:
Diagram tools
These tools are used to represent the flow and nature of items, such as system components and data, in a graphical form. This tool can be used by all types of personnel, but, it is especially useful in communicating ideas to other teammates in a software development environment. An example of a diagram tool is a flowchart maker.
Analysis tools
These tools help gather requirements, automatically check for inconsistencies, inaccuracies in diagrams, data redundancies and errors. An example of an analysis tool includes Accompa.
Project management tools
These tools are used to manage project planning, cost estimations, effort estimations and resource planning. These tools help in storing and sharing project information throughout the team, making it an appropriate tool for developers who work as a team. Basecamp is an example of a project management tool.
Documentation tools
Documentation tools generate documents for technical users and end-users. Technical users are usually in-house professionals, and the documentation for them refers to the system manual, reference manual, training manual, installation manuals etc. End-users documents refer to the how-to and function of a system, such as user manual. This tool is especially useful in a software development environment, where developers can create help guides with the help of a software tool. An example of this is Adobe Robohelp.
There are many other types of CASE tools, such as:
Process Modeling Tools - used to create software process model, which is used to develop the software
Design Tools - used to design the block structure of the software
Configuration Management Tools - used for version and revision management, baseline configuration management and change control management
Change Control Tools - used to deal with changes made to the software after its baseline is fixed or when the software is first released
Programming Tools - used to provide comprehensive aid in building software product and include features for simulation and testing
Prototyping Tools - used to simulate a version of the intended software product
Web Development Tools - used to assist in designing web pages with all allied elements like forms, text, script, graphic and so on
Quality Assurance Tools - used to monitor the engineering process and methods adopted to develop the software product
Maintenance Tools - used to create modifications in the software product after it is delivered
2017
Q5 2016: D
Q24 2017: CASE tools can save the developer time and effort. For example, drawing software can be used to produce modelling tools such as data flow diagrams.
Code generators can automatically produce code that is free of syntax errors.
CASE tools can be used to rapidly create large amounts of test data.
Version control software helps ensure all team members are working with the same version of specifications, modules, data etc.
Technical documentation is an umbrella term for the guides pertaining to the technical aspects of the software. [systems documentation explanation]. Algorithm documentation is pseudocode or an algorithm diagram that visually represents how the algorithm operates. Documenting source code is done by commenting on classes, functions, and lines that perform calculations; to maintain the source code, README files should be utilised and be kept concise. README files belong either in the application folder for the end user, or on a version-control system like GitHub that contains information about the project.
In this example, the add function simply takes in 2 inputs and returns the sum of those two inputs. Conventionally, a multi-line comment briefly explains how the function operates below the declaration line.
The documentation of a project's API is done by an API writer, which is a technical writer that conveys the information to programmers, developer,s system architects, and system engineers. An API writer's job consists of 60% analysing the source code and understanding the underlying functions of the software and documenting it; the remaining 40% is spent reviewing and writing the documents. Along with writing API documentation, API writers are also generally responsible for authoring: API Reference Guides, Programmers' Guides, Developer Manuals, Administration Manuals, Installation Guides, Implementation and Integration Guides.
The collection of documents that describes the requirements, capabilities, limitations, design, operation, and maintenance of a system, such as communications, computing, or information processing system.
Types of personnel that would use this type of documentation include:
developers
maintainers
designers