Download presentation
Presentation is loading. Please wait.
1
UNIT III Design Engineering
- Prof. Prasad Mahale
2
THE DESIGN PROCESS Software Quality Guidelines and Attributes
A design should exhibit an architecture that has been created using recognizable architectural styles or patterns, is composed of components that exhibit good design characteristics , and can be implemented in an evolutionary fashion, thereby facilitating implementation and testing. A design should be modular; A design should contain representations of data, architecture, interfaces, and components.
3
A design should lead to components that exhibit independent functional characteristics.
A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis. A design should be represented using a notation that effectively communicates its meaning.
4
Functionality (capability, delivered, security)
Quality Attributes Functionality (capability, delivered, security) Usability (human factor, consistency, documentation) Reliability (severity, accuracy, recover, predictability) Performance (speed, response time, throughput, efficiency) Supportability (extensibility, adaptability, serviceability, testability, compatibility)
5
DESIGN CONCEPTS Abstraction Architecture Patterns
Separation of concern Functional Independence Refinement
6
DESIGN CONCEPTS Modularity Information Hiding Aspects
Object-Oriented Design Concepts
7
1. Abstraction A solution is stated in large terms using the language of the problem environment at the highest level abstraction. The lower level of abstraction provides a more detail description of the solution. A sequence of instruction that contain a specific and limited function refers in a procedural abstraction. A collection of data that describes a data object is a data abstraction. 2. Architecture The complete structure of the software is known as software architecture. Structure provides conceptual integrity for a system in a number of ways. The architecture is the structure of program modules where they interact with each other in a specialized way. The components use the structure of data. The aim of the software design is to obtain an architectural framework of a system. The more detailed design activities are conducted from the framework.
8
3. Patterns A design pattern describes a design structure and that structure solves a particular design problem in a specified content. 4. Modularity A software is separately divided into name and addressable components. Sometime they are called as modules which integrate to satisfy the problem requirements. Modularity is the single attribute of a software that permits a program to be managed easily. 5. Information hiding Modules must be specified and designed so that the information like algorithm and data presented in a module is not accessible for other modules not requiring that information.
9
6. Functional independence
The functional independence is the concept of separation and related to the concept of modularity, abstraction and information hiding. The functional independence is accessed using two criteria i.e Cohesion and coupling. Cohesion Cohesion is an extension of the information hiding concept. A cohesive module performs a single task and it requires a small interaction with the other components in other parts of the program. Coupling Coupling is an indication of interconnection between modules in a structure of software.
10
7. Refinement Refinement is a top-down design approach. It is a process of elaboration. A program is established for refining levels of procedural details. A hierarchy is established by decomposing a statement of function in a stepwise manner till the programming language statement are reached. 8. Refactoring It is a reorganization technique which simplifies the design of components without changing its function behavior. Refactoring is the process of changing the software system in a way that it does not change the external behavior of the code still improves its internal structure. 9. Design classes The model of software is defined as a set of design classes. Every class describes the elements of problem domain and that focus on features of the problem which are user visible.
11
THE DESIGN MODEL
12
THE DESIGN MODEL Data Design Elements Architectural Design Elements
High level of abstraction Structure of data Data warehouse Architectural Design Elements Floor plan gives us an overall view of house Information about Application Specific Requirement Availability of Architectural styles
13
1) UI 2) external interface 3) internal interface
Interface Design Elements Detailed Drawing Design element for software into flow 1) UI 2) external interface 3) internal interface
14
Component-Level Design Elements
It describe internal detail of each software component Component is represented in UML diagrammatical form Pseudo code (programming language) diagrammatical form (flowchart or box diagram)
15
Deployment-Level Design Elements
S/w functionality & subsystem allocate within the physical computing environment External access subsystem designed to manage. Elaborate to indicate components. It shows computing environment but does not explicate indicate configuration detail.
16
ARCHITECTURAL DESIGN
17
SOFTWARE ARCHITECTURAL
Architecture:- Analyze effectiveness of design Consider architecture alternative Reduce risk associates Importance of Architecture:- Representation of software architecture enables for communication Design decision will profound impact The system structured & how its components work together. Description:- Different things to different peoples Variety of different stakeholders Infrastructure to ensure its profitability
18
ARCHITECTURAL STYLES 1. A Brief classification of Architectural Styles
Data-centered architectures
19
Data-flow architectures
20
Call and return architectures
Main program/subprogram architectures Remote procedure call architectures
21
Object-oriented architectures
Layered architectures
22
ARCHITECTURAL STYLES 2. Architectural Patterns
3. Organization and Refinement Control Data
23
ARCHITECTURAL DESIGN Representing the System in Context
26
ARCHITECTURAL DESIGN Defining Archetypes
For example-an archetype for a car: wheels, doors, seats, engine
27
ARCHITECTURAL DESIGN Refining the Architecture into Components
Memory management components, communication components, database components, task management
28
USER INTERFACE DESIGN
29
THE GOLDEN RULES 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
30
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
31
THE GOLDEN RULES Make the Interface Consistent
Allow the user to put the current task into a meaningful context (window titles, graphics icons, consistent color coding ) 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 (Ctrl+S)
32
USER INTERFACE ANALYSIS AND DESIGN
1. Interface Analysis and Design Models user model design model mental model or the system perception implementation model users can be categorized as: Novices Knowledgeable, intermittent users Knowledgeable, frequent users
33
USER INTERFACE ANALYSIS AND DESIGN
2. The Process ability to i/f, task variation, user requirements Skill level, business understanding, requirement, identified, describe, elaborate Interface object & actions Defines task, Creation of prototype, construction of i/f
34
INTERFACE ANALYSIS 1. User Analysis User Interviews Sales input
Marketing input Support input
35
Task Analysis and Modeling
Use cases Task elaboration Object elaboration Workflow analysis Hierarchical representation Analysis of Display Content Analysis of the Work Environment
36
Interface Design Steps
Applying interface design steps User interface design patterns
37
Design issues Response time Help facilities Error handling
Menu and command labelling Application accessibility
38
PATTERN-BASED DESIGN
39
DESIGN PATTERNS Kinds of Patterns
Architectural patterns describe design problems that are solved using a structural approach. Data patterns describe recurring data-oriented problems and the data modeling solutions that can be used to solve them. Component patterns address problems associated with the development of subsystems and components, the manner in which they communicate with one another, and their placement within a larger architecture.
40
Interface design patterns describe common user interface problems and their solution that includes the specific characteristics of end users. WebApp patterns address a problem set that is encountered when building WebApps. Creational patterns focus on the “creation, composition, and representation” of objects. Structural patterns focus on problems and solutions associated with how classes and objects are organized and integrated to build a larger structure. Behavioral patterns address problems associated with the assignment of responsibility between objects and the manner in which communication is effected between objects.
41
DESIGN PATTERNS Frameworks
In some cases it may be necessary to provide an implementation-specific skeletal infrastructure, called a framework, for design work. That is, you can select a “reusable mini architecture that provides the generic structure and behavior for a family of software
42
Pattern language and repositories
Describing a pattern How do u find patterns that fit your needs? Effective communication Standard form of template Represented characteristics of pattern Pattern language and repositories Languages Communicate ideas Collection of pattern Pattern languages
43
Component level design patterns
AdvancedSearch. Users must find a specific item in a large collection of items. HelpWizard. Users need help on a certain topic related to the website or when they need to find a specific page within the site. SearchArea. Users must find a page. SearchTips. Users need to know how to control the search engine. SearchResults. Users have to process a list of search results. SearchBox. Users have to find an item or specific information. For SafeHomeAssured.com the number of products is not particularly large,
44
User Interface design patterns
Whole UI. Provide design guidance for top-level structure and navigation throughout the entire interface. Pattern: TopLevelNavigation Brief description: Used when a site or application implements a number of major functions. Provides a top-level menu, often coupled with a logo or major functions. Details: Major functions (generally limited to between four and seven function names) are listed across the top of the display (vertical column formats are also possible) in a horizontal line of text. Each name provides a link to the appropriate function or information source. Often used with the BreadCrumbs pattern discussed later. Navigation elements: Each function/content name represents a link to the appropriate function or content. Page layout. Address the general organization of pages (for websites) or distinct screen displays (for interactive applications).
52
WEBAPP DESIGN PATTERNS
Design Focus Information architecture patterns relate to the overall structure of the information space, and the ways in which users will interact with the information. Navigation patterns define navigation link structures, such as hierarchies, rings, tours, and so on. WEBAPP DESIGN PATTERNS
53
Interaction patterns contribute to the design of the user interface. Patterns in this category address how the interface informs the user of the consequences of a specific action, how a user expands content based on usage context and user desires, how to best describe the destination that is implied by a link, how to inform the user about the status of an ongoing interaction, and interface-related issues. Presentation patterns in this category address how to organize user interface control functions for better usability, how to show the relationship between an interface action and the content objects it affects, and how to establish effective content hierarchies. Functional patterns define the workflows, behaviors, processing, communication, and other algorithmic elements within a WebApp.
54
WEBAPP DESIGN PATTERNS
Design Granularity Architectural patterns.- This level of abstraction will typically relate to patterns that define the overall structure of the WebApp, indicate the relationships among different components or increments, and define the rules for specifying relationships among the elements (pages, packages, components, subsystems) of the architecture.
55
Design patterns. These address a specific element of the design such as an aggregation of components to solve some design problem, relationships among elements on a page, or the mechanisms for effecting component-to component communication. Component patterns. This level of abstraction relates to individual small scale elements of a WebApp. Examples include individual interaction elements (e.g., radio buttons), navigation items (e.g., how might you format links?) or functional elements (e.g., specific algorithms).
56
Introduction to UML Diagrams
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.