P-Modeling Framework
   HOME

TheInfoList



OR:

P-Modeling Framework is a package of guidelines, methods, tools and templates for the development process improvement. P-Modeling
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
can be integrated into any other SDLC in use, e.g., MSF Agile, MSF
CMMI Capability Maturity Model Integration (CMMI) is a process level improvement training and appraisal program. Administered by the CMMI Institute, a subsidiary of ISACA, it was developed at Carnegie Mellon University (CMU). It is required by many U ...
, 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 is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
students that was aimed at making students go through a “condensed” version of communication problems typical for
software development Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
and gain the experience of applying UML to overcome these problems. This experiment was done in the following manner. A team of students was assigned the task of
design A design is the concept or proposal for an object, process, or system. The word ''design'' refers to something that is or has been intentionally created by a thinking agent, and is sometimes used to refer to the inherent nature of something ...
ing a
software system A software system is a system of intercommunicating software component, components based on software forming part of a computer system (a combination of Computer hardware, hardware and software). It "consists of a number of separate Computer progr ...
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 diagram The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system. UML provides a standard notation for many types of diagrams which can be roughly ...
s 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.


Basic principles


Reverse Semantic Traceability

Reverse Semantic Traceability is a
quality control Quality control (QC) is a process by which entities review the quality of all factors involved in production. ISO 9000 defines quality control as "a part of quality management focused on fulfilling quality requirements". This approach plac ...
method that allows
testing Test(s), testing, or TEST may refer to: * Test (assessment), an educational assessment intended to measure the respondents' knowledge or other abilities Arts and entertainment * ''Test'' (2013 film), an American film * ''Test'' (2014 film) ...
outputs of every translation step. Before proceeding to the next phase, the current artifacts are “
reverse engineered Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompl ...
”, 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 Semantics is the study of linguistic Meaning (philosophy), meaning. It examines what meaning is, how words get their meaning, and how the meaning of a complex expression depends on its parts. Part of this process involves the distinction betwee ...
.” 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 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 A waterfall is any point in a river or stream where water flows over a vertical drop or a series of steep drops. Waterfalls also occur where meltwater drops over the edge of a tabular iceberg or ice shelf. Waterfalls can be formed in seve ...
,
spiral In mathematics, a spiral is a curve which emanates from a point, moving further away as it revolves around the point. It is a subtype of whorled patterns, a broad group that also includes concentric objects. Two-dimensional A two-dimension ...
, various iterative-incremental or some others, there are certain processes, such as
software design Software design is the process of conceptualizing how a software system will work before it is implemented or modified. Software design also refers to the direct result of the design process the concepts of how the software will work which co ...
,
quality control Quality control (QC) is a process by which entities review the quality of all factors involved in production. ISO 9000 defines quality control as "a part of quality management focused on fulfilling quality requirements". This approach plac ...
,
human resources management Human resource management (HRM) is the strategic and coherent approach to the effective and efficient management of people in a company or organization such that they help their business gain a competitive advantage. It is designed to maximize e ...
,
risk management Risk management is the identification, evaluation, and prioritization of risks, followed by the minimization, monitoring, and control of the impact or probability of those risks occurring. Risks can come from various sources (i.e, Threat (sec ...
,
communication management Communications management is the systematic planning, implementing, monitoring, and revision of all the channels of communication within an organization and between organizations. It also includes the organization and dissemination of new commun ...
, etc. to which can P-Modeling Framework principles can be applied, especially in the earlier stages of a
project A project is a type of assignment, typically involving research or design, that is carefully planned to achieve a specific objective. An alternative view sees a project managerially as a sequence of events: a "set of interrelated tasks to be ...
when quality control activities are either minor or (virtually) absent.


Requirements and limitations

# All the P-Modeling Session members should speak some
graphical modeling language A modeling language is any artificial language that can be used to express data, information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in ...
fluently. # Minimum of 8 qualified people required for full-blown P-Modeling Session. # Minimum of 3 qualified people required for an efficient RST Session. # P-modeling Framework doesn’t provide the possibility to detect ambiguous, contradicting, and incomplete aspects in requirements or client requests. # 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 A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming. The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...
s. * While doing RST, texts should be compared manually which means that the
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
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.


References


Vladimir Pavlov, Anton Yatsenko. Using Pantomime in Teaching OOA&OOD with UML
''18th IEEE Conference on Software Engineering Education and Training (CSEE&T)'', Ottawa, Canada.
Vladimir Pavlov, Anton Yatsenko. The Babel Experiment: An Advanced Pantomime-based Training in OOA&OOD with UML
''36th ACM Technical Symposium on Computer Science Education (SIG CSE 2005)'', St Louis, Missouri, USA.


External links


Microsoft website (MSF)

IBM website (RUP)

OMG UML website

Vladimir L. Pavlov website

P-Modeling Framework Whitepaper


Software development process Agile software development Microsoft development tools