P-Modeling Framework
Encyclopedia
P-Modeling Framework is a package of guidelines, methods, tools and templates for the development process
Software development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...

 improvement. P-Modeling framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

 can be integrated into any other SDLC
Systems Development Life Cycle
The systems development life cycle , or software development life cycle in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems.In software engineering...

 in use, e.g., MSF
Microsoft Solutions Framework
Microsoft Solutions Framework is a set of principles, models, disciplines, concepts, and guidelines for delivering information technology solutions from Microsoft. MSF is not limited to developing applications only, it is also applicable to other IT projects like deployment, networking or...

 Agile
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

, MSF CMMI, RUP, etc.

History

The origins of P-Modeling Framework come from "The Babel Experiment" designed by Vladimir L. Pavlov in 2001 as a training program for software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

 students that was aimed at making students go through a “condensed” version of communication problems typical for software development
Software development
Software development is the development of a software product...

 and gain the experience of applying UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 to overcome these problems.

This experiment was done in the following manner.
A team of students was assigned the task of design
Design
Design as a noun informally refers to a plan or convention for the construction of an object or a system while “to design” refers to making this plan...

ing a software system
Software system
A software system is a system based on software forming part of a computer system . The term "software system" is often used as a synonym of computer program or software; is related to the application of systems theory approaches in software engineering context and are used to study large and...

 with the following restriction factor: UML had to be the only language allowed for communication while working on the project. The premise was intended to make students go through a “condensed” version of communication problems typical for software development and gain the experience of applying UML to overcome these problems. As the result of this experiment, students developed quite clear and concise models.

A little later, during a design session, there were two independent teams working on the same task. The communication means of the first team was restricted to UML as described above, while the other team was allowed to communicate verbally using a natural language. It turned out that the first, more restricted team, performed the task more efficiently than the other one. The UML diagrams created by the first team were more sound, detailed, readable, and elaborated.

Subsequently, Vladimir L. Pavlov conducted a number of additional experiments intended to reveal whether the “silent” modeling sessions are more productive than the traditional ones. In these experiments, silent teams appeared to be at least as efficient as the others, and in some cases the silent teams outperformed the traditional ones.

Some of the interpretations of these results are the following:
  • The restriction on using a natural language may stimulate creativity of the designers as well as force them to stay focused on their job;
  • Work in speechless mode may force designers to explicitly uncover all underlying assumptions at the very early stages of the design process;
  • UML is not treated as a superfluous burden irrelevant to real-life needs (as a “write-only” language) — instead, the designers may begin to demonstrate greater concern about the quality and readability of their models.


Afterwards, ideas were constructed for conducting additional new experiments with the intention of finding a method to compare UML to natural languages. The premise in these experiments was to set up forward (from a natural language to UML) and backward (from UML to the natural language) "translation" tasks for two teams of professional software designers. This would be done with one team performing the forward translation and the other one performing the backward translation. The intention was to observe how closely the outcome of the backward translation resembled the original text, thus providing verification of correctness of UML model.

The experiments showed that, for information describing software systems, UML has sufficient power of expression required to maintain the model's content. Texts obtained after the backward translation from UML were semantically equivalent to the original.

The experiments suggested the model of the entire software development cycle existed as a series of translations. In subsequent experiments backward translation verification has been demonstrated as a method to help guarantee deliverables of each development step do not lose, or have misinterpreted, anything that was produced at the previous step. This method has been named "Reverse Semantic Traceability." It has proven to be a solid second part completion to the P-Modeling Framework.

Reverse Semantic Traceability

Reverse Semantic Traceability
Reverse semantic traceability
Reverse Semantic Traceability is a quality control method for verification improvement that helps to insure high quality of artifacts by backward translation at each stage of the software development process.- Brief introduction :...

 is a quality control
Quality control
Quality control, or QC for short, is a process by which entities review the quality of all factors involved in production. This approach places an emphasis on three aspects:...

 method that allows testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

 outputs of every translation step. Before proceeding to the next phase, the current artifacts are “reverse engineered
Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...

”, and the restored text is compared to the original. If there is a difference between these two texts – the tested artifacts are corrected to eliminate the problem (or initial text is corrected.) Consequently, every step is confirmed by stepping back and making sure that development stays on the correct track. In this way, issues may be discovered and fixed without delays, so they do not accumulate, and do not cascade to subsequent phases of the development cycle.

The key word in the name of this method is “Semantic.” It is based on the fact the original and restored versions of a text are to be compared semantically, with a focus on the “meaning” of the text, not on particular “words” used in it.

The highest usage scenarios reported by early adopters of Reverse Semantic Traceability method are:
  • Validating UML models: quality engineers
    Quality control
    Quality control, or QC for short, is a process by which entities review the quality of all factors involved in production. This approach places an emphasis on three aspects:...

     restore a textual description of a domain, original and restored descriptions are compared.
  • Validating model changes for a new requirement: given an original and changed versions of a model, quality engineers restore the textual description of the requirement, original and restored descriptions are compared.
  • Validating a bug fix: given an original and modified source code, quality engineers restore a textual description of the bug that was fixed, original and restored descriptions are compared.
  • Integrating new software engineer into a team: a new team member gets an assignment to do Reverse Semantic Traceability for the key artifacts from the current projects.

Speechless modeling

Being originally invented as an advanced training to teach Object-Oriented Analysis and Design with UML to students, the Speechless Modeling, in essence, is a restriction on using communication means directly or indirectly involving a natural language. In this way, a team of designers is forced to use the modeling language as the only language available for communication during a design session.

Incorporating P-Modeling Framework into Software Development Life Cycle (SDLC)

Regardless of what type of development process is used in an organization; waterfall
Waterfall model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.The waterfall...

, spiral
Spiral model
The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model , it is a systems development method used in information technology...

, various iterative-incremental
Iterative and incremental development
Iterative and Incremental development is at the liver of a cyclic software development process developed in response to the weaknesses of the waterfall model...

 or some others, there are certain processes, such as software design
Software design
Software design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution...

, quality control
Quality control
Quality control, or QC for short, is a process by which entities review the quality of all factors involved in production. This approach places an emphasis on three aspects:...

, human resources management, risk management
Risk management
Risk management is the identification, assessment, and prioritization of risks followed by coordinated and economical application of resources to minimize, monitor, and control the probability and/or impact of unfortunate events or to maximize the realization of opportunities...

, communication management, etc. to which can P-Modeling Framework principles can be applied, especially in the earlier stages of a project
Project
A project in business and science is typically defined as a collaborative enterprise, frequently involving research or design, that is carefully planned to achieve a particular aim. Projects can be further defined as temporary rather than permanent social systems that are constituted by teams...

 when quality control activities are either minor or (virtually) absent.

Requirements and limitations

  1. All the P-Modeling Session members should speak some graphical modeling language
    Modeling language
    A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules...

     fluently.
  2. Minimum of 8 qualified people required for full-blown P-Modeling Session.
  3. Minimum of 3 qualified people required for an efficient RST Session.
  4. P-modeling Framework doesn’t provide the possibility to detect ambiguous, contradicting, and incomplete aspects in requirements or client requests.
  5. Speechless Modeling Session requires large amount of energy and efforts from participants.

Criticism

P-Modeling Framework obviously has some room for further improvement. For example:
  • P-Modeling Sessions require additional resources without knowledge of the original artifact and add extra workload for programmer
    Programmer
    A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...

    s.
  • While doing RST, texts should be compared manually which means that the framework
    Software framework
    In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

    lacks automation.
  • One of the possible outcomes in RST is the situation when people "design for RST" — they create artifacts in a way they can be easily reconstructed, without adding new value.
  • There’s no reliable statistical evidence of the P-Modeling Framework effectiveness.
  • The “silent design sessions” have quite a narrow applicability: only to systems and organizations that can and need document the system in graphical modeling language. This is not the case when:
    • Company doesn’t have enough developers “speaking any graphical modeling language” fluently and knowing when and how to apply it, which means very highly-qualified.
    • Company doesn’t use any graphical modeling language extensively.
  • P-Modeling Sessions can’t help to differentiate between good design and bad design.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK