Software analysis pattern
Encyclopedia
Software analysis patterns or analysis patterns in 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...

 are conceptual models
Conceptual schema
A conceptual schema or conceptual data model is a map of concepts and their relationships. This describes the semantics of an organization and represents a series of assertions about its nature...

, which capture an abstraction of a situation that can often be encountered in modelling
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...

. An analysis pattern can be represented as "a group of related, generic objects (meta-classes) with stereotypical attributes (data definitions), behaviors (method signatures), and expected interactions defined in a domain-neutral manner."

Overview

Martin Fowler defines a pattern as an "idea that has been useful in one practical context and will probably be useful in others". He further on explains the analysis pattern, which is a pattern "that reflects conceptual structures of business processes rather than actual software implementations". An example:

Martin Fowler describes this pattern as one that "captures the memory of something interesting which affects the domain".

Describing an analysis pattern

While doing Analysis we are trying to understand the problem.Fowler does not detail in his book a formal way to write or to describe analysis patterns. Suggestions have been raised since to have a consistent and uniform format for describing them. Most of them are based on the work from Erich Gamma
Erich Gamma
Erich Gamma is Swiss computer scientist and co-author of the influential Software engineering textbook, Design Patterns: Elements of Reusable Object-Oriented Software. He co-wrote the JUnit software testing framework with Kent Beck and led the design of the Eclipse platform's Java Development Tools...

, Frank Buschmann and Christopher Alexander
Christopher Alexander
Christopher Wolfgang Alexander is a registered architect noted for his theories about design, and for more than 200 building projects in California, Japan, Mexico and around the world...

 on patterns (in architecture or computer science). One of them, proposed by Hahsler, has the following structure:
  • Pattern name: a pattern name should really reflect the meaning of what it is abstracting. It should be simple so that one can refer to it during analysis.
  • Intent: the intent aims to describe the goal the pattern is trying to achieve. It should also describe the problem it tries to solve.
  • Motivation: "A scenario that illustrates the problem and how the analysis pattern contributes to the solution in the concrete scenario"
  • Forces and context: "Discussion of forces and tensions which should be resolved by the analysis pattern"
  • Solution: "Description of solution and of the balance of forces achieved by the analysis pattern in the scenario in the motivation section. Includes all relevant structural and behavioural aspects of the analysis pattern."
  • Consequences: this should emphasise how the goal is achieved by the analysis pattern with its limitation.
  • Design: Suggestions of design implementations of this pattern.
  • Known uses: Real world examples of this pattern usage.


There are two main tasks where analysis pattern is used in software development process.They are as follows:
  • Analysis pattern suggest design patterns and reliable solutions for common problems and it facilitates the transformation of the analysis model into a design model.
  • Analysis patterns develop the abstract analysis models as early as possible.These models capture the main requirements of the concrete problem by providing reusable analysis models with examples as well as a description of advantages and limitations.

The World of Patterns

Patterns for the software development are latest "hot topic" from object oriented community.This is very interesting topic.Patterns are used to create a body of literature within a software community.It is helpful for software developers.This resolve recurring problem encountered throughout all of software development.Christopher Alexander develpoed a theory and collection of pattern in architecture.

See also

  • Design pattern (computer science)
    Design pattern (computer science)
    In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that...

  • Object-oriented analysis and design
    Object-oriented analysis and design
    Object-oriented analysis and design is a software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterised by its class, its state , and its behavior...

  • Problem frames approach
    Problem Frames Approach
    Problem analysis or the problem frames approach is an approach to software requirements analysis. It was developed by British software consultant Michael A...

     is another approach to software requirements analysis.
  • Role class model
    Role Class Model
    In computer science, the role class model is a role analysis pattern described by Francis G. Mossé in his article on Modelling Roles. The role class pattern provides the ability for a class to play multiple roles and to embed the role characteristic in a dedicated class.In our society, as we built...

     an example of analysis pattern applied to the role concept.
  • Requirements analysis
    Requirements analysis
    Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...


Further reading

This paper on pattern language for analysis pattern was presented at the PLoP 2002 (Pattern Language
Pattern language
A pattern language, a term coined by architect Christopher Alexander, is a structured method of describing good design practices within a field of expertise. Advocates of this design approach claim that ordinary people of ordinary intelligence can use it to successfully solve very large, complex...

s Of Programs
annual conference)

External links

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