COSC 4406 Software Engineering

Slides:



Advertisements
Similar presentations
Chapter 12 User Interface Design
Advertisements

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 slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
Chapter 12 User Interface Design
Chapter 12 User Interface Design
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 12b: User Interface Design 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.
Component-Level Design
Developed by Justin Francisco, SUNY Fredonia USER INTERFACE DESIGN By: Justin Francisco.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/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.
1 Chapter 16 Component-Level Design. 2 Component-Level Design  the closest design activity to coding  the approach:  review the design description.
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.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
1 User Interface Design CIS 375 Bruce R. Maxim UM-Dearborn.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Performing User Interface Design
1.  Areas of concern 1. The design of interfaces between software components 2. The design of interfaces between the software and other nonhuman producers.
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.
1 Interface Design Easy to use? Easy to understand? Easy to learn?
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 12 User Interface Design Highlights of user (human) interface design concepts.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
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 Chapter 15 User Interface Design. 2 Interface Design Easy to use? Easy to understand? Easy to learn?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Developed by Reneta Barneva, SUNY Fredonia User Interface Design (Chapter 11)
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Chapter 12 Class will start momentarily. Please Stand By … CS 8532: Advanced Software Engineering.
1 Chapter 11 Component-Level Design. 2 What is a Component? OMG Unified Modeling Language Specification [OMG01] defines a component as “… a modular, deployable,
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
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 Chapter 4: User Interface Design. 2 Introduction … Purpose of user interface design:-  Easy to learn  Easy to use  Easy to understand.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Software Engineering B.Tech Ii csE Sem-II Unit-V PPT SLIDES By Hanumantha Rao.N Newton’s Institute of Engineering 1.
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 Chapter 16 Component-Level Design. 2 Component-Level Design  the closest design activity to coding  the approach: review the design description for.
Chapter 15 사용자 인터페이스 설계 User Interface Design
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.
Importance of user interface design – Useful, useable, used Three golden rules – Place the user in control – Reduce the user’s memory load – Make the.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/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.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11b: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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 Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Component-Level Design
User Interface Design The Golden Rules: Place the user in control.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Quality Engineering
Chapter 15 User Interface Design
Software Engineering: A Practitioner’s Approach, 6/e Chapter 12 User Interface Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Chapter 15 User Interface Design
Chapter 10 Component-Level Design
Component-Level Design
Component-Level Design
Component-Level Design
Chapter 16 Component-Level Design
Chapter 15 User Interface Design
Object-Oriented Design
Highlights of user (human) interface design concepts and principles
CS 8532: Advanced Software Engineering
Chapter 11 User Interface Design
Interface Design Easy to learn? Easy to use? Easy to understand?
Chapter 11 User Interface Design
Chapter 11 User Interface Design.
Chapter 10 – Component-Level Design
Presentation transcript:

COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100 College Dr., North Bay, ON P1B 8L7, Canada, haibinz@nipissingu.ca, http://www.nipissingu.ca/faculty/haibinz

Lecture 9 Component-Level Design and User Interface Design

What is a Component? OMG Unified Modeling Language Specification [OMG01] defines a component as “… a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.” OO view: a component contains a set of collaborating classes Conventional view: logic, the internal data structures that are required to implement the processing logic, and an interface that enables the component to be invoked and data to be passed to it.

OO Component

Conventional Component

Designing Class-Based Components

Basic Design Principles The Open-Closed Principle (OCP). “A module [component] should be open for extension but closed for modification. The Liskov Substitution Principle (LSP). “Subclasses should be substitutable for their base classes. Dependency Inversion Principle (DIP). “Depend on abstractions. Do not depend on concretions.” The Interface Segregation Principle (ISP). “Many client-specific interfaces are better than one general purpose interface. The Release Reuse Equivalency Principle (REP). “The granule of reuse is the granule of release.” The Common Closure Principle (CCP). “Classes that change together belong together.” The Common Reuse Principle (CRP). “Classes that aren’t reused together should not be grouped together.” Source: Martin, R., “Design Principles and Design Patterns,” downloaded from http://www.objectmentor.com, 2000.

Design Guidelines Components Interfaces Dependencies and Inheritance Naming conventions should be established for components that are specified as part of the architectural model and then refined and elaborated as part of the component-level model Interfaces Interfaces provide important information about communication and collaboration (as well as helping us to achieve the OPC) Dependencies and Inheritance it is a good idea to model dependencies from left to right and inheritance from bottom (derived classes) to top (base classes).

Cohesion Conventional view: OO view: Levels of cohesion the “single-mindedness” of a module OO view: cohesion implies that a component or class encapsulates only attributes and operations that are closely related to one another and to the class or component itself Levels of cohesion Functional: only one function Layer: one direction dependence Communicational: shared data Sequential: pipeline (one’s out is the follower’s in) Procedural: invoked one by one Temporal: special behaviors such as exception handling Utility: similar components/classes/operations grouped together

Coupling Conventional view: OO view: Level of coupling The degree to which a component is connected to other components and to the external world OO view: a qualitative measure of the degree to which classes are connected to one another Level of coupling Content: access others’ internal data Common: share global data Control: A() calls B() by passing a control flag. Stamp: classB is declared as a type for an argument of an operation of classA Data: when passing large data Routine call: one invokes another Type use: one component A uses the types of another component B Inclusion or import: component A imports component B External: a component communicates with components of another component

Component Level Design-I Step 1. Identify all design classes that correspond to the problem domain. Step 2. Identify all design classes that correspond to the infrastructure domain. Step 3. Elaborate all design classes that are not acquired as reusable components. Step 3a. Specify message details when classes or component collaborate. (UML collaboration diagram) Step 3b. Identify appropriate interfaces for each component. Step 3c. Elaborate attributes and define data types and data structures required to implement them. Step 3d. Describe processing flow within each operation in detail. (UML activity diagram)

Component-Level Design-II Step 4. Describe persistent data sources (databases and files) and identify the classes required to manage them. Step 5. Develop and elaborate behavioral representations for a class or component. (UML statechart) Step 6. Elaborate deployment diagrams to provide additional implementation detail. Step 7. Factor every component-level design representation and always consider alternatives.

Collaboration Diagram

Refactoring

Activity Diagram

Statechart

Algorithm Design the closest design activity to coding the approach: review the design description for the component use stepwise refinement to develop algorithm use structured programming to implement procedural logic use ‘formal methods’ to prove logic

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

Algorithm Design Model represents the algorithm at a level of detail that can be reviewed for quality options: graphical (e.g. flowchart, box diagram) pseudocode (e.g., PDL) ... choice of many programming language decision table conduct walkthrough to assess quality

Structured Programming for Procedural Design uses a limited set of logical constructs: sequence conditional — if-then-else, select-case loops — do-while, repeat until leads to more readable, testable code can be used in conjunction with ‘proof of correctness’ important for achieving high quality, but not enough

A Structured Procedural Design

Decision Table

Program Design Language (PDL)

Interface Design Easy to learn? Easy to use? Easy to understand?

Interface Design Typical Design Errors lack of consistency too much memorization no guidance / help no context sensitivity poor response Arcane/unfriendly

Golden Rules Place the user in control Reduce the user’s memory load Make the interface consistent

Place the User in Control Define interaction modes in a way that does not force a user into unnecessary or undesired actions. Provide for flexible interaction. Allow user interaction to be interruptible and undoable. Streamline interaction as skill levels advance and allow the interaction to be customized. Hide technical internals from the casual user. Design for direct interaction with objects that appear on the screen.

Reduce the User’s Memory Load Reduce demand on short-term memory. Establish meaningful defaults. Define shortcuts that are intuitive. The visual layout of the interface should be based on a 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 make changes unless there is a compelling reason to do so.

User Interface Design Models User model — a profile of all end users of the system Design model — a design realization of the user model Mental model (system perception) — the user’s mental image of what the interface is Implementation model — the interface “look and feel” coupled with supporting information that describe interface syntax and semantics

User Interface Design Process

Interface Analysis Interface analysis means understanding (1) the people (end-users) who will interact with the system through the interface; (2) the tasks that end-users must perform to do their work, (3) the content that is presented as part of the interface (4) the environment in which these tasks will be conducted.

User Analysis Are users trained professionals, technician, clerical, or manufacturing workers? What level of formal education does the average user have? Are the users capable of learning from written materials or have they expressed a desire for classroom training? Are users expert typists or keyboard phobic? What is the age range of the user community? Will the users be represented predominately by one gender? How are users compensated for the work they perform? Do users work normal office hours or do they work until the job is done? Is the software to be an integral part of the work users do or will it be used only occasionally? What is the primary spoken language among users? What are the consequences if a user makes a mistake using the system? Are users experts in the subject matter that is addressed by the system? Do users want to know about the technology the sits behind the interface?

Task Analysis and Modeling Answers the following questions … What work will the user perform in specific circumstances? What tasks and subtasks will be performed as the user does the work? What specific problem domain objects will the user manipulate as work is performed? What is the sequence of work tasks—the workflow? What is the hierarchy of tasks? Use-cases define basic interaction Task elaboration refines interactive tasks Object elaboration identifies interface objects (classes) Workflow analysis defines how a work process is completed when several people (and roles) are involved

Swimlane Diagram

Analysis of Display Content Are different types of data assigned to consistent geographic locations on the screen (e.g., photos always appear in the upper right hand corner)? Can the user customize the screen location for content? Is proper on-screen identification assigned to all content? If a large report is to be presented, how should it be partitioned for ease of understanding? Will mechanisms be available for moving directly to summary information for large collections of data. Will graphical output be scaled to fit within the bounds of the display device that is used? How will color to be used to enhance understanding? How will error messages and warning be presented to the user?

Interface Design Steps Using information developed during interface analysis (SEPA, Section 12.3), define interface objects and actions (operations). Define events (user actions) that will cause the state of the user interface to change. Model this behavior. Depict each interface state as it will actually look to the end-user. Indicate how the user interprets the state of the system from information provided through the interface.

Interface Design Patterns Patterns are available for The complete UI Page layout Forms and input Tables Direct data manipulation Navigation Searching Page elements e-Commerce

Design Issues Response time Help facilities Error handling Menu and command labeling Application accessibility Internationalization

Design Evaluation Cycle

Summary Component-Level Design Interface Design Component Class-based Components Conducting Component-level Design Designing Conventional Components Interface Design Golden Rules UI Analysis UI Design UI Design Evaluation