170 likes | 370 Views
اليوم العلمي لتكنولوجيا المعلومات تكنولوجيا المعلومات في فلسطين طموحات و امال. Patterns: Tools For Reuse. Dr. Tawfiq S.M. Barhoom – د. توفيق سليمان برهوم tbarhoom@iugaza.edu Head of Info.Sys.Tech.Dep.- رئيس قسم نظم تكنولوجيا المعلومات Faculty of Info.Tech.- كلية تكنولوجيا المعلومات
E N D
اليوم العلمي لتكنولوجيا المعلوماتتكنولوجيا المعلومات في فلسطين طموحات و امال Patterns: Tools For Reuse Dr. Tawfiq S.M. Barhoom –د. توفيق سليمان برهوم tbarhoom@iugaza.edu Head of Info.Sys.Tech.Dep.- رئيس قسم نظم تكنولوجيا المعلومات Faculty of Info.Tech.- كلية تكنولوجيا المعلومات Islamic university-Gaza -–الجامعة الاسلامية- غزة
Abstract • With each attempt a lot of works repeatedand may in the same way of previous successful attempts. (Recurring Problem) • Pattern:a way to capture and document successful experiences in solving recurring problem in a domain from experts in a structured way. Thus novices can benefit from the know-how and skills of experts. • Smartest idea: is the documentation pattern using alanguagethat every one can understand. • This presentation to • Introduce thepattern concept • Therelationshipsamongst the patterns are the clue to form apattern language. • Show how patterns cancontributesoftware engineering. • Steps to work with patterns in your domain.
Patterns Conceptvalue of experience • capturing experience from experts in a structured way. • novices can benefit from that know how the experts thought on the problem and can inherit them skills
Prioritizes Forces Patterns users Operates on Context Has Resolves Solves Solution Problem Patterna solution to a problem in a context a set of forces a canonical design form or design rulethat someone can apply to resolve these forces a recurring set of situations in which the pattern applies. Thereby all relevant context parameters have to be taken into account goals and constraints The relation between the pattern elements
Patterns Templateformat to be used for describing patterns • “Alexandrian Form”Martin [MR-01] wrote: "Each pattern is athree part rule, which express a relation between a certain context, a problem, and a solution" • "Goff format" = "canonical form“ • Name: memorable phrase to stress the action implied in applying the pattern. • Problem : A single sentence gives the user glance about the heart of the problem addressed by the pattern. The sentence may be followed by short statement to describe the complete problem.. • Context : A recurring set of situations in which the pattern applies, giving the prerequisites that should be satisfied before considering the pattern. • Forces : Shows what considerations are to be accounted for when deciding on a solution to the problem • Solution : Informal Textual Notation, Formal Textual Notation (Idioms), Graphical Notation • Examples : sample(s) app.s of the pattern which illustrate • Related Patterns : relationships between this pattern and others • Known Uses: Describes known occurrences of the pattern and its application within existing systems
Patterns Benefitsconsequences • enable large-scale reuse of software architectures. Help document systems to enhance understanding. • Patterns explicitly capture expert knowledge and design tradeoffs, and make this expertise more widely available. • Patterns help improve developer communication.
Patterns Miningfinding patterns • The process of looking for patterns to document (reverse-architecting ) • No theoretical approaches have been developed for patterns mining. It is an attempt by practitioners to document their best practices. • not easy task - Patterns should • tell the complete success experience story. • should help its users to: • comprehend existing systems; • customize systems to fit user needs; and • construct new systems
Patterns Mining (cont)finding patterns • important consideration within the pattern mining • Focus on practicability: describe proven solutions to recurring problems • Aggressive disregard of originality: writers do not need to be the original • Non-anonymous review: contacts the pattern author(s) for discussion. • Writer's workshops instead of presentations: Rather than being presented by the individual authors,patterns are discussed in writer's workshops • Careful editing: authors have to incorporate all the comments before presenting the patterns in their finished form
Pattern X Pattern Y problem Patterns Relationshipswork together • important questions: Amongst the many different patterns (X,Y) that are being discovered • are any related to each other? What are the characteristics of such a relationship? • Do two patterns address a similar problem area? • Is it possible to combine two patterns? • What are the criteria for classifying patterns into categories?
Patterns Relationships (con.)work together • GOF catalogue: twenty design patterns and their mutual relationships. classified into three categories according to characterization(Creational Patterns, Structural Patterns, and Behavioral Patterns) Primary Secondary Pattern X Pattern X Pattern Y Use (composition) Similar –Use, Refines Refines(inheritance) Combines - Use Conflicts(ME) Requires - Use problem
Patterns collectionsPatterns do not stand-alone • Three different types of pattern collections have been identified, These three pattern collections possess varying degrees of structure and interaction : • pattern language - a collection of patterns and the rules to combine them into an architectural style (framework) [common def.]. • pattern system - a cohesive set of related patterns which work together to support the construction and evolution of whole architectures, and • pattern catalog - a collection of related patterns, where patterns are subdivided into a small number of broad categories,
Patterns Language smartest idea behind the patterns • Definition • collection of patterns and the rules to combine them into an architectural style. • describe software frameworks or families of related systems • it is a prose document, with a purpose to guide and inform the designer. • includes rules and guidelines which explain how and when to apply its patterns to solve a problem, which an individual pattern could not solve. • These rules and guidelines suggest the order and granularity for applying each pattern in the language. • good pattern languages should be generative, and capable of generating all the possible sentences from a rich and expressive pattern vocabulary
Patterns Language Benefits • reduce the time it takes people to communicate • they reduces the work to be done in the domain • makes procedure to solve the problem more interesting • The well-documented patterns help in communicated with others they don’t understand what you are talking about.
Pattern in Software Developmentuse patterns Domain Knowledge Design Pattern Choice design Pattern Design Pattern Library Applydesignpattern Choiceknowledge Information System Developmentprocess Buildsystem
DOMAINto be documented using patterns DOMAINunderstanding • Point out recurringproblems in a DOMAIN Flow Steps While Work With Patterns • Design pattern (pattern): • Pattern definition • principle • Pattern groups • Patterns on a DOMAIN • Template - should be found • Mining – discover and mining the recurring problem • Relationships – define the relationships amongst the patterns • Languages – introduce patterns languages depend on the relationships. • DOMAIN - Patterns languages • DOMAINapplication model using the language
Confidentiality Security Concept Patterns Integrity Authentication Security Concepts Understood Nonrepudiation Encryption Inside XML Document Dig. Signature XML-Based Security Analysis Patterns XACL S2ML Outside XML Document XKMS SAML XML-based Security Analyzed Encryption process Decryptionprocess Process Patterns Signingprocess Verificationprocess X-KISS X-KRSS Description of the XML-based security patterns language (example) . :
شكرا ؟؟