Software Engineering Design Process
Software Engineering Design Process
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
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
(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
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
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
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.
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
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.
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.
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
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
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.
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.
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
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.
validati on environmentanalysis
intertace design
implementation
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
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;
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?
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.
Error handling
Menu and command labeling
Application accessibility
Internationalization