Criteria Based Software Product Integration Architecture F. Tsui Southern Polytechnic State University.

Slides:



Advertisements
Similar presentations
Software Engineering Key design concepts Design heuristics Design practices.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Structured Design. 2 Design Quality – Simplicity “There are two ways of constructing a software design: One is to make it so simple that there are obviously.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part II)
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Copyright W. Howden1 Lecture 6: Design Evaluation and Intro to OO Design Patterns.
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part I)
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
Criteria for good design. aim to appreciate the proper and improper uses of inheritance and appreciate the concepts of coupling and cohesion.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Software Design Fundamentals Design Principles
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Coupling and Cohesion Source:
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Cohesion and Coupling CS 4311
The Systems Development Life Cycle
GRASP: Designing Objects with Responsibilities
Coupling Cohesion Chandan R. Rupakheti Steve Chenoweth (Chapter 18)
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Criteria Based Software Product Integration Architecture (2007) F. Tsui Kennesaw State University (Southern Polytechnic State University)
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Jump to first page (C) 1998, Arun Lakhotia 1 Design Quality Metrics Arun Lakhotia University of Southwestern Louisiana Po Box Lafayette, LA 70504,
Computer Science 340 Software Design & Testing Software Architecture.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
11 Software Design CSCU 411 Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
Systems Development Lifecycle
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
7. Modular and structured design
Coupling and Cohesion Rajni Bhalla.
Coupling and Cohesion 1.
Design Characteristics and Metrics
Component-Level Design
Lecture 9- Design Concepts and Principles
Software Quality Engineering
Class and Method Design
Cohesion and Coupling Chapter 5, Pfleeger 01/01/10.
Chapter 13 Logical Architecture.
CIS 375 Bruce R. Maxim UM-Dearborn
Improving the Design “Can the design be better?”
CS223: Software Engineering
Lecture 9- Design Concepts and Principles
Chapter 13 Logical Architecture.
Software Design Lecture : 8
Design Module view What module should the system and which have to be developed . It determines the module structure of components.
Cohesion and Coupling.
Chapter 2: Building a System
Chapter 8: Design: Characteristics and Metrics
Building a “System” Moving from writing a program to building a system. What’s the difference?! Complexity, size, complexity, size complexity Breadth.
Chapter 13 Logical Architecture.
Presentation transcript:

Criteria Based Software Product Integration Architecture F. Tsui Southern Polytechnic State University

Software Integration at the code level –Inheritance (from OO) –object code libraries –code patterns at the component level –design patterns –component libraries, if available at the product level –code –database –user interface –user guides

Software Product Integration Why do we care? –Business is connected and needs to operate in an integrated fashion; thus software it uses must also reflect that human resource procurement sales financial etc. –Software industry itself experiences a large amount of partnerships or merger/acquisition activities; thus there is a need for two or more successful software products to operate as a product “family”

Software Product Family What are some of the issues that we should consider for software product family or for software product architecture?: 1.Terminology 2.Packaging & delivery 3.User interface 4.Product manuals and user guides 5.Application functionalities 6.Application flow and control 7.Data stored, processed, and shared 8.Systems, subsystems, and middleware platforms 9.Internationalization 10.Customer support and maintenance

A Software Product Integration Architecture Co-Existence Integration Strong Integration Intermediate Integration Low-Level Integration Increasing levels of product integration

“Coupling” and “Cohesion” in Product Integration Co-Existence Integration Strong Integration Intermediate Integration Low-Level Integration Increase in coupling Increase in cohesion low-coupling weak product family cohesion strong product family cohesion high-coupling

A Software Product Integration Architecture Co-Existence Integration Strong Integration Intermediate Integration Low-Level Integration -Packaging & delivery -System, subsystem & middleware platform -internationalization

A Software Product Integration Architecture Co-Existence Integration Strong Integration Intermediate Integration Low-Level Integration -Packaging & delivery -System, subsystem & middleware platform -Internationalization -Terminology -Application UI -Product manuals -Product support& maintenance

A Software Product Integration Architecture Co-Existence Integration Strong Integration Intermediate Integration Low-Level Integration -Packaging & delivery -System, subsystem & middleware platform -Internationalization -Terminology -Application UI -Product manuals -Product support& maintenance - Data stored, processed & shared -Application flow & control

A Software Product Integration Architecture Co-Existence Integration Strong Integration Intermediate Integration Low-Level Integration -Packaging & delivery -System, subsystem & middleware platform -Internationalization -Terminology -Application UI -Product manuals -Product support& maintenance - Data stored, processed & shared -Application flow & control - Functionalities & features

Low Coupling and High Cohesion Coupling is the degree of connectedness among modules: –Control passing –Data passing Coupling should be kept to minimum – low coupling in design Cohesion is the degree of relatedness of the parts within a module Cohesion should be maximized --- high cohesion in design

Application of Traditional “modular” Coupling and Cohesion Notions Coupling –Content –Common –Control –Stamp –Data Cohesion –Coincidental –Logical –Temporal –Procedural –Communicational –Sequential –Functional

Implications of Coupling & Cohesion for Software Product Family Architecture Architectural IssueCouplingCohesion Packaging & delivery Physically packaged togetherProduct may be at “coincidental” Cohesion level System, subsystem, middleware platform Using the same platforms Internationalization Same language across product family Terminology Commonalities in icons, terms, etc. and in their respective semantics Application’s UI Similar looks and navigational approach Product manuals Same in content and mode of presentation Product support & maintenance Release and fix physically packaged together and delivered together Same levels of support and same methodology of fix and release distribution Application flow & control Application is “stamp” or “control” coupled via data store Application is experiencing “procedural” or “communicational” cohesion Data stored, processed & shared Application is “ common” coupled via data store or global variable Functionalities Application is at “sequential” cohesion and has no duplicative features Co- Exist Low Inter- mediate Strong

“Coupling” and “Cohesion” in Product Integration Co-Existence Integration Strong Integration Intermediate Integration Low-Level Integration Increase in coupling Increase in cohesion low-coupling weak product family cohesion strong product family cohesion high-coupling