0% found this document useful (0 votes)
6 views11 pages

Software Engineering Design Process

The document outlines the design process and quality in software engineering, emphasizing the importance of creating high-quality systems through structured design principles. It covers various quality guidelines, attributes, and design concepts such as abstraction, architecture, modularity, and information hiding, which contribute to effective software design. Additionally, it discusses the significance of user interface design, architectural styles, and the iterative nature of the design process to ensure user-friendly and functional software solutions.

Uploaded by

prathyusha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views11 pages

Software Engineering Design Process

The document outlines the design process and quality in software engineering, emphasizing the importance of creating high-quality systems through structured design principles. It covers various quality guidelines, attributes, and design concepts such as abstraction, architecture, modularity, and information hiding, which contribute to effective software design. Additionally, it discusses the significance of user interface design, architectural styles, and the iterative nature of the design process to ensure user-friendly and functional software solutions.

Uploaded by

prathyusha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

DESIGNENGINEERING

DESIGN PROCESS AND DESIGN QUALITY


Encompasses the set of principles, concepts and practices that lead to the development of high
quality system or product. Design creates a representation or model of the software. Design model
provides details about S/W architecture, interfaces and components that are necessary to implement the
system. Quality is established during Design. Design should exhibit firmness, commodity and design.
Design sits at the kernel of S/WW Engineering. Design sets the stage for construction.

QUALITY GUIDELINES
Uses recognizable architectural styles or patterns
Modular; that is logically partitioned into elements or subsystems
Distinct representation of data, architecture, interfaces and components
Appropriate data structures for the classes to be implemented
Independent functional characteristics for components
Interfaces that reduces complexity of connection

Repeatable method

QUALITY ATTRIBUTES
FURPS quality attributes
Functionality
Feature set and capabilities of programs
Security of the overall system
Usability
user-friendliness
Aesthetics

Consistency
Documentation
Reliability

Evaluated by measuring the frequency and severity of failure


MTTF
Supportability

Extensibility
Adaptability
Serviceability

DESIGN CONCEPTS
1. Abstractions
2. Architecture

3. Patterns
4. Modularity
5. Information Hiding
6. Functional Independence
7. Refinement

8. Re-factoring
9. Design Classes

DESIGN CONCEPTS
ABSTRACTION
Many levels of abstraction.

Highest level of abstraction:Solution is slated in broad terms using the language of the problem
environment
Lower levels of abstraction:More detailed description of the solution is provided
Procedural abstraction--Refers toa sequence of instructionsthat a specificand limited function
Data abstraction--Named collection of data that describe a data object

DESIGN CONCEPTS
ARCHITECTURE--Structure organization of program components (modules) and their interconnection
Architecture Models

(a) Structural Models-- An organized collectionof program components


(b) Framework Models-- Represents the design in more abstract way
(c) Dynamic Models-- Represents the behavioral aspects indicating changes as a function of external
events

(d). Process Models- Focus on the design of the business or technical process

PATTERNS
Provides a description to enables a designer to determine the followings: (a). whether the pattern isapplicable
the current work

(b). Whether the pattern can be reused


(c). Whether the pattern can serve as a guide for developing a similar but functionallyor structurally
different pattern

MODULARITY
Divides software into separately named and addressable components, sometimes called modules.
Modules are integratedto satisfy problem requirements. Consider two problems pl and p2. If the
complexity of pl iscpl and of p2 is cp2 then effort to solve pl=cpl and effort to solve p2-cp2

Ifep1>qp2 then epl>ep2


The complexity of two problems when they are combined is often greater than the sum of the perceived
complexity when each is taken separately.• Based on Divide and Conquer strategy
: it is easier to solve a complex problem when broken into sub-modules

INFORMATION HIDING
Information contained within a module is inaccessible to other modules who do not need such
information. Achieved by defining a set of Independent modules that communicate with one another
only that information necessary to achieve S/W function. Provides the greatestbenefits when
modifications are required during testing and later. Errors introduced during modification are less likely

to propagate to other location within the S/W.


FUNCTIONAL INDEPENDENCE
A direct outgrowth of Modularity. abstraction and information hiding. Achieved by developing a module
with single minded function and an aversion to excessive interaction with other modules. Easier to
develop and have simple interface. Easier to maintain because secondary effects caused b design or code
modification are limited, error propagation is reduced and reusable modules are possible. Independence
is assessed by two quantitative criteria:
(1) Cohesion
(2) Coupling
Cohesion a single task requiring little interaction with other components Coupling--Measure
-- Performs
of interconnection among modules. Coupling should be low and cohesion should be high for good
design.

REFINEMENT & REFACTORING


REFINEMENT - Process of elaboration from high level abstraction to the lowest level abstraction.
High level abstraction begins with a statement of functions. Refinement causes the designer to elaborate
more and more details at successive
providing level of abstractions Abstraction and refinement are
complementary concepts.
Refactoring - Organization technique that simplifies the design of a component without changing its
function or behavior. Examines for redundancy, unused design elements and inefficient or unnecessary
algorithms.

DESIGN CLASSES
Class represents a different layer of design architecture. Five types of Design Classes
1. User interface class -- Defines all abstractions that are necessary for human computer interaction
2. Business domain class -- Refinement of the analysis classes that identity attributes and services to
implement some of business domain
3. Process class -- implements lower level business abstractions required to fully manage the business
domain classes
4. Persistent class -- Represent data stores that will persist beyond the execution of the software
5. System class -- Implements management and control functions to operate and communicate within
the computer environment and with the outside world.

THE DESIGN MODEL


Analysis viewed in two different dimensions as process dimension and abstract dimension. Process
dimension indicates the evolution of the design model as design tasks are executed as part of software
process. Abstraction dimension represents the level of details as each element of the analysis model is
transformed into design equivalent
Data Design elements
a model of data that is represented at a high level of abstraction
Data design creates
-- Refined progressively to more implementation-specific representation for processing by the computer

base system
-- Translation of data model into a data base is pivotal to achieving business objective ofa system
THE DESIGN MODEL
Architectural design elements. Derived from three sources
(1) Information about the application domain of the software
(2) Analysis model such as dataflow diagrams or analysis classes.
(3) Architectural patern and styles InterfaceDesign elements Set of detailed drawings constituting:
(1) User interface
(2) External interfacesto other systems, devices etc
(3) Internal interfacesbetween various components

THE DESIGN MODEL


Deployment level design elements. Indicates how software functionalityand subsystem will be allocated
within the physical computing environment. UML deployment diagram is developed and refined
Component level design elements Fully describe the internal detailsof each software component. UML
diagram can be used

CREATING AN ARCHITECTURAL DESIGN


What is SOFTWARE ARCHITECTURE... The software architectureof a program or computing
system is the structureor structuresof the system, which comprise softwarecomponents, the externally
visible properties of thosecomponents and the relationship among them.

Software Architecture is not the operational software. It is a representation that enables a software
engineer to
Analyze the effectivenessof the design in meeting its stated requirements.
consider architectural alternativeat a stage when making design changes is still relatively easy
Reduces the risk associated with the construction of the software.

Why Is Architecture Important? Three key reasons


-Representations of software architectureenable communication and understanding between
stakeholders

--Highlightsearly design decisions to create an operational entity.

--constitutes a model of software components and their interconnection

Data Design
The data design action translates data objects defined as part of the analysis model into data structuresat
the component level and database architectureat application level when necessary.

DATA DESIGNAT ARCHITECTURE LEVEL


Data structureat programming level

Data base at application level


Data warehouse at business level.

DATA DESIGN AT COMPONENT LEVEL


Principles for data specification:
1. Proper selection of dataobjects and data and data models
2. Identification of attribute and functions and their encapsulationof these within a class 3.Mechanism
for representationof the content of each data object. Class diagrams may be used
4.Refinement of data design elements from requirement analysis to component level design.

5.Information hiding
6. A library of useful data structures and operations be developed.
7.Softwaredesign and PL should support the specification and realization of abstractdata types..

ARCHITECTURALSTYLES
Describes a system category that encompasses:
() a set of components
(2) a set of connectors that enables "communication and coordination
(3)Constraints that define how components can be integratedto form the system
(4) Semantic models to understand the overall propertiesof a system

Client Client
software software
Client Client
software software

Data store
(repository or
Client
Client
blackboard)
software
software

Client Client
software software

Data-flow architectures
Shows the flow of input data, its computational components and output data. Structure is also called pipe
and Filter. Pipe provides path for flow of data. Filters manipulate data and work independent of its

neighboring filter. If data flow degenerates into a single line of transform, it is termed as batch
sequential.
Call and return architectures
Achieves a structure that is easy to modify and scale.Two sub styles

(1) Main program/sub program architecture


-- Classic program structure
-- Main program invokes a number of components, which in turn invoke still other components

(2) Remote procedure call architecture

-- Components of main program/subprogram are distributed across computers over network

Object-oriented architectures
The components of a system encapsulate data and the operations.Communication and coordination
between components is done via message

Layered architectures
A number of different layers are defined Inner Layer( interface with OS)
Intermediate Layer Utility servicesand applicationfunction)Outer Layer (User interface)

onponents

U itface loyet

Applcation laye

Ulty loyer

Coe loyer

FIG: Layered

ARCHITECTURAL PATTERNS
A template that specifies approach for somebehavioral characteristics of the system Patterns are
imposed on the architectural styles
Pattern Domains 1.Concurrency
--Handles multiple tasks that simulate parallelism.
-Approaches (Patterns)
(a) Operating system process management pattern

(b) A task scheduler pattern 2.Persistence


--Data survives past the execution of the process
--Approaches (Patterns)
(a) Data base management system pattern
(b) Application Level persistencePattern(word processing software)
3. Distribution

Addresses thecommunication of system in a distributed environment


--Approaches (Patterns)
(a) Broker Pattern
-- Acts as middleman between client and server.

Object-Oriented Design: Objects and object classes, An Object-Oriented design process, Design
evolution.

. Performing User interface design: Golden rules, User interface analysis and design, interface
analysis, interface design steps, Design evaluation.

Object and Object Classes


Object: An object is an entity that has a state and a defined set of operations that operate on that
state.

An object class definition is both a type specification and a template for creating objects.
It includes declaration of all the attributesand operations that are associated with object of that class.

Object Oriented Design Process


There are five stages of object oriented design process
1)Understand and define the context and the modes of use of the system. 2) Design the system
architecture

3) Identify the principle objects in the system. 4) Develop a design models


5)Specify the object interfaces

Systems context and modes of use. It specifies the context of the system. also specify it

the relationships between the software that is being designed and its external environment.
If the system context is a static model it describes the other system in that environment.
If the system context is a dynamic model then it describes how the system actually interact with
theenvironment.

System Architecture
Once the interaction between the software system that being designed and the system environment have
been defined. We can use the above information as basis for designing the System

Architecture.

Object Identification--This process is actually concerned with identifying the object classes. We can
identify the object classes by the following
1) Use a grammatical analysis 2)Use a tangible entities 3) Use a behavioral approach
4)Use a scenario based approach
Design model
Design models are the bridge between the requirements and implementation. There are two type of
design models
1) Static model describe the relationship between the objects. 2) Dynamic model describe the
interactionbetween the objects

Object InterfaceSpecification
It isconcerned
with specifying the details of the interfacesto objects.
Design evolution. The main advantage OOD
approach is to simplify the problem of making changes to
the design. Changing the internaldetails of an object is unlikely to effect any other system object.

Golden Rules
1. Place the user in control

2. Reduce the user's memory load


3. Make the interfaceconsistent

Place the User in Control


Define interaction modes ina way that does not force a user into unnecessary or undesired actions.
Provide for flexibleinteraction.

Allow user interactionto be interruptibleand undoable.


Streamline interactionas skill levels advance and allow the interaction to be customized.
Hide technical internalsfrom the casual user.
Design for direct interactionwith objects that appear on the screen.

Makethe Interface Consistent. Allow the user to put the current task into a meaningful context.
Maintain consistency across a family of applications.If past interactivemodels have created user
expectations, do not make changes unless there is a compelling reason to do
SO.

USER INTERFACEANALYSISAND DESIGN


The overall process for analyzing and designing a user interfacebegins with the creation of different
models of system function. There are 4 different models that is to be considered when a user interface is
to be analyzed and designed.

User Interface Design Models


User modelEstablishes a profile of all end users of thesystem
Design model A design model of the entire system incorporates data, architectural,interface and
procedural representation of the software.
A design realizationof the user model
User's 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 interfacesyntax and semantics
Users can be categorized as
1. Novice- No syntacticknowledge of the system and little semantic knowledge of the applicationor
computer usage of the system
2. Knowledgeable, intermittent users- Reasonable semanticknowledge of the applicationbut low
recallof syntacticinformation to use the system

3. Knowledgeable, frequent users- Good semantic and syntactic knowledge

User interfaceanalysis and design process


The user interfaceanalysis and design process is an iterative process and it can be represented as a
spiral model
It consists of 5 framework activities 1.User, task and environment analysis 2.Interface
design3.Interfaceconstruction 4. Interfacevalidation

user, task and


intertace

validati on environmentanalysis

intertace design
implementation

User InterfaceDesign Process

Interface analysis
-Understanding the user who interacts with the system based on their skill levels.i.e, requirement
gathering
-The task the user performs to accomplish the goals of the system are identified, described and
elaborated. Analysis of work environment.

Interface design
In interfacedesign, all interfaceobjects and actions that enable a user to perform all desired task are
defined

Implementation
A prototype is initially constructed and then later user interfacedevelopment tools may be used to

complete the construction of the interface.

Validation
The correctness of the system is validated against the user requirement
InterfaceAnalysis
Interfaceanalysis 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, o 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 desirefor
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?
Dousers work normal office hours or do they work until the job is done?

Task Analysis and Modeling


Analysis Techniques
Use-cases define basic interaction

Task elaboration refines interactive tasks

Object elaboration identifies interfaceobjects(classes)


Workflow analysisdefines howa work process is completed when several people (and roles) are
involved

What work will the user perform in specificcircumstances?

InterfaceDesign Steps
• Using information developed during interfaceanalysisdefine interfaceobjects and actions
(operations).
Define events (user actions) that will cause the state of the user interface to change. Model this
behavior.

Depict each interfacestate 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.

InterfaceDesign Patterns. Patterns are availablefor


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: Steps:

Preliminary design Build prototype #1


Interfaceevaluation is studied by designer Design modifications are made
Build prototype #n
Interface
User evaluate's interface Interfacedesign is complete

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy