MSc Software Maintenance MSc Viðhald hugbúnaðar Fyrirlestrar 45 og 46 Essential Documentation 29/07/2017 Dr Andy Brooks 1 Case Study Dæmisaga Reference A Study of the Documentation Essential to Software Maintenance, Sergio Cozzetti B. de Souza, Nicolas Anquetil, and Káthia M. De Oliveria.The 23rd International Conference on Design of Communication, SIGDOC´05, pp 68-75, 2005 ©ACM 29/07/2017 Dr Andy Brooks 2 1. Introduction • Documentation continues to be “renowned for its absence” despite the emphasis placed by educators. • Agile software development actually questions the importance of documentation. – “Combined with the preference for face-to-face communication, agile methods usually produce less written documentation than other methods.” • http://en.wikipedia.org/wiki/Agile_software_development • There is pressure to re-document legacy software. – to support ongoing maintenance or re-engineering • All this raises the question: “What documentation would be most useful to software maintenance?” 29/07/2017 Dr Andy Brooks 3 1. Introduction Examining the Agile Manifesto http://www.ambysoft.com/essays/agileManifesto.html “Working software over comprehensive documentation. When you ask a user whether they would want a fifty page document describing what you intend to build or the actual software itself, what do you think they’ll pick? My guess is that 99 times out of 100 they’ll choose working software. If that is the case, doesn’t it make more sense to work in such a manner that you produce software quickly and often, giving your users what they prefer? Furthermore, I suspect that users will have a significantly easier time understanding any software that you produce than complex technical diagrams describing its internal workings or describing an abstraction of its usage, don’t you? Documentation has its place, written properly it is a valuable guide for people’s understanding of how and why a system is built and how to work with the system. However, never forget that the primary goal of software development is to create software, not documents – otherwise it would be called documentation development wouldn’t it?” 29/07/2017 Dr Andy Brooks 4 1. Introduction Examining the Agile Manifesto http://www.ambysoft.com/essays/agileManifesto.html http://en.wikipedia.org/wiki/Agile_software_development “Continuous attention to technical excellence and good design enhances agility. It's much easier to understand, maintain, and evolve high-quality source code than it is to work with low-quality code. Therefore, agilists know that they need to start with good code, to keep it good via refactoring, and take a test-driven approach so that they know at all times that their software works. We also adopt and follow development guidelines, in particular coding guidelines and sometimes even modeling guidelines.” • Specific Agile tools and techniques include continuous integration, automated unit testing, pair programming, test driven development, design patterns, and code refactoring. • Ongoing code refactoring in Agile software development means that (preventative) maintenance is a normal state of affairs. 29/07/2017 Dr Andy Brooks 5 1. Introduction • Agile software development, however, does not adress what happens over extended periods of time “when a development team is sure to disperse with the knowledge it has of the implementation details”, so documentation is still a “highly relevant artifact”. – teams eventually break up and take their knowledge with them – there is a need for communication across time between the development team and the maintenance team. • Re-documenting legacy software or software redocumentation is about trying to make up for past deficiencies. This is, however, a costly activity whose expense is difficult to justify to customers. 29/07/2017 Dr Andy Brooks 6 3.1 Some documentation problems • non-existent or poor quality or out of date – • Last Updated July 17 2002. too much (!) – • volumes of documentation are easier ignored than read difficult to access – • tables, text, and diagrams across multiple file types lack of programmer interest in documentation – do you find it boring writing JavaDoc? I know I do... • • http://java.sun.com/j2se/javadoc/ difficult to produce standardised documentation – how many developers know all of UML well? I know I don’t... • 29/07/2017 JPEG TIFF PNG GIF BMP ... http://www.uml.org/ Dr Andy Brooks 7 3.2 Documentation for maintenance related work F. A. Cioch and M. Palazzolo. A documentation suite for maintenance programmers. In Proceedings of the 1996 International Conference on Software Maintenance (ICSM’96), pages 286–95. IEEE,1996. • Documentation is designed specifically for new staff joining a software maintenance team. • Staff begin as newcomers and progress through the stages of student and intern until they become experts. • Newcomers receive short contextual overviews: project mission, product review, and module role in product. – The overviews are like the high-level information that is found in marketing presentations or briefings to management. • Students study what modules do, how they work, and how they interact with other code and the external environment. Architecture diagrams and design stories are used. 29/07/2017 Dr Andy Brooks 8 3.2 Documentation for maintenance related work F. A. Cioch and M. Palazzolo. A documentation suite for maintenance programmers. In Proceedings of the 1996 International Conference on Software Maintenance (ICSM’96), pages 286–95. IEEE,1996. • Interns undergo practical training. Task-oriented manuals are used to explain how code should be organised, compiled, executed and tested. Interns are not exposed to complete standards documents (e.g. The configuration management standards) as this may “trigger the feeling of information load”. • Experts make use of traditional documents produced during software development such as requirements and design specifications. – Traditional documents are said to provide too much information to newcomers, students, and interns. 29/07/2017 Dr Andy Brooks 9 3.2 Documentation for maintenance related work Scott W. Ambler http://www.agilemodeling.com/essays/agileDocumentation.htm • Ambler recognises the need in Agile software development to provide various kinds of documentation for software maintainers: design decisions, project overview, and system documentation. • Decision decisions is a summary of critical decisions regarding design and architecture made by the team throughout development. – Ambler advises to focus on decisions: • which are not obvious • which had other reasonable alternatives 29/07/2017 Dr Andy Brooks 10 3.2 Documentation for maintenance related work Scott W. Ambler http://www.agilemodeling.com/essays/agileDocumentation.htm • Project overview is a summary of: – – – – – system vision tools and technologies used build details procedures for the backing up of data references to the source code and available documents • System documentation is an overview of the technical architecture, the business architecture, and high-level requirements. (A detailed technical architecture may be provided.) – “System documentation is said to provide truck insurance, the assurance that if the development team leaves, or gets hit by a truck, that critical information about the project is left behind.” Andy says: Ambler´s essay on Agile documentation is worth a read. 29/07/2017 Dr Andy Brooks 11 3.2 Documentation for maintenance related work A. Forward and T. C. Lethbridge. The relevance of software documentation, tools and technologies: a survey. Proceedings of the 2002 ACM symposium on Document engineering (DocEng’02) ,pages 26–33, 2002. ©ACM • 48 respondents (mainly managers and developers) • Question 4: How often is documentation updated when changes occur in a software system? 1 = ‘never made’ … 5 ‘updates are made within a few days’ 29/07/2017 mode/tíðasta gildi Table 2 ©ACM Dr Andy Brooks 12 3.2 Documentation for maintenance related work A. Forward and T. C. Lethbridge. The relevance of software documentation, tools and technologies: a survey. Proceedings of the 2002 ACM symposium on Document engineering (DocEng’02) ,pages 26–33, 2002. ©ACM • Question 6: How often do you consult available software documentation? 1 ‘never’ ... 5 ‘always’ • Across all 48 respondents, the most consulted document was Specifications (average score 3.85). • Across 12 respondents identifying one role as that of manager, the most consulted document was Requirements (average score 3.60). • Across 17 respondents identifying as a developer, but not manager, the most consulted document was Architectural (average score 4.33). 29/07/2017 Dr Andy Brooks 13 convenience sample/hentugleikaúrtak drop-out/brottfall Questionnaire survey one • The questionnaire could be answered on paper or over the internet. – Voluntarily and anonymously. • Convenience (or accidental) sampling was used. – One of the authors used his list of contacts. • 76 software maintainers “from various parts of Brazil” answered the questionnaire in the second half of 2004. • Two part questionnaire: respondent details and ratings of importance of various types of documentation. 29/07/2017 Dr Andy Brooks 14 drop out/brottfall bias/skekkja Can the results be generalized? Critical commentary from Andy • For external validity , a random sample from a population is required. In this study, a convenience sample was used which can introduce bias. – Asking a professional society to distribute or publicise the questionnaire is better, but does not in itself guarantee a lack of bias. For example, only those who have had problems with documentation might answer the questionnaire. • We are not informed how many of the contacts declined to answer the questionnaire. This is the drop-out or nonresponse rate which can be used to help judge the results of a survey. – If you obtain only 10 replies from a random sample of 1,000 then it is likely some sort of bias is present. 29/07/2017 Dr Andy Brooks 15 Questionnaire survey one Respondent details • Position: – manager, analyst or programmer • Years of experience in maintenance: – 1-3, 3-5, 5-10, >10 years • Number of systems maintained: – 1-5, 6-10,11-20, >20 systems • Known approaches: – structured analysis, object-oriented “In Brazil, all software engineers usually know a technique called structured analysis.” 29/07/2017 Dr Andy Brooks 16 Questionnaire survey one original questionnaire was in portugese Ratings • “Based on your practical experience, indicate what importance each documentation artifact has in the activity of understanding a software to be maintained”. – – – – – 1 = “no importance”, 2 = “little importance” 3 = “important”, 4 = “very important” don´t know • There were 34 documentation artificats in total, arranged in the following categories: requirement elicitation, analysis, design, coding, test, and transition. 29/07/2017 Dr Andy Brooks 17 Questionnaire survey one MER likely ERM Entity Relationship Model Documentation artefacts • Requirement elicitation – Structured analysis: (1) requirements list, (2) context diagram, (3) requirement description – Object-oriented: (4) vision document, (5) use case diagram – Structured and OO: (6) conceptual data model, (7) glossary • Analysis – Structured analysis: (8) functions derived from the requirements, (9) hierarchical function diagram, (10) data flow diagram. – Object-oriented: (11) use cases specifications, (12) class diagram, (13) activity diagram, (14) sequence diagram, (15) state diagram – Structured and OO: (16) non functional prototype, (17) logical data diagram (MER), (18) data dictionary 29/07/2017 Dr Andy Brooks 18 Questionnaire survey one Documentation artefacts • Design: – Structured analysis: (19) architectural model, (20) general transaction diagram, (21) components specification. – Object-oriented: (22) collaboration diagram, (23) components diagram, (24) distribution diagram. – Structured and OO: (25) physical data model, (26) functional prototype • Coding – Structured and OO: (27) comments in source code, (28) source code 29/07/2017 Dr Andy Brooks 19 Questionnaire survey one Documentation artefacts • Test: – Structured and OO: (29) unitary test plan, (30) system test plan, (31) acceptance test plan • Transition – Structured and OO: (32) data migration plan, (33) transition plan, (34) user manual 29/07/2017 Dr Andy Brooks 20 convenience sample/hentugleikaúrtak drop-out/brottfall Questionnaire survey two • The questionnaire was answered only on paper to allow the same person to provide answers for up to 8 different maintenance projects. – Voluntarily and anonymously. • Convenience (or accidental) sampling was used. – No effort was made to have all the first survey participants answer the second survey. • “some maintainers actually answered both surveys, others only the first or only the second” • 52 software maintainers “from various parts of Brazil” provided answers for 237 maintenance projects. • Two part questionnaire: respondent and system details and actual usage of various types of documentation. 29/07/2017 Dr Andy Brooks 21 Questionnaire survey two Respondent and system details • Years of experience in maintenance: – 1-3, 3-5, 5-10, >10 years • Months of experience with the system maintained: – 1-3, 3-6, 6-12, >12 months • Application domain: – banking, education, ... • Size of the maintenance team: – 1 person, 1 team, several teams • System age: – <1 year, 1-2 years, 3-5 years, >5 years 29/07/2017 Dr Andy Brooks 22 Questionnaire survey two Respondent and system details • System maturity: – recently developed, mostly corrective maintenance, growing – corrective and evolutive maintenance, stablised – few corrective and mostly evolutive maintenance, phasing out – new product being developed • Documentation quality: – complete? –yes/no, up-to-date? -yes/no, readable? -yes/no • Approach: – structured analysis, object-oriented • Maintenance type realized during the survey: – corrective, evolutive • Defined maintenance process? – yes,no 29/07/2017 Dr Andy Brooks 23 Questionnaire survey two Documentation artefacts • The documentation artefacts were as before, but rather than one long list, questionnaires were arranged either for structured analysis (24 documentation artefacts) or object-oriented (25 documentation artefacts.) structured analysis (24) 29/07/2017 object-oriented (25) Dr Andy Brooks 24 structured analysis, 70 replies 29/07/2017 Table 1 ©ACM Dr Andy Brooks Questionnaire survey one 25 object-oriented, 54 replies 29/07/2017 Table 1 ©ACM Dr Andy Brooks Questionnaire survey one 26 Survey one results • Across both structural analysis and object-oriented, the two most important artificats are the source code and comments. – “This result was expected.” • Across both structural analysis and object-oriented, the following were ranked highly: – data models (circles ●) – requirements (squares ■) – acceptance test plan (diamond ♦) • Across both structural analysis and objection-oriented, unit and system test plans are ranked relatively well. • “A big surprise” was the low rankings of general views of the system (triangle ►). 29/07/2017 Dr Andy Brooks 27 structured analysis, 142 replies Table 2 ©ACM 29/07/2017 Dr Andy Brooks Questionnaire survey two 28 object-oriented, 95 replies 29/07/2017 Table 2 ©ACM Dr Andy Brooks Questionnaire survey two 29 Survey two results • Across both structural analysis and object-oriented, the source code and comments are ranked very highly. – 1st and 3rd. • Across both structural analysis and object-oriented, data models (circles ●) “lost the importance they had in the first survey”. • Across both structural analysis and object-oriented, the test plans are well used. • The low rankings of general views of the system “seems partially confirmed “ (triangle ►). 29/07/2017 Dr Andy Brooks 30 Survey two results System maturity • Total replies = 51 – – – – 3 (6%) recently developed 32 (64%) growing 14 (27%) stabilized 2 (4%) phase out • The authors did not try to analyse survey responses by system maturity. – Systems that are stabilized or being phased out are unlikely to undergo architectural changes. Are general views less important for these systems? 29/07/2017 Dr Andy Brooks 31 Survey two results Documentation quality • Completeness: total=51 – complete = 14 (27%), – not complete = 37 (73%). • Actuality: total=51 – up-to-date = 17 (33%) – out-of- date = 34 (67%). • Readability: total=51 – readable = 41 (80%) – unreadable = 10 (20%) “The quality of the documentation is as could be expected: generally incomplete and out-of-date.” 29/07/2017 Dr Andy Brooks 32 Survey two results Maintenance type • Total replies = 237 – 64 (27%) corrective – 125 (53%) evolutive – 48 (20%) both • The authors did not try to analyse survey responses by maintenance type. – Is the scope of corrective maintenance usually so small (e.g. fixing a method) that a maintainer does not need to make use of general views of the system? 29/07/2017 Dr Andy Brooks 33 6. Conclusion • “The surveys confirmed that source code and comments are the most important artifact to understand a system to be maintained.” • “Data models and requirement descriptions were other important artifacts.” – test plans too were also relatively important • “Surprisingly, and contrary to what we found in the literature, architectural models and other general views of the system are not very important.” – To explain this, the authors’ suggest that such models providing general views may be used once, then never consulted again. • “Further research is needed...” 29/07/2017 Dr Andy Brooks 34 Critical commentary from Andy • The scope of a single maintenance request can vary from a single statement to the system in its entirety. An explicit model of maintenance requests is, however, absent in this work. • If the scope is a single statement, a maintainer will need the source code and comments. • If the scope is the entire system, then the maintainer is also likely to need models providing general views. • The two surveys may have simply indirectly measured the frequency distribution of maintenance request types. • General views are obviously very important when making changes to the system architecture. 29/07/2017 Dr Andy Brooks 35 http://yourdon.com/strucanalysis/wiki/index.php?title=Introduction Structured Analysis Data Flow Diagramming The context diagram shows the flow of data to and from external entities. Figure 0 shows the decomposition of the system into main sub-processes. Figure 3 shows the decomposition of subprocess 3. If a maintenance request resulted in the need for a new flow of data from a new external entity, the maintainer is likely to want to view the context diagram. 29/07/2017 Dr Andy Brooks 36
© Copyright 2026 Paperzz