Lecture 10 Software Design: Architecture, Interface, Procedural

Slides:



Advertisements
Similar presentations
Chapter 12 User Interface Design
Advertisements

© 2005 by Prentice Hall Chapter 13 Finalizing Design Specifications Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Chapter 7 System Models.
Programming Language Concepts
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Week 2 The Object-Oriented Approach to Requirements
Configuration management
The Modular Structure of Complex Systems Team 3 Nupur Choudhary Aparna Nanjappa Mark Zeits.
Database System Concepts and Architecture
Lecture 6: Software Design (Part I)
Software Design Fundamentals
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Executional Architecture
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 11 Describing Process Specifications and Structured Decisions
Chapter 11 Component-Level Design
Chapter 12 User Interface Design
From Model-based to Model-driven Design of User Interfaces.
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.
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
© Copyright 2011 John Wiley & Sons, Inc.
Developed by Justin Francisco, SUNY Fredonia USER INTERFACE DESIGN By: Justin Francisco.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 1 Principles of Programming and Software Engineering.
Design III Due today: User Manual Next Class:Pressman 8; Homework #4 Questions? Team Status Reports Design Principles (UI related) Bio Break ( 5 minutes.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 User Interface Design CIS 375 Bruce R. Maxim UM-Dearborn.
Performing User Interface Design
Design, goal of design, design process in SE context, Process of design – Quality guidelines and attributes Evolution of software design process – Procedural,
CS-499G 8/17/ Design Concepts and Principles.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
 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 Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes.
1 Chapter 15 User Interface Design. 2 Interface Design Easy to use? Easy to understand? Easy to learn?
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.
SE: CHAPTER 7 Writing The Program
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering B.Tech Ii csE Sem-II Unit-V PPT SLIDES By Hanumantha Rao.N Newton’s Institute of Engineering 1.
Chapter 5:User Interface Design Concepts Of UI Interface Model Internal an External Design Evaluation Interaction Information Display Software.
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.
Component-Level Design and User Interface Design Departemen Ilmu Komputer IPB 2009.
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.
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 PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Engineering Lecture 13: User Interface and Component-Level Design.
7. Modular and structured design
Lecture 9- Design Concepts and Principles
Software Design Mr. Manoj Kumar Kar.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 12 User Interface Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
CIS 375 Bruce R. Maxim UM-Dearborn
Unit# 9: Computer Program Development
Software Design Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes.
Chapter 15 User Interface Design
CS223: Software Engineering
Component-Level Design
Lecture 9- Design Concepts and Principles
Interface Design Easy to learn? Easy to use? Easy to understand?
Presentation transcript:

Lecture 10 Software Design: Architecture, Interface, Procedural Software Engineering Lecture 10 Software Design: Architecture, Interface, Procedural

The Design Activities Architectural Design Interface Design Procedural Design Database Design

Architectural Design Design Concepts Abstraction Modularity Control Hierarchy

Abstraction Abstraction permits one to concentrate on a problem at some level of generalization without regard to irrelevant low level details. Use of abstraction also permits one to work with concepts and terms that are familiar, in the problem environment without having to transform them to an unfamiliar structure.

Modularity A module is defined as a sub-program that is invoked by another module. The statement are collectively referred to by a descriptive name called the module name. A module must return to its caller i.e. have a single entry and exit. The module should be relatively small in size. It should be easy to read, modify and use. A module should preferably have a single function.

Advantages of Modularity Allow large program to be written by several or different people. Encourage creation of commonly used routines to be placed in library and/or be used by other programs. Simplify overlay procedure of loading large program into main storage. Provide more check point to measure progress. Simplify design, making program easy to modify and reduce maintenance costs. Provide a framework for more complete testing, easier to test. Produces well-designed and more readable program.

Disadvantages of Modularity Execution time, compilation/loading time and storage size requirements may be (though not always) increase. Intermodule communication problems may be increased, due to the larger number of interfaces between parts of the software. Demands more initial design time, since greater time would need to be spent in the architectural phase of design.

Modularity and Software Cost module development cost cost of software module integration cost optimal number number of modules of modules

Control Hierarchy Control Hierarchy, represents the hierarchical organization of program components (modules) and implies a hierarchy of control. Fan-Out, which is a measure of the number of modules that are directly controlled by another module. Fan-in, which indicates how many modules directly control a given module. Depth: Number of levels of control. Width: Overall span of control. Superordinate: i.e. a module that controls another module. Subordinate: i.e. a module that is controlled by another module.

Control Hierarchy M A B C D E F G H Depth = 2 Fan-In (A) = 1 Width = 5 Fan-Out (A) = 3

Effective Modular Design Functional Independence Is achieved by developing modules with “single minded” function and an “aversion” to excessive interaction with other modules. Independence is measured by two qualitative criteria: Cohesion: a measure of relative functional strength of a module Coupling: a measure of relative interdependence among modules

Cohesion Low Cohesion (undesirable) Moderate High (desirable) Coincidental Cohesion Logical Cohesion Temporal Cohesion Moderate Procedural Cohesion Communicational Cohesion High (desirable) One distinct task in a module (High Cohesion)

Coupling Low (desirable) Moderate High (undesirable) Data Coupling Stamp Coupling Moderate Control Coupling High (undesirable) External Coupling Common Coupling Content Coupling

User Interface Design A good UI is not easy to create, since the UI development effort is inversely proportional to the ease of use finally obtained in the software

Three Golden Rules (Theo Mandel) Place the user in control Reduce the user’s memory load Make the interface consistent

Place the user in control Minimize unnecessary / undesired actions Provide flexible interaction Provide undo Allow customized interaction Hide technical internals from the casual user Design direct interaction with screen objects

Reduce the user’s memory load Reduce demand on Short-term Memory Establish meaningful defaults Define intuitive short-cuts Use real-world metaphor Disclose information in a progressive fashion

Make the interface consistent Allow the user to put the current task into a meaningful context Maintain consistency across a family of applications If past interactive models have created user expectations, do not making unnecessary changes

Interface Design Consideration (1) Interface Consistency An inconsistent interface is often the source of frustration to the user. Predictability Predictability is related to the user model and the consistency of the interface, but emphasizes the principle of least surprise.

Interface Design Consideration (2) Error Handling A good UI minimizes the chances of an error occurring, and provides a way to recover from any error that does occur. Ease of Use A UI should have on-line help and user guidance, which are accessible when user has trouble.

Interface Design Consideration (3) Clarity Errors can be minimized if the UI communication between the UI and the user is as clear as possible. Feedback Feedback to the user is important in reducing frustration and provides reassurance that the user task is actually being carried out.

User classification Novices No syntactic knowledge, little semantic knowledge of the computer usage in general Knowledgeable, intermittent users Reasonable semantic knowledge of the application, but low recall of syntactic knowledge Knowledgeable, frequent users Good semantic and syntactic knowledge

Prototyping Prototyping is one of the best known method used to design the software interface. The prototype is evaluated by the user, who provides the designer with direct comments about the efficacy of the interface. If formal evaluation techniques are used (e.g. questionnaires, rating sheets), the designer may extract information from these data. Design modification are made based on user input and the next level of prototype is created. The evaluation cycle continues until no further modification to the interface design are necessary.

Procedural Design Graphical Design Notation: Flow-chart Tabular Design Notation: Decision Table Program Design Language (PDL) At the component level, the software engineer must represent data structures, interfaces, and algorithms in sufficient detail to guide the generation of programming language source-code.

Flow-Chart Boxes to indicate processing steps. Diamond to indicate logical conditions. Arrows to indicate flow of control. Two boxes connected by a line of control will indicate a Sequence.

Flow-Chart Example

Decision Table Provides a notation that translates actions and conditions (described in a processing narrative) into a tabular form. The upper left-hand section contains a list of all conditions. The lower left-hand section lists all actions that are possible based on the conditions. The right-hand sections form a matrix that indicates condition combinations and the corresponding actions that will occur for a specific combination

Decision Table Example

Program Design Language Program Design Language (PDL) is also called structured English, or Pseudocode. PDL have the following characteristics: A fixed syntax of keywords that provide for all structured constructs, data declaration, and modularity characteristics A free syntax of natural language that describes processing features Data declaration facilities that should include both simple (scalar, array) and complex (linked list or tree) data structures. Subprogram definition and calling techniques that support various methods of interface description

References Pressman, Chapter 13-16