Master Thesis Final Presentation “Improving the Software Architecture Documentation Process of MediaWiki software” 14.09.2015, Ankitaa Bhowmick.

Slides:



Advertisements
Similar presentations
Technische Universität München Application Performance Monitoring of a scalable Java web-application in a cloud infrastructure Kick-off presentation for.
Advertisements

Software Engineering für betriebliche Informationssysteme (sebis) Fakultät für Informatik Technische Universität München wwwmatthes.in.tum.de WebAppLabCourse.
CSC271 Database Systems Lecture # 18. Summary: Previous Lecture  Transactions  Authorization  Authorization identifier, ownership, privileges  GRANT/REVOKE.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
<<Date>><<SDLC Phase>>
HOW DO PROFESSIONAL DEVELOPERS COMPREHEND TO SOFTWARE Report submitted by Tobias Roehm, Rebecca Tiarks, Rainer Koschke, Walid Maalej.
Outline About author. The problem that discussed in the article.
1 The Database Application Development Process The Database Application Development Process.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Fakultät für Informatik Technische Universität München A Quantitative Perspective on Systems of Systems Formerly: Upscaling for Systems of Systems Astrid,
SIM SOFTWARE ARCHITECTURE Instructor: Dr. Masrah Azrifah Azmi Murad Room: A2.37 Tel: masrah.azrifah [at] gmail.com / masrah.
introduction to MSc projects
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Configuration Management Process and Environment MACS Review 1 February 5th, 2010 Roland Moser PR a-RMO, February 5 th, 2010 R. Moser 1 R. Gutleber.
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Master.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Software System Engineering: A tutorial
Business Analysis and Essential Competencies
Lecture #9 Project Quality Management Quality Processes- Quality Assurance and Quality Control Ghazala Amin.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Master’s.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Data-Parallel.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Design.
BMAN Integrative Team Project Week 2 Professor Linda A Macaulay.
Kanat Abirov Micha Ikeda Denise Varga Hisashi Yoshida - Team Lead - Process Manager - Client Liaison - Dev Manager.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
MD Digital Government Summit, June 26, Maryland Project Management Oversight & System Development Life Cycle (SDLC) Robert Krauss MD Digital Government.
IT Requirements Management Balancing Needs and Expectations.
Product Documentation Chapter 5. Required Medical Device Documentation  Business proposal  Product specification  Design specification  Software.
Technische Universität München Application Performance Monitoring of a scalable Java web-application in a cloud infrastructure Final Presentation August.
Topics Covered Phase 1: Preliminary investigation Phase 1: Preliminary investigation Phase 2: Feasibility Study Phase 2: Feasibility Study Phase 3: System.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
Process: A Generic View
T Iteration demo T Iteration Demo Team Balboa I1 - Iteration
T Software Development Project I Customer Info Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio Software Business and.
Software Engineering Lecture # 1.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
Software Quality Assurance. Software Quality Software quality is defined as the quality that ensures customer satisfaction by offering all the customer.
4+1 View Model of Software Architecture
T Iteration Demo Tikkaajat [PP] Iteration
Presented by Lu Xiao Drexel University Quantifying Architectural Debt.
ISWG / SIF / GEOSS OOSSIW - November, 2008 GEOSS “Interoperability” Steven F. Browdy (ISWG, SIF, SCC)
SYSTEM ANALYSIS AND DESIGN LAB NARZU TARANNUM(NAT)
Technische Universität München © Prof. Dr. H. Krcmar An Ontology-based Platform to Collaboratively Manage Supply Chains Tobias Engel, Manoj Bhat, Vasudhara.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Design.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Building Enterprise Applications Using Visual Studio®
Avoiding Redundancy in the Management of Technical Documentation and Models: Requirements Analysis and Prototypical Implementation for Enterprise Architecture.
TOP project – STATUS UPDATE & Workflow demo
School of Business Administration
The Development Process of Web Applications
<Student’s name>
The Systems Engineering Context
Maintaining software solutions
Introduction to Software Engineering
CS 790M Project preparation (I)
Introduction To software engineering
Human Computer Interaction Lecture 14 HCI in Software Process
CS 426 CS 791z Topics on Software Engineering
CS 426 CS 791z Topics on Software Engineering
Presentation transcript:

Master Thesis Final Presentation “Improving the Software Architecture Documentation Process of MediaWiki software” 14.09.2015, Ankitaa Bhowmick

Administrative Matters Time: February15th, 2015 to August 15th, 2015 Supervisor: Prof. Dr. Florian Matthes Advisor: Klym Shumaiev Ankitaa Bhowmick © sebis

Agenda Motivation Research Questions MediaWiki Software Process Implementation Details Evaluation & Conclusion Ankitaa Bhowmick © sebis

Motivation Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion A good software architecture is the focal point of a good software “To make this software maintainable and extendable, a state-of-the-art SA documentation process is required.” - The Software Sustainability Institute “SA documentation needs to satisfy the needs of different stakeholders” - Documenting Software Architectures: Views and Beyond SA document needs to be up-to-date with changes “Software complexity grows with time and it becomes tedious to maintain the documentation” [1] Lack of documentation is the downside of open source Software [2] Ankitaa Bhowmick © sebis

Motivation Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Drawbacks of the current Software Architecture Documentation (SAD) Process at Mediawiki Outdated parts / missing parts of documentation Some architecture documentation is available as a part of source code but not maintained on “mediawiki.org” Limitations of open source software Irresponsibility to maintain documentation Informal processes Requirement An improved process to maintain software architecture documentation of MediaWiki. Ankitaa Bhowmick © sebis

Research Questions Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion RQ1 : How software architecture documentation process can be improved for MediaWiki Software? RQ2 : Which specific requirements of MediaWiki stakeholders should be met by documentation process for Software Architecture Documentation ? RQ3 : What state-of-the-art architecture documentation processes are available in the industry that meet domain-specific requirements – e.g. Open Source Software ? RQ4 : What are the metrics for evaluation of the software architecture documentation process and how can the quality of documentation process be assured ? Ankitaa Bhowmick © sebis

Mediawiki Software Process - Existing Schema Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion 1 2 3 Software process sequence diagram Ankitaa Bhowmick © sebis

Mediawiki Software Process - Existing Schema Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion 1 2 3 Documentation process sequence diagram Ankitaa Bhowmick © sebis

Software Architecture Documentation Process – Existing Mediawiki Roles Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Code maintenance of an architectural component Write documentation for Mediawiki software Maintainers Review the code changes before pushing to master Documenter Propose, Design and Rationalize the architectural changes Reviewer Implement the software architectural changes Architect Developer Defined roles Additional roles Expert role The sphere of roles and responsibilities at Mediawiki Ankitaa Bhowmick © sebis

Software Architecture Documentation Process - Stakeholder and Communtity Requirements Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Requirements Interactive Sessions Need for structured documentation All documentation available on „mediawiki.org“ Detailed architectural component documentation as part of the MediaWiki source code. Regular maintenance of documents. Ankitaa Bhowmick © sebis

Implementation Details – Python BOT Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion 1 2 3 4 Improved Documentation Process sequence diagram Ankitaa Bhowmick © sebis

Implementation Details – BOT component diagram Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Component interactions in the implemented solution Ankitaa Bhowmick © sebis

Implementation Details – Results Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Task is created on Phabricator by the BOT Task subject : „update document : text_file_name“ Project : „Software Architecture Documentation“ Comments and discussions on the task Docbot creates a documentation task on Phabricator Ankitaa Bhowmick © sebis

Research Questions Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion RQ1 : How software architecture documentation process can be improved for MediaWiki Software? RQ2 : Which specific requirements of MediaWiki stakeholders should be met by documentation process for Software Architecture Documentation ? RQ3 : What state-of-the-art architecture documentation processes are available in the industry that meet domain-specific requirements – e.g. Open Source Software ? RQ4 : What are the metrics for evaluation of the software architecture documentation process and how can the quality of documentation process be assured ? Ankitaa Bhowmick © sebis

Evaluation : SAD standards and processes Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Process-oriented Software engineering projects : IEEE1471-2000 standard for software architecture documentation [3] Open Source Software Communities : The journal for “Systems and Software” provides an exploratory survey result : over 61% of the OSS projects employ bug tracking tools to maintain their software and process [4] 70.4 % of the OSS projects use natural language with HTML as the main format for documenting software architecture [5]. Evaluation points for the implemented solution : Process-oriented documentation maintenance is desirable for OSS Wiki is a user-friendly and fitting medium for capturing documentation Ankitaa Bhowmick © sebis

Evaluation – Standard Metrics Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Metrics for improved process evaluation Maintenance efforts and costs vs. capacity [8]. Personnel Time QualOSS standards for process evaluation [6]. Review process Process features also need to be evaluated [7]. Architecture tracking Multiple user support Capture and reason Around 20 architectural components identified for documentation Each component has a maintainer Some components already have “.txt ” file in source The documents are a part of the source code Final push from Gerrit mandates document review Architectural changes are pushed along with corresponding documentation All developers can access the code + document Documents provide the rationale Ankitaa Bhowmick © sebis

Evaluation – Stakeholder Satisfaction Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Evaluation of Improved documentation process via Review and Discussions Documentation quality assurance (feedback of MediaWiki architecture committee ) Review is mandatory Maintenance of up-to-date documents on mediawiki.org is checked Process stability validation (feedback from MediaWiki developers) Well integrated with the existing software process. Ease of use / understandability ( Concerning new developers) Improved readability Access to all – free source Capture detailed architectural component description Acceptance in community (interviewing wiki community) Accepted ! Ankitaa Bhowmick © sebis

Conclusion – Process Improvement Dimension of Software Architection Documentaion process and its improved features Ankitaa Bhowmick © sebis

Conclusion This work’s implication is not just limited to Mediawiki but also reaches out far to find application for a maintainable documentation process in the Open Source Software community. Further improvements to this basic solution is possible and a novel solution can be achieved for an improved software architecture documentation process. Critical assessment has proved that the expectations of stakeholders have been met in terms of process requirements. Process improvement (documentation process) is possible within the socio-technical limitations of Mediawiki community and within the broader scope of open source communities. Ankitaa Bhowmick © sebis

References http://oss-watch.ac.uk/resources/archived/documentation Fundamental issues with open source software development - Michelle Levesque F. Bachmann, L. Bass, P. Clements, D. Garlan, J. Ivers, M. Little, P. Merson, R. Nord, and J. Stafford. Documenting Software Architectures: Views and Beyond L. Zhao and S. Elbaum. “Quality assurance under the open source development model.” In: Journal of Systems and Software W. Ding, P. Liang, A. Tang, H. V. Vliet, and M. Shahin. “How Do Open Source Communities Document Software Architecture: An Exploratory Survey.” The QualOSS Open Source Assessment Model Measuring the Performance of Open Source Communities - Martín Soto and Marcus Ciolkowski Software Process: A Roadmap - Alfonso Fuggeffa A systematic review of software architecture visualization techniques – Babar et.al Ankitaa Bhowmick © sebis

Ankitaa Bhowmick © sebis

Backup Slides Ankitaa Bhowmick © sebis

Mediawiki Software Process - Existing Schema Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Code commits Deploy P R O D U C T I N Continuous Integration Developer Documentation Task Owner Task Creation and Tracking Ankitaa Bhowmick © sebis

Mediawiki SAD process - Proposed Solution Motivation Research Questions Mediawiki Software Process Implementation Details Evaluation & Conclusion Deploy Code commits P R O D U C T I N Continuous Integration Developer Documentation Pull latest source code Compare Mediawiki.org pages / Check History Create documentation task if docs are not consistent Task Creation and Tracking Task Owner Ankitaa Bhowmick © sebis