Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.

Slides:



Advertisements
Similar presentations
28 March 2003e-MapScholar: content management system The e-MapScholar Content Management System (CMS) David Medyckyj-Scott Project Director.
Advertisements

User Driven Modelling and Systematic Interaction for End-User Programming Modelling for Engineering Processes Peter Hale UWE.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 7 Title : Object Oriented Analysis and Design Reading: I. Sommerville,
Requirements Analysis Concepts & Principles
Software Requirements
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
© Copyright Eliyahu Brutman Programming Techniques Course.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Foundations This chapter lays down the fundamental ideas and choices on which our approach is based. First, it identifies the needs of architects in the.
1212 Management and Communication of Distributed Conceptual Design Knowledge in the Building and Construction Industry Dr.ir. Jos van Leeuwen Eindhoven.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Science Inquiry Minds-on Hands-on.
Moving forward with Scalable Game Design. The landscape of computer science courses…  Try your vegetables (sneak it in to an existing course)  Required.
The Re-engineering and Reuse of Software
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
BUSINESS INFORMATICS descriptors presentation Vladimir Radevski, PhD Associated Professor Faculty of Contemporary Sciences and Technologies (CST) Linkoping.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
RCDL Conference, Petrozavodsk, Russia Context-Based Retrieval in Digital Libraries: Approach and Technological Framework Kurt Sandkuhl, Alexander Smirnov,
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Chapter 7 System models.
The roots of innovation Future and Emerging Technologies (FET) Future and Emerging Technologies (FET) The roots of innovation Proactive initiative on:
System models l Abstract descriptions of systems whose requirements are being analysed.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Introduction to Software Engineering Lecture 1.
Illustrations and Answers for TDT4252 exam, June
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Knowledge Representation of Statistic Domain For CBR Application Supervisor : Dr. Aslina Saad Dr. Mashitoh Hashim PM Dr. Nor Hasbiah Ubaidullah.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
System Context and Domain Analysis Abbas Rasoolzadegan.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
27/3/2008 1/16 A FRAMEWORK FOR REQUIREMENTS ENGINEERING PROCESS DEVELOPMENT (FRERE) Dr. Li Jiang School of Computer Science The.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Review of last class Software Engineering Modeling Problem Solving
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Introduction to Design Patterns
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Abstract descriptions of systems whose requirements are being analysed
2. An overview of SDMX (What is SDMX? Part I)
Members: Keshava Shiva Sanjeeve Kareena
Presentation transcript:

Banaras Hindu University

A Course on Software Reuse by Design Patterns and Frameworks

by Dr. Manjari Gupta Department of Computer Science Banaras Hindu University

Lecture 10 Framework Documentation Using Pattern Language

 means of both building and describing frameworks.  many formats are to framework documentation  describe the common problems that occur within a domain  describe how the framework can be used to addresses these issues Pattern language

 Johnson was the first person to propose the use of a pattern language to document frameworks  describe solutions to the common problems that face developers trying to reuse a framework  presented in natural language  can include examples and illustrations to help communicate the problem being addressed Johnson’s Pattern Language

 is organised into a directed graph where  the nodes of the graph form the patterns and  the arcs represent references between patterns.  Common frequently required patterns are presented closer to the root of the graph  more obscure and technical patterns are pushed out toward the edges of the graph  root of the graph is a special overview pattern Johnson’s Pattern Language

 The format of each pattern  name to identify the pattern,  a description of the problem it solves,  a discussion on possible solutions and their merits, and  a summary of how to best solve the problem.  pattern format is textual in nature  are no formal guidelines provided to support neither the identification nor description of useful patterns Johnson’s Pattern Language

 three important areas for framework documentation to address  purpose, how to use and design  patterns can address all of these areas  Example programs are closely integrated. Johnson’s Pattern Language

 integrates design patterns and contracts together within a pattern language structure.  taxonomy of reuse levels  small, medium and large scale activities  Based on different types of knowledge that are required by developers during reuse Lajoie and Keller Pattern Language

 At the smallest scale  reuse is concerned with describing class and method level behaviours,  At the medium level  the emphasis changes to inter class communication  At the largest scale  developers are concerned with the gross behaviour displayed by entire applications. Lajoie and Keller Pattern Language

 The documentation technique focuses on the medium level of reuse  developers are challenged by their lack of course grained knowledge about a system.  micro-architecture  a collaboration of classes, which represent some important unit of behaviour, offered by the framework.  experienced framework developers use such a course-grained model of the system  they think of framework modification in terms of composing and altering these larger units of code rather than individual classes.  describes micro-architectures using a combination of design patterns and a specialised implementation of Helm's contracts Lajoie and Keller Pattern Language

 To tie the individual micro architecture descriptions together an implementation of Johnson's pattern language (renamed as motifs) where the descriptions have been altered to include references to design pattern and contract information.  a separation in the documentation used to describe the framework and example applications  recursive style of documentation Lajoie and Keller Pattern Language

 motifs describe the first two of these  the use of design patterns and contracts describes the design of the framework Lajoie and Keller Pattern Language

 incorporate many of the ideas expressed in patterns, motifs and hooks into one form of documentation.  derived from industrial experience  work is grounded in the psychology literature on how humans learn and construct mental models.  documentation is classified into a pyramid like structure  abstract ideas gradually give way to more concrete and detailed ideas as the developer works through the documentation. Meusel’s Pattern Language

 The pyramid is organised into three levels  framework selection,  standard use and  detailed design.  These levels are directly comparable to framework documentation in terms of purpose, how to use and design Meusel’s Pattern Language

 Framework selection is supported by the use of a catalogue pattern  describes an overview of the domain and capabilities offered by the framework.  application patterns  Describes the standard use of the framework  resemble Froelich hooks and Lajoie motifs in terms of their structure and references to other forms of documentation. Meusel’s Pattern Language

 Name: identifies the framework  Type: describes the construction of the framework, white box, black box etc,  Keywords: suggest the purpose of the framework  Problem description: a description of the domain that this framework addresses  Solution: Major capabilities and design concepts embodied by the framework  Examples: list of typical applications  Documentation: description of available documentation and suggested entry points  Other frameworks: names of similar frameworks to investigate Catalogue pattern format

 Name: identifies the purpose of the pattern  Context: describes the environment in which the problem occurs  Problem: identifies the problem addressed by this pattern  Solution flowchart: algorithm that addresses the problem  Explanations: further detail on important stages of the solution (including example code)  Examples: links to examples that illustrate this problem  Design information: Links to further more detailed documentation Application pattern format

 Meusel et al suggest  hotspots should be used as a mechanism to identify the appropriate areas to document using application patterns.  The detailed design of the framework is documented using a mixture of different pre-existing techniques including  design patterns, class references (like JavaDoc) and object model notations.  the use of tools to reverse engineer design information from the framework itself. Meusel’s Pattern Language

 Each level of documentation is linked to the level below via hypertext wherever appropriate.  emphasise the opportunistic use of documentation to support specific queries about a framework  encourage the developers to test their hypotheses against the framework documentation.  suggest that appropriate search engines should be provided to facilitate this usage of the documentation. Meusel’s Pattern Language

 comprises a set of interdependent patterns  the patterns are organized  According to the nature of the problems addressed  in process and artefact patterns Aguiar and David Pattern Language

 process patterns  address questions such as how to do it? Which activities, roles and tools are needed?  are strictly related with the process of cost effectively documenting frameworks.  Artifact patterns  address questions such as which kinds of documents to produce? what should they include? how to relate them? Aguiar and David Pattern Language

 are related with the process of documenting object- oriented frameworks  life cycle of framework documentation can be organized in five basic activities  configuration, production, organization, usage, and maintenance. Documentation process patterns

Documentation process patterns and their relationships

 address problems related with the documentation itself  seen as an autonomous and tangible product independent of the process used to create it.  provide guidance on choosing the kinds of documents to produce, how to relate them, and what to include there Artefact Patterns

 From the reader’s point of view,  on providing accurate task-oriented information,  well-organized,  understandable, and  easy to retrieve with search and query facilities.  From the writer’s point of view,  selecting the contents to include,  choosing the best representation for the contents, and  organizing the contents adequately Artefact Patterns

Documentation artifact patterns and their relationships