CSEB233: Fundamentals of Software Engineering. Software Design

Size: px
Start display at page:

Download "CSEB233: Fundamentals of Software Engineering. Software Design"

Transcription

1 CSEB233: Fundamentals of Software Engineering Software Design

2 Objectives Explain set of design principles, concepts, and practices Describe five design models complete design specification: required for a data design architectural design user interface design component-level design deployment-level design Use design support tools and evaluation Explain the use of design specification document Explain the concepts of secure software design

3 Software Design Design Principles, Concepts, and Practices

4 What is Design? Design creates software a representation or model of the But unlike the analysis provides details about: model, the design model software architecture data structures interfaces, and components that are necessary to implement the system. Why is it important? The model can be assessed for quality and improved before code is generated Tests are conducted, and more users are involved.

5 Analysis Models Design Model The four design models scenar io- based element s use-cases - text use-case diagrams activity diagrams swim lane diagrams Analysis Model f l ow- or ient ed element s data flow diagrams control-flow diagrams processing narratives Int e rf a c e De sign Com pone nt - Le v e l De sign cl ass- based element s class diagrams analysis packages CRC models collaboration diagrams behavior al element s state diagrams sequence diagrams Arc hit e c t ura l De sign Da t a / Cla ss De sign Design Model Each of the elements of the analysis/requirements model provides information that is necessary to create the design models required for a complete design specification.

6 Characteristics of Good Design Must implement all of the explicit requirements contained in the analysis model Must accommodate all the implicit requirements desired by the customer Must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software Should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective (McGlaughlin, 1991)

7 Design Principles The design process should not suffer from tunnel vision The design should be traceable to the analysis model The design should not reinvent the wheel Reinventing the wheel means to duplicate a basic method that has previously been created or optimized by others The design should minimize the intellectual distance between the software and the problem as it exists in the real world The design should exhibit uniformity and integration (Davis,1995 )

8 Design Principles The design should be structured to accommodate change The design should be structured to degrade gently, even when irregular data, events, or operating conditions are encountered The design should be assessed for quality as it is being created, not after The design should be reviewed to minimize conceptual (semantic) errors

9 Design Concepts Fundamental design concepts that span both traditional and OO software development include: Abstraction Architecture Patterns Separation of concerns Modularity Information hiding Functional Independence Refinement Aspects Refactoring OO Design concepts Design classes

10 Abstraction Use many levels of abstraction in design for a modular solution. At the highest level of abstraction, a solution is stated using the language of the problem environment At lower levels of abstraction, a more detailed description of the solution is provided. Finally, at the lowest level of abstraction, the solution is stated in a manner that can be directly implemented. Two types of abstraction: Procedural abstraction - sequence of instructions that have a specific and limited function Data abstractions - named collection of data that describes a data object

11 Abstraction door details of enter algorithm Implemented with a "knowledge" of the object that is associated with enter door manufacturer model number type swing direction weight Implemented as a data structure

12 Abstraction Data abstraction refers to, providing only essential features by hiding its background details b1 is an object calling input and output member functions. But that code is invisible to the object b1

13 Architecture Describes the overall structure of the software: organization of program components (modules), the manner in which these modules interact, and the structure of data used by the components

14 Patterns A design pattern describes a design structure that solves a particular design problem within a specific context. The objectives is to provide a description that enables a designer to determine whether the pattern: Is application to the current work Can be reused Can serve as a guide for developing a similar design pattern E.g. Online pattern searching: %2F%Fpatents.uspto.gov%2Fpatft%2Findex.html Under Quick Search, try to search pattern no and you will get automated spell analysis pattern.

15 Separation of Concerns A design concept that suggests any complex problem can be easily handled if it is sub-divided into pieces that can be solved independently A concern is a feature or behavior that is specified as part of the requirements model for the software. By separating problems into smaller, more manageable pieces, a problem takes less time and effort to solve Manifested in other design concepts: modularity, aspects, functional independence and refinement

16 Modularity When software is divided into separately named and addressable components (modules). Reasons for modularisaton: To ease the planning for implementation (coding) To define and deliver software increments To easily accommodate changes To efficiently test and debug program, and To conduct long-term maintenance without serious side effects

17 Modularity : Example vs. How many modules? Cost/module

18 Aspects Ideally, a requirements model can be organized in a way that allows you to isolate each concern so that it can be considered independently. In practice, some of these concerns span the entire system and cannot be easily compartmentalized i.e. crosscut one another. An aspect is a representation of a crosscutting concern. It is important to identify aspects so that the design can properly accommodate them as refinement and modularization occur.

19 Functional Independence Achieved by developing independent modules and aversion to excessive interaction with other modules. Module independence is measured using two quality criteria: cohesion and coupling. Cohesion is an indication of the relative functional strength of a module a cohesive module should (ideally) do just one thing Coupling is an indication of the relative interdependence among modules depends on the interface complexity between modules, the point at which entry or reference is made to a module, and what data pass across the interface.

20 Functional Independence Cohesion:

21 Functional Independence Coupling: High and Low Coupling between Modules

22 Refinement Top down design strategy where program is developed by successively refining levels of procedural detail in a hierarchical manner. It is an elaboration process that begins at a high level of abstraction. Abstraction and refinement are complementary. While abstraction hide unnecessary details from the outsiders, refinement helps to reveal low-level detais and design progresses.

23 Refinement open walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat

24 Information Hiding Suggests that modules should be specified and designed so that information (data structures and algorithm) contain within a module is inaccessible to other modules that have no need for such information Implies that effective modularity can be achieved by defining a set of independent modules that communicate with one another only necessary information

25 Information Hiding: Example Suppose we have a Time class that counts the time of day: The Display() member function prints the current time onscreen. This member function is accessible to all It is therefore declared public In contrast, the data member ticks is declared private. External users could not access it Regardless of how Display() extracts the current timestamp from ticks, users can be sure that it will do the right thing and display the correct time onscreen.

26 Refactoring Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure (Fowler, 1999) When software is refactored, the existing design is examined for redundancy unused design elements inefficient or unnecessary algorithms poorly constructed or inappropriate data structures or any other design failure that can be corrected to yield a better design. The result will be software that is easier to integrate, test and maintain.

27 Object-oriented Design Concepts Design classes Entity classes Boundary classes Controller classes Inheritance all responsibilities of a superclass is immediately inherited by all subclasses Messages stimulate some behavior to occur in the receiving object Polymorphism a characteristic that greatly reduces the effort required to extend the design

28 Design Classes As the (OO) design evolves, a set of design classes that refines the analysis classes by providing design detail is defined. Analysis classes are refined during design to become entity classes Boundary classes are developed during design to create the interface (e.g., interactive screen or printed reports) that the user sees and interacts with as the software is used. Boundary classes are designed with the responsibility of managing the way entity objects are represented to users. Controller classes are designed to manage the creation or update of entity objects; the instantiation of boundary objects as they obtain information from entity objects; complex communication between sets of objects; validation of data communicated between objects or between the user and the application.

29 Software Design Design Models

30 Design Models high analysis model class diagrams analysis packages CRC models collaboration diagrams data flow diagrams control-flow diagrams processing narratives use-cases - text use-case diagrams activity diagrams swim lane diagrams collaboration diagrams state diagrams sequence diagrams class diagrams analysis packages CRC models collaboration diagrams data flow diagrams control-flow diagrams processing narratives state diagrams sequence diagrams Requirement s: const raint s int eroperabilit y t arget s and conf igurat ion design model low design class realizations subsystems collaboration diagrams refinements to: design class realizations subsystems collaboration diagrams technical interface design Navigation design GUI design component diagrams design classes activity diagrams sequence diagrams refinements to: component diagrams design classes activity diagrams sequence diagrams design class realizations subsystems collaboration diagrams component diagrams design classes activity diagrams sequence diagrams deployment diagrams archit ect ure element s int erface element s component -level element s process dimension deployment -level element s

31 Design Model Elements Data design elements Creates a model of data and/or information that is represented at a high level of abstraction, which is subsequently refined into progressively more implementation-specific representations that can be processes by the computer. Architectural design elements Provides high-level overview of the system with detailed descriptions to be given by other design elements Defines the relationship between major structural elements of the software, each of which will have its own architecture.

32 Design Model Elements Interface design elements Describes how the software communicates with systems that interoperate with it, and with human who use it. Component-level design elements Defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each software component or module Deployment-level design elements Indicate how software functionality and subsystems will be allocated within the physical computing environment that will support the software.

33 Data Design Elements Data modeling is the process of representing data objects and their relationships to other objects, by applying data modeling techniques. Data dictionary is the textual description of data objects and their inter-relationships. Data dictionary is commonly used in confirming data requirements and for database developers to create and maintain a database system.

34 Data Design Elements

35 Architectural Design Elements Software architecture is the structure of structures of the system, which comprise software components, the externally visible properties of those components and the relationship among them. Importance of software architecture: Enabler for communication between all parties (stakeholders) interested in the development of the software Highlights early design decisions that will have a profound impact on all software engineering work that follows Constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together

36 Architectural Styles Data-centred A data store resides at the centre and is accessed by other components that update, add and delete data. Data-flow Consisting of pipe and filters, this architecture is applied when input data are to be transformed through a series of computation components into output data. Call and return Decomposes function into a hierarchy where a main program invokes a number of program components that in turn may invoke still other components.

37 Architectural Styles Example: Architectural styles

38 Architectural Styles Object-oriented Components encapsulate data and operations, and communication and coordination between components are through message passing Layered A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set.

39 Component-level Design Component is a modular building block for computer software Three views of what a component is: Object-oriented view a set of collaborating classes Traditional view a functional element of a program comprising processing logic and related internal data structures and interfaces Process-related view proven reusable design or code level components made available for use as design work proceeds

40 Component-level Design

41 Interface Design Elements Three golden interface design rules of human-computer 1. Place the user in control 2. Reduce the user s memory load 3. Make the interface consistent Graphical user interface (GUI) is a collection of mechanisms defined to enable software designers to build system that implement the golden rules. Are designed following the analysis results e.g. state diagram and swimlane diagram

42 Interface Design Elements The user interface (UI)

43 Deployment-level Design Source:

44 Deployment-level Design Source:

45 Software Design Design Support Tools

46 Design Support Tools All aspects of the software engineering can be supported by software tools: from project management software through tools for business and functional analysis, system design, code storage, compilers, translation tools, test software, and so on. However, tools that are concerned with analysis and design, and with using design information to create parts (or all) of the software product, are most frequently thought of as CASE tools. List of CASE tools:

47 CASE Tool: Example IBM Rational Software Architect Source:

48 CASE Tool: Example Database Modeling: Enterprise Architect by Sparx Systems Pty Ltd. Source:

49 Design Evaluation A good software design minimizes the time required to create, modify, and maintain the software while achieving run-time performance (Shore and Chromatic, 2007) Design quality is people-sensitive. For instance, design quality is dependent upon the programmers writing and maintaining the code. Design quality is change-specific. There are two general ways to make designs of higher quality with respect to this aspect: generalizing from the tools like design patterns, and using tests and refactoring as change-enablers. (Elssamadisy, 2007)

50 Design Evaluation Modification and maintenance time are more important than creation time because time spent in maintenance is much more than creation time of a software, and in iterative development, modification happens during the initial creation of the software Design quality is unpredictable Because quality is really dependant on the team developing the software. As the team changes, or evolves, then the design quality also evolves You really only know how good a design is by its standing the test of time and modifications

51 Design Evaluation Points to ponder: To maintain the quality of the design, we must maintain the theory of the design as the programming team evolves, That design quality is tied to the people who are building and maintaining the software (Shore and Chromatic, 2007)

52 Software Design Design Specification

53 Design Specification IEEE Standard for Information Technology - Systems Design - Software Design Descriptions (IEEE ) an improved version of the 1998 version This standard specifies an organizational structure for a software design description (SDD) An SDD is a document used to specify system architecture and application design in a software related project Provides a generic template for an SDD

54 SDD: Examples Refer to m#_toc Refer to SDDSample.doc

55 Software Design Secure Software Design

56 Secure System Design Principles Saltzer [1974] and later Saltzer and Schroeder [1975] list the following design principles when creating secure programs, which are still valid: 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults

57 Least privilege Each user and program should operate using the fewest privileges possible. This principle limits the damage from an accident, error, or attack. It also reduces the number of potential interactions among privileged programs, so unintentional, unwanted, or improper uses of privilege are less likely to occur. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults

58 Economy of mechanism The protection system s design should be simple and small as possible. Simpler means less can go wrong; when errors occur, easier to understand and fix. Complex mechanisms may not be correctly: Understood Modeled Configured Implemented Used Keep it as simple as possible; KISS Principle 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults

59 Complete mediation Every access attempt must be checked; position the mechanism so it cannot be subverted. A synonym for this goal is non-bypassability. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults

60 Open design Security of a mechanism should not depend upon secrecy of its design or implementation. Security through obscurity is a bad idea Should be open for scrutiny by the community Better to have a friend/colleague find an error than a foe. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults

61 Separation of privilege Access to objects should depend on more than one condition, so that defeating one protection system won t enable complete access. - Separation of duty - System should not grant permission based on single condition. - Example: Company checks over $75,000 to be signed by two officers. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults

62 Least common mechanism Minimize the amount and use of shared mechanisms (e.g. use of the /tmp or /var/tmp directories). Shared objects provide potentially dangerous channels for information flow and unintended interactions. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults

63 Psychological acceptability Also known as easy to use. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults User interface must be easy to use, so that users routinely and automatically apply the mechanisms correctly. Otherwise, they will be bypassed.

64 Fail-safe defaults Also known as permission-based approach. 1. Least privilege 2. Economy of mechanism 3. Complete mediation 4. Open design 5. Separation of privilege 6. Least common mechanism 7. Psychological acceptability 8. Fail-safe defaults Unless a subject is given explicit access to an object, it should be denied access to the object.

65 Summary This module has: Introduced set of design principles, concepts, and practices Described five design models required for a complete design specification: data design, architectural design, user interface design, component-level design and deployment level design. Introduced design support tools and evaluation Introduced design specification document (SDD) Introduced secure software design

66 THE END College of Information Technology

Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Chapter 8 Design Concepts Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational

More information

Chapter 9 Design Engineering

Chapter 9 Design Engineering Chapter 9 Design Engineering Moonzoo Kim CS Division of EECS Dept. KAIST 1 Roadmap of SEPA covered in CS550 Ch 1 Ch 5 1. Intro to SE 2. A Generic View of Process 3. Process Models 4. An Agile View of Process

More information

Design Concepts and Principles

Design Concepts and Principles Design Concepts and Principles Analysis to Design Data Object Description Entity- Relationship Diagram Data Flow Diagram Process Specification (PSPEC) Component level design (or) procedural design Data

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering (CS350) Lecture 09 Jongmoon Baik Design Concept 2 Design Mitch Kapor, the creator of Lotus 1-2-3, presented a software design manifesto in Dr. Dobbs Journal. He said:

More information

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 12 Design Concepts Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S.

More information

Lecture 8: Chapter 8!

Lecture 8: Chapter 8! Lecture 8: Chapter 8! Design Concepts! Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

CS485/540 Software Engineering Design Concepts (Ch. 8)

CS485/540 Software Engineering Design Concepts (Ch. 8) CS485/540 Software Engineering Design Concepts (Ch. 8) Cengiz Günay Dept. Math & CS, Emory University Fall 2013 Some slides courtesy of Joan Smith, Roger Pressman, and the Internets Günay (Emory) Design

More information

Component-Level Design

Component-Level Design Component-Level Design Minsoo Ryu Hanyang University Contents 1. Design Model 2. Fundamental Design Concepts 3. Component-Level Design 4. Object-Oriented Design Techniques 2 2 Data/class design Four Design

More information

Design. Introduction

Design. Introduction Design Introduction a meaningful engineering representation of some software product that is to be built. can be traced to the customer's requirements. can be assessed for quality against predefined criteria.

More information

UNIT III. Software Design

UNIT III. Software Design UNIT III Software Design Design Specification Models Data design - created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software

More information

Chapter 9 Design Engineering

Chapter 9 Design Engineering Software Engineering: A Practitioner s s Approach, 6/e Chapter 9 Design Engineering copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student

More information

Architectural Design

Architectural Design Architectural Design Minsoo Ryu Hanyang University 1. Architecture 2. Architectural Styles 3. Architectural Design Contents 2 2 1. Architecture Architectural design is the initial design process of identifying

More information

Topic # 05. Software Systems Design Concepts. (Ch. 8) Analysis Model as a Bridge

Topic # 05. Software Systems Design Concepts. (Ch. 8) Analysis Model as a Bridge Topic # 05 Software Systems Design Concepts (Ch. 8) 1 Analysis Model as a Bridge 2 Analysis Model as a Bridge System Description (by a customer) system description List of SW System Specifications (that

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Other 1 2 3 4 Other Principle of Least Privilege Principle of Fail-Safe Defaults Principle of

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture Objectives Architectural Design To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

06. Analysis Modeling

06. Analysis Modeling 06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches

More information

R.S. Pressman & Associates, Inc. For University Use Only

R.S. Pressman & Associates, Inc. For University Use Only Software Engineering: A Practitioner s Approach, 6/e Chapter 10 Architectural Design copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student

More information

What is Software Architecture

What is Software Architecture What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

Architectural Design

Architectural Design Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

Chapter 6 Architectural Design

Chapter 6 Architectural Design Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural

More information

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. Software Engineering: A Practitioner s Approach, 6/e Chapter 10 Architectural Design copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student

More information

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only Chapter 10 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit

More information

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) By: Mr.Prachet Bhuyan Assistant Professor, School of Computer Engineering, KIIT Topics to be Discussed 9.1 INTRODUCTION 9.2 THE O-O DESIGN PROCESS

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

Understanding Modelpedia Authorization

Understanding Modelpedia Authorization With Holocentric Modeler and Modelpedia Understanding Modelpedia Authorization V1.0/HUG003 Table of Contents 1 Purpose 3 2 Introduction 4 3 Roles 4 3.1 System Authority Roles... 5 3.2 Role Inclusion...

More information

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

Chapter 8: Class and Method Design

Chapter 8: Class and Method Design Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined

More information

3.Analysis, design concepts and principles

3.Analysis, design concepts and principles 3.Analysis, design concepts and principles Ooo OBJECTIVE To introduce the analysis and design concepts. To introduce design heuristics and architectural design. To explain data design for design concepts.

More information

Lecture 1. Chapter 6 Architectural design

Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process

More information

Design Engineering. Overview

Design Engineering. Overview Design Engineering Overview What is software design? How to do it? Principles, concepts, and practices High-level design Low-level design N. Meng, B. Ryder 2 1 Design Engineering The process of making

More information

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011 Expanding Our Horizons CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011 1 Goals of the Lecture Cover the material in Chapter 8 of our textbook New perspective on objects and encapsulation

More information

UNIT III DESIGN CONCEPTS AND PRINCIPLES

UNIT III DESIGN CONCEPTS AND PRINCIPLES UNIT III DESIGN CONCEPTS AND PRINCIPLES Design process and concepts modular design design heuristic design model and document. Architectural design software architecture data design architectural design

More information

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Design evaluation is most critical activity during software development process. Design heuristics are proposed as a more accessible and informal means

More information

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS6403 SOFTWARE ENGINEERING II year/ IV sem CSE (Regulation 2013) UNIT 1- SOFTWARE PROCESS AND PROJECT

More information

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman CS314, Colorado State University Software Engineering Notes 4: Principles of Design and Architecture for OO Software Focus: Determining the Overall Structure of a Software System Describes the process

More information

Design and Information Hiding

Design and Information Hiding Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

Software Design. Software design is a blueprint or a plan for a computerbased solution for system

Software Design. Software design is a blueprint or a plan for a computerbased solution for system Software Design Software Design Software design is a blueprint or a plan for a computerbased solution for system Software design deals with transforming the customer requirements, as described by the SRS

More information

Programmazione. Prof. Marco Bertini

Programmazione. Prof. Marco Bertini Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable

More information

Chapter 5 Object-Oriented Programming

Chapter 5 Object-Oriented Programming Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

Software Development. Modular Design and Algorithm Analysis

Software Development. Modular Design and Algorithm Analysis Software Development Modular Design and Algorithm Analysis Data Encapsulation Encapsulation is the packing of data and functions into a single component. The features of encapsulation are supported using

More information

What s Next. INF 117 Project in Software Engineering. Lecture Notes -Spring Quarter, Michele Rousseau Set 6 System Architecture, UML

What s Next. INF 117 Project in Software Engineering. Lecture Notes -Spring Quarter, Michele Rousseau Set 6 System Architecture, UML What s Next INF 117 Project in Software Engineering Lecture Notes -Spring Quarter, 2008 Michele Rousseau Set 6 System Architecture, UML Set 6 2 Announcements kreqs should be complete Except minor changes

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo Ryu. College of Information and Communications Hanyang University. Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based

More information

CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L

CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Introduction At this point, you are ready to beginning programming at a lower level How do you actually write your

More information

C++ Important Questions with Answers

C++ Important Questions with Answers 1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children

More information

Systems-Level Architecture. A Re-Introduction Arch. Reintro CSC Level of Design. Divide into two levels:

Systems-Level Architecture. A Re-Introduction Arch. Reintro CSC Level of Design. Divide into two levels: Systems-Level Architecture A Re-Introduction 12 - Arch. Reintro CSC407 1 Level of Design Divide into two levels: System-LevelArchitecture Programming-Level Design You know what design is OOD + written

More information

Object-Oriented Design and Modeling Using the UML

Object-Oriented Design and Modeling Using the UML Design Classes Object-Oriented Design and Modeling Using the UML Based on Chapter 18 of Whitten, Bentley, and Dittman: Systems Analysis and Design for the Global Enterprise (7th Ed). McGraw Hill. 2007

More information

CASE TOOLS LAB VIVA QUESTION

CASE TOOLS LAB VIVA QUESTION 1. Define Object Oriented Analysis? VIVA QUESTION Object Oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary

More information

The major elements of the object-oriented model

The major elements of the object-oriented model The major elements of the object-oriented model Abstraction Encapsulation Inheritance Modularity Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Reusing Classes Hierarchy 2 An abstraction

More information

Object oriented programming Concepts

Object oriented programming Concepts Object oriented programming Concepts Naresh Proddaturi 09/10/2012 Naresh Proddaturi 1 Problems with Procedural language Data is accessible to all functions It views a program as a series of steps to be

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Unit 1 Introduction to Software Engineering

Unit 1 Introduction to Software Engineering Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering

More information

CS6501: Great Works in Computer Science

CS6501: Great Works in Computer Science CS6501: Great Works in Computer Science Jan. 29th 2013 Longze Chen The Protection of Information in Computer Systems Jerome H. Saltzer and Michael D. Schroeder Jerry Saltzer Michael Schroeder 1 The Meaning

More information

UNIT-I Introduction of Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

Software Life-Cycle Management

Software Life-Cycle Management Ingo Arnold Department Computer Science University of Basel Introduction Software Life-Cycle Management Architecture Handbook View Model Architecture View Models If this is real world s physical complexity..

More information

Software Design Heuristics

Software Design Heuristics Software Design Heuristics Software Design Heuristics CONTENT 1. Introduction 2. Encapsulation/Information Hiding 3. Strong Cohesion 4. Loose Dr. Samira Sadaoui 1 Introduction Introduction Software Design

More information

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation Module Outline Fundamentals of Object Positioning Object Oriented Analysis Fundamentals of Object 1. Encapsulation 2. Abstraction 3. Inheritance 4. Polymorphism The need of Modeling Unified modeling language

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and

More information

SOFTWARE ENGINEERING SOFTWARE DESIGN. Saulius Ragaišis.

SOFTWARE ENGINEERING SOFTWARE DESIGN. Saulius Ragaišis. SOFTWARE ENGINEERING SOFTWARE DESIGN Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Design Learning Objectives: Discuss the properties of good software design including the nature and

More information

Component-Based Software Engineering TIP

Component-Based Software Engineering TIP Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.

More information

Tutorial 1 Answers. Question 1

Tutorial 1 Answers. Question 1 Tutorial 1 Answers Question 1 Complexity Software in it what is has to do, is often essentially complex. We can think of software which is accidentally complex such as a large scale e-commerce system (simple

More information

Presenter: Dong hyun Park

Presenter: Dong hyun Park Presenter: 200412325 Dong hyun Park Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components

More information

Darshan Institute of Engineering & Technology Unit : 3

Darshan Institute of Engineering & Technology Unit : 3 1) Explain design concepts. A set of fundamental software design concepts has evolved over the past four decades. Although the degree of interest in each concept has varied over the years, each has tood

More information

CSC 408F/CSC2105F Lecture Notes

CSC 408F/CSC2105F Lecture Notes CSC 408F/CSC2105F Lecture Notes These lecture notes are provided for the personal use of students taking CSC 408H/CSC 2105H in the Fall term 2004/2005 at the University of Toronto. Copying for purposes

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

UNIT V *********************************************************************************************

UNIT V ********************************************************************************************* Syllabus: 1 UNIT V 5. Package Diagram, Component Diagram, Deployment Diagram (08 Hrs, 16 Marks) Package Diagram: a. Terms and Concepts Names, Owned Elements, Visibility, Importing and Exporting b. Common

More information

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

INTERNAL ASSESSMENT TEST III Answer Schema

INTERNAL ASSESSMENT TEST III Answer Schema INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object

More information

The ATCP Modeling Framework

The ATCP Modeling Framework The ATCP 2+9+1 Modeling Framework Bobbi Underbakke Adaptive Team Collaboration, Inc. 800.837.0677 atcprocess.com Adaptive Team Collaboration, Inc. March 22, 2005 Chris Armstrong Armstrong Process Group,

More information

OO Frameworks. Introduction. Using Frameworks

OO Frameworks. Introduction. Using Frameworks OO Frameworks Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Frameworks support reuse of detailed designs and architectures An integrated set of components

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

Chapter : Analysis Modeling

Chapter : Analysis Modeling Chapter : Analysis Modeling Requirements Analysis Requirements analysis Specifies software s operational characteristics Indicates software's interface with other system elements Establishes constraints

More information

Software Architecture and Design I

Software Architecture and Design I Software Architecture and Design I Instructor: Yongjie Zheng February 23, 2017 CS 490MT/5555 Software Methods and Tools Outline What is software architecture? Why do we need software architecture? How

More information

Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods

Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods Object Orientated Paradigm... 2 Abstract Data Types (ADT) & Encapsulation... 3 Encapsulation... 5 Classes and Objects... 6 Methods

More information

Lecture 13 Introduction to Software Architecture

Lecture 13 Introduction to Software Architecture Lecture 13 Introduction to Software Architecture Software Systems Design and Implementation ITCS/ITIS 6112/8112 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

More information

LECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge

LECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge LECTURE 3: SOFTWARE DESIGN Mike Wooldridge 1 Design Computer systems are not monolithic: they are usually composed of multiple, interacting modules. Modularity has long been seen as a key to cheap, high

More information

Patterns and Testing

Patterns and Testing and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3

More information

GRASP Design Patterns A.A. 2018/2019

GRASP Design Patterns A.A. 2018/2019 GRASP Design Patterns A.A. 2018/2019 Objectives Introducing design patterns Introduzione ai design pattern Designing objects and responsibilities GRASP design patterns A long corridor A passage room Does

More information

Functional Design of Web Applications. (partially, Chapter 7)

Functional Design of Web Applications. (partially, Chapter 7) Functional Design of Web Applications (partially, Chapter 7) Functional Design: An Overview Users of modern WebApps expect that robust content will be coupled with sophisticated functionality The advanced

More information

09. Component-Level Design

09. Component-Level Design 09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a

More information

Introduction to Software Engineering

Introduction to Software Engineering Chapter 1 Introduction to Software Engineering Content 1. Introduction 2. Components 3. Layered Technologies 4. Generic View of Software Engineering 4. Generic View of Software Engineering 5. Study of

More information

SE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT

SE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT Unit 3 Design concepts and principles 1 Software Design 1. Software design deals with transforming the customer requirements, as described by the SRS document, into a form that is implementable using a

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++

More information

CS 292 Software Development

CS 292 Software Development CS 292 Software Development and Professional Practice Structured Design and More Design Principles CS 292 Design Principles 1 Unless otherwise expressly stated, all original material of whatever nature

More information

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information