Se Digital Notes
Se Digital Notes
SE Digital Notes
LECTURE NOTES ON
SOFTWARE ENGINEERING
(2005PC05)
II B.Tech. II Semester
Dr. C.V.P.R.PRASAD
Professor & Head,
Department of CSE
By
Dr.N.Kirubakaran Mrs. Preethi Kulkarni
Professor, Dept of CSE Assistant Professor,Dept of CSE
2021 – 2022
SYLLABUS
UNIT- I
Introduction to Software Engineering: The evolving role of software, Changing Nature of
Software, legacy software, Software myths.
A Generic view of process: Software engineering- A layered technology, a process
framework, The Capability Maturity Model Integration (CMMI), Process patterns, process
assessment, personal and team process models.
Process models: The waterfall model, Incremental process models, Evolutionary process
models, specialized process models, The Unified process.
Understand the Agile View of Process: Agility and Agile Process models of Agile
Development and Tools.
UNIT- II
Software Requirements: Functional and non-functional requirements, User requirements,
System requirements, Interface specification, the software requirements document.
Requirements engineering process: Feasibility studies, Requirements elicitation and
analysis, Requirements validation, Requirements management.
System models: Context Models, Behavioral models, Data models, Object models, structured
methods.
UML Diagrams.
UNIT- III
Design Engineering: Design process and Design quality, Design concepts, the design model,
pattern based software design.
Creating an architectural design: software architecture, Data design, Architectural styles
and patterns, Architectural Design, assessing alternative architectural designs, mapping data
flow into software architecture.
Modeling component-level design: Designing class-based components, conducting
component-level design, object constraint language, designing conventional components.
Performing User interface design: Golden rules, User interface analysis, and design,
interface analysis, interface design steps.
UNIT- IV
Testing Strategies: A strategic approach to software testing, test strategies for conventional
software, Black- Box and White-Box testing, Validation testing, System testing, the art of
Debugging.
Product metrics: Software Quality, Frame work for Product metrics, Metrics for Analysis
Model, Metrics for Design Model, Metrics for source code, Metrics for testing, Metrics for
maintenance.
Metrics for Process and Products: Software Measurement, Metrics for software quality.
UNIT- V
Risk management: Reactive vs Proactive Risk strategies, software risks, Risk identification,
TEXT BOOKS:
1) Software engineering A practitioner’s Approach, Roger S Pressman, sixth edition
McGraw Hill International Edition.
2) Software Engineering, Ian Sommerville, seventh edition, Pearson education.
REFERENCE BOOKS:
1) Software Engineering, A Precise Approach, Pankaj Jalote, Wiley India, 2010.
2) Software Engineering : A Primer, Waman S Jawadekar, Tata McGraw-Hill, 2008
3) Fundamentals of Software Engineering, Rajib Mall, PHI, 2005
4) Software Engineering, Principles and Practices, Deepak Jain, Oxford University Press
5) Software Engineering1: Abstraction and modeling, Diner Bjorner, Springer International
edition, 2006.
6) Software Engineering 2: Specification of systems and languages, Diner Bjorner, Springer
International edition 2006.
7) Software Engineering Foundations, Yingxu Wang, Auerbach Publications, 2008.
8) Software Engineering Principles and Practice, Hans Van Vliet, 3 rd edition, John Wiley
&Sons Ltd.
9) Software Engineering 3: Domains, Requirements, and Software Design, D. Bjorner,
Springer International Edition.
10) Introduction to Software Engineering, R. J. Leach, CRC
COURSE OBJECTIVES
To understanding of software process models such as waterfall and evolutionary models.
To understanding of software requirements and SRS document.
To understanding of different software architectural styles.
To understanding of software testing approaches such as unit testing and integration
testing.
To understanding on quality control and how to ensure good quality software.
COURSE OUTCOMES
CO1: Apply basic knowledge and understanding of the analysis, synthesis and design of
complex systems.
CO2: Apply software engineering principles and techniques.
CO3: Design and evaluate large-scale software systems.
CO4: Illustrate the managing time, processes and resources effectively by prioritizing
competing demands.
CO5: Develop as an effective member or leader of software engineering teams.
INDEX
S.NO TITLE PAGE NO
UNIT – 1
1.1 The evolving role of software 1
1.2 Changing Nature of Software, Legacy Software 3
1.3 Software Myths 5
1.4 Software engineering- A Layered Engineering 7
1.5 A Process Framework 8
1.6 The Capability Maturity Model Integration (CMMI) 11
1.7 Process Patterns 13
1.8 Process Assessment 15
1.9 Personal and Team Process Models 16
1.10 Waterfall Model 18
1.11 Incremental Process Models 19
1.12 Evolutionary Process models 22
1.13 Specialized Process models 27
1.14 The Unified Process 29
1.15 Understand the Agile View of Process : Agility 31
1.16 Agile Process models of Agile Development and Tools 33
UNIT – 2
2.1 Functional and non Functional requirements 39
2.2 User requirements 40
2.3 System Requirements 41
2.4 Interface Specifications 51
2.5 The Software requirements Documents 52
2.6 Feasibility Studies 55
2.7 Requirements elicitation and analysis 56
2.8 Requirements validation 64
2.9 Requirements Management 65
2.10 System models context Models: Behavioral Models 67
2.11 Data Models 71
2.12 Object Models 72
2.13 Structured Methods 75
2.14 UML Diagrams. 77
UNIT-3
3.1.1 Design Engineering- Design process and Design quality 103
3.1.2 Design concepts 105
3.1.3 The Design model 111
3.2.1 Creating an architectural design software architecture – Data Design 115
UNIT- I
INTRODUCTION TO SOFTWARE ENGINEERING
Software: Software is
1) Instructions (computer programs) that provide desired features, function, and
performance, when executed
2) Data structures that enable the programs to adequately manipulate information
3) Documents that describe the operation and use of the programs.
Characteristics of Software:
1) Software is developed or engineered; it is not manufactured in the classical sense.
2) Software does not ―wear out
3) Although the industry is moving toward component-based construction, most
software continues to be custom built.
Software Engineering:
1) The systematic, disciplined quantifiable approach to the development, operation
and maintenance of software; that is, the application of engineering to software.
2) The study of approaches as in (1)
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 1
The role of computer software has undergone significant change over a span of little
more than 50 years
Dramatic Improvements in hardware performance
Vast increases in memory and storage capacity
A wide variety of exotic input and output options
1970s and 1980s:
Osborne characterized a ―new industrial revolution
Toffler called the advent of microelectronics part of - the third wave of change‖
in human history
Naisbitt predicted the transformation from an industrial society to an - information
society
Feigenbaum and McCorduck suggested that information and knowledge would be
the focal point for power in the twenty-first century
Stoll argued that the ―electronic community‖ created by networks and software
was the key to knowledge interchange throughout the world
1990s began:
Toffier described a ―power shift‖ in which old power structures disintegrate as
computers and software lead to a ―democratization of knowledge
Yourdon worried that U.S companies might lose their competitive edge in
software related business and predicted ―the decline and fall of the American
programmer
Hammer and Champy argued that information technologies were to play a pivotal
role in the Re-engineering of the corporation‖.
Mid-1990s:
The pervasiveness of computers and software spawned a rash of books by neo-
luddites.
Later 1990s:
Yourdon reevaluated the prospects of the software professional and suggested the
rise and resurrection‖ of the American programmer.
The impact of the Y2K ―time bomb‖ was at the end of 20th century
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 2
2000s progressed:
Johnson discussed the power of ―emergence‖ a phenomenon that explains what
happens when interconnections among relatively simple entities result in a system
that self-organizes to form more intelligent, more adaptive behavior
Yourdon revisited the tragic events of 9/11 to discuss the continuing impact of
global terrorism on the IT community
Wolfram presented a treatise on a ―new kind of science‖ that posits a unifying
theory based primarily on sophisticated software simulations
Daconta and his colleagues discussed the evolution of ―the semantic web.
Today a huge software industry has become a dominant factor in the economies of
the industrialized world.
Application software:
Application software consists of standalone programs that solve a specific
business need.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 3
Engineering/Scientific software:
Engineering and scientific applications range from astronomy to volcanology
From automotive stress analysis to space shuttle orbital dynamics
From molecular biology to automated manufacturing
E.g. computer aided design, system simulation and other interactive applications.
Embedded software:
Embedded software resides within a product or system and is used to implement
and control features and functions for the end-user and for the system itself.
It can perform limited and esoteric functions or provide significant function and
control capability.
E.g. Digital functions in automobile, dashboard displays, braking systems etc.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 4
Net sourcing: The challenge for software engineers is to architect simple and
sophisticated applications that provide benefit to targeted end-user market worldwide.
Open Source: The challenge for software engineers is to build source that is self
descriptive but more importantly to develop techniques that will enable both
customers and developers to know what changes have been made and how those
changes manifest themselves within the software.
The new economy: The challenge for software engineers is to build applications that
will facilitate mass communication and mass product distribution.
SOFTWARE MYTHS
Beliefs about software and the process used to build it- can be traced to the
earliest days of computing myths have a number of attributes that have made them
insidious.
Myth: We already have a book that‘s full of standards and procedures for building
software - Wont that provide my people with everything they need to know?
Reality: The book of standards may very well exist but, is it used? Are software
practitioners aware of its existence? Does it reflect modern software engineering
practice?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 5
Myth: If we get behind schedule, we can add more programmers and catch up.
Myth: If I decide to outsource the software project to a third party, I can just relax
and let that firm built it.
Reality: If an organization does not understand how to manage and control software
projects internally, it will invariably struggle when it outsources software projects.
Customer myths: The customer believes myths about software because software
managers and practitioners do little to correct misinformation. Myths lead to false
expectations and ultimately, dissatisfaction with the developer.
Reality: It is true that software requirements change, but the impact of change varies
with the time at which it is introduced and change can cause upheaval that requires
additional resources and major design modification.
Practitioner’s myths: Myths that are still believed by software practitioners: during
the early days of software, programming was viewed as an art from old ways and
attitudes die hard.
Myth: Once we write the program and get it to work, our jobs are done.
Reality: Someone once said that the sooner you begin writing code, the longer it‘ll
take you to get done. Industry data indicate that between 60 and 80 percent of all
effort expended on software will be expended after it is delivered to the customer for
the first time
Myth: The only deliverable work product for a successful project is the working
program.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 6
Reality: A working program is only one part of a software configuration that includes
many elements. Documentation provides guidance for software support.
Tools
Methods
Process
A quality focus
Figure 1.1
Software Engineering Layers
Software engineering is a layered technology. Any engineering approach must
rest on an organizational commitment to quality. The bedrock that supports
software engineering
The software forms the basis for management control of software projects and
establishes the context in which
Technical methods are applied,
Work products are produced,
Milestones are established,
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 7
Quality is ensured,
And change is properly managed.
Software engineering methods rely on a set of basic principles that govern area
of the technology and include modeling activities.
Methods encompass a broad array of tasks that include
Communication,
Requirements analysis,
Design modeling,
Program construction,
Testing and support.
A PROCESS FRAMEWORK:
Software process must be established for effective delivery of software
engineering technology.
A process framework establishes the foundation for a complete software process
by identifying a small number of framework activities that are applicable to all
software projects, regardless of their size or complexity.
The process framework encompasses a set of umbrella activities that are
applicable across the entire software process.
Each framework activity is populated by a set of software engineering actions
Each software engineering action is represented by a number of different task sets-
each a collection of software engineering work tasks, related work products,
quality assurance points, and project milestones.
In brief
"A process defines who is doing what, when, and how to reach a certain goal. “
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 8
A Process Framework is
Establishes the foundation for a complete software process
Identifies a small number of framework activities
Applies to all s/w projects, regardless of size/complexity.
Also, set of umbrella activities
Applicable across entire s/w process.
Each framework activity has set of s/w engineering actions.
Each s/w engineering action (e.g., design) has collection of related tasks (called
task sets): work tasks work products (deliverables)
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 9
the resources that will be required, the work products to be produced, and a work
schedule
3. Modeling: This activity encompasses the creation of models that allow the
developer and customer to better understand software requirements and the design
that will achieve those requirements. The modeling activity is composed of 2
software engineering actions- analysis and design.
Analysis encompasses a set of work tasks.
Design encompasses work tasks that create a design model.
4. Construction: This activity combines core generation and the testing that is
required to uncover the errors in the code
5. Deployment: The software is delivered to the customer who evaluates the
delivered product and provides feedback based on the evolution.
Risk Management - assesses risks that may effect the outcome of the project or the
quality of the product.
Software Quality Assurance - defines and conducts the activities required to ensure
software quality.
Measurement - define and collects process, project and product measures that assist
the team in delivering software that needs customer‘s needs, can be used in
conjunction with all other framework and umbrella activities.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 10
Reusability management - defines criteria for work product reuse and establishes
mechanisms to achieve reusable components.
Work Product preparation and production - encompasses the activities required to
create work products such as models, document, logs, forms and lists.
Intelligent application of any software process model must recognize that adaption is
essential for success but process models do differ fundamentally in:
The overall flow of activities and tasks and the interdependencies among activities
and tasks.
The degree through which work tasks are defined within each frame work activity.
The degree through which work products are identified and required.
The manner which quality assurance activities are applied.
The manner in which project tracking and control activities are applied.
The overall degree of the detailed and rigor with which the process is described.
The degree through which the customer and other stakeholders are involved with
the project.
The level of autonomy given to the software project team.
The degree to which team organization and roles are prescribed.
Each process area is formally assessed against specific goals and practices and is rated
according to the following capability levels.
Level 0: Incomplete. The process area is either not performed or does not achieve all
goals and objectives defined by CMMI for level 1 capability.
Level 1: Performed. All of the specific goals of the process area have been satisfied.
Work tasks required to produce defined work products are being conducted.
Level 2: Managed. All level 1 criteria have been satisfied. In addition, all work
associated with the process area conforms to an organizationally defined policy; all
people doing the work have access to adequate resources to get the job done;
stakeholders are actively involved in the process area as required; all work tasks and
work products are monitored, controlled, and reviewed;
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 11
Level 3: Defined. All level 2 criteria have been achieved. In addition, the process is
tailored from the organizations set of standard processes according to the
organizations tailoring guidelines, and contributes and work products, measures and
other process-improvement information to the organizational process assets‖.
Level 4: Quantitatively managed. All level 3 criteria have been achieved. In addition,
the process area is controlled and improved using measurement and quantitative
assessment. Quantitative objectives for quality and process performance are
established and used as criteria in managing the process‖
Level 5: Optimized. All level 4 criteria have been achieved. In addition, the process
area is adapted and optimized using quantitative means to meet changing customer
needs and to continually improve the efficacy of the process area under consideration
The CMMI defines each process area in terms of ―specific goals and the ―specific
practices required to achieve these goals. Specific practices refine a goal into a set of
process-related activities.
The specific goals (SG) and the associated specific practices(SP) defined for project
planning are
SG 1 Establish estimates
SP 1.1 Estimate the scope of the project
SP 1.2 Establish estimates of work product and task attributes SP 1.3 Define project
life cycle
SP 1.4 Determine estimates of effort and cost
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 12
In addition to specific goals and practices, the CMMI also defines a set of five
generic goals and related practices for each process area. Each of the five generic
goals corresponds to one of the five capability levels. Hence to achieve a particular
capability level, the generic goal for that level and the generic practices that
correspond to that goal must be achieved. To illustrate, the generic goals (GG) and
practices (GP) for the project planning process area are
PROCESS PATTERNS
The software process can be defined as a collection patterns that define a set of
activities, actions, work Tasks, work products and/or related behaviors required to
develop computer software.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 13
Initial Context: The conditions under which the pattern applies are described prior to
the initiation of the pattern, we ask
(1) What organizational or team related activities have already occurred.
(2) What is the entry state for the process
(3) What software engineering information or project information already exists
Resulting Context: The conditions that will result once the pattern has been
successfully implemented are described. Upon completion of the pattern we ask
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 14
Known Uses: The specific instances in which the pattern is applicable are indicated
Process patterns provide and effective mechanism for describing any software process.
The patterns enable a software engineering organization to develop a hierarchical
process description that
Once process pattern have been developed, they can be reused for the
definition of process variants-that is, a customized process model can be defined by a
software team using the pattern as building blocks for the process models.
PROCESS ASSESSMENT
Figure 1.2
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 15
CMM Based Appraisal for Internal Process Improvement (CBA IPI) provides a
diagnostic technique for assessing the relative maturity of a software organization,
using the SEI CMM as the basis for the assessment.
ISO 9001:2000 for Software is a generic standard that applies to any organization
that wants to improve the overall quality of the products, system, or services that it
provides. Therefore, the standard is directly applicable to software organizations &
companies.
Planning: This activity isolates requirements and, base on these develops both size
and resource estimates. In addition, a defect estimate is made. All metrics are
recorded on worksheets or templates. Finally, development tasks are identified and a
project schedule is created.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 16
High level design: External specifications for each component to be constructed are
developed and a component design is created. Prototypes are built when uncertainty
exists. All issues are recorded and tracked.
High level design review: Formal verification methods are applied to uncover errors
in the design. Metrics are maintained for all important tasks and work results.
Postmortem: Using the measures and metrics collected the effectiveness of the
process is determined. Measures and metrics should provide guidance for modifying
the process to improve its effectiveness.
PSP stresses the need for each software engineer to identify errors early and, as
important, to understand the types of errors that he is likely to make. PSP represents a
disciplined, metrics-based approach to software engineering.
Team software process (TSP): The goal of TSP is to build a ―self-directed project
team that organizes itself to produce high-quality software. The following are the
objectives for TSP:
Build self-directed teams that plan and track their work, establish goals, and own
their processes and plans. These can be pure software teams or integrated product
teams(IPT) of 3 to about 20 engineers.
Show managers how to coach and motivate their teams and how to help them
sustain peak performance.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 17
PROCESS MODELS
Prescriptive process models define a set of activities, actions, tasks,
milestones, and work products that are required to engineer high-quality software.
These process models are not perfect, but they do provide a useful roadmap for
software engineering work.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 18
Advantage:
It can serve as a useful process model in situations where requirements are fixed and
work is to proceed to complete in a linear manner.
Figure 1.3
The problems that are sometimes encountered when the waterfall model is applied are
Real projects rarely follow the sequential flow that the model proposes. Although the
linear model can accommodate iteration, it does so indirectly. As a result, changes can
cause confusion as the project team proceeds.
It is often difficult for the customer to state all requirements explicitly. The waterfall
model requires this and has difficulty accommodating the natural uncertainty that
exist at the beginning of many projects.
The customer must have patience. A working version of the programs will not be
available until late in the project time-span. If a major blunder is undetected then it
can be disastrous until the program is reviewed.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 19
Figure 1.4
The plan addresses the modification of the core product to better meet the
needs of the customer and the delivery of additional features and functionality. This
process is repeated following the delivery of each increment, until the complete
product is produced.
Difference: The incremental process model, like prototyping and other evolutionary
approaches, is iterative in nature. But unlike prototyping, the incremental model
focuses on delivery of an operational product with each increment
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 20
Context: If requirements are well understood and project scope is constrained, the
RAD process enables a development team to create a “fully functional system” within
a very short time period.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 21
Modeling encompasses three major phases – business modeling, data modeling and
process modeling and establishes design representation that server existing software
components and the application of automatic code generation.
Deployment establishes a basis for subsequent iterations. The RAD approach has
drawbacks:
If developers and customers are not committed to the rapid-fire activities necessary to
complete the system in a much abbreviated time frame, RAD projects will fail
If a system cannot be properly modularized, building the components necessary for
RAD will problematic
If high performance is an issue, and performance is to be achieved through tuning the
interfaces to system components, the RAD approach may not work; and
RAD may not be appropriate when technical risks are high.
PROTOTYPING:
Prototyping is more commonly used as a technique that can be implemented
within the context of anyone of the process model.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 22
Iteration occurs as the prototype is tuned to satisfy the needs of the customer,
while at the same time enabling the developer to better understand what needs to be
done.
If a customer defines a set of general objectives for software, but does not identify
detailed input, processing, or output requirements, in such situation prototyping
paradigm is best approach.
If a developer may be unsure of the efficiency of an algorithm, the adaptability of an
operating system then he can go for this prototyping method.
Advantages:
The prototyping paradigm assists the software engineer and the customer to
better understand what is to be built when requirements are fuzzy.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 23
unaware that in the rush to get it working we haven’t considered overall software
quality or long-term maintainability. When informed that the product must be rebuilt
so that high-levels of quality can be maintained, the customer cries foul and demands
that “a few fixes” be applied to make the prototype a working product. Too often,
software development relents.
Anchor point milestones- a combination of work products and conditions that are
attained along the path of the spiral- are noted for each evolutionary pass.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 24
The first circuit around the spiral might result in the development of product
specification; subsequent passes around the spiral might be used to develop a
prototype and then progressively more sophisticated versions of the software.
Each pass through the planning region results in adjustments to the project
plan. Cost and schedule are adjusted based on feedback derived from the customer
after delivery. In addition, the project manager adjusts the planned number of
iterations required to complete the software.
The first circuit around the spiral might represent a “concept development
project” which starts at the core of the spiral and continues for multiple iterations until
concept development is complete.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 25
Context: The spiral model can be adopted to apply throughout the entire life cycle of
an application, from concept development to maintenance.
Advantages:
It provides the potential for rapid development of increasingly more complete
versions of the software.
The spiral model is a realistic approach to the development of large-scale systems
and software. The spiral model uses prototyping as a risk reduction mechanism
but, more importantly enables the developer to apply the prototyping approach at
any stage in the evolution of the product.
Draw Backs:
The spiral model is not a panacea. It may be difficult to convince customers that the
evolutionary approach is controllable. It demands considerable risk assessment
expertise and relies on this expertise for success. If a major risk is not uncovered and
managed, problems will undoubtedly occur.
The activity modeling may be in anyone of the states noted at any given time.
Similarly, other activities or tasks can be represented in an analogous manner. All
activities exist concurrently but reside in different states.
Any of the activities of a project may be in a particular state at any one time:
under development
awaiting changes
under revision
under review
In a project the communication activity has completed its first iteration and
exists in the awaiting changes state. The modeling activity which existed in the none
state while initial communication was completed, now makes a transition into the
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 26
under development state. If, however, the customer indicates that changes in
requirements must be made, the modeling activity moves from the under development
state into the awaiting changes state.
The concurrent process model defines a series of events that will trigger
transitions from state to state for each of the software engineering activities, actions,
or tasks. The event analysis model correction which will trigger the analysis action
from the done state into the awaiting changes state.
Context: The concurrent model is often more appropriate for system engineering
projects where different engineering teams are involved.
Advantages:
The concurrent process model is applicable to all types of software development
and provides an accurate picture of the current state of a project.
It defines a network of activities rather than each activity, action, or task on the
network exists simultaneously with other activities, action and tasks.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 27
When formal methods are used during development, they provide a mechanism
for eliminating many of the problems that are difficult to overcome using other software
engineering paradigms. Ambiguity, incompleteness, and inconsistency can be discovered
and corrected more easily, but through the application of mathematical analysis.
When formal methods are used during design, they serve as a basis for program
verification and therefore enable you to discover and correct errors that might otherwise go
undetected. Although not a mainstream approach, the formal methods model offers the promise
of defect-free software.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 28
Draw Backs:
The development of formal models is currently quite time consuming and expensive.
Because few software developers have the necessary background to apply formal methods,
extensive training is required.
It is difficult to use the models as a communication mechanism for Technically
unsophisticated customers.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 29
on the right goals, such as understandability, reliance to future changes, and reuse“. If
suggests a process flow that is iterative and incremental, providing the evolutionary
feel that is essential in modern software development.
A BRIEF HISTORY:
During the 1980s and into early 1990s, object-oriented (OO) methods and
programming languages gained a widespread audience throughout the software
engineering community. A wide variety of object-oriented analysis (OOA) and design
(OOD) methods were proposed during the same time period.
During the early 1990s James Rumbaugh, Grady Booch, and Ival Jacobsom
began working on a “Unified method” that would combine the best features of each of
OOD & OOA. The result was UML- a unified modeling language that contains a
robust notation fot the modeling and development of OO systems.
Over the next few years, Jacobson, Rumbugh, and Booch developed the
Unified process, a framework for object-oriented software engineering using UML.
Today, the Unified process and UML are widely used on OO projects of all kinds.
The iterative, incremental model proposed by the UP can and should be adapted to
meet specific project needs.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 30
the architectural representation to include five different views of the software- the use-
case model, the analysis model, the design model, the implementation model, and the
deployment model.
The transition phase of the UP encompasses the latter stages of the generic
construction activity and the first part of the generic deployment activity. Software
given to end-users for beta testing, and user feedback reports both defects and
necessary changes.
The production phase of the UP coincides with the deployment activity of the
generic process. During this phase, the on-going use of the software is monitored,
support for the operating environment is provided, and defect reports and requests for
changes are submitted and evaluated.
Understand the Agile View of Process: Agility and Agile Process models
of Agile Development and Tools.
What is Agile?
Agile methodologies are approaches to product development that are aligned
with the values and principles described in the Agile Manifesto for software
development. Agile methodologies aim to deliver the right product, with incremental
and frequent delivery of small chunks of functionality, through small cross-functional
self-organizing teams, enabling frequent customer feedback and course correction as
needed.
In doing so, Agile aims to right the challenges faced by the traditional
“waterfall” approaches of delivering large products in long periods of time, during
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 31
Agile has become an umbrella term for a variety of planning, management and
technical methods and processes for managing projects, developing software and
other products and services in an iterative manner. These methods include Scrum, by
far the most prevalent and popular method for software, XP (eXtreme Programming
or Paired Programming), and more lately Kanban.
Agile methods also include technical practices – most of which fall under the
umbrella term DevOps – that enable Test Automation, Continuous Integration/
Continuous Delivery/ Deployment (CI/ CD) and overall, an ever-shrinking delivery
cycle for software and other products and services.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 32
Figure 1.8
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 33
Scrum Methodology
Scrum methodology is a simple framework for working with complex
projects, and it was created by Ken Schwaber and Jeff Sutherland.
In Scrum, projects are divided into cycles (typically 2 or 3 week cycles) called
Sprints. The Sprint represents a timebox within which a set of features must be
developed. Multiple sprints might be combined to form a Release – where formal
software/ product delivery is made to the customer/ market.
The overall product functionality is broken down by the Product Owner into
smaller features (typically described as Epics and User Stories – or just Stories).
These Stories are prioritized and taken up in each Sprint or Iteration. The intent of the
method is for the team to be able to demo at the end of each Sprint working pieces of
the product to the Product Owner, to make sure that the product is working as
intended.
Overall, the Scrum method breaks the long waterfall process delivery into
smaller cycles, which enables product teams and the end-customer to frequently
review working software and ensure that it meets their business requirements. This
ensures that the end product also meets the final requirements of the customer.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 34
Unlike most Software development methodologies which use a static life cycle
i.e., Plan-Design-Build, ASD offers a non-linear iterative life cycle, where each cycle
can iterate and be modified while another cycle is being executed. It points towards
Rapid Application Development (RAD), which emphasizes development speed to
create a high quality, low maintenance product involving the user as much as
possible. The main characteristics of ASD are:
1. Speculate: This is the initiation phase of the project where it is necessary to
establish the main objectives and goals of the project by understanding the
limitations (risk areas) with which the project operates.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 35
DSDM is an agile model that can undoubtedly help organizations that are used
to working on projects to change their mentality and way of working to improve their
capacity to deliver value and reduce time to market.
Projects with multiple teams and a large number of people represent the
challenge that not all will be equally talented and disciplined. FDD includes specific
activities that help address communication challenges and coordination of such
projects.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 36
FDD is a 5-stage process, the first 3 of which are sequential and the final two
stages are iterative (as shown in the diagram above). All agile methodologies follow a
series of principles that make them resemble each other. FDD, however, offers
solutions on how to organize the team and how to program the code, which makes it
especially viable for large development teams building complex software.
Kanban Method
The Kanban Method was defined by David Anderson in the early -to-mid
2000s, in response to some of the challenges of the various Agile methods, especially
Scrum. These methods, while trying to solve the challenges of traditional/ waterfall
methods, became victim to some of the same challenges themselves.
The 2-3 week sprint cycle became too long to wait for many business contexts,
the changes required in organizational structure (new roles and responsibilities) and a
project management/ planning processes put too much strain on organizations, and
many teams found themselves not meeting even sprint-level commitments of scope
and quality. For most organizations, implementing these methods became very
disruptive.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 37
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 38
UNIT-II
FUNCTIONAL AND NON- FUNCTIONAL REQUIREMENTS
What is a requirement?
The requirements for the system are the description of the services provided by
the system and its operational constraints
It may range from a high-level abstract statement of a service or of a system
constraint to a detailed mathematical functional specification.
This is inevitable as requirements may serve a dual function
May be the basis for a bid for a contract - therefore must be open to
interpretation; May be the basis for the contract itself - therefore must be defined in
detail;
Requirements engineering:
The process of finding out, analyzing documenting and checking these services
and constraints is called requirement engineering.
The process of establishing the services that the customer requires from a system
and the constraints under which it operates and is developed.
The requirements themselves are the descriptions of the system services and
constraints that are generated during the requirements engineering process.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 39
contract has been awarded, the contractor must write a system definition for the client
in more detail so that the client understands and can validate what the software will
do. Both of these documents may be called the requirements document for the system.
Types of Requirements:
User requirements
Statements in natural language plus diagrams of the services the system provides
and its operational constraints. Written for customers.
System requirements
A structured document setting out detailed descriptions of the system’s functions,
services and operational constraints. Defines what should be implemented so may
be part of a contract between client and contractor.
The user should be provided with facilities to define the type of external files.
Each external file type may have an associated tool which may be applied to the
file.
Each external file type may be represented as a specific icon on the user’s display.
Facilities should be provided for the icon representing an external file type to be
defined by the user.
When an user selects an icon representing an external file, the effect of that
selection is to apply the tool associated with the type of the external file to the file
represented by the selected icon.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 40
Requirements readers:
Functional and Non-Functional Requirements:
Figure 2.1
Functional requirements
Statements of services the system should provide how the system should react to
particular inputs and how the system should behave in particular situations.
Non-functional requirements
Constraints on the services or functions offered by the system such as timing
constraints, constraints on the development process, standards, etc.
Domain requirements
Requirements that come from the application domain of the system and that reflect
characteristics of that domain.
FUNCTIONAL REQUIREMENTS:
Describe functionality or system services.
Depend on the type of software, expected users and the type of system where the
software is used.
Functional user requirements may be high-level statements of what the system
should do but functional system requirements should describe the system services
in detail.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 41
Requirements imprecision:
Problems arise when requirements are not precisely stated.
Ambiguous requirements may be interpreted in different ways by developers and
users.
Consider the term ‘appropriate viewers’
User intention - special purpose viewer for each different document type;
Developer interpretation - Provide a text viewer that shows the contents of the
document.
Consistent:
There should be no conflicts or contradictions in the descriptions of the system
facilities. In practice, it is impossible to produce a complete and consistent
requirements document.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 42
NON-FUNCTIONAL REQUIREMENTS
These define system properties and constraints e.g. reliability, response time and
storage requirements. Constraints are I/O device capability, system representations,
etc.
Process requirements may also be specified mandating a particular CASE system,
programming language or development method.
Non-functional requirements may be more critical than functional requirements. If
these are not met, the system is useless.
Figure 2.2
Non-functional requirements :
Product requirements
Requirements which specify that the delivered product must behave in a particular
way
E.g. execution speed, reliability, etc.
Eg: The user interface for LIBSYS shall be implemented as simple HTML without
frames or Java applets.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 43
Organizational requirements
Requirements which are a consequence of organizational policies and procedures
E.g. process standards used, implementation requirements, etc.
Eg: The system development process and deliverable documents shall conform to
the process and deliverables defined in XYZCo-SP-STAN-95.
External requirements
Requirements which arise from factors which are external to the system and its
development process e.g. interoperability requirements, legislative requirements,
etc.
Eg: The system shall not disclose any personal information about customers apart
from their name and reference number to the operators of the system.
Goals
A general intention of the user such as ease of use.
The system should be easy to use by experienced controllers and should be
organised in such a way that user errors are minimized.
Requirements interaction:
Conflicts between different non-functional requirements are common in complex
systems. Spacecraft system
To minimize weight, the number of separate chips in the system should be
minimized. To minimize power consumption, lower power chips should be used.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 44
However, using low power chips may mean that more chips have to be used.
Which is the most critical requirement?
DOMAIN REQUIREMENTS
Derived from the application domain and describe system characteristics and
features that reflect the domain.
Domain requirements be new functional requirements, constraints on existing
requirements or define specific computations.
If domain requirements are not satisfied, the system may be unworkable.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 45
Implicitness
Domain specialists understand the area so well that they do not think of making
the domain requirements explicit.
USER REQUIREMENTS
Should describe functional and non-functional requirements in such a way that
they are understandable by system users who don’t have detailed technical
knowledge.
User requirements are defined using natural language, tables and diagrams as
these can be understood by all users.
Requirements confusion
Functional and non-functional requirements tend to be mixed-up.
Requirements amalgamation
Several different requirements may be expressed together.
Requirement problems
Database requirements includes both conceptual and detailed information
Describes the concept of a financial accounting system that is to be included in
LIBSYS;
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 46
However, it also includes the detail that managers can configure this system - this
is unnecessary at this level.
STRUCTURED PRESENTATION
2.6.1 Grid Facilities
SYSTEM REQUIREMENTS
More detailed specifications of system functions, services and constraints than
user requirements.
They are intended to be a basis for designing the system.
They may be incorporated into the system contract.
System requirements may be defined or illustrated using system models
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 47
Over-flexibility
The same thing may be said in a number of different ways in the specification.
Lack of modularization
NL structures are inadequate to structure system requirements.
Alternatives to NL specification:
Notation Description
Structured natural This approach depends on defining standard forms or templates
Language Requirement Analysis
Design description This approach uses a language like a programming language but
with more abstract
Languages Features to specify the requirements by defining an operational
model of the system.
This approach is not now widely used although it can be useful for interface
specifications. Graphical A graphical language, supplemented by text annotations is
used to define the functional notations requirements for the system. An early example
of such a graphical language was SADT. Now, use-case descriptions and sequence
diagrams are commonly used.
Mathematical: These are notations based on mathematical concepts such as finite-
state machines or specifications sets. These unambiguous specifications reduce the
arguments between customer and contractor about system functionality. However,
most customers don’t understand formal specifications and are reluctant to accept it as
a system contract.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 48
Form-based specifications
Definition of the function or entity.
Description of inputs and where they come from.
Description of outputs and where they go to.
Indication of other entities required.
Pre and post conditions (if appropriate).
The side effects (if any) of the function.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 49
When a standard form is used for specifying functional requirements, the following
information should be included:
1. Description of the function or entity being specified
2. Description of its inputs and where these come from
3. Description of its outputs and where these go to
4. Indication of what other entities are used
5. Description of the action to be taken
6. If a functional approach is used, a pre-condition setting out what must be true
before the function is called and a post-condition specifying what is true after the
function is called
7. Description of the side effects of the operation.
Tabular specification
Used to supplement natural language.
Particularly useful when you have to define a number of possible alternative
courses of action.
Graphical models
Graphical models are most useful when you need to show how state changes or
where you need to describe a sequence of actions.
Sequence diagrams
These show the sequence of events that take place during some user interaction
with a system.
You read them from top to bottom to see the order of the actions that takeplace.
Cash withdrawal from an ATM
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 50
Validate card;
Handle request;
Complete transaction.
Figure 2.3
INTERFACE SPECIFICATION
Most systems must operate with other systems and the operating interfaces must be
specified as part of the requirements.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 51
1. Introduction.
i) Purpose of the requirements document
ii) Scope of the project
iii) Definitions, acronyms and abbreviations
iv) References
v) Overview of the remainder of the document
2. General description.
i) Product perspective
ii) Product functions
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 52
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 53
Figure 2.4
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 54
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 55
Once you have the information, you write the feasibility study report. You
should make a recommendation about whether or not the system development should
continue. In the report, you may propose changes to the scope, budget and schedule of
the system and suggest further high-level requirements for the system.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 56
The requirements change during the analysis process. New stakeholders may
emerge and the business environment change.
4. Requirements documentation
Requirements are documented and input into the next round of the spiral.
The process cycle starts with requirements discovery and ends with requirements
documentation. The analyst’s understanding of the requirements improves with
each round of the cycle.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 57
In the requirement documenting stage, the requirements that have been elicited
are documented in such a way that they can be used to help with further requirements
discovery.
REQUIREMENTS DISCOVERY:
They interact with stakeholders through interview and observation and may use
scenarios and prototypes to help with the requirements discovery.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 58
6. Security Managers
7. Marketing Department
8. Hardware and Software Maintenance Engineers
9. Banking Regulators
Viewpoints:
Viewpoints are a way of structuring the requirements to represent the
perspectives of different stakeholders. Stakeholders may be classified under different
viewpoints. This multi-perspective analysis is important as there is no single correct
way to analyse system requirements.
TYPES OF VIEWPOINT:
1. Interactor viewpoints
People or other systems that interact directly with the system. These
viewpoints provide detailed system requirements covering the system features and
interfaces. In an ATM, the customer’s and the account database are interactor VPs.
2. Indirect viewpoints
Stakeholders who do not use the system themselves but who influence the
requirements. These viewpoints are more likely to provide higher-level organisation
requirements and constraints. In an ATM, management and security staff are indirect
viewpoints.
3. Domain viewpoints
Domain characteristics and constraints that influence the requirements. These
viewpoints normally provide domain constraints that apply to the system. In an ATM,
an example would be standards for inter-bank communications. Typically, these
viewpoints provide different types of requirements.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 59
Viewpoint identification:
Identify viewpoints using
Providers and receivers of system services;
Systems that interact directly with the system being specified;
Regulations and standards;
Sources of business and non-functional requirements.
Engineers who have to develop and maintain the system;
Marketing and other business viewpoints.
Figure 2.7
Interviewing
In formal or informal interviewing, the RE team puts questions to stakeholders
about the system that they use and the system to be developed.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 60
Interviews in practice:
Normally a mix of closed and open-ended interviewing.
Interviews are good for getting an overall understanding of what stakeholders do
and how they might interact with the system.
Interviews are not good for understanding domain requirements
Requirements engineers cannot understand specific domain terminology;
Some domain knowledge is so familiar that people find it hard to articulate or think
that it isn’t worth articulating.
Effective interviewers:
Interviewers should be open-minded, willing to listen to stakeholders and
should not have pre-conceived ideas about the requirements.
They should prompt the interviewee with a question or a proposal and should
not simply expect them to respond to a question such as ‘what do you want’.
Scenarios:
Scenarios are real-life examples of how a system can be used. They should include
A description of the starting situation;
A description of the normal flow ofevents;
A description of what can go wrong;
Information about other concurrent activities;
A description of the state when the scenario finishes.
Use cases
Use-cases are a scenario based technique in the UML which identify the actors in
an interaction and which describe the interaction itself.
A set of use cases should describe all possible interactions with the system.
Sequence diagrams may be used to add detail to use-cases by showing the
sequence of event processing in the system.
Figure 2.8
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 61
Figure 2.9
Figure 2.10
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 62
ETHNOGRAPHY:
Social scientists spend a considerable time observing and analyzing how people
actually work.
People do not have to explain or articulate their work.
Social and organizational factors of importance may be observed.
Ethnographic studies have shown that work is usually richer and more complex
than suggested by simple system models.
Focused ethnography:
Developed in a project studying the air traffic control process Combines
ethnography with prototyping
Prototype development results in unanswered questions which focus the
ethnographic analysis.
The problem with ethnography is that it studies existing practices which may have
some historical basis which is no longer relevant.
Figure 2.11
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 63
Scope of ethnography:
Requirements that are derived from the way that people actually work rather than
the way I which process definitions suggest that they ought to work.
Requirements that are derived from cooperation and awareness of other people’s
activities.
REQUIREMENTS VALIDATION
Concerned with demonstrating that the requirements define the system that the
customer really wants.
Requirements error costs are high so validation is very important
Fixing a requirements error after delivery may cost up to 100 times the cost of
fixing an implementation error.
Requirements checking:
Validity: Does the system provide the functions which best support the customer’s
needs?
Consistency: Are there any requirements conflicts?
Completeness: Are all functions required by the customer included?
Realism: Can the requirements be implemented given available budget and
technology
Verifiability: Can the requirements be checked?
Prototyping
Using an executable model of the system to check requirements.
Test-case generation
Developing tests for requirements to check testability.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 64
Requirements reviews:
Regular reviews should be held while the requirements definition is being
formulated.
Both client and contractor staff should be involved in reviews.
Reviews may be formal (with completed documents) or informal. Good
communications between developers, customers and users can resolve problems at
an early stage.
Review checks:
Verifiability: Is the requirement realistically testable?
Comprehensibility: Is the requirement properly understood?
Traceability: Is the origin of the requirement clearly stated?
Adaptability: Can the requirement be changed without a large impact on other
requirements?
REQUIREMENTS MANAGEMENT
Requirements management is the process of managing changing requirements
during the requirements engineering process and system development.
Requirements are inevitably incomplete and inconsistent
o New requirements emerge during the process as business needs change and a
better understanding of the system is developed;
o Different viewpoints have different requirements and these are often
contradictory.
Requirements change
The priority of requirements from different viewpoints changes during the
development process.
System customers may specify requirements from a business perspective that
conflict with end-user requirements.
The business and technical environment of the system changes during its
development.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 65
Requirements evolution:
Enduring and volatile requirements:
Figure 2.11
Enduring requirements: Stable requirements derived from the core activity of the
customer organisation. E.g. a hospital will always have doctors, nurses, etc. May be
derived from domain models
Volatile requirements: Requirements which change during development or when the
system is in use. In a hospital, requirements derived from health-care policy .
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 66
Change management:
Figure 2.12
SYSTEM MODELLING
System modelling helps the analyst to understand the functionality of the system
models are used to communicate with customers.
Model types
Data processing model showing how the data is processed at different stages.
Composition model the system’s reaction to events.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 67
CONTEXT MODELS:
Context models are used to illustrate the operational context of a system - they
show what lies outside the system boundaries.
Social and organisational concerns may affect the decision on where to position
system boundaries.
Ideally, the boundaries between the system and its environment are identified
clearly. Various models can be used for context modeling:
Figure 2.13
Process models:
Process models show the overall process and the processes that are supported by
the system.
Data flow models may be used to show the processes and the flow of information
from one process to another.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 68
BEHAVIOURAL MODELS:
Behavioral models are used to describe the overall behavior of a system. Two
types of behavioral model are:
Data processing models that show how data is processed as it moves through the
system;
State machine models that show the systems response to events.
These models show different perspectives so both of them are required to describe
the system’s behavior.
Data-processing models:
Data flow diagrams (DFDs) may be used to model the system’s data processing.
These show the processing steps as data flows through a system.
DFDs are an intrinsic part of many analysis methods.
Simple and intuitive notation that customers can understand.
Show end-to-end processing of data.
Figure 2.14
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 69
Statecharts:
Allow the decomposition of a model into sub-models (see following slide).
A brief description of the actions is included following the ‘do’ in each state.
Can be complemented by tables describing the states and the stimuli.
Figure 2.15
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 70
Operation Oven in operation. Interior oven light is on. Display shows the timer
countdown. On completion of cooking, the buzzer is sounded for 5 seconds. Oven
light is on. Display shows ‘Cooking complete’ while buzzer is sounding.
DATA MODELS:
Used to describe the logical structure of data processed by the system.
An entity-relation-attribute model sets out the entities in the system, the
relationships between these entities and the entity attributes
Widely used in database design. Can readily be implemented using relational
databases.
No specific notation provided in the UML but objects and associations can be
used.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 71
Data dictionaries
Data dictionaries are lists of all of the names used in the system models.
Descriptions of the entities, relationships and attributes are also included.
Advantages
Support name management and avoid duplication;
Store of organizational knowledge linking analysis, design and implementation;
Many Case workbenches support data dictionaries.
OBJECT MODELS:
Object models describe the system in terms of object classes and their associations.
An object class is an abstraction over a set of objects with common attributes and
the services (operations) provided by each object.
Various object models may be produced
Inheritance models;
Aggregation models;
Interaction models.
Natural ways of reflecting the real-world entities manipulated by the system
More abstract entities are more difficult to model using this approach
Object class identification is recognized as a difficult process
Requiring a deep understanding of the application domain
Object classes reflecting domain entities are reusable across system.
Types of Relationships in OO
1. “is a” - inheritance
2. “has a” - encapsulation (aggregation) 3.“association” - anything else
Inheritance models:
Organise the domain object classes into a hierarchy.
Classes at the top of the hierarchy reflect the common features of all classes.
Object classes inherit their attributes and services from one or more super-classes.
these may then be specialized as necessary.
Class hierarchy design can be a difficult process if duplication in different
branches is to be avoided.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 72
Figure 2.16
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 73
Multiple inheritance:
Figure 2.17
Rather than inheriting the attributes and services from a single parent class, a
system which supports multiple inheritance allows object classes to inherit from
several super- classes.
This can lead to semantic conflicts where attributes/services with the same name
in different super-classes have different semantics.
Multiple inheritance makes class hierarchy reorganization more complex.
Multiple inheritance
Figure 2.18
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 74
Object aggregation:
An aggregation model shows how classes that are collections are composed of
other classes.
Aggregation models are similar to the part-of relationship in semantic data
models.
Object
Object aggregation
Figure 2.19
STRUCTURED METHODS:
Structured methods incorporate system modelling as an inherent part of the
method.
Methods define a set of models, a process for deriving these models and rules and
guidelines that should apply to the models.
CASE tools support system modelling as part of a structured method.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 75
Method weaknesses:
They do not model non-functional system requirements.
They do not usually include information about whether a method is appropriate for
a given problem.
The may produce too much documentation.
The system models are sometimes too detailed and difficult for users to
understand.
CASE workbenches:
A coherent set of tools that is designed to support related software process
activities such as analysis, design or testing.
Analysis and design workbenches support system modeling during both
requirements engineering and system design.
These workbenches may support a specific design method or may provide support
for a creating several different types of system model.
Figure 2.20
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 76
Import/export translators
Code generation tool
UML Diagrams
UML (Unified Modeling Language) is a standard language for specifying,
visualizing, constructing, and documenting the artifacts of software systems. UML
was created by the Object Management Group (OMG) and UML 1.0 specification
draft was proposed to the OMG in January 1997. It was initially started to capture the
behavior of complex software and non-software system and now it has become an
OMG standard. This tutorial gives a complete understanding on UML.
UML was created by the Object Management Group (OMG) and UML 1.0
specification draft was proposed to the OMG in January 1997.
UML is not a programming language but tools can be used to generate code in
various languages using UML diagrams. UML has a direct relation with object
oriented analysis and design. After some standardization, UML has become an OMG
standard.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 77
Goals of UML
A picture is worth a thousand words, this idiom absolutely fits describing
UML. Object-oriented concepts were introduced much earlier than UML. At that
point of time, there were no standard methodologies to organize and consolidate the
object-oriented development. It was then that UML came into picture.
There are a number of goals for developing UML but the most important is to
define some general purpose modeling language, which all modelers can use and it
also needs to be made simple to understand and use.
UML diagrams are not only made for developers but also for business users,
common people, and anybody interested to understand the system. The system can be
a software or non-software system. Thus it must be clear that UML is not a
development method rather it accompanies with processes to make it a successful
system.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 78
Object-Oriented Concepts
UML can be described as the successor of object-oriented (OO) analysis and design.
An object contains both data and methods that control the data. The data represents
the state of the object. A class describes an object and they also form a hierarchy to
model the real-world system. The hierarchy is represented as inheritance and the
classes can also be associated in different ways as per the requirement.
Objects are the real-world entities that exist around us and the basic concepts such as
abstraction, encapsulation, inheritance, and polymorphism all can be represented
using UML
UML is powerful enough to represent all the concepts that exist in object-oriented
analysis and design. UML diagrams are representation of object-oriented concepts
only. Thus, before learning UML, it becomes important to understand OO concept in
detail.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 79
is only possible when we are able to start thinking in a way where objects can be
identified. After identifying the objects, their relationships are identified and finally
the design is produced.
There are three basic steps where the OO concepts are applied and implemented. The
steps can be defined as
OO Analysis → OO Design → OO implementation using OO languages
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 80
This chapter describes all the UML building blocks. The building blocks of UML can
be defined as −
Things
Relationships
Diagrams
Things
Things are the most important building blocks of UML. Things can be −
Structural
Behavioral
Grouping
Annotational
Structural Things
Structural things define the static part of the model. They represent the physical and
conceptual elements. Following are the brief descriptions of the structural things.
Class − Class represents a set of objects having similar responsibilities.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 81
Use case −Use case represents a set of actions performed by a system for a specific
goal.
Node − A node can be defined as a physical element that exists at run time.
BEHAVIORAL THINGS
A behavioral thing consists of the dynamic parts of UML models. Following are the
behavioral things −
State machine − State machine is useful when the state of an object in its life cycle is
important. It defines the sequence of states an object goes through in response to
events. Events are external factors responsible for state change
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 82
GROUPING THINGS
Grouping things can be defined as a mechanism to group elements of a UML model
together. There is only one grouping thing available −
Package − Package is the only one grouping thing available for gathering structural
and behavioral things.
Annotational Things
Annotational things can be defined as a mechanism to capture remarks, descriptions,
and comments of UML model elements. Note - It is the only one Annotational thing
available. A note is used to render comments, constraints, etc. of an UML element.
Relationship
Relationship is another most important building block of UML. It shows how the
elements are associated with each other and this association describes the
functionality of an application.
There are four kinds of relationships available.
Dependency
Dependency is a relationship between two things in which change in one element also
affects the other.
Association
Association is basically a set of links that connects the elements of a UML model. It
also describes how many objects are taking part in that relationship.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 83
Generalization
Generalization can be defined as a relationship which connects a specialized element
with a generalized element. It basically describes the inheritance relationship in the
world of objects.
Realization
Realization can be defined as a relationship in which two elements are connected. One
element describes some responsibility, which is not implemented and the other one
implements them. This relationship exists in case of interfaces.
Any real-world system is used by different users. The users can be developers, testers,
business people, analysts, and many more. Hence, before designing a system, the
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 84
architecture is made with different perspectives in mind. The most important part is to
visualize the system from the perspective of different viewers. The better we
understand the better we can build the system.
The center is the Use Case view which connects all these four. A Use Case represents
the functionality of the system. Hence, other perspectives are connected with use case.
Process defines the flow of the system. Hence, the same elements as used in Design
are also used to support this perspective.
Deployment represents the physical nodes of the system that forms the hardware.
UML deployment diagram is used to support this perspective.
It is very important to distinguish between the UML model. Different diagrams are
used for different types of UML modeling. There are three important types of UML
modeling.
Structural Modeling
Structural modeling captures the static features of a system. They consist of the
following −
Classes diagrams
Objects diagrams
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 85
Deployment diagrams
Package diagrams
Composite structure diagram
Component diagram
Structural model represents the framework for the system and this framework is the
place where all other components exist. Hence, the class diagram, component diagram
and deployment diagrams are part of structural modeling. They all represent the
elements and the mechanism to assemble them.
The structural model never describes the dynamic behavior of the system. Class
diagram is the most widely used structural diagram.
Behavioral Modeling
Behavioral model describes the interaction in the system. It represents the interaction
among the structural diagrams. Behavioral modeling shows the dynamic nature of the
system. They consist of the following −
Activity diagrams
Interaction diagrams
Use case diagrams
All the above show the dynamic sequence of flow in a system.
Architectural Modeling
Architectural model represents the overall framework of the system. It
contains both structural and behavioral elements of the system. Architectural model
can be defined as the blueprint of the entire system. Package diagram comes under
architectural modeling.
UML is popular for its diagrammatic notations. We all know that UML is for
visualizing, specifying, constructing and documenting the components of software
and non-software systems. Hence, visualization is the most important part which
needs to be understood and remembered.
UML notations are the most important elements in modeling. Efficient and
appropriate use of notations is very important for making a complete and meaningful
model. The model is useless, unless its purpose is depicted properly.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 86
Structural Things
Graphical notations used in structural things are most widely used in UML.
These are considered as the nouns of UML models. Following are the list of structural
things.
Classes
Object
Interface
Collaboration
Use case
Active classes
Components
Nodes
Class Notation
UML class is represented by the following figure. The diagram is divided into four
parts.
The top section is used to name the class.
The second one is used to show the attributes of the class.
The third section is used to describe the operations performed by the class.
The fourth section is optional to show any additional components.
Figure 2.21
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 87
Object Notation
The object is represented in the same way as the class. The only difference is
the name which is underlined as shown in the following figure.
Figure 2.22
Interface Notation
Interface is represented by a circle as shown in the following figure. It has a
name which is generally written below the circle.
Figure 2.23
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 88
Collaboration Notation
Collaboration is represented by a dotted eclipse as shown in the following
figure. It has a name written inside the eclipse.
Figure 2.24
Figure 2.25
Actor Notation
An actor can be defined as some internal or external entity that interacts with
the system.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 89
Figure 2.26
An actor is used in a use case diagram to describe the internal or external entities.
Figure 2.27
The usage of Initial State Notation is to show the starting point of a process.
Figure 2.28
The usage of Final State Notation is to show the termination point of a process.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 90
Figure 2.29
Component Notation
A component in UML is shown in the following figure with a name inside.
Additional elements can be added wherever required.
Figure 2.30
Component is used to represent any part of a system for which UML diagrams are
made.
Node Notation
A node in UML is represented by a square box as shown in the following
figure with a name. A node represents the physical component of the system.
Figure 2.31
Node is used to represent the physical part of a system such as the server, network,
etc.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 91
Behavioral Things
Dynamic parts are one of the most important elements in UML. UML has a set
of powerful features to represent the dynamic part of software and non-software
systems. These features include interactions and state machines.
Interaction Notation
Interaction is basically a message exchange between two UML components.
The following diagram represents different notations used in an interaction
Figure 2.32
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 92
State machine describes the different states of a component in its life cycle.
The notations are described in the following diagram.
Figure 2.33
Grouping Things
Organizing the UML models is one of the most important aspects of the
design. In UML, there is only one element available for grouping and that is package.
Package Notation
Package notation is shown in the following figure and is used to wrap the
components of a system.
Figure 2.34
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 93
Annotational Things
In any diagram, explanation of different elements and their functionalities are
very important. Hence, UML has notes notation to support this requirement.
Note Notation
This notation is shown in the following figure. These notations are used to
provide necessary information of a system.
Figure 2.35
Relationships
A model is not complete unless the relationships between elements are
described properly. The Relationship gives a proper meaning to a UML model.
Following are the different types of relationships available in UML.
Dependency
Association
Generalization
Extensibility
Dependency Notation
Dependency is an important aspect in UML elements. It describes the
dependent elements and the direction of dependency.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 94
Figure 2.36
Association Notation
Association describes how the elements in a UML diagram are associated. In
simple words, it describes how many elements are taking part in an interaction.
Figure 2.37
Generalization Notation
Generalization describes the inheritance relationship of the object-oriented
world. It is a parent and child relationship.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 95
Figure 2.38
Extensibility Notation
All the languages (programming or modeling) have some mechanism to
extend its capabilities such as syntax, semantics, etc. UML also has the following
mechanisms to provide extensibility features.
Stereotypes (Represents new elements)
Tagged values (Represents new attributes)
Constraints (Represents the boundaries)
Figure 2.39
Class diagrams have a lot of properties to consider while drawing but here the
diagram will be considered from a top level view.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 96
The name of the class diagram should be meaningful to describe the aspect of the
system.
Each element and their relationships should be identified in advance.
Responsibility (attributes and methods) of each class should be clearly identified
For each class, minimum number of properties should be specified, as
unnecessary properties will make the diagram complicated.
Use notes whenever required to describe some aspect of the diagram. At the end
of the drawing it should be understandable to the developer/coder.
Finally, before making the final version, the diagram should be drawn on plain
paper and reworked as many times as possible to make it correct.
First of all, Order and Customer are identified as the two elements of the system.
They have a one-to-many relationship because a customer can have multiple
orders.
Order class is an abstract class and it has two concrete classes (inheritance
relationship) SpecialOrder and NormalOrder.
The two inherited classes have all the properties as the Order class. In addition,
they have additional functions like dispatch () and receive ().
The following class diagram has been drawn considering all the points
mentioned above.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 97
Figure 2.40
Generally, UML diagrams are not directly mapped with any object-oriented
programming languages but the class diagram is an exception.
Class diagram clearly shows the mapping with object-oriented languages such
as Java, C++, etc. From practical experience, class diagram is generally used for
construction purpose.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 98
Object diagrams are derived from class diagrams so object diagrams are
dependent upon class diagrams.
Object diagrams are used to render a set of objects and their relationships as an
instance.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 99
From the above discussion, it is clear that a single object diagram cannot
capture all the necessary instances or rather cannot specify all the objects of a system.
Hence, the solution is −
First, analyze the system and decide which instances have important data and
association.
Second, consider only those instances, which will cover the functionality.
Third, make some optimization as the number of instances are unlimited.
After this, the following things are to be decided before starting the
construction of the diagram −
The object diagram should have a meaningful name to indicate its purpose.
The most important elements are to be identified.
The association among objects should be clarified.
Values of different elements need to be captured to include in the object diagram.
Add proper notes at points where more clarity is required.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 100
Now the customer object (C) is associated with three order objects (O1, O2,
and O3). These order objects are associated with special order and normal order
objects (S1, S2, and N1). The customer has the following three orders with different
numbers (12, 32 and 40) for the particular time considered.
The customer can increase the number of orders in future and in that scenario
the object diagram will reflect that. If order, special order, and normal order objects
are observed then you will find that they have some values. For orders, the values are
12, 32, and 40 which implies that the objects have these values for a particular
moment (here the particular time when the purchase is made is considered as the
moment) when the instance is captured
The same is true for special order and normal order objects which have
number of orders as 20, 30, and 60. If a different time of purchase is considered, then
these values will change accordingly. The following object diagram has been drawn
considering all the points mentioned above
Figure 2.41
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 101
Here, we can imagine the snap of the running train is an object having the
above values. And this is true for any real-life simple or complex system.
In a nutshell, it can be said that object diagrams are used for −
Making the prototype of a system.
Reverse engineering.
Modeling complex data structures.
Understanding the system from practical perspective.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 102
UNIT - III
DESIGN ENGINEERING
What is design:
Design is what virtually every engineer wants to do. It is the place where
creativity rules – customer’s requirements, business needs, and technical
considerations all come together in the formulation of a product or a system. Design
creates a representation or model of the software, but unlike the analysis model, the
design model provides detail about software data structures, architecture, interfaces,
and components that are necessary to implement the system.
Why is it important:
Design allows a software engineer to model the system or product that Is to be
built. This model can be assessed for quality and improved before code is generated,
tests are conducted, and end – users become involved in large numbers. Design is the
place where software quality is established.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 103
Goals of design:
McGlaughlin suggests three characteristics that serve as a guide for the
evaluation of a good design. The design must implement all of the explicit
requirements contained in the analysis model, and it must accommodate all of the
implicit requirements desired by the customer. The design must be a readable,
understandable guide for those who generate code and for those who test and
subsequently support the software. The design should provide a complete picture of
the software, addressing the data, functional, and behavioral domains from an
implementation perspective.
Quality guidelines:
In order to evaluate the quality of a design representation we must establish
technical criteria for good design. These are the following guidelines:
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; that is, the software should be logically partitioned
into elements or subsystems. A design should contain distinct representation of
data, architecture, interfaces and components.
A design should lead to data structures that are appropriate for the classes to be
implemented and are drawn from recognizable data patterns.
A design should lead to components that exhibit independent functional
characteristic
A design should lead to interface 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.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 104
Quality attributes:
The FURPS quality attributes represent a target for all software design:
DESIGN CONCEPTS:
M.A Jackson once said:”The beginning of wisdom for a software engineer is
to recognize the difference between getting a program to work, and getting it right.”
Fundamental software design concepts provide the necessary framework for “getting
it right.”
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 105
It follows that the procedural abstraction open would make use of information
contained in the attributes of the data abstraction door.
Architecture:
Software architecture alludes to “the overall structure of the software and the
ways in which that structure provides conceptual integrity for a system”. In its
simplest form, architecture is the structure or organization of program components
(modules), the manner in which these components interact, and the structure of data
that are used by the components. One goal of software design is to derive an
architectural rendering of a system. The rendering serves as a framework from which
more detailed design activities are conducted.
Process models focus on the design of the business or technical process that
the system must accommodate.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 106
Patterns:
Brad Appleton defines a design pattern in the following manner: “a pattern is
a named nugget of inside which conveys that essence of a proven solution to a
recurring problem within a certain context amidst competing concerns.” Stated in
another way, a design pattern describes a design structure that solves a particular
design within a specific context and amid “forces” that may have an impact on the
manner in which the pattern is applied and used.
IV. MODULARITY:
Software architecture and design patterns embody modularity; software is
divided into separately named and addressable components, sometimes called
modules that are integrated to satisfy problem requirements. It has been stated that
“modularity is the single attribute of software that allows a program to be
intellectually manageable”. Monolithic software cannot be easily grasped by a
software engineer. The number of control paths, span of reference, number of
variables, and overall complexity would make understanding close to impossible. The
“divide and conquer” strategy- it’s easier to solve a complex problem when you break
it into manageable pieces.
This has important implications with regard to modularity and software. If we
subdivide software indefinitely, the effort required to develop it will become
negligibly small. The effort to develop an individual software module does decrease
as the total number of modules increases. Given the same set of requirements, more
modules means smaller individual size.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 107
V. INFORMATION HIDING:
The principle of information hiding suggests that modules be “characterized
by design decision that hides from all others.” Modules should be specified and
designed so that information contained within a module is inaccessible to other
modules that have no need for such information.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 108
VII. REFINEMENT:
Stepwise refinement is a top- down design strategy originally proposed by
Niklaus wirth. A program is development by successively refining levels of
procedural detail. A hierarchy is development by decomposing a macroscopic
statement of function in a step wise fashion until programming language statements
are reached. Refinement is actually a process of elaboration.
VIII. REFACTORING :
Refactoring is a reorganization technique that simplifies the design of a
component without changing its function or behavior. Fowler defines refactoring in
the following manner: “refactoring is the process of changing a software system in
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 109
such a way that it does not alter the external behavior of the code yet improves its
internal structure.” When software is refactored, the existing design is examined for
redundancy, unused design elements, inefficient or unnecessary algorithms, poorly
constructed or inappropriate data structures, or any other design failure that can be
corrected to yield a better design. The designer may decide that the component should
be refactored into 3 separate components, each exhibiting high cohesion. The result
will be software that is easier to integrate, easier to test, and easier to maintain.
User interface classes: define all abstractions that are necessary for human computer
interaction. In many cases, HCL occurs within the context of a metaphor and the
design classes for the interface may be visual representations of the elements of the
metaphor.
Business domain classes: are often refinements of the analysis classes defined
earlier. The classes identify the attributes and services that are required to implement
some element of the business domain.
System classes implement software management and control functions that enable the
system to operate and communicate within its computing environment and with the
outside world. As the design model evolves, the software team must develop a
complete set of attributes and operations for each design class. The level of
abstraction is reduced as each analysis class is transformed into a design
representation. Each design class be reviewed to ensure that it is “well-formed.”
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 110
Low coupling: Within the design model, it is necessary for design classes to
collaborate with one another. However, collaboration should be kept to an acceptable
minimum. If a design model is highly coupled the system is difficult to implement, to
test, and to maintain over time. In general, design classes within a subsystem should
have only limited knowledge of classes in other subsystems. This restriction, called
the law of Demeter, suggests that a method should only sent messages to methods in
neighboring classes.
The elements of the design model use many of the same UML diagrams that
were used in the analysis model. The difference is that these diagrams are refined and
elaborated as a path of design; more implementation- specific detail is provided, and
architectural structure and style, components that reside within the architecture, and
the interface between the components and with the outside world are all emphasized.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 111
It is important to mention however, that model elements noted along the horizontal
axis are not always developed in a sequential fashion. In most cases preliminary
architectural design sets the stage and is followed by interface design and component-
level design, which often occur in parallel. The deployment model us usually delayed
until the design has been fully developed.
At the program component level, the design of data structures and the
associated algorithms required to manipulate them is essential to the criterion of high-
quality applications.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 112
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 113
Figure 3.2
Component-level design elements:
The component-level design for software is equivalent to a set of detailed
drawings. The component-level design for software fully describes the internal detail
of each software component. To accomplish this, the component-level design defines
data structures for all local data objects and algorithmic detail for all processing that
occurs within a component and an interface that allows access to all component
operations.
Sens orManagement
Sens or
Figure 3.3
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 114
SOFTWARE ARCHITECTURE:
What Is Architecture?
Architectural design represents the structure of data and program components
that are required to build a computer-based system. It considers the architectural style
that the system will take, the structure and properties of the components that
constitute the system, and the interrelationships that occur among all architectural
components of a system. The architecture is a representation that enables a software
engineer to analyze the effectiveness of the design in meeting its stated requirements,
consider architectural alternatives at a stage when making design changes is still
relatively easy, reducing the risks associated with the construction of the software.
The design of software architecture considers two levels of the design pyramid data
design architectural design. Data design enables us to represent the data component of
the architecture. Architectural design focuses on the representation of the structure of
software components, their properties, and interactions.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 115
DATA DESIGN:
The data design activity translates data objects as part of the analysis model
into data structures at the software component level and, when necessary, a database
architecture at the application level.
At the program component level, the design of data structures and the
associated algorithms required to manipulate them is essential to the creation of high-
quality applications.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 116
encompasses some, but not all, of the data that are stored in databases that serve the
set of applications required by a business.
A data dictionary should be established and used to define both data and
program design. Low- level data design decisions should be deferred until late in the
design process. The representation of data structure should be known only to those
modules that must make direct use of the data contained within the structure. A library
of useful data structures and the operations that may be applied to them should be
developed. A software design and programming language should support the
specification and realization of abstract data types.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 117
Figure 3.5
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 118
If the data flow degenerates into a single line of transforms, it is termed batch
sequential. This pattern accepts a batch of data and then applies a series of sequential
components (filters) to transform it.
Figure 3.6
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 119
Figure 3.7
Architectural Patterns:
An architectural pattern, like an architectural style, imposes a transformation
the design of architecture. However, a pattern differs from a style in a number of
fundamental ways:
The scope of a pattern is less broad, focusing on one aspect of the architecture
rather than the architecture in its entirety.
A pattern imposes a rule on the architecture, describing how the software will
handle some aspect of its functionality at the infrastructure level.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 120
Architectural patterns tend to address specific behavioral issues within the context
of the architectural.
The architectural patterns for software define a specific approach for handling
some behavioral characteristics of the system
Persistence - Data persists if it survives past the execution of the process that created
it. Two patterns are common: a database management system pattern that applies the
storage and retrieval capability of a DBMS to the application architecture an
application level persistence pattern that builds persistence features into the
application architecture
Distribution – the manner in which systems or components within systems
communicate with one another in a distributed environment .A broker acts as a
‘middle-man’ between the client component and a server component.
Control.
How is control managed within the architecture?
Does a distinct control hierarchy exist, and if so, what is the role of components
within this control hierarchy?
How do components transfer control within the system? How is control shared among
components?
Data
How are data communicated between components?
Is the flow of data continuous, or are data objects passed to the system sporadically?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 121
What is the mode of data transfer (i.e., are data passed from one component to another
or are data available globally to be shared among system components)?
Do data components (e.g., a blackboard or repository) exist, and if so, what is their
role?
How do functional components interact with data components?
Are data components passive or active (i.e., does the data component actively interact
with other components in the system)? How do data and control interact within the
system?
ARCHITECTURAL DESIGN:
Representing the System in Context:
At the architectural design level, a software architect uses an architectural
context diagram (ACD) to model the manner in which software interacts with entities
external to its boundaries. The generic structure of the architectural context diagram is
illustrated in the figure
Control
Safehome Internet-based
Panel Product system
Homeowner
target
system: surveillance
Security uses function
uses peers
uses
Figure 3.8
Super ordinate systems – those systems that use the target system as part of some
higher level processing scheme.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 122
Subordinate systems - those systems that are used by the target system and provide
data or processing that are necessary to complete target system functionality.
Peer-level systems - those systems that interact on a peer-to-peer basis
Actors -those entities that interact with the target system by producing or consuming
information that is necessary for requisite processing
Defining Archetypes:
An archetype is a class or pattern that represents a core abstraction that is
critical to the design of architecture for the target system. In general, a relative small
set of archetypes is required to design even relatively complex systems.
Node: Represent a cohesive collection of input and output elements of the home
security function.
For example a node might be comprised of (1) various sensors, and (2) a variety of
alarm indicators. Detector: An abstraction that encompasses all sensing equipment
that feeds information into the target system
Indicator: An abstraction that represents all mechanisms for indication that an alarm
condition is occurring.
Controller: An abstraction that depicts the mechanism that allows the arming or
disarming of a node. If controllers reside on a network, they have the ability to
communicate with one another.
communicates with
Detector Indicator
Figure 3.9
UML relationships for Safe Home security function archetypes (adapted from [
BOS00] )
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 123
SafeHome
Executive
External
Communication
Management
GUI Internet
Interface
processing
Component Structure
Figure 3.10
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 124
Systems context and modes of use It specify the context of the system.it also
specify the relationships between the software that is being designed and its external
environment. If the system context is a static model it describe the other system in that
environment. If the system context is a dynamic model then it describe how the system
actually interact with the environment.
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
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 125
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 interaction between the objects
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 126
Hide technical internals from the casual user. Never required to use OS
commands; file management functions or other arcane computing technology.
Design for direct interaction with objects that appear on the screen. User
has feel of control when interact directly with objects; stretch an object.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 127
Mandel defines design principles that enable an interface to reduce the user’s
memory load
Reduce demand on short-term memory. Complex tasks can put a significant burden
on short term memory. System designed to reduce the requirement to remember past
actions and results; visual cues to recognize past actions, rather than recall them.
Establish meaningful defaults. Initial defaults for average user; but specify
individual preferences with a reset option.
Define shortcuts that are intuitive. Use mnemonics like Alt-P.
The visual layout of the interface should be based on a real world metaphor. Bill
payment – check book and check register metaphor to guide a user through the bill
paying process; user has less to memorize
Mandel [MAN97] defines a set of design principles that help make the interface
consistent:
Allow the user to put the current task into a meaningful context. Because of many
screens and heavy interaction, it is important to provide indicators – window tiles,
graphical icons, consistent color coding so that the user knows the context of the work
at hand; where came from and alternatives of where to go.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 128
If past interactive models have created user expectations, do not make changes
unless there is a compelling reason to do so. Unless a compelling reason presents
itself don’t change interactive sequences that have become de facto standards. (alt-S
to scaling)
User Model: The user model establishes the profile of end-users of the system. To
build an effective user interface, "all design should begin with an understanding of the
intended users, including profiles of their age, sex, physical abilities, education,
cultural or ethnic background, motivation, goals and personality" [SHN90]. In
addition, users can be categorized as Novices, Knowledgeable, intermittent users,
Knowledgeable, frequent users.
Design Model: A design model of the entire system incorporates data, architectural,
interface and procedural representations of the software.
Mental Model: The user’s mental model (system perception) is the image of the
system that end- users carry in their heads.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 129
These models enable the interface designer to satisfy a key element of the
most important principle of user interface design: "Know the user, know the tasks."
Figre 3.11
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
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 130
The analysis of the user environment focuses on the physical work environment.
Among the questions to be asked are
Where will the interface be located physically?
Will the user be sitting, standing, or performing other tasks unrelated to the
interface? Does the interface hardware accommodate space, light, or noise
constraints?
Are there special human factors considerations driven by environmental factors?
INTERFACE ANALYSIS
A Key tenet of all software engineering process models is this: In the case of
user interface design, understanding the problem means understanding (1) The people
who will interact with the system through the interface; (2) the tasks that tend-users
must perform to do their work, (3) the content that is presented as part of the inter
face, an (4) the environment in which these tasks will be conducted. In the sections
that follow, we examine each of these elements of interface analysis with the intent of
establishing a solid foundation for the design tasks that follow.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 131
User analysis
Earlier we noted that each user has a mental image or system perception of the
software that may be different from the mental image developed by other users.
User Interviews. The most direct approach, interviews involve representatives from
the software team who meet with end-users to better understand their needs,
motivations work culture, and a myriad of other issues. This can be accomplished in
one-on-one meetings or through focus groups. Sales input. Sales people meet with
customers an users on regular basis and can gather information that will help the
software team to categorize users and better understand their requirements.
The following set of questions (adapted form (HAC98) ) will help the interface
designer better understand the users of a system:
Are user trained professionals, technicians, 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 ecpressed a
desire of 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 the is addressed by the system?
Do users want to know about the technology that sits behind the interface?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 132
To answer these questions, the software engineer must draw upon analysis
techniques discussed in Chapters 7 and 8, but in this instance, these techniques are
applied to the user interface.
In earlier chapter we noted that the use-case describe the manner in which an
actor (in the context of user interface design, an actor is always a person) interacts
with a system. The use-case provides a basic description of one important work task
for the computer-aided design system. From, it, the software engineer can extract
tasks, objects, and the overall flow of the interaction.
Alternatively, the human engineer can study an existing specification for computer-
based solution and derive a set of user tasks that will accommodate the user model,
the design model, and the system perception.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 133
For example, assume that a small software company wants to build a computer-aided
design system explicitly for interior designers. By observing an interior designer at
work, the engineer notices that interior design comprises a number of major activities:
further layout (note the use-case discussed earlier), fabric and material selection, wall
and window coverings selection, presentation (to the customer), costing, and
shopping. Each of these major tasks can be elaborated into subtasks.
For example, using information contained in the use- case, furniture layout can be
refined into the following tasks: (1) draw a floor plan based on room dimensions; (2)
place windows and doors at appropriate locations;(3a) use furniture templates to draw
scaled accents on floor plan(4) move furniture outlines;(6) draw dimensions to show
location;(7) draw perspective rendering view for customer. A similar approach could
be used for each of the other major tasks.
Object elaboration. The software engineer extracts the physical objects that are used
by the interior designer. These objects can be categorized into classes. Attributes of
each class are defined, and an evaluation of the actions applied to each object provide
the designer with a list of operations.
For example, the furniture template might translate into a class called Furniture with
attributes that might include size, shape, location and others. The interior designer
would select the object from the Furniture class, move it to a position on the floor plan
(another object in this context), draw the furniture outline, and so forth. He tasks
select, move, and draw are operations.
The user interface analysis model would not provide a literal implementation for each
of these operation for each of these operations.
However, as the design is elaborated, the details of each operation are defined.
Workflow analysis. When a number of different users, each playing different roles,
makes uses of a user interface, it is sometimes necessary to go beyond task analysis
and object elaboration and apply workflow analysis. This technique allows a software
engineer to understand how a work process is completed when several people are
involved.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 134
The flow of events (shown in the figure) enable the interface designer to recognize
three day interface characteristics. Each user implements different tasks via the
interface; therefore, the look and feel of the interface designed for the patient will be
different from the one defined for pharmacists or physicians.
The interface design for pharmacists and physicians must accommodate access to and
display of information form secondary information sources(e.g., access to inventory
of the pharmacist and access to information about alternative medications for the
physician)
Many of the activities noted in the swim lane diagram can be further elaborated using
talk analysis and /or object elaboration(e.g., fills prescription could imply a mail-order
deliver, a visit to a pharmacy, or a visit to a special drug distribution center.
For example, consider the user task requests that a prescription be refilled. The
following task hierarchy is developed: Request that a prescription be refilled is
required.
To complete the request that a prescription be refilled tasks, three subtasks are
defined. One of these subtasks, provide indentifying information, is further elaborated
in three additional sub-subtasks.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 135
the most important response time characteristic. Low variability enables the user to
establish an interaction rhythm, even if response time is relatively long. For example,
a 1-second response to a command will often be preferable to a response that varies
from 0.1 to 2.5 seconds. When variability is significant, the user is always off balance,
always wondering whether something “different “has occurred behind the scenes.
Help facilities. Modern software provides on-line help facilities that enable a user to
get a question answered or resolve a problem without leaving the interface. A number
of design issues must be addressed when a help facility is considered:
Will help be available for all system functions and at all times during system
interaction? Options include help for only a subset of all functions and actions or help
for all functions.
How will the user request help? Options include a help menu, a special function day,
or a HELP command.
How will the user return to normal interaction? Options include a return button
displayed on the screen, a function key, or control sequence.
How will help information be structured? Options include a “flat” structure in which
all information is accessed through a keyword, a layered hierarchy or information that
provides increasing detail as the user proceeds into the structure, or the user of
hypertext.
The message should describe the problem in language the user can understand. The
message should provide constructive advice for recovering form the error.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 136
The message should indicate any negative consequences of the error(e.g., potentially
corrupted data files)so that the user can check to ensure that they have not occurred.
The message should be nonjudgmental. That is, the wording should never place blame
on the user.
But an-effective error message philosophy can do much to improve the quality of an
interactive system and will significantly reduce user frustration when problems do
occur.
A number of design issues arise when typed commands or menu labels are provided
as mode of interaction: Will every menu option have a corresponding command?
What form will commands take? Options include a control sequence (e.g., alt-p),
function keys, or a typed word.
How difficult will it be to learn and remember the commands? What can be done if a
command is forgotten? Can commands be customized or abbreviated by the user?
Are submenus consistent with the function implied by a master menu item?
Application accessibility. Accessibility for users and software engineers) who may be
physically challenged is an imperative for moral, legal, and business reasons. A
variety of accessibility guidelines many designed for Web applications but often
applicable to all types of software- provide detailed.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 137
DESIGN EVALUATION
After the design model has been completed, a first-level prototype is created.
The prototype is evaluated by the user, who provides the designer with direct
comments about the efficacy of the interface.
The length and complexity of the written specification of the system and its
interface provide an indication of the amount of learning required by user of the
system. The number of user tasks specified and the average number of actions per
task provide an indication on interaction time and the overall efficiency of the system.
The number of actions, tasks, and system states indicated by the design model
imply the memory load on users of the system. Interface styles, help facilities, and
error handling protocol provide a general indication of the complexity of the interface
and the degree to which it will be accepted by the user.
Once the first prototype is built, the designer can collect a variety of
qualitative and quantitative data that will assist in evaluating the interface. To collect
qualitaive data, questionnaires can be distributed to users of the prototype. Questions
can be (1) simple yes/no response, (2)numeric response, (3) scaled (subjective)
response,(4) Likert scales(e.g., strongly. Users are observed during interaction, and
data-such as number of tasks correctly completed over a standard time period,
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 138
frequency of actions, sequence of actions, time spent “looking” at the display, number
and types of errors, error recovery time, time spent using help, and number of help
references per standard time period-are collected and used as a guide for interface
modification.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 139
UNIT - IV
TESTING STRATEGIES
Validation refers to a different set of activities that ensure that the software that has
been built is traceable to customer requirements.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 140
From a psychological point of view, software analysis and design (along with
coding) are constructive tasks. From the point of view of the builder, testing can be
considered to be (psychologically) destructive.
The software developer is always responsible for testing the individual units
(components) of the program, ensuring that each performs the function for which it
was designed. In many cases, the developer also conducts integration testing—a
testing step that leads to the construction (and test) of the complete program structure.
Only after the software architecture is complete does an independent test group
become involved.
The role of an independent test group (ITG) is to remove the inherent problems
associated with letting the builder test the thing that has been built. Independent
testing removes the conflict of interest that may otherwise be present.
However, the software engineer does not turn the program over to ITG and
walk way. The developer and the ITG work closely throughout a software project to
ensure that thorough tests will be conducted. While testing is conducted, the developer
must be available to correct errors that are uncovered.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 141
The ITG is part of the software development project team in the sense that it
becomes involved during the specification activity and stays involved (planning and
specifying test procedures) throughout a large project.
Unit testing begins at the vortex of the spiral and concentrates on each unit (i.e.,
component) of the software as implemented in source code. Testing progresses by
moving outward along the spiral to integration testing, where the focus is on design
and the construction of the software architecture.
Taking another turn outward on the spiral, we encounter validation testing, where
requirements established as part of software requirements analysis are validated
against the software that has been constructed. Finally, we arrive at system testing,
where the software and other system elements are tested as a whole.
Unit testing makes heavy use of white-box testing techniques. Black-box test case
design techniques are the most prevalent during integration, although a limited
amount of white-box testing may be used to ensure coverage of major control paths.
Black-box testing techniques are used exclusively during validation. Software, once
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 142
validated, must be combined with other system elements (e.g., hardware, people, and
databases). System testing verifies that all elements mesh properly and that overall
system function/performance is achieved.
Figure 4.2
Figure 4.3
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 143
Figure 4.4
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 144
(6) failure to exit when divergent iteration is encountered, and (7) improperly
modified loop variables.
Figure 4.5
Integration Testing
The objective is to take unit tested components and build a program structure
that has been dictated by design.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 145
Options: "big bang" approach All components are combined in advance. The entire
program is tested as a whole. Incremental integration The program is constructed
and tested in small increments, where errors are easier to isolate and corrected.
Referring to fig 18.6 depth-first integration would integrate all components on a major
control path of the structure. Selection of a major path and depends on application-
specific characteristics. For example, selecting the left hand path, components M1,
M2, M5 would be integrated first. Next, M8 or (if necessary for proper functioning of
M2) M6 would be integrated. Then, the central and right-hand control paths are built.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 146
Bottom-Up Integration
Bottom-up integration testing, as its name implies, begins construction and
testing with atomic modules (i.e., components at the lowest levels in the program
structure).
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 147
Regression Testing
Each time a new module is added as part of integration testing, the software
changes. New data flow paths are established, new I/O may occur, and new control
logic is invoked. Regression testing is the re- execution of some subset of tests that
have already been conducted to ensure that changes have not propagated unintended
side effects.
The regression test suite (the subset of tests to be executed) contains three
different classes of test cases:
A representative sample of tests that will exercise all software functions.
Additional tests that focus on software functions that are likely to be affected by
the change.
Tests that focus on the software components that have been changed.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 148
Smoke Testing
Smoke testing is an integration testing approach that is commonly used when
“shrink-wrapped” software products are being developed. It is designed as a pacing
mechanism for time-critical projects
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 149
After each validation test case has been conducted, one of two possible conditions
exist:
1. The function or performance characteristics conform to specification and are
accepted
2. a deviation from specification is uncovered and a deficiency list is created.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 150
Configuration Review
An important element of the validation process is a configuration review. The
intent of the review is to ensure that all elements of the software configuration have
been properly developed, are cataloged, and have the necessary detail to bolster the
support phase of the software life cycle. The configuration review, sometimes called
an audit.
System Testing
Software is incorporated with other system elements (e.g., hardware, people,
information), and a series of system integration and validation tests are conducted.
These tests fall outside the scope of the software process and are not conducted solely
by software engineers. A classic system-testing problem is "finger- pointing." This
occurs when an error is uncovered, and each system element developer blames the
other for the problem.
Recovery Testing
Recovery testing is a system test that forces the software to fail in a variety of
ways and verifies that recovery is properly performed.
Security Testing
Security testing attempts to verify that protection mechanisms built into a
system. During security testing, the tester plays the role(s) of the individual who
desires to penetrate the system.
Stress Testing
Stress testing executes a system in a manner that demands resources in
abnormal quantity, frequency, or volume. For example,
1. Special tests may be designed that generate ten interrupts per second, when one or
two is the average rate,
2. Input data rates may be increased by an order of magnitude to determine how
input functions will respond,
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 151
3. Test cases that require maximum memory or other resources are executed,
Essentially, the tester attempts to break the program.
A variation of stress testing is a technique called sensitivity testing. Sensitivity
testing attempts to uncover data combinations within valid input classes that may
cause instability or improper processing
Performance Testing
Performance testing is designed to test the run-time performance of software
within the context of an integrated system. Performance testing occurs throughout all
steps in the testing process.
Performance tests are often coupled with stress testing and usually require
both hardware and software instrumentation.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 152
Debugging Approaches
In general, three categories for debugging approaches may be proposed
1)brute force, (2) backtracking, and (3) cause elimination.
The brute force category of debugging is probably the most common and least
efficient method for isolating the cause of a software error. We apply brute force
debugging methods when all else fails
Once a bug has been found, it must be corrected. However, as we have already
noted, the correction of a bug can introduce other errors and therefore do more harm
than good.
Van Vleck [VAN89] suggests three simple questions that every software
engineer should ask before making the "correction" that removes the cause of a bug:
1. Is the cause of the bug reproduced in another part of the program?
2. What "next bug" might be introduced by the fix I am about to make?
3. What could we have done to prevent this bug in the first place?
White-Box Testing
White-box testing, sometimes called glass-box testing. Our goal is to ensure that all
statements and conditions have been executed atleast once. Using white-box testing
methods, the software engineer can derive test cases that
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 153
1. Guarantee that all independent paths within a module have been exercised at least
once
2. Exercise all logical decisions on their true and false sides,
3. Execute all loops at their boundaries and within their operational bounds
4. Exercise internal data structures to ensure their validity.
Before the basis path method can be introduced, a simple notation for the
representation of control flow, called a flow graph (or program graph) must be
introduced.
Each circle, called a flow graph node, represents one or more procedural
statements. The arrows on the flow graph, called edges or links, represent flow of
control. Each node that contains a condition is called a predicate node and is
characterized by two or more edges emanating from it.
Cyclomatic Complexity
Cyclomatic complexity is software metric that provides a quantitative measure
of the logical complexity of a program. In the context of the basis path testing
method, the value computed for Cyclomatic complexity defines the number of
independent paths in the basis set of a program and provides us with an upper bound
for the number of tests that must be conducted to ensure that all statements have been
executed at least once.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 154
Figure 4.11
An independent path is any path through the program that introduces at least
one new set of processing statements or a new condition. When stated in terms of a
flow graph, an independent path must move along at least one edge that has not been
traversed before the path is defined.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 155
Referring once more to the above flow graph the Cyclomatic complexity can
be computed using each of the algorithms just noted:
1. The flow graph has four regions.
2. V(G) = 11 edges 9 nodes + 2 = 4.
3. V(G) = 3 predicate nodes + 1 = 4.cyclomatic complexity for above flow graph
Figure 4.12 : PDL for test base design with nodes identified
Using the above PDL let us describe how derive the test cases The following
steps are used to derive the set of test cases
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 156
Figure 4.13
The ellipsis (. . .) following paths 4, 5, and 6 indicates that any path through
the remainder of the control structure is acceptable.
It is often worthwhile to identify predicate nodes as an aid in the derivation of
test cases. In this case, nodes 2, 3, 5, 6, and 10 are predicate nodes
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 157
4. Prepare test cases that will force execution of each path in the basis set.
Each test case is executed and compared to expected results. Once all test
cases have been completed, the tester can be sure that all statements in the program
have been executed at least once.
Graph Matrices
To develop a software tool that assists in basis path testing, a data structure,
called a graph matrix, can be quite useful.
A graph matrix is a square matrix whose size (i.e., number of rows and
columns) is equal to the number of nodes on the flow graph. Each row and column
corresponds to an identified node, and matrix entries correspond to connections (an
edge) between nodes. A simple example of a flow graph and its corresponding graph
matrix is shown in below figure.
Figure 4.14
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 158
What is a graph matrix and how do we extend it use for testing? The graph
matrix is nothing more than a tabular representation of a flow graph. by adding a link
weight to each matrix entry, the graph matrix can become a powerful tool for
evaluating program control structure during testing
Referring to above figure each row with two or more entries represents a
predicate node. Performing the arithmetic shown to the right of the connection matrix
provides us with still another method for determining Cyclomatic complexity
Condition Testing
Condition testing is a test case design method that exercises the logical
conditions contained in a program module. A simple condition is a Boolean variable
or a relational expression, possibly preceded with one NOT (¬) operator. A relational
expression takes the form
E1 <relational-operator> E2
where E1 and E2 are arithmetic expressions and <relational-operator> is one of the
following: <, ≤, =, ≠ (nonequality), >, or ≥.
The purpose of condition testing is to detect not only errors in the conditions
of a program but also other errors in the program
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 159
Loop Testing
Loop testing is a white-box testing technique that focuses exclusively on the
validity of loop constructs. Four different classes of loops can be defined: simple
loops, concatenated loops, nested loops, and unstructured loops (Figure 17.8)
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 160
Simple loops. The following set of tests can be applied to simple loops, where n is the
maximum number of allowable passes through the loop.
1. Skip the loop entirely.
2. Only one pass through the loop.
3. Two passes through the loop.
4. m passes through the loop where m < n.
5. n 1, n, n + 1 passes through the loop.
Nested loops. If we were to extend the test approach for simple loops to nested loops,
the number of possible tests would grow geometrically as the level of nesting
increases. This would result in an impractical number of tests. Beizer suggests an
approach that will help to reduce the number of tests:
1. Start at the innermost loop. Set all other loops to minimum values.
2. Conduct simple loop tests for the innermost loop while holding the outer loops at
their minimum iteration parameter (e.g., loop counter) values.
3. Work outward, conducting tests for the next loop, but keeping all other outer loops
at minimum values and other nested loops to "typical" values.
4. Continue until all loops have been tested.
Concatenated loops: Concatenated loops can be tested using the approach defined
for simple loops, if each of the loops is independent of the other. However, if two
loops are concatenated and the loop counter for loop 1 is used as the initial value for
loop 2, then the loops are not independent. When the loops are not independent, the
approach applied to nested loops is recommended.
BLACK-BOX TESTING
Black-box testing, also called behavioral testing, focuses on the functional
requirements of the software.
Black -box testing enables the software engineer to derive sets of input conditions that
will fullyexercise all functional requirements for a program.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 161
White-box testing, which is performed early in the testing process, blackbox testing
tends to be applied during later stages of testing.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 162
Collection of nodes that represent objects; links that represent the relationships
between objects; node weights that describe the properties of a node (e.g., a specific
data value or state behavior); and link weights that describe some characteristic of a
link.
The software engineer then derives test cases by traversing the graph and
covering each of the relationships shown. These test cases are designed in an attempt
to find errors in any of the relationships.
Equivalence partitioning is a black-box testing method that divides the input domain
of a program into classes of data from which test cases can be derived. Test case
design for equivalence partitioning is based on an evaluation of equivalence classes
for an input condition. If a set of objects can be linked by relationships that are
symmetric, transitive, and reflexive, an equivalence class is present
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 163
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 164
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 165
P2, P3, and P4 would also take on values of 1, 2 and 3, signifying other send
functions.
If a “one input item at a time” testing strategy were chosen, the following sequence of
tests (P1, P2, P3, P4) would be specified: (1, 1, 1, 1), (2, 1, 1, 1), (3, 1, 1, 1), (1, 2,
1,1), (1, 3, 1, 1), (1, 1, 2, 1), (1, 1, 3, 1), (1, 1, 1, 2), and (1, 1, 1, 3).
Phadke assesses these test cases in the following manner:
An L9 Orthogonal Array
Test Parameters
Test Code
P1 P2 P3 P4
1 1 1 1 1
2 1 2 2 2
3 1 3 3 3
4 2 1 2 3
5 2 2 3 1
6 2 3 1 2
7 3 1 3 2
8 3 2 1 3
9 3 2 1 3
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 166
Correctness. The extent to which a program satisfies its specification and fulfills the
customer's mission objectives.
Reliability. The extent to which a program can be expected to perform its intended
function with required precision. [It should be noted that other, more complete
definitions of reliability have been proposed.
Usability. Effort required to learn, operate, prepare input, and interpret output of a
program. Maintainability. Effort required to locate and fix an error in a program.
[This is a very limited definition.] Flexibility. Effort required to modify an
operational program. Testability. Effort required to test a program to ensure that it
performs its intended function.
Portability. Effort required to transfer the program from one hardware and/or
software system environment to another.
Reusability. Extent to which a program [or parts of a program] can be reused in other
applications— related to the packaging and scope of the functions that the program
performs.
The ISO 9126 standard was developed in an attempt to identify the key quality
attributes for computer software. The standard identifies six key quality attributes:
Functionality. The degree to which the software satisfies stated needs as indicated by
the following sub attributes: suitability, accuracy, interoperability, compliance, and
security.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 167
Reliability. The amount of time that the software is available for use as indicated by
the following sub attributes: maturity, fault tolerance, recoverability.
Usability. The degree to which the software is easy to use as indicated by the
following sub attributes: understandability, learnability, operability.
Efficiency. The degree to which the software makes optimal use of system resources
as indicated by the following sub attributes: time behavior, resource behavior.
Maintainability. The ease with which repair may be made to the software as
indicated by the following sub attributes: analyzability, changeability, stability,
testability.
Portability. The ease with which the software can be transposed from one
environment to another as indicated by the following sub attributes: adaptability,
installability, conformance, replaceability.
Function-Based Metrics
The function-point metric can be used effectively as a means for measuring the
functionality delivered by the system.
Using historical data FP metric can be used to
1. Estimate cost or effort required to design code and test the software.
2. Predict no.of errors that will be encountered during testing
3. Forecast no.of components and no.of projected source lines in the implemented
system.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 168
Number of External inputs (EI): Each external input originates from a user
or is transmitted from another application. Inputs are often used to update Internal
Logic Files.
Number of External Outputs: Each external output is derived data within the
application that provides information to the user. External outputs refer to reports,
screens, error messages
Number of internal logical files: Each internal logical file is a logical grouping of
data that resides within the applications boundary and is maintained via external
inputs.
Number of external interface files: Each external interface file is a logical grouping
of data that resides external to application but provides information that may be of use
to application
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 169
The count total shown in Figure 19.4 must be adjusted using Equation
FP = count total * [0.65 + 0.01* ∑(Fi)]
where count total is the sum of all FP entries obtained from Figure 19.3 and Fi (i = 1to
14) are "complexit y adjustment values." For the purposes of this example, we assume
that (∑Fi) is 46 (a moderately complex product). Therefore,
FP = 50 * [0.65 + 0.01 *46] = 56
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 170
Where nf is the number of functional requirements and Nnf is the number of non-
functional (e.g., performance) requirements.
To determine the specificity (lack of ambiguity) of requirements
interpretations. The closer the value of Q to 1, the lower is the ambiguity of the
specification.
defined or implied by the specification, and ns is the number of states specified. The
Q2 ratio measures the percentage of necessary functions that have been specified for a
system
Card and Glass define three software design complexity measures: structural
complexity, data complexity, and system complexity.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 171
System complexity is defined as the sum of structural and data complexity, specified
as C(i) = S(i) + D(i)
Morphology (shape) metrics: a function of the number of modules and the number
of interfaces between modules
size = n + a
Figure 4.20
where n is the number of nodes and a is the number of arcs. For the architecture
shown in Figure 19.5,
size = 17 + 18 = 35
depth = the longest path from the root (top) node to a leaf node. For the architecture
shown in Figure 19.5, depth = 4.
width = maximum number of nodes at any one level of the architecture. For the
architecture shown in Figure 19.5, width = 6.arc-to-node ratio, r = a/n, r = 18/17 =
1.06.
DSQI(Design Structure Quality Index)
US air force has designed the DSQI
Compute s1 to s7 from data and architectural design
S1:Total number of modules
S2:Number of modules whose correct function depends on the data input
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 172
DSQI=∑ WiDi
where i = 1 to 6, wi
is the relative weighting of the importance of each of the intermediate values, and
∑wi= 1 (if all Di are weighted equally, then wi= 0.167).
DSQI of present design be compared with past DSQI. If DSQI is significantly lower
than the average, further design work and review are indicated
Metrics for Object-oriented design
Whitmire [WHI97] describes nine distinct and measurable characteristics of an OO
design: Size : Size is defined in terms of four views: population, volume, length, and
functionality Complexity
How classes of an OO design are interrelated to one another
Coupling The physical connections between elements of the OO design
Sufficiency “the degree to which an abstraction possesses the features required of it,
or the degree to which a design component possesses features in its abstraction, from
the point of view of the current application.”
Completeness An indirect implication about the degree to which the abstraction or
design component can be reused
Cohesion The degree to which all operations working together to achieve a single,
well-defined purpose
Primitiveness Applied to both operations and classes, the degree to which an
operation is atomic
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 173
Similarity The degree to which two or more classes are similar in terms of their
structure, function, behavior, or purpose
Volatility Measures the likelihood that a change will occur
Class-Oriented Metrics-The CK Metrics suite
Proposed by Chidamber and Kemerer
weighted methods per class : Assume that n methods of complexity c1,c2,-cn are
defines for a class C
WMC=∑ci for i=1 ton
The number of methods and their complexity are reasonable indicators of amount or
effort required to implement and test a class
Figure 4.21
Depth of the inheritance tree : Max length form node to root of tree referring to fig
DIT=4 As DIT grows low-level classes will inherit many methods this leads to many
difficulties & greater design complexity
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 174
Response for a class :A set of methods that can potentially be executed in response to
a message.RFC is no. of methods in response set. As RFC increases complexity
increases. Lack of cohesion in methods: LCOM is no. of methods that access one or
more of same attributes. If no methods access same attribute LCOM=0
Where the summation occurs over i = 1 to Tc. Tc is defined as the total number of
classes in the architecture; Ci is a class within the architecture; and
Where = the number of methods that can be involved in association with Ci.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 175
Coupling metrics: a function of input and output parameters, global variables, and
modules called
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 176
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 177
Figure 4.22
Software Measurement
Software measurement can be categorized as
Direct Measurement
Direct measure of software process include cost and effort
Direct measure of product includes lines of code, Execution speed, memory size,
defects per reporting time.
Indirect Measurement
Indirect measure examines the quality of software product itself(e.g. :-
functionality, complexity, efficiency, reliability and maintainability)
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 178
Object-Oriented Metrics
Relevant for object oriented programming Based on the following
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 179
Measuring Quality
Correctness the degree to which a program operates according to specification
Correctness=defects/KLOC
Maintainability the degree to which a program is amenable to change
Integrity the degree to which a program is impervious to outside attack
Integrity=Sigma[1-(threat(1-security))]
1. Threat : Probability that an attack of specific type will occur within a given time
2. Security : Probability that an attack of a specific type will be repelled
Usability the degree to which a program is easy to use
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 180
As E increases (for a given value of D), the overall value of DRE begins to approach
1. In fact, as E increases, it is likely that the final value of D will decrease (errors are
filtered out before they become defects).
DRE can also be used within the project to assess a team’s ability to find errors before
they are passed to the next framework activity or software engineering task.
When used in this context, we redefine DRE as DREi= Ei/(Ei+ Ei+1)
where Ei is the number of errors found during software engineering activity i
Ei+1 is the number of errors found during software engineering activity i+1 that are
traceable to errors that were not discovered in software engineering activity i.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 181
UNIT - V
RISK MANAGEMENT
Risk Management aims at reducing the impact of all kinds of risk that may affect a
project by identifying, analyzing and managing them
Software Risks
Risk always involves two characteristics
Uncertainty the risk may or may not happen
Loss if the risk becomes a reality, unwanted consequences or losses will occur.
When risks are analyzed, it is important to quantify the level of uncertainty and the
degree of loss associated with each risk
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 182
Risk Identification
Risk identification is a systematic attempt to specify threats to the project plan
(estimates, schedule, resource loading, etc.). By identifying known and predictable
risks, the project manager takes a first step toward avoiding them when possible and
controlling them when necessary.
Two distinct types of risks for each category of risks specified above
Generic risks are a potential threat to every software project.
Product-specific risks can be identified only by those with a clear understanding of
the technology, the people, and the environment that is specific to the project at hand.
One method for identifying risks is to create a risk item checklist. The checklist can
be used for risk identification
Product size risks associated with the overall size of the software to be built or
modified.
Business impact risks associated with constraints imposed by management or the
marketplace.
Customer characteristics risks associated with the sophistication of the customer
and the developer's ability to communicate with the customer in a timely manner.
Process definition risks associated with the degree to which the software process has
been defined
Development environment risks associated with the availability and quality of the
tools to be used to build the product.
Technology to be built risks associated with the complexity of the system to be built
and the "newness" of the technology that is packaged by the system.
Staff size and experience risks associated with the overall technical and project
experience of the software engineers who will do the work.
Assessing Project Risk
Have top software and customer managers formally committed to support the project?
Are end-users enthusiastically committed to the project and the system/product to be
built? Are requirements fully understood by the software engineering team and their
customers?
Have customers been involved fully in the definition of requirements? Do end-users
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 183
Risk Projection
It estimates the impact of risk on the project and the product
Risk projection, also called risk estimation, attempts to rate each risk in two ways
The likelihood or probability that the risk is real
The consequences of the problems associated with the risk, should it occur.
The project planner, along with other managers and technical staff, performs four risk
projection activities
Establish a scale that reflects the perceived likelihood of a risk
Delineate the consequences of the risk
Estimate the impact of the risk on the project and the product, note the overall
accuracy of the risk projection so that there will be no misunderstandings
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 184
Figure 5.1
A project team begins by listing all risks This can be accomplished with the
help of the risk item checklists Each risk is categorized in the second column (e.g.,PS
implies a project size risk, BU implies a business risk).
The probability of occurrence of each risk is entered in the next column of the
table. The probability value for each risk can be estimated by team members
individually. Next, the impact of each risk is assessed
Once the first four columns of the risk table have been completed, the table is
sorted by probability and by impact. High-probability, high-impact risks percolate to
the top of the table, and low-probability risks drop to the bottom. This accomplishes
first-order risk prioritization.
The project manager studies the resultant sorted table and defines a cutoff line.
The cutoff line (drawn horizontally at some point in the table) implies that only risks
that lie above the line will be given further attention. Risks that fall below the line are
re-evaluated to accomplish second-order prioritization.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 185
Referring to Figure 6.3, risk impact and probability have a distinct influence
on management concern. A risk factor that has a high impact but a very low
probability of occurrence should not absorb a significant amount of management time.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 186
Risk identification. Only 70 percent of the software components scheduled for reuse
will, in fact, be integrated into the application. The remaining functionality will have
to be custom developed.
Risk probability. 80% (likely).
Risk impact. 60 reusable software components were planned. If only 70 percent can
be used, 18 components would have to be developed from scratch (in addition to other
custom software that has been scheduled for development). Since the average
component is 100 LOC and local data indicate that the software engineering cost for
each LOC is $14.00,
The overall cost (impact) to develop the components would be 18 x 100 x 14 =
$25,200. Risk exposure. RE = 0.80 x 25,200 ~=$20,200.
Risk Refinement
One way to do this is to represent the risk in condition-transition-consequence (CTC).
Using the CTC format for the reuse risk we can write:
Given that all reusable software components must conform to specific design
standards and that some do not conform, then there is concern that (possibly) only 70
percent of the planned reusable modules may actually be integrated into the as-built
system, resulting in the need to custom engineer the remaining 30 percent of
components.
This general condition can be refined in the following manner:
Subcondition 1. Certain reusable components were developed by a third party with no
knowledge of internal design standards.
Subcondition 2. The design standard for component interfaces has not been solidified
and may not conform to certain existing reusable components.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 187
strategy. This is achieved by developing a plan for risk mitigation. For example,
assume that high staff turnover is noted as a project risk, r1. Based on past history and
management intuition, the likelihood, l1, of high turnover is estimated to be 0.70
percent, and the impact, x1, is projected at level 2.
To mitigate this risk, project management must develop a strategy for reducing
turnover. Among the possible steps to be taken are
Meet with current staff to determine causes for turnover (e.g., poor working
conditions, low pay, and competitive job market).
Mitigate those causes that are under our control before the project starts.
Once the project commences, assume turnover will occur and develop techniques
to ensure continuity when people leave.
Conduct peer reviews of all work (so that more than one person is "up to speed”).
Assign a backup staff member for every critical technologist. As the project
proceeds, risk monitoring activities commence
In the case of high staff turnover, the following factors can be monitored:
In addition to monitoring these factors, the project manager should monitor the
effectiveness of risk mitigation steps. For example, a risk mitigation step noted here
called
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 188
It is important to note that RMMM steps incur additional project cost. For
example, spending the time to "backup" every critical technologist costs money.
RMMM PLAN
1) Risk Avoidance(mitigation): Proactive planning for risk avoidance. This is
achieved by developing a plan for risk mitigation.
2) Risk Monitoring what factors can we track that will enable us to determine if the
risk is becoming more or less likely?
Assessing whether predicted risk occur or not
Ensuring risk aversion steps are being properly applied
Collection of information for future risk analysis
Determine which risks caused which problems
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 189
Once RMMM has been documented and the project has begun, risk mitigation
and monitoring steps commence.
Figure 5.3
QUALITY MANAGEMENT
Quality Concepts
Variation control is the heart of quality control
Form one project to another, we want to minimize the difference between the
predicted resources needed to complete a project and the actual resources used,
including staff, equipment, and calendar time
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 190
Quality
The American Heritage Dictionary defines quality as “a characteristic or attribute of
something.” As an attribute of an item, quality refers to measurable characteristics-
things we are able to compare to known standards such as length, color, electrical
properties, and malleability
Quality of design: Refers to characteristics that designers specify for the end product.
n software development, quality of design encompasses requirements, specifications,
and the design of the system
Quality of conformance is the degree to which the design specifications are followed
during manufacturing. It focuses on implementation. If the implementation follows
the design and the resulting system meets its requirements and performance goals,
conformance quality is high.
At the bottom line, Glass contends that quality is important, but if the user isn’t
satisfied, nothing else really matters. “A product’s quality is a function of how much
it changes the world for the better.”
Quality Control
It involves the series of inspections, reviews, and test used throughout software
process to ensure each work product meets the requirement placed up on it.
Quality Assurance
It consists of a set of auditing and reporting functions that assess the effectiveness and
completeness of quality control activities. The goal of quality assurance is to provide
management with the data necessary to be informed about product quality, thereby
gaining insight and confidence that product quality is meeting its goals.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 191
Cost of Quality
The cost of quality includes all costs incurred in the pursuit of quality or in
performing quality-related activities.
Quality costs may be divided into costs associated with prevention, appraisal, and
failure. Prevention costs include quality planning, formal technical reviews, test
equipment, training
Appraisal costs include activities to gain insight into product condition the “first time
through” each process. Examples of appraisal costs include in-process and
interprocess inspection, equipment calibration and maintenance and testing
Failure costs are those that would disappear if no defects appeared before shipping a
product to customers. Failure costs may be subdivided into internal failure costs and
external failure costs.
Internal failure costs are incurred when we detect a defect in our product prior to
shipment. Internal failure costs include rework,repair&• failure mode analysis
External failure costs are associated with defects found after the product has been
shipped to the customer. Examples of external failure costs are complaint resolution,
product return and replacement, help line support and warranty work
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 192
SQA Activities
Prepares an SQA plan for a project. The plan identifies
evaluations to be performed
audits and reviews to be performed
standards that are applicable to the project
procedures for error reporting and tracking
documents to be produced by the SQA group
amount of feedback provided to the software project team
Ensures that deviations in software work and work products are documented
and handled according to a documented procedure.
Deviations may be encountered in project plan, process description, and applicable
standards
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 193
Software Reviews
Purpose is to find errors before they are passed on to another software engineering
activity.
Software engineers (and others) conduct formal technical reviews (FTRs) for software
quality assurance.
Review meeting
The Review meeting in a FTR should abide to the following constraints
Review meeting members should be between three and five.
Every person should prepare for the meeting and should not require more than two
hours of work for each person.
The duration of the review meeting should be less than two hours.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 194
The project leader contacts a review leader, who evaluates the product for
readiness, generates copy of product material and distributes them to two or three
review members for advance preparation .Each reviewer is expected to spend between
one and two hours reviewing the product, making notes. The review leader also
reviews the product and establish an agenda for the review meeting.
The review meeting is attended by review leader, all reviewers and the
producer. One of the reviewer act as a recorder, who notes down all important points
discussed in the meeting.
The meeting (FTR) is started by introducing the agenda of meeting and then
the producer introduces his product. Then the producer “walkthrough” the product,
the reviewers raise issues which they have prepared in advance. If errors are found the
recorder notes down.
At the end of the review, all attendees of the FTR must decide whether to (1)
accept the product without further modification, (2) reject the product due to severe
errors(once corrected, another review must be performed), or (3) accept the product
provisionally (minor errors have been encountered and must be corrected, but no
additional review will be required). The decision made, all FTR attendees complete a
sign- off, indicating their participation in the review and their concurrence with the
review team's findings.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 195
Review summary report is a single page form with possible attachments The
review issues list serves two purposes
To identify problem areas in the product
To serve as an action item checklist that guides the producer as corrections are
made
Review Guidelines
Review the product, not the producer
Set an agenda and maintain it
Limit debate and rebuttal
Enunciate problem areas, but don’t attempt to solve every problem noted
Take written notes
Limit the number of participants and insist upon advance preparation.
Develop a checklist for each product i.e likely to be reviewed
Allocate resources and schedule time for FTRS
Conduct meaningful training for all reviewer
Review your early reviews
Sample-Driven Reviews
The lon and his colleagues suggest a sample-driven review process in which
samples of all software engineering work products are inspected to determine which
work products are most error prone.SDRs attempt to quantify those work products
that are primary targets for full FTRs.
To accomplish this …
1) Inspect a fraction ai of each software work product, i. Record the number of
faults, fi found within ai.
2) Develop a gross estimate of the number of faults within work product i by
multiplying fi by 1/ai.
3) Sort the work products in descending order according to the gross estimate of the
number of faults in each.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 196
4) Focus available review resources on those work products that have the highest
estimated number of faults.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 197
Software Reliability
Software reliability is defined as the probability of failure free operation of a
computer program in a specified environment for a specified time.
In other words, if program X were to be executed 100 times and require eight
hours of elapsed processing time (execution time), it is likely to operate correctly
(without failure) 96 times out of 100. Can be measured directly and estimated using
historical and developmental data
Many researchers argue that MTBF is a far more useful measure than
defects/KLOCor defects/FP. Stated simply, an end-user is concerned with failures, not
with the total error count.
The MTBF reliability measure is equally sensitive to MTTF and MTTR. The
availability measure is somewhat more sensitive to MTTR, an indirect measure of the
maintainability of software
Software Safety
Software safety is a software quality assurance activity that focuses on the
identification and assessment of potential hazards that may affect software negatively
and cause an entire system to fail.
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 198
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 199
TUTORIAL QUESTIONS
UNIT I
1) Define Software Engineering.
2) What is a Process Framework?
3) How the Process Model differ from one another?
4) Explain waterfall model? Write out the reasons for the Failure of Water Fall Model?
5) Explain RAD model? What are the Drawbacks of RAD Model?
UNIT II
1) Explain SDLC
2) What is Structured Analysis? Explain all the tools of structured Analysis?
3) What are the Objectives of Requirement Analysis?
4) Explain design Process & also it’s various methods?
5) Define System Context Diagram [SCD]?
UNIT III
1) Define Refactoring.
2) What are the Five Types of Design classes?
3) What are the Different types of Design Model? Explain.
4) List out the Different elements of Design Model?
5) What are the Types of Interface Design Elements?
UNIT IV
1) Define Smoke Testing?
2) What are the Attributes of Good Test?
3) Define White BoxTesting.
4) Define Basic PathTesting.
5) Define the terms :
a) Graph Matrices
b) Connection Matrices.
UNIT V
1) How do we define Software Quality?
2) Define Software Reliability?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 200
3) List and explain different types of testing done during the testing phase?
4) What is change management?
5) What is generalization? Give an example of generalization
ASSIGNMENT QUESTIONS
UNIT I
1. Explain software Engineering? Explain the software engineering layers?
2. Explain different software applications?
3. Explain changing nature of software indetail?
4. Explain staged model in CMMI?
5. Explain PSP and TSP?
UNIT II
1. Identify and briefly describe four types of requirements that may be 1 defined for
computer based system?
2. List out plausible user requirements for the following functions a) cash dispensing
function in a bank ATM 2 b) spelling check and correcting function in a word processor?
3. Suggest how an engineer responsible for drawing up a system requirements specification
might keep track of the relationship 3 between functional and non-functional
requirements?
4. Suggest who might be stakeholders in a university student record system. Explain why it
is almost inevitable that the requirements of 4 different stakeholders will conflict in some
way?
5. Explain who should be involved in requirements review? Draw a process model showing
how a requirements review might be 5 organized?
UNIT-III
1. Explain why design is important in design engineering?
2. Discuss analysis and design model?
3. Describe quality attributes and its guidelines?
4. List the design concepts?
5. Justify the importance of refactoring?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 201
UNIT-IV
1. Provide a few examples that illustrate why response time variability can be an Issue.
2. Develop two additional design principles “place the user in control”?
3. Develop two additional design principles “make the interface 3 consistent”?
4. Develop a complete test strategy for the safe home system. Document 4 it in a
Specification
5. Provide examples for unit testing?
UNIT-V
1. Quality and reliability are related concepts but are fundamentally Apply 8 different in
number of ways. Discuss them?
2. Explain you have been given the responsibility for improving Apply 8 quality of
software across your organization. What is the first thing that you should do? what’s
next?
3. Some people argue that an FTR should assess programming style as Apply 8 well as
correctness is this a good idea? Discuss why?
4. Demonstrate is it possible to assess the quality of software if the Apply 9 customer keeps
changing what it is supposed to do?
5. Create a risk table for the project that if you are the project manager Apply 9 for a major
software company. you have been asked to lead a team that’s developing “next
generation “word- processing software?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 202
OBJECTIVE QUESTIONS
UNIT I
1. The goal of software engineering is
a. Quality b. Productivity c. Cost effective d. All
2. What is an example of system software.
a. Compilers b. Editors c. File management utilities d. All
3. Model can be called as “meta model” in the development.
a. Prototype b. RAD c. Life cycle d. Incremental.
4. During the software engineering maintenance phase focuses on
a. What b. How c. Change d. None
5. What is an example for object oriented languages.
a. C++ b. C c. Pascal d. COBOL
6. Embedded software resides in ---------------
a. RAM b. ROM c. Hard disk d. None.
7. Multiprogramming and multiuser systems are introduced at--------------------------- era.
a. First era b. Second era c. Third era d. Fourth era.
8. What is the measure for maintainability?
9. Acronym for CASE is
10. Software metrics are direct measures of software.
11. is an important characteristics of high quality software component.
12. process translates requirements into a representation of software.
13. According to generic view of software engineering focuses on .
14. According to generic view of software engineering phase focuses on .
15. Acronym for CMMI .
UNIT II
1) Which one of these belongs to integration testing in the OO context?
a. Unit testing
b. Regression testing
c. Sandwich testing
d. Thread-based testing
2) In which elicitation process the developers discuss with the client and end users and
know their expectations from the software?
a. Requirement gathering
b. Organizing requirements
c. Negotiation & discussion
d. Documentation
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 203
3) If requirements are easily understandable and defined then which model is best
suited?
a) Spiral model
b) Waterfall model
c) Prototyping model
d) None of the above
8) Software is defined as .
a) Instructions
b) Data Structures
c) Documents
d) All of the above
9) During security testing the tester plays the role of the individual who desires t
a) Penetrates the system
b) Penetrates the listener
c) Both A & B
d) None of the above
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 204
10) Which of the following is not a section in the standard for SQA plans recommended
by IEEE?
a) Budget
b) Time
c) People
d) None of the above
13) Which may be estimated either in terms of KLOC (Kilo Line of Code) or by
calculating number of function points in the software?
a) Time estimation
b) Effort estimation
c) Cost estimation
d) Software size estimation
14) SDLC Models are adopted as per requirements of development process. It may vary
Software-to-software to ensuring which model is suitable.
a) True
b) False
15) The always growing and adapting nature of software hugely depends upon the
environment in which user works in .
a) Cost
b) Dynamic Nature
c) Quality Management
d) Scalability
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 205
UNIT III
1. Which of these states the goal of engineering designanalysis?
a) To understand an engineering design problem
b) To provide an solution for a given problem
c) All of the mentioned
d) None of the mentioned
2. What methods can be followed if designers are out of good SRS or engineering
design ?
a) They must do whatever part of product design which remains undone
b) Various approaches and techniques are to be followed to complete
c) All of the mentioned
d) None of the mentioned
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 206
11. Which of these are types of class model used in object oriented analysis ?
a) Analysis Class models/ Conceptual Models
b) Design Class Models
c) Implementation Class Models
d) All of the mentioned
12. Which of the following represents the use of Conceptual models during product
design?
a) Understanding the problem design
b) Setting Data Requirements
c) Validating Requirements
d) All of the mentioned
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 207
13. Which of the following represents the use of Conceptual models during
engineering design?
a) Understanding product design
b) Under Girding Engineering Modelling
c) All of the mentioned
d) None of the mentioned
15. Conceptual models are useful for which of the following reasons ?
a) Understanding problem design
b) Data Requirements and Product design
c) Validating requirements
d) All of the mentioned
UNIT IV
1. Which of the following activities is part in the clean room process?
a) Increment planning b) Requirements gathering
c) Statistical use testing d) All of the above
4. Use of formal program correctness proofs as part of the clean room process
eliminates the need to do any testing for software defects.
a) True b) False
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 208
8. This box specification describes the architectural design for some system
component.
a) black box b) clear box
c) state box d) white box
9. This box specification is closely aligned with procedural design and structured
programming.
a) black box b) clear box
c) state box d) white box
10. Which of the following is not an advantage of using rigorous correctness verification
of each refinement of the clear box design.
a) improves performance of code b) produces better code than unit testing
c) reduces verification effort d) results in near zero defect levels
12. Certification of an increment is complete once it has passed the formal verification
process.
a) True b) False
13. Which of the following models is part of the clean room certification process?
a) component model b) sampling model
c) both a and b d) none of the above
15. Which of the following is not one of the CBSE activities that take place for
requirements that can be addressed with commercial off-the-shelf (COTS)
components?
a) component adaptation b) component composition
c) component design d) component qualification
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 209
UNIT – V
2. Which of the following is not a principle that should guide business process
reengineering?
a) capture data at each source
b) fully re document legacy processes
c) organize around outcomes
d) put decision point where work is performed
4. Business process reengineering is just another silver bullet fad with no real
benefits to anyone.
a) True b) False
6. Which of the following activities is not part of the software reengineering process
model?
a) forward engineering b) inventory analysis
c) prototyping d) reverse engineering
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 210
11. Reverse engineering should precede the reengineering of any user interface.
a) True b) False
13. Code restructuring is the most important activity performed as part of software
reengineering.
a) True b) False
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 211
UNIT - II
1. What is system requirement? How would you specify them?
2. Discuss about principal requirements engineering activities and their relationships.
3. Define a scenario. Write a sample use case scenario for an article downloading in the
library system.
4. Explain state machine model with a suitable example?
5. Discuss how feasibility studies are important in requirement engineering process?
6. Explain SRS document and explain along with its contents?
7. Explain Behavioral models, Data models and Object models?
8. Explain in which circumstances would you recommend using structured methods for
system development?
9. Explain SRS document and explain along with its contents?
10. Explain interface specification in detail?
11. Discuss how requirements are felicitated and validated in software project?
12. Discuss how feasibility studies are important in requirement engineering process?
13. Demonstrate class hierarchy for library by using interface specification?
14. Explain inheritance model?
15. Explain state machine model with a suitable example?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 212
UNIT-III
1. Write short notes on architecture patterns?
2. Compare function oriented and object oriented design?
3. Define top-down and bottom-up design model?
4. Write short notes on coupling?
5. List out the steps for conducting component level design?
6. Write short notes on cohesion?
7. Explain a two level process? Why should system design be finished before the detailed
design, rather starting the detailed design after the requirements specification? Explain
with the help of a suitable example
8. Discuss briefly the following fundamental concepts of software design:
a) Abstraction
b) Modularity
c) Information hiding
9. Explain briefly the following:
a) Coupling between the modules,
b) The internal Cohesion of a module
10. Elaborate model for the design?
11. Discuss architectural styles and patterns?
12. Explain with a neat diagram of architecturaldesign?
UNIT-IV
1. Explain about the importance of test strategies for conventional software?
2. Discuss black box testing in a detailed view?
3. Compare black box testing with white box testing?
4. Compare validation testing and system testing?
5. Discuss software quality factors? Discuss their relative importance?
6. Discuss an overview of qualitymetrics?
7. Explain should we perform the Validation test – the software developer or the software
user? Justify your answer?
8. Explain about Product metrics?
9. Explain about Metrics for maintenance?
10. Explain in detail about Software Measurement?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 213
UNIT-V
1. Explain about software risks?
2. Elaborate the concepts of Risk management Reactive vs. Proactive Risk strategies?
3. Explain about RMMM Plan?
4. Explain about Quality concepts?
5. Explain software quality assurance?
6. Explain about formal technical reviews?
7. Explain in detail ISO 9000 quality standards?
8. Discuss risk refinement?
9. Compare reactive with proactive risk strategies?
10. Discuss software reliability?
11. Briefly explain about formal approaches to SQA?
12. Demonstrate statistical SQA?
13. Define software reliability along with its terms?
14. Explain risk projection in detail?
15. Explain seven principals of risk management?
16. Explain software reviews in brief?
17. Explain six sigma for software engineering?
18. Explain quality management with their terms?
19. Demonstrate risk identification?
20. Describe developing a risk table?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 214
PART – A
(25 Marks)
1. a) Distinguish between Software products and Software services. [2]
b) Explain Software Crisis [3]
c) Define an Interface. [2]
d) Explain about data models. [3]
e) What are the golden rules for User Interface Design? [2]
f) Explain the Design concept coupling. [3]
g) Define Testing. [2]
h) List the metrics for Design model. [3]
i) Define Risk Refinement. [2]
j) Define Software reliabilty. [3]
PART – B
(50 arks)
2. a) What is a Legacy Software? Explain.
b) Explain the Software Process Framework [5+5]
OR
3. a) Explain the various software myths.
b) Explain the working of specializedprocess model [5+5]
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 215
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 216
PART - A
(25 Marks)
1. a) What are the merits of incremental model? [2]
b) What are the fundamental activities of a software process? [3]
c) Differentiate ERD and DRD. [2]
d) What are non functional requirements? [3]
e) Define design process. [2]
f) List the principles of a software design. [3]
g) Distinguish between verification and validation. [2]
h) Write about drivers and stubs. [3]
i) Give a note on the various estimation techniques. [2]
j) Define maintenance. What are the types of software maintenance? [3]
PART - B
(50 arks)
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 217
6. a) Distinguish between coupling and cohesion? How do they effect software design?
b) For a Case study of your choice show the architectural and component design.
[5+5]
OR
7. List and explain different kinds of architecture styles and patterns. [10]
8. What is black box testing? What is boundary value Analysis? Explain the technique
specifying rules and its usage with the help ofan example [10]
OR
9. a) Define unit testing. Explain about unit testing considerations and procedures.
b) What is equivalence class partitioning? List rules used to define valid and invalid
equivalence classes. Explain the technique using examples. [5+5]
10. a) What is the purpose of Delphi method? State advantages and disadvantages of the
method.
b) Explain the COCOMO model for estimation. [5+5]
OR
11. What is software configuration management? Explain various aspects of the
configuration management. [10]
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 218
PART B
(50 Marks)
2. a) Discuss about the changing nature of software
b) Explain spiral model with its merits and demerits. [5+5]
OR
3. a) Discuss in brief about different software myths and their consequences.
b) Explain CMMI model with a neat sketch.
[5+5]
4. a) Differentiate between functional and non-functional requirements.
b) List and explain the object models in brief. [5+5]
OR
5. a) What are the activities of requirements elicitation and analysis? Explain.
b) Discuss about different structured methods used in software development.
[5+5]
6. a) Explain the process of mapping dataflow into software architecture.
b) List the golden rules of user interface design. [5+5]
OR
7. a) Discuss about pattern based software design in detail.
b) Define and explain about different types of cohesion. [5+5]
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 219
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 220
Part- B
(50 Marks)
2. State and explain various software myths. [10]
OR
3. Explain about specialized process models. [10]
8. Discuss about metrics for design model and source code. [10]
OR
9. Explain clearly about metrics for software quality. [10]
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 221
PART-A
Answer All the following Questions (5*2=10 M)
1. Define Software Engineering and list out the seven broad categories of software?
2. Write short notes on Generic Process Framework?
3. Define Software Requirement and list out the types of requirements?
4. Explain View Points and types of View Points?
5. Define Design Engineering?
PART-B
Answer the following Questions (3*10=30M)
1. a) List out and Explain CMMI levels?
(OR)
b) Explain SPIRAL model with neat diagram?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 222
PART-A
Answer All the following Questions (5*2=10M)
1. Define a) COHESION b) COUPLING?
2. Define a) ALPHA TESTING b) BETA TESTING?
3. Define REFACTORING?
4. Write a brief note on RISKASSESSMENT?
5. Define QUALITY OF CONFORMANCE?
PART-B
Answer the following Questions (3*10=30M)
1. a) Elaborate on DESIGN QUALITY?
(OR)
b) Explain with a neat diagram translating ANALYSIS MODEL TO DESIGN MODEL?
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 223
REFERENCES
Abran, Alain; Moore, James W.; Bourque, Pierre; Dupuis, Robert; Tripp, Leonard L.
(2004). Guide to the Software Engineering Body of Knowledge. IEEE. ISBN 0-7695-
2330-7.
Sommerville, Ian (2008). Software Engineering (7 ed.). Pearson Education. ISBN 978-
81-7758-530-8. Retrieved 10 January 2013
JOURNALS:
International Journal Of Software Engineering
The Journal Of Defense Software Engineering
Advances in Software Engineering
WEBSITES:
www.pentagon2000.com http://www.sei.cmu.edu/
http://iansommerville.com/software-engineering-book/
http://www.advsofteng.com/about.html
E-LINKS
Guide to the Software Engineering Body of Knowledge
The Open Systems Engineering and Software Development Life Cycle Framework Open
SDLC.org the integrated Creative Commons SDLC
Software Engineering Institute Carnegie Mellon
Learn Software Engineering Software Engineering Society
Mallareddy Engineering College For Women (Autonomous Institution, UGC-Govt. of India) Page 224