Unit III Remaining Topics
Unit III Remaining Topics
Unit III Remaining Topics
Ooo
OBJECTIVE
To introduce the analysis and design concepts.
To introduce design heuristics and architectural design.
To explain data design for design concepts.
To explain about the User interface design.
To define the R-T executives for the analysis and design process.
To introduce the concept of data acquisition system.
To know about the monitoring and control system and defining to implement them.
TOPICS COVERED
Analysis Concepts
II--
Design Process And Concepts
Architectural design SIT IV
Data Design
EM
User Interface Design
Real Time Software Design
System Design
Real Time Executives
Data Acquisition System
Monitoring and Control System.
Chapter 1 Analysis Concepts
A. REQUIREMENTS ANALYSIS
Requirements analysis is a software engineering task that bridges the gap between system
level requirements engineering and software design .Requirements engineering activities
result in the specification of software's operational characteristics (function, data, and
behavior), indicate software's interface with other system elements, and establish
constraints that software must meet. Requirements analysis allows the software engineer
(sometimes called analyst in this role) to refine the software allocation and build models
of the data, functional, and behavioral domains that will be treated by software.
Introduction
Too often, customers and software engineers have an unconscious "us and them" mind-
set. Misunderstandings abound, important information is omitted, and a successful
working relationship is never established. It is with these problems in mind that a number
of independent investigators have developed a team-oriented approach to requirements
gathering that is applied during early stages of analysis and specification called
facilitated application specification techniques (FAST).
Description
This approach encourages the creation of a joint team of customers and developers who
work together to identify the problem, propose elements of the solution, negotiate
different approaches and specify a preliminary set of solution requirements. FAST has
been used predominantly by the information systems community, but the technique offers
potential for improved communication in applications of all kinds.
Use-Cases
As requirements are gathered as part of informal meetings, FAST, or QFD, the software
engineer (analyst) can create a set of scenarios that identify a thread of usage or the
system to be constructed. The scenarios, often called use-cases, provide a description of
how the system will be used. To create a use-case, the analyst must first identify the
C. ANALYSIS PRINCIPLES
Investigators have identified analysis problems and their causes and have developed a
variety of modeling notations and corresponding sets of heuristics to overcome them.
Each analysis method has a unique point of view.
All analysis methods are related by a set of operational principles:
The information domain of a problem must be represented and understood.
The functions that the software is to perform must be defined.
The behavior of the software (as a consequence of external events) must be
represented.
The models that depict information function and behavior must be partitioned in a
manner that uncovers detail in a layered (or hierarchical) fashion.
The analysis process should move from essential information toward implementation
detail.
The various analysis principles are
o The Information Domain
o Modeling
o Partitioning
o Essential and Implementation Views
Requirements analysis
Facilitated application specification techniques (FAST).
Quality function deployment (QFD)
use-case
requirements elicitation technique
1. ___________ is a software engineering task that bridges the gap between system
level requirements engineering and software design.
a).FAST b).Requirement analysis c) QFD d).Use case
4. The use-case describes the manner in which an actor interacts with the system.
a). Use case b).Requirement analysis c) QFD d). Use case
Introduction
Each of the elements of the analysis model provides information that is necessary to
create the four design models required for a complete specification of design. The flow of
information during software design is illustrated in Figure below. Software requirements,
manifested by the data, functional, and behavioral models, feed the design task. Using
one of a number of design methods, the design task produces a data design, an
architectural design, an interface design, and a component design.
The data design transforms the information domain model created during analysis into
the data structures that will be required to implement the software. The data objects and
relationships defined in the entity relationship diagram and the detailed data content
depicted in the data dictionary provide the basis for the data design activity.
The architectural design defines the relationship between major structural elements of
the software, the "design patterns" that can be used to achieve the requirements that have
been defined for the system, and the constraints that affect the way in which architectural
design patterns can be applied. The architectural design representation the framework of a
computer-based system.
The interface design describes how the software communicates within itself, with
systems that interoperate with it, and with humans who use it. An interface implies a flow
B. DESIGN PRINCIPLES
Software design is both a process and a model. The design process is a sequence of steps
that enable the designer to describe all aspects of the software to be built. It is important
to note, however, that the design process is not simply a cookbook. Creative skill, past
experience, a sense of what makes "good" software and an overall commitment to quality
are critical success factors for a competent design.
The design process should not suffer from "tunnel vision."
The design should be traceable to the analysis model.
The design should not reinvent the wheel.
The design should "minimize the intellectual distance" between the software and
the problem as it exists in the real world.
The design should exhibit uniformity and integration.
The design should be structured to accommodate change.
The design should be structured to degrade gently, even when aberrant data,
events, or operating conditions are encountered.
Design is not coding, coding is not design.
The design should be assessed for quality as it is being created, not after the fact.
The design should be reviewed to minimize conceptual (semantic) errors.
C. DESIGN CONCEPTS
A set of fundamental software design concepts has evolved over the past four decades.
Although the degree of interest in each concept has varied over the years, each has stood
the test of time. Each provides the software designer with a foundation from which more
sophisticated design methods can be applied.
Abstraction
Each step in the software process is a refinement in the level of abstraction of the
software solution. During system engineering, software is allocated as an element of a
computer-based system. During software requirements analysis, the software solution
10 | Analysis, Design Concepts And Principles
is stated in terms "that are familiar in the problem environment." A procedural
abstraction is a named sequence of instructions that has a specific and limited
function. An example of a procedural abstraction would be the word open for a door.
Open implies a long sequence of procedural steps (e.g., walk to the door, reach out
and grasp knob, turn knob and pull door, step away from moving door, etc.). A data
abstraction is a named collection of data that describes a data object.In the context of
the procedural abstraction open, we can define a data abstraction called door. Like
any data object, the data abstraction for door would encompass a set of attributes that
describe the door (e.g., door type, swing direction, opening mechanism, weight,
dimensions). It follows that the procedural abstraction open would make use of
information contained in the attributes of the data abstraction door.
Refinement
A program is developed by successively refining levels of procedural detail. A
hierarchy is developed by decomposing a macroscopic statement of function (a
procedural abstraction) in a stepwise fashion until programming language statements
are reached. Refinement is actually a process of elaboration. We begin with a
statement of function (or description of information) that is defined at a high level of
abstraction. That is, the statement describes function or information conceptually but
provides no information about the internal workings of the function or the internal
structure of the information. Refinement causes the designer to elaborate on the
original statement, providing more and more detail as each successive refinement
(elaboration) occurs. Abstraction and refinement are complementary concepts.
Abstraction enables a designer to specify procedure and data and yet suppress low-
level details. Refinement helps the designer to reveal low-level details as design
progresses. Both concepts aid the designer in creating a complete design model as the
design evolves.
Modularity
The concept of modularity in computer software has been espoused for almost five
decades. Software architecture embodies modularity; that is, software is divided into
Software Architecture
Architecture is the hierarchical structure of program components (modules), the
manner in which these components interact and the structure of data that are used by
the components. In a broader sense, however, components can be generalized to
represent major system elements and their interactions.
Structural properties. This aspect of the architectural design representation defines
the components of a system (e.g., modules, objects, filters) and the manner in
which those components are packaged and interact with one another. For
example, objects are packaged to encapsulate both data and the processing that
manipulates the data and interact via the invocation of methods.
Control Hierarchy
Control hierarchy, also called program structure, represents the organization of
program components (modules) and implies a hierarchy of control. It does not
represent procedural aspects of software such as sequence of processes, occurrence or
order of decisions, or repetition of operations; nor is it necessarily applicable to all
architectural styles.
Structural Partitioning
If the architectural style of a system is hierarchical, the program structure can be
partitioned both horizontally and vertically. Referring to Figure 13.4a, horizontal
partitioning defines separate branches of the modular hierarchy for each major program
function. Control modules, represented in a darker shade are used to coordinate
communication between and execution of the functions. The simplest approach to
horizontal partitioning defines three partitionsinput, data transformation (often called
processing) and output. Partitioning the architecture horizontally provides a number of
distinct benefits:
software that is easier to test
software that is easier to maintain
propagation of fewer side effects
software that is easier to extend
SUMMARY
Design is the technical kernel of software engineering.
During design, progressive refinements of data structure, architecture, interfaces, and
procedural detail of software components are developed, reviewed, and documented.
Design results in representations of software that can be assessed for quality.
A number of fundamental software design principles and concepts have been
proposed over the past four decades.
Design principles guide the software engineer as the design process proceeds.
Design concepts provide basic criteria for design quality.
3. ________ defines separate branches of the modular hierarchy for each major
program function.
a)Coupling b).data c).Architecture d).Horizontal partitioning
8. The ______ design transforms the information domain model created during
analysis into the data structures that will be required to implement the software.
a)Coupling b).data c).Architecture d).Horizontal partitioning
9. The _______ design defines the relationship between major structural elements of
the software.
a)Coupling b).data c).Architecture d).Horizontal partitioning
10. The________ design describes how the software communicates within itself, with
systems that interoperate with it, and with humans who use it.
a)Interface b).data c).Architecture d).Component level
11. The _______ design transforms structural elements of the software architecture
into a procedural description of software components.
a)Interface b).data c).Architecture d).Component level
Chapter 3 ARCHITECTURALDESIGN
Objectives
To introduce architectural design and to discuss its importance
To explain the architectural design decisions that have to be made
To introduce three complementary architectural styles covering organization,
decomposition and control
SUMMARY
Software architecture provides a holistic view of the system to be built. It depicts the
structure and organization of software components, their properties, and the
connections between them.
A number of different architectural styles and patterns are available to the software
engineer. Each style describes a system category that encompasses a set of
components that perform a function required by a system, a set of connectors that
enable communication, coordination and cooperation among components, constraints
that define how components can be integrated to form the system, and semantic
models that enable a designer to understand the overall properties of a system.
Architectural design encompasses the initial set of design activities that lead to a
complete design model of the software. In the chapters that follow, the design focus
shifts to interfaces and components.
2. ______________: A data store (e.g., a file or database) resides at the center of this
architecture and is accessed frequently by other components that update, add,
delete, or otherwise modify data within the store.
3. a).Data centered b).Call and return c).Data flow
OBJECTIVES
To suggest some general design principles for user interface design
To explain different interaction styles and their use
To explain when to use graphical and textual information presentation
To explain the principal activities in the user interface design process
To introduce usability attributes and approaches to system evaluation
DESCRIPTION
The blueprint for a house (its architectural design) is not complete without a
representation of doors, windows, and utility connections for water, electricity, and
telephone (not to mention cable TV). The "doors, windows, and utility connections" for
computer software make up the interface design of a system. Interface design focuses on
three areas of concern:
1. The design of interfaces between software components,
2. The design of interfaces between the software and other nonhuman producers and
consumers of information (i.e., other external entities), and
3. The design of the interface between a human (i.e., the user) and the computer.
TOPICS COVERED
The Golden Rules
The user interface design process
Summary
1. The initial analysis activity focuses on the profile of the users who will interact with
the system. Skill level, business understanding, and general receptiveness to the new
system are recorded; and different user categories are defined. For each user category,
requirements are elicited.
2. Once general requirements have been defined, a more detailed task analysis is
conducted. Those tasks that the user performs to accomplish the goals of the system
are identified, described, and elaborated (over a number of iterative passes through
the spiral).
3. The goal of interface design is to define a set of interface objects and actions (and
their screen representations) that enable a user to perform all defined tasks in a
manner that meets every usability goal defined for the system.
4. The implementation activity normally begins with the creation of a prototype that
enables usage scenarios to be evaluated. As the iterative design process continues, a
user interface tool kit may be used to complete the construction of the interface.
SUMMARY
The user interface is arguably the most important element of a computer-based
system or product. If the interface is poorly designed, the user's ability to tap the
computational power of an application may be severely hindered.
In fact, a weak interface may cause an otherwise well-designed and solidly
implemented application to fail.
Three important principles guide the design of effective user interfaces:
Place the user in control,
Reduce the user's memory load, and
Make the interface consistent.
User interface design begins with the identification of user, task, and environmental
requirements. Task analysis is a design activity that defines user tasks and actions
using either an elaborative or object-oriented approach.
ASSESMENT ANSWERS
What is it? User interface design creates an effective communication medium between a
human and a computer. Following a set of interface design principles, design identifies
interface objects and actions and then creates a screen layout that forms the basis for a
user interface prototype.
Who does it? A software engineer designs the user interface by applying an iterative
process that draws on predefined design principles.
Why is it important? If software is difficult to use, if it forces you into mistakes, or if it
frustrates your efforts to accomplish your goals, you won't like it, regardless of the
computational power it exhibits or the functionality it offers. Because it molds a user's
perception of the software, the interface has to be right.
What are the steps? User interface design begins with the identification of user, task,
and environmental requirements. Once user tasks have been identified, user scenarios are
created and analyzed to define a set of interface objects and actions. These form the basis
for the creation of screen layout that depicts graphical design and placement of icons,
definition of descriptive screen text, specification and titling for windows, and
OBJECTIVES
To explain the concept of a real-time system and why these systems are usually
implemented as concurrent processes
To describe a design process for real-time systems
To explain the role of a real-time operating system
To introduce generic process architectures for monitoring and control and data
acquisition systems
TOPICS COVERED
1. System design
2. Real-time executives
3. Data acquisition systems
4. Monitoring and control systems
1. SYSTEM DESIGN
System design develops the architectural detail required to build a system or product.
The system design process encompasses the following activities:
Partition the analysis model into subsystems.
Identify concurrency that is dictated by the problem.
Allocate subsystems to processors and tasks.
Scheduling strategies
Non pre-emptive scheduling
Once a process has been scheduled for execution, it runs to completion or
until it is blocked for some reason (e.g. waiting for I/O)
Pre-emptive scheduling
The execution of an executing processes may be stopped if a higher
priority process requires service
Scheduling algorithms
Round-robin
Rate monotonic
Shortest deadline first
Summary
Real-time system correctness depends not just on what the system does but also
on how fast it reacts.
A general RT system model involves associating processes with sensors and
actuators.
Real-time systems architectures are usually designed as a number of concurrent
processes.
Introduction
Important class of real-time systems
Continuously check sensors and take actions depending on sensor values
Monitoring systems examine sensors and report their results
Control systems take sensor values and control hardware actuators.
Solution:
A system is required to monitor sensors on doors and windows to detect the
presence of intruders in a building
When a sensor indicates a break-in, the system switches on lights around the area
and calls police automatically
The system should include provision for operation without a mains power supply.
Sensors
Movement detectors, window sensors, door sensors.
50 window sensors, 30 door sensors and 200 movement detectors
Voltage drop sensor
Actions
When an intruder is detected, police are called automatically.
Lights are switched on in rooms with active sensors.
An audible alarm is switched on.
The system switches automatically to backup power when a voltage drop is
detected.