SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.

Slides:



Advertisements
Similar presentations
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture # 16 Finalizing the Application Design SWE 316: Software Design and.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
Framework is l Reusable Code, often domain specific (GUI, Net, Web, etc) l expressed as l a set of classes and l the way objects in those classes collaborate.
Introduction To System Analysis and Design
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Object Oriented System Development with VB .NET
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Lecture Nine Database Planning, Design, and Administration
Reuse Activities Selecting Design Patterns and Components
The chapter will address the following questions:
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Introduction To System Analysis and design
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture # 05: Design Principles I - Correctness and Robustness SWE 316: Software.
Introduction to Object-oriented programming and software development Lecture 1.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Lecture # 06 Design Principles II
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Software Construction Lecture 10 Frameworks
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction To System Analysis and Design
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Approaching a Problem Where do we start? How do we proceed?
Chapter 7 System models.
Lecture 7: Requirements Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
1 How to Design Frameworks -- Copyright 2005 by Ralph E. Johnson How to Develop Frameworks Ralph E. Johnson Dept. of Computer Science 1304 W. Springfield.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Frameworks CompSci 230 S Software Construction.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 13 Creational Design Pattern SWE 316: Software Design and Architecture.
Software Design Process
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
Introduction (Continued) Design Patterns (I) Lecture Two.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Lecture 21: Component-Based Software Engineering
Basic Concepts and Definitions
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
Chapter 5:Design Patterns
CS 641 – Requirements Engineering
Component Based Software Engineering
Chapter 20 Object-Oriented Analysis and Design
Presentation transcript:

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand  … the meaning of “frameworks”  To be able to  … build frameworks  … complete a detailed design Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission. 14.4

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFrameworkDetailed Design x Key:= secondary emphasis x = main emphasis ReviewFrameworksFramework UsagesFramework Development 2/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser What is a software architecture?  An architecture for a software application is its high level design, enabling software engineers to gain understanding  An early stage of the system design process  It involves identifying major system components and their communications  Represents the link between specification and design processes Review FrameworksFramework UsagesFramework Development 3/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Framework  Framework --- a collection of classes applicable to multiple applications  Business logic: the parts that are particular to an application and are often not reused.  Reusability can be at the architecture level, design level, and code level  Try to answer the following questions:  Where do we keep classes slated for reuse?  How do we organize them?  Should we build in relationships among these classes Review Frameworks Framework UsagesFramework Development 4/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser The meaning and usage of frameworks  A framework is a collection of software artifacts that is usable by several different applications  Classes within a framework may be related and applications may use them by means of inheritance, aggregation or dependency.  E.g.  Java API’s (3D, 2D, Swing)  The Enterprise Java Bean (EJB) Review Frameworks Framework UsagesFramework Development 5/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Framework definitions  A framework is a set of cooperating classes that comprise a reusable backbone for a specific application domain.  A framework provides an integrated set of domain- specific functionality  A framework is a semi-complete application  A framework is customized to a particular application by deriving application specific classes from abstract classes defined by the framework. Review Frameworks Framework UsagesFramework Development 6/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Why frameworks  Frameworks are the key to OO reuse  Frameworks reuse analysis and design, not just code.  Frameworks reuse overall architecture, not just components. Review Frameworks Framework UsagesFramework Development 7/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Framework challenges  Developing high quality reusable extensible frameworks for application domains involves complicated tasks.  It takes a substantial amount of time and effort to learn how to utilize OO application frameworks.  Requirements of frameworks often change with changing application requirements.  Frameworks need maintenance including both adaptation and modification.  No current common standards exist for the design, implementation, documentation, and adaptation of frameworks. Review Frameworks Framework UsagesFramework Development 8/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Frameworks vs. components  Frameworks have lots of room for customization and they have interfaces that are more complex than those of many other components.  Frameworks and other software components are different but cooperating technologies.  Frameworks are built from building blocks, which are their component classes.  At the same time, frameworks themselves are application building blocks and are used to build larger systems. Review Frameworks Framework UsagesFramework Development 9/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Domain classes Design classes Class Model vs. Architecture and Detailed Design Framework classes Detailed design Architecture Class Model for this application DP = design pattern Review Frameworks Framework UsagesFramework Development 10/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Framework Usages 1- Toolkit  “Bag of tools” with no architectural assumption, e.g. java.math  A collection of useful classes  Each usable in isolation  (Sometime not called a framework) 2- Abstract architecture  Common denominator of architecture, with architectural assumption, e.g. java.awt and container class  An architecture in the abstract 3- Control  A system containing control, e.g. java.applet  Follow the protocols to obtain your application ReviewFrameworks Framework Usages Framework Development 11/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Selected Framework Goals  Persistence Service  Store instances between executions  Identity Service  Identify objects sufficiently to retrieve them across executions  Pooling  - of objects: Reusing objects at runtime to save time and space  - of threads  - of database connections  Security Goal : Reuse We Use Frameworks …to reuse classes, relationships among classes, or pre- programmed control. ReviewFrameworks Framework Usages Framework Development 12/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Framework design Issues  Keep it simple  Be consistent  Don’t make things almost the same  Design to prevent user errors (i.e. naming conventions)  Have default behavior  Have documentation especially for interactions ReviewFrameworks Framework Usages Framework Development 13/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Framework development  Framework Design  Framework Implementation  Framework Testing  Documentation Documentation Framework Design Framework Implementation Framework Testing Architectural Design ReviewFrameworksFramework Usages Framework Development 14/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Principles of framework design  First rule:  Don't design, buy one, instead.  Designing reusable code requires iteration  Reusable code requires many iterations.  Basic law of software engineering: “if it hasn't been tested, it doesn't work”, thus software that hasn't been reused is not reusable.  Frameworks encode domain knowledge  Frameworks solve a particular set of problems.  Not always application-domain specific  Customer of framework is application programmer  Frameworks are abstractions: people generalize from concrete examples ReviewFrameworksFramework Usages Framework Development 15/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Seeking Generalization: Bottom-up 1. Start with classes in class model 2. Look for generalizations Procedure WinProblem Problem WinProcedure ReviewFrameworksFramework Usages Framework Development 16/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Ideal way to develop framework  Analyze problem domain  Learn well-known abstractions.  Collect examples of programs to be built from framework. (Minimum of 4 or 5).  Design abstraction that covers examples.  look for commonalities, represent each idea once.  Test framework by using it to solve the examples.  Each example is a separate application.  Performing a test means writing software. Analysis Design Test ReviewFrameworksFramework Usages Framework Development 17/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Seeking Generalization: Top-down 1. Start with libraries (e.g., MFC) 2. Look for opportunities to use ListIteratorList ScheduledEvents library ReviewFrameworksFramework Usages Framework Development 18/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Why ideal is never followed  Analyzing domain requires analyzing individual examples, which is very hard.  Only practical if examples have already been analyzed.  Analyzing and implementing examples is large fraction of the cost of the project.  Old applications work, so there is no incentive to convert them to use framework. ReviewFrameworksFramework Usages Framework Development 19/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Good way to develop framework  Pick two similar applications.  Include developers experienced in the same domain.  One framework group  Consider other applications  Explain and teach framework  Two application groups  Try to reuse as much software as possible  Complain about how hard software is to use ReviewFrameworksFramework Usages Framework Development 20/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Typical way to develop framework  Notice that many applications are similar.  Develop next application in that domain in an OO language.  Divide software into reusable and non-reusable parts.  Develop next application reusing as much software as possible. Framework is not very reusable Fix it Develop next application reusing as much software as possible ReviewFrameworksFramework Usages Framework Development 21/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Another strategy  Design framework - prototype several small applications  Build real application  Refactor and extend framework ReviewFrameworksFramework Usages Framework Development 22/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Summary of process  Start with examples of desired applications  Iteratively develop abstractions  Test by building applications ReviewFrameworksFramework Usages Framework Development 23/24

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Summary  A framework is a collection of software artifacts that is usable by several different applications  Frameworks reuse overall architecture, not just components.  Framework development  Several strategies e.g., Top-Down, Bottom-Up ReviewFrameworksFramework UsagesFramework Development 24/24