Download Maintainability

Post on 26-Dec-2015




1 download

Embed Size (px)


  • Slide 1
  • Maintainability
  • Slide 2
  • Common Lisp Freely redistributable implementations 1 A branch from CMUCL. "Broadly speaking, SBCL is distinguished from CMU CL by a greater emphasis on maintainability." SBCL runs on the platforms CMUCL does, except HP/UX; in addition, it runs on Linux for AMD64, PowerPC, SPARC, MIPS, Windows x86 and has experimental support for running on Windows AMD64. SBCL does not use an interpreter by default; all expressions are compiled to native code unless the user switches the interpreter on. The SBCL compiler generates fast native code.
  • Slide 3
  • C Sharp (programming language) History 1 The LINQ extensions and the functional imports help developers reduce the amount of "boilerplate" code that is included in common tasks like querying a database, parsing an xml file, or searching through a data structure, shifting the emphasis onto the actual program logic to help improve readability and maintainability.
  • Slide 4
  • Ada (programming language) Features 1 Code for complex systems is typically maintained for many years, by programmers other than the original author. These language design principles apply to most software projects, and most phases of software development, but when applied to complex, safety critical projects, benefits in correctness, reliability, and maintainability take precedence over (arguable) costs in initial development.
  • Slide 5
  • Computer programming Quality requirements 1 Maintainability: the ease with which a program can be modified by its present or future developers in order to make improvements or customizations, fix bugs and security holes, or adapt it to new environments. Good practices during initial development make the difference in this regard. This quality may not be directly apparent to the end user but it can significantly affect the fate of a program over the long term.
  • Slide 6
  • Computer programming Readability of source code 1 In computer programming, readability refers to the ease with which a human reader can comprehend the purpose, control flow, and operation of source code. It affects the aspects of quality above, including portability, usability and most importantly maintainability.
  • Slide 7
  • American Society for Quality Certifications 1 1972Reliability EngineerCREPrinciples of performance evaluation for product and system safety, reliability, and maintainability.
  • Slide 8
  • Database model Relationships and functions 1 A given database management system may provide one or more of the five models. The optimal structure depends on the natural organization of the application's data, and on the application's requirements, which include transaction rate (speed), reliability, maintainability, scalability, and cost. Most database management systems are built around one particular data model, although it is possible for products to offer support for more than one model.
  • Slide 9
  • Failure mode and effects analysis Detection (D) 1 This is important for maintainability control (Availability of the system) and it is specially important for multiple failure scenarios
  • Slide 10
  • Quality control Total quality control 1 For instance, the design of a pressure vessel should include not only the material and dimensions, but also operating, environmental, safety, reliability and maintainability requirements, and documentation of findings about these requirements
  • Slide 11
  • Kernel (computing) - Kernel-wide design approaches 1 While execute all of their code in the same address space (kernel space) microkernels try to run most of their services in user space, aiming to improve maintainability and modularity of the codebase
  • Slide 12
  • Software quality 1 Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements, such as robustness or maintainability, the degree to which the software was produced correctly.
  • Slide 13
  • Software quality 1 Based on these models, the Consortium for IT Software Quality (CISQ) has defined five major desirable structural characteristics needed for a piece of software to provide business value: Reliability, Efficiency, Security, Maintainability and (adequate) Size.
  • Slide 14
  • Software quality - Motivation 1 However, the distinction between measuring and improving software quality in an embedded system (with emphasis on risk management) and software quality in business software (with emphasis on cost and maintainability management) is becoming somewhat irrelevant
  • Slide 15
  • Software quality - Maintainability 1 Rather, poor maintainability is typically the result of thousands of minor violations with best practices in documentation, complexity avoidance strategy, and basic programming practices that make the difference between clean and easy-to-read code vs
  • Slide 16
  • Software quality - Maintainability 1 Assessing maintainability requires checking the following software engineering best practices and technical attributes:
  • Slide 17
  • Software quality - Maintainability 1 Maintainability is closely related to Ward Cunningham's concept of technical debt, which is an expression of the costs resulting of a lack of maintainability. Reasons for why maintainability is low can be classified as reckless vs. prudent and deliberate vs. inadvertent, and often have their origin in developers' inability, lack of time and goals, their carelessness and discrepancies in the creation cost of and benefits from documentation and, in particular, maintainable source code.
  • Slide 18
  • Software architecture - Software architecture characteristics 1 Jackson Structured Programming) were driven by required functionality and the flow of data through the system, but the current insight is that the architecture of a software system is more closely related to its quality attributes such as fault- tolerance, backward compatibility, extensibility, reliability, maintainability, availability, security, usability, and other such ilities
  • Slide 19
  • Software architecture - Architecture activities 1 development-time non-functional requirements such as maintainability and transferability defined in ISO 25010:2011 standard
  • Slide 20
  • Software architecture - Software architecture erosion 1 As an example, consider a strictly layered system, where each layer can only use services provided by the layer immediately below it. Any source code component that does not observe this constraint represents an architecture violation. If not corrected, such violations can transform the architecture into a monolithic block, with adverse effects on understandability, maintainability, and evolvability.
  • Slide 21
  • Erlang (programming language) - Concurrency and distribution orientation 1 Concurrency supports the primary method of error-handling in Erlang. When a process crashes, it neatly exits and sends a message to the controlling process which can take action. This way of error handling increases maintainability and reduces complexity of code.
  • Slide 22
  • Template metaprogramming - Benefits and drawbacks of template metaprogramming 1 Template metaprogramming allows the programmer to focus on architecture and delegate to the compiler the generation of any implementation required by client code. Thus, template metaprogramming can accomplish truly generic code, facilitating code minimization and better maintainability.
  • Slide 23
  • Software testing - Defects and failures 1 Not all software defects are caused by coding errors. One common source of expensive defects is requirement gaps, e.g., unrecognized requirements which result in errors of omission by the program designer. Requirement gaps can often be non-functional requirements such as testability, scalability, maintainability, usability, performance, and security. https://store.theartofserv


View more >