HOME

TheInfoList



OR:

P-Modeling Framework is a package of guidelines, methods, tools and templates for the
development process Development or developing may refer to: Arts *Development hell, when a project is stuck in development * Filmmaking, development phase, including finance and budgeting *Development (music), the process thematic material is reshaped * Photograp ...
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 Agile may refer to: * Agile, an entity that possesses agility Project management * Agile software development, a development method * Agile construction, iterative and incremental construction method * Agile learning, the application of incremen ...
, 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 man ...
, 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 systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
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 conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
and gain the experience of applying
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally ...
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 a plan or specification for the construction of an object or system or for the implementation of an activity or process or the result of that plan or specification in the form of a prototype, product, or process. The verb ''to design'' ...
ing a
software system A software system is a system of intercommunicating components based on software forming part of a computer system (a combination of hardware and software). It "consists of a number of separate programs, configuration files, which are used to s ...
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, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally ...
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 In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
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 Reverse semantic traceability (RST) 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 Each stag ...
is a quality control method that allows
testing An examination (exam or evaluation) or test is an educational assessment intended to measure a test-taker's knowledge, skill, aptitude, physical fitness, or classification in many other topics (e.g., beliefs). A test may be administered verba ...
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 accompli ...
”, 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 (from grc, σημαντικός ''sēmantikós'', "significant") is the study of reference, meaning, or truth. The term can be used to refer to subfields of several distinct disciplines, including philosophy, linguistics and comput ...
.” 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 a 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 severa ...
,
spiral In mathematics, a spiral is a curve which emanates from a point, moving farther away as it revolves around the point. Helices Two major definitions of "spiral" in the American Heritage Dictionary are:iterative-incremental or some others, there are certain processes, such as
software design Software design is the process by which an agent creates a specification of a software artifact intended to accomplish goals, using a set of primitive components and subject to constraints. Software design may refer to either "all the activity ...
, quality control,
human resources management Humans (''Homo sapiens'') are the most abundant and widespread species of primate, characterized by bipedalism and exceptional cognitive skills due to a large and complex brain. This has enabled the development of advanced tools, culture, an ...
, risk management,
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 communi ...
, etc. to which can P-Modeling Framework principles can be applied, especially in the earlier stages of a
project A project is any undertaking, carried out individually or collaboratively and possibly involving research or design, that is carefully planned to achieve a particular goal. An alternative view sees a project managerially as a sequence of even ...
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 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 the ...
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 computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software. A programmer is someone who writes/creates ...
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