Semiformal methods are state-of-the-art methods used in many industrial projects. They are a compromise between informal methods (English text) and fully formal methods (see the next section) that use mathematical notations to describe and reason about the software systems. In other words, semiformal methods use description languages that are partially formal and partially informal (syntax and semantics, leaving different interpretations possible for the same description). Semiformal notations are, therefore, more flexible and do not require that every part of a system be described rigorously or in-depth. Such methods also consume much less time and effort than their formal counterparts, which is important for some budget-limited and noncritical projects. Any programmer can also learn them easily.
Semiformal notations are frequently used for design. Well-known methods are Object-Oriented Analysis, Object-Oriented Design (OOA/OOD), Booch, Universal Modeling Language (UML), and Hierarchical Object-Oriented Design (HOOD). Most of them are supported by tools that allow you to produce a semiformal design easily (Rational Rose supports UML, for instance) and manipulate it easily (browsing, editing, etc.). These notations often incorporate a code generator that produces a partial program written in some high-level programming language (C, C++, or Ada). The target code is generally incomplete, resembling a skeleton whose details are absent. A designer can refine its specification into a design and formalize it in a semiformal design language. Then, the target code must be refined until the code is complete and can be compiled. This refinement process is one in which more details are added at every stage.
UML2 is actually an intensively used semiformal method, combining a number of notations such as class diagrams with a number of ways to describe behaviors. UML also uses activity diagrams and STATECHARTS, both of which offer a level of formality greater than that provided by the class and object diagrams. UML allows you to describe a wide variety of systems (therefore its name) due to the grouping of many notations into a single method.
Was this article helpful?
Read how to maintain and repair any desktop and laptop computer. This Ebook has articles with photos and videos that show detailed step by step pc repair and maintenance procedures. There are many links to online videos that explain how you can build, maintain, speed up, clean, and repair your computer yourself. Put the money that you were going to pay the PC Tech in your own pocket.