Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Lecture # 2 : Process Models
CEN nd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Software Process Models.
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
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.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Design Concepts "You can use an eraser on the drafting table or a sledge hammer on the construction site." Frank Lloyd Wright.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Chapter 2 The process Process, Methods, and Tools
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CSE 303 – Software Design and Architecture
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Design Issues Practice: A generic View Design Principles.
Chapter 9 Design Engineering
ITEC 3220M Using and Designing Database Systems
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Chapter 5 CS 8532: Advanced Software Engineering Dr. Hisham Haddad Class will start momentarily.
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.
CSEB233: Fundamentals of Software Engineering Software Design.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
SE: CHAPTER 7 Writing The Program
Design Concepts and Principles Instructor: Dr. Jerry Gao.
Chapter 13 Design Concepts and Principles Software Engineering: A Practitioner's Approach, 5/e.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
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 By Deepika Chaudhary.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Developed by Reneta Barneva, SUNY Fredonia Software Design and Software Engineering.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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 ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
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.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Software Engineering Lecture 10: System Engineering.
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.
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 ch-8
Software Design Principles
Design engineering Prepared By:Jay A.Dave..
Lecture 9- Design Concepts and Principles
Software Quality Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Lecture 9- Design Concepts and Principles
For University Use Only
Software Engineering Practice: A Generic View
Software Modelling and Design
DESIGN CONCEPTS AND PRINCIPLES
Presentation transcript:

Software Design

Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality system or product. Design is virtually what every engineer wants to do

Design allows a engineer to model the system or product that is to be built This model can be accessed for quality and can be improved before code is generated. Design is the place where software quality is established.

Software Design S/w design is an iterative process through which requirements are translated into a blue print for constructing the software. The following are the characteristics (objectives) of a good design The design must implement all the explicit requirement contained in the analysis model and it must accommodate all the implicit requirements also

The design must be readable understandable guide for those who generate code and those who test the code and subsequently support the software The design should also provide a complete picture of the software addressing the data and functional domains.

The design should be modular that is the software should be logically partitioned into elements that performs specific functions and subfunctions. A design should contain representation of data architecture interfaces and components A good design always comes with a set of well written documents

In a good design every requirement is testable the design that can not be easily tested against its requirement is not a good design. A good design should be easily communicated to all interested parties through appropriate abstractions and representations

A good design is repeatable and reusable That is given a similar set of conditions (SRS) the design process should produce a relatively similar design reliazation.

Design Principles Software design is both a process and a model. Creative skill past experience a sense of what makes good software and a overall commitment to quality are critical success factors for a competent design. The basic design principles are

The design process should not suffer from tunnel vision-(should consider various alternatives available ) The design should be traceable to analysis model. The design should not reinvent the wheel The design should exhibit uniformity and integration- If it appears that one person

Developed the entire thing A design is integrated if interfaces are developed between design components Design should be structured to accommodate change It should be remembered that design is not coding and coding is not design (the level of abstraction is higher than that of coding)

The design should also be accessed for quality as it is being created and not after it is over The design must be reviewed.

Seven Generic Design Steps A thorough evaluation of many different design approach reveals that regardless of the design approach used, there are seven steps that should be followed to obtain a good design. These steps are as follows.

Function decomposition Interface definition Operational timeline development Data definition Concurrency and real time consideration Consolidation Test Procedure development

Function Decomposition – The first step in the design process involves an intelligent partitioning of the software product into components or design entities. The objective is to partition the requirements into smaller set of requirements Some criteria and constraint for partitioning include the following

Unit testing improvement System testing enhancement Modularity ( Cohesion & Coupling ) Managerial visibility and control Information Hiding Contractual and organizational compatibility

Interface Definition The second step in the design process is to identify and define all component to component and component to external interface. There are several tools that support this step. Examples of such tools are object diagrams,data flow diagrams timing charts and data dictionaries

Operational Timeline Development The third step is the design process involves developing realistic operational timelines or scenario to exercise at least intellectually each design step. These timelines should include operator interactions with the system and especially the design component in question

Data Definition The fourth step in the design process involves developing data structures in particular defining the files records fields access method global and local data structure and the file maintenance procedures.

Concurrency and Real time Consideration The fifth step in the design process is associated with concurrence and real time requirements. It is highly desirable to decouple timing requirements and their design and correctness tests from function performance and data correctness.

Consolidation The sixth step in the design process requires consolidation and organization of the design. Information developed in steps one through five and a realization of the consolidated design information into direction to coders in the form of diagrams pseudocode structured english or any other form of program design language(PDL)

Test procedure developement The seventh step in the design process examines ways in which the design can be tested as a design components. This step also serves to verify that all requirements in the SRS are formally traced to implementation in the system design specificaiton

To conclude formal design reviews may be inserted at appropriate junctures to assure that design efforts are fully coordinated.

Design Concepts M.A.Jackson once said “ The beginning of wisdom for software engineer is to recognize the difference between getting a program to work and getting it right” A set of fundamental software design concepts has evolved over the past four decades.