Design Concepts By Deepika Chaudhary.

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

Software Design Fundamentals
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Design Concepts and Principles
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Chapter 13 Design Concepts and Principles
Design Phase What’s design?
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Design Concepts And Principles Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Software Design Deriving a solution which satisfies software requirements.
Component-Level Design
Software Architecture Design Instructor: Dr. Jerry Gao.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Architectural Design.
CC2007N: Design.
Computer Architecture and Organization
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Chapter 10 Architectural Design
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
CSE 303 – Software Design and Architecture
Chapter 9 Design Engineering
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
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.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Chapter : Design Engineering. Design Engineering It covers the set of principles, concepts, and practices that lead to the development of a high quality.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
Chapter 13 Design Concepts and Principles Software Engineering: A Practitioner's Approach, 5/e.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Developed by Reneta Barneva, SUNY Fredonia Software Design and Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter : 8 Design Concepts
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Chapter 2 Principles of Programming and Software Engineering.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Design (Concepts and Principles)
Software Design.
7. Modular and structured design
CompSci 280 S Introduction to Software Development
Software Design Principles
Design engineering Prepared By:Jay A.Dave..
Lecture 9- Design Concepts and Principles
Problem Solving Techniques
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Lecture 9- Design Concepts and Principles
Chapter 9 Design Engineering
Design Engineering.
Chapter 9 Architectural Design.
Chapter 2. Problem Solving and Software Engineering
DESIGN CONCEPTS AND PRINCIPLES
Presentation transcript:

Design Concepts By Deepika Chaudhary

Definition M.A.Jackson once said “ The beginning of wisdom for a software engineer is to recognize the difference between getting a program to work and getting it right. The following are the basic concepts for the software design:

Concepts The following are the basic concepts for the software design Abstraction Refinement Modularity Software Architecture Control Hierarchy

Structural Partitioning Data Structure Software Procedure Information Hiding

Abstraction Abstraction is a process whereby we identify the important aspects of phenomenon and ignore its details. According to wasserman “the Psychological notion of abstraction permits one to concentrate on a problem at some level of generalization without regard to irrelevant low level details

Types of Abstraction Procedural abstraction : A sequence of instructions that has a specific and limited function . For eg to open a doorimplies a long sequence of procedural steps ( walk to the door , reach out and grasp knob turn knob and pull door etc)

Control Abstaction Control abstraction implies a program control mechanism without specifying internal details . An example of a control abstraction is the synchronization semaphore used to coordinate activities in an operating system.

Data Abstraction A data abstraction is a named collection of data that describes a data object . For eg the data abstraction for door would encompass a set of attributes that describe a door (door type , swing direction , opening mechanisms , weight etc)

Refinement Refinement is a top down technique for decomposition of a system from high level specifications to more elementary steps. Refinement is also known as “stepwise program Development”

IT begins with the specifications derived during requirements analysis and external design. The problem is first decomposed into a major processing steps and then the process is repeated for each part of the system until it is decomposed into sufficient details

Abstraction and Refinement Abstraction enables a programmer to specify procedure and data and get suppress low level details Refinement helps the designer to reveal low level details as design progresses.

Modularity There are many definition of the “module” . They range from a module in FORTRAN to a module in ADA to a module as a work assignment for an individual programmer” Modular system consists of well defined manageable units with well defined interfaces among the units. Modularity enhances design clarity which in turn ease implementation debugging testing documenting and maintenance of the software product.

Software Architecture It is “the overall structure of the software and the ways in which that structure provides conceptual integrity for a system” In the simplest form architecture is the hierarchical structure of a program components , the manner in which these components interact and the structure of data that are used by the components.

Shaw and Garlan (1996) suggest that software architecture is the step in producing a software design . They distinguish among three design. Architecture Design Code Design Executable Design

Architecture Design It associates the system capabilities identified in the requirements specification with the system components that will implement them. Components are usually modules and the architecture defines the interconnection between them.

Code Design Involves algorithms and data structures and the components are programming language primitives such as number characters pointers and control threads.

Executable Design It addresses the code design at lower levels of details. It discusses memory allocation , data formats , bit patterns and so on.

Control Hierarchy Control hierarchy also called program structure represents the organization of program components and implies a hierarchy of control. It does not represent procedural aspects of software such as sequence of processes , occurrence of order of decisions etc.

In this design we check that how many components are under the control of a particular component. To check which one is the better design we minimize the number of components with high fan out ( the number of components controlled by a component) Fan in is the number of components controlling a particular component.( )

Structural partitioning If the architectural style of a system is hierarchical the program structure can be partitioned both horizontal and vertically . The simplest approach to horizontal partitioning defines three partitions-input , data transformation and output.

Horizontal Partitioning Defines separate branches of the modular hierarchy of each major program function. The simplest approach to horizontal partitioning defines three partitions Input Data transformation Output

Vertical Partitioning Vertical partitioning often called factoring suggests that control and work should be distributed top down in the program structure. Top level modules should perform control functions and do little actual processing work.

Data Structure Data structure is a representation of the logical representation among individual elements of data. Data structure dictates the organization method of access degree of associativity and processing alternatives for information.

Software procedure Software procedure focuses on the processing details of each module individually. Procedure must provide a precise specification of processing, including sequence of events, exact decision points and even data organization.

Information Hiding Information hiding is a fundamental design concept for software . Each module in the system hides the internal details of its processing activities and modules communicate only through well defined interfaces.