Sei sulla pagina 1di 58

Chapter 5

Conventional Methods for


Software Engineering

9/7/2019 1
Outline
 System Engineering
 Design
 System Design
 Software Design
 The design principle/guidelines
 Design concepts
Architectural Design
 Interface Design
 GUI
Design of User Interface
9/7/2019 2
Outline
 Levels of GUI Design
 Steps of UI Design
Component-Level Design
 Deployment-Level Design
 Software Testing
 Fundamentals of Software Testing
 Test Scripts
 Pre-conditions/Information
 Testing Techniques
 Review

9/7/2019 3
System Engineering
The word “system” has many context
 Communication system
 Satellite system
 Solar system
 Physical system
 Railway system
 Nervous system…..etc

9/7/2019 4
Cont…
 System: refers to the whole that results when a
number of things have been grouped in a
particular way for particular reason.
What is system engineering?
 Is an interdisciplinary field of engineering and
engineering management that focuses on how to
design and manage complex systems over their
life cycle.

9/7/2019 5
Cont…
A system can be described in two broad ways
 Logical(Functional): What the system will do.
 Physical: what the system elements are, how
they look, and how they are to be manufactured,
integrated, and tested.

9/7/2019 6
Cont…
Systems engineering techniques are used in
complex projects:
Spacecraft design
Computer chip design
Robotics
Software integration
And bridge building

9/7/2019 7
What is Design?

 Explaining the idea/concept of something, usually


with graphical diagrams.
 The design is a representation of a product or a
system with sufficient detail for implementation.

9/7/2019 8
System design
 System design is the process of defining the
architecture, components, modules, interfaces,
and data for a system to satisfy specified
requirements.
 Systems design could be seen as the application
of systems theory to product development.
 The design model consists of the data design,
architectural design, interface design, and
component-level design.
9/7/2019 9
Software design
 From our understanding of the problem, we start
building the software.
 Translate the analysis model into the design
model.
 Map the information from the analysis model to
the design representations -data design,
architectural design, interface design, procedural
design.

9/7/2019 10
The design principle/guidelines
 The design should be traceable to the analysis
model.
 The design should “minimize intellectual
distance” between the software and the problem
in the real world.
 The design should exhibit uniformity and
integration.

9/7/2019 11
Cont…
 The design should be structured to accommodate
change.
 Design is not coding, coding is not design.
 The design should be assessed for quality as it is
being created, not after the fact.
 The design should be reviewed to minimize
conceptual (semantic)errors.

9/7/2019 12
Cont…
 A design should exhibit good architectural
structure.
 A design should be modular.
 A design should contain distinct representations
of data, architecture, interfaces, and components
(modules).
 A design should lead to data structures that are
appropriate for the objects to be implemented
and be drawn from recognizable design patterns.
9/7/2019 13
Design concepts
Software design creates meaningful engineering
representation (or model) of some software product
that is to be built.
Fundamental concepts which provide foundation to
design correctly:
 Abstraction: allows designers to focus on solving a
problem without being concerned about irrelevant
lower level details.

9/7/2019 14
Cont…
 Modularity: The degree to which software can be
understood by examining its components
independently of one another.
 Software architecture: overall structure of the
software components and the ways in which that
structure provides conceptual integrity for a
system.

9/7/2019 15
Cont…
 Structural partitioning
• Horizontal partitioning defines three partitions
(input, data transformations, and output);
• Vertical partitioning distributes control in a top-
down manner (control decisions in top level
modules and processing work in the lower level
modules).

9/7/2019 16
Cont…
 Data structure : representation of the logical
relationship among individual data elements.
 Software procedure : precise specification of
processing (event sequences, decision points,
repetitive operations, data organization/
structure).
 Information hiding : information (data and
procedure) contained within a module is
inaccessible to modules that have no need for
such information.
9/7/2019 17
Architectural Design
 Provides an overall view of the software product
 Derived from
• Information about the application domain
relevant to software.
• Relationships and collaborations among
specific analysis model elements.
• Availability of architectural patterns and styles.

9/7/2019 18
Cont…
 Architectural design: defines the relationships
among the major structural elements of the
software, it is derived from the system
specification, the analysis model, and the
subsystem interactions defined in the analysis
model Data Flow Diagrams(DFD).
 The architecture of a system is a comprehensive
framework that describes its form and
structure—its components and how they fit
together.

9/7/2019 19
Interface Design
 Interface is a set of operations that describes the
externally observable behavior of a class and
provides access to its public operations.
 Important elements
• Graphical User interface (GUI).
• External interfaces to other systems.
• Internal interfaces between various design
components.

9/7/2019 20
Cont…
 Modeled using UML communication diagrams
 Describes how the software elements
communicate with each other, with other
systems, and with human users;
 The data flow and control flow diagrams provide
much the necessary information.

9/7/2019 21
GUI
 A graphical user interface is the most common
type of user interface available today.
 It is a very user friendly because it makes use of
pictures, graphics, and icons -hence why it is
called 'graphical'.
 It is also known as a WIMP interface because it
makes use of :-

9/7/2019 22
Cont…
 Windows : A rectangular area on the screen
where the commonly used applications run.
 Icons : A picture or symbol which is used to
represent a software application or hardware
device.
 Menus : A list of options from which the user can
choose what they require.
 Pointers : A symbol such as an arrow which
moves around the screen as user moves the
mouse. It helps user to select objects.
9/7/2019 23
Design of User Interface
 It starts with task analysis which understands the
user’s primary tasks and problem domain.
 It should be designed in terms of User’s
terminology and outset of user’s job rather than
programmer’s.
 Proper or good UI design works from the user’s
capabilities and limitations not the machines.
While designing the UI, knowledge of the nature
of the user's work and environment is also
critical.
9/7/2019 24
Cont…
To perform user interface analysis, the practitioner
needs to study and understand four elements :
 The users who will interact with the system
through the interface.
 The tasks that end users must perform to do their
work.
 The content that is presented as part of the
interface.
 The work environment in which these tasks will
be conducted.

9/7/2019 25
Levels of GUI Design
 The task to be performed and then can be
divided, which are assigned to the user or
machine, based on knowledge of the capabilities
and limitations.
 The design of a user interface is often divided into
four different levels :
1. The conceptual level: It describes the basic
entities considering the user's view of the
system and the actions possible upon them.
9/7/2019 26
Cont…
2. The semantic level: It describes the functions
performed by the system i.e. description of the
functional requirements of the system, but does
not address how the user will invoke the
functions.
3. The syntactic level: It describes the sequences
of inputs and outputs required to invoke the
functions described.
4. The lexical level: It determines how the inputs
and outputs are actually formed from primitive
hardware operations.

9/7/2019 27
Steps of UI Design
 User interface design is an iterative process,
where all the iteration explains and refines the
information developed in the preceding steps.
General steps for user interface design
 Defines user interface objects and actions
(operations).
 Defines events (user actions) that will cause the
state of the user interface to change.

9/7/2019 28
Cont…
 Indicates how the user interprets the state of the
system from information provided through the
interface.
 Describe each interface state as it will actually
look to the end user.

9/7/2019 29
Component-Level Design
 Describes the internal detail of each software
component.
 Defines
• Data structures for all local data objects
• Algorithmic detail for all component processing
functions
• Interface that allows access to all component
operations

9/7/2019 30
Cont…
Modeled using UML component diagrams,
UML activity diagrams, pseudo code, and
sometimes flowcharts.
 Component-level design -created by transforming
the structural elements defined by the software
architecture into procedural descriptions of
software components.

9/7/2019 31
Deployment-Level Design
 Indicates how software functionality and
subsystems will be allocated within the physical
computing environment.
 Modeled using UML deployment diagrams.
 Instance form deployment diagrams identifying
specific named hardware configurations are
developed during the latter stages of design.

9/7/2019 32
Software Testing?
 Software testing is a process used to identify the
correctness, completeness and quality of
developed computer software.
 It includes a set of activities conducted with the
intent of finding errors in software so that it could
be corrected before the product is released to the
end user.
 In simple words, software testing is an activity to
check that the software system is defect free.
9/7/2019 33
Cont…
Why testing is Important
Security issues
Payment related issues.
Lack of device and browser compatibility.
Software is written by people –people make
mistake.
Increasing confidence that the software meets
specification.
9/7/2019 34
Cont…
Who’s involved in testing?
 Requirements Analysts :Inspections, Peer Reviews
 Developers :Code Inspection, Unit Testing
 Testers :System & Integration Testing
 Trainers :Training materials production
 Users :User Acceptance Testing
 Project Managers :Scheduling, Resourcing, Risks,
Issues, Defect Stats
 Everybody is responsible for quality
9/7/2019 35
Test Scripts
 Test Script :Is a set of instructions that will be
performed on the system under test to test that
the system functions as expected.
 Test Case :A set of inputs, execution preconditions,
and expected outcomes developed for a particular
objective, such as to exercise a particular program
path or to verify compliance with a specific
requirement.

9/7/2019 36
Cont…

9/7/2019 37
Pre-conditions/Information
 Browsers –IE, Firefox, Safari
 O/S –Linux, Windows
 Access Control –Logins, Roles
 Test Data requirements
 Date/Time considerations
 Other document references

9/7/2019 38
Cont…
Test Scripts should be
 Readable
 Accessible
 Usable by anyone –standards
 Can vary depending upon the type of testing
being undertaken

9/7/2019 39
Testing Techniques
 Quick tests
 Negative Testing
 Integration Testing
Quick Tests
 Quick tests-Investigation more important than
Confirmation.
 A quick test is a cheap test that has some value
but requires little preparation, knowledge, or
time to perform.

9/7/2019 40
Cont…
 Focus on common coding error
 Things that have failed before –Defect data
 Tab order (particularly when adding new
functions)
 Short cut keys
 Capacity/Files –Files to fill all available space,
large files, empty files, incorrect format

9/7/2019 41
Cont…
 Tools e.g. Beyond Compare, Screen Capture, Red
gate Toolset,
 Boundaries –Ages, Dates, Values, Increments,
Page Breaks.
 Comparisons –screens, data, reports.

9/7/2019 42
Cont…
Negative Testing
 Testing the system using negative data to
generate exceptions that cause the software to
fail.
 Going against knowledge of ‘How the system
should work’.
For Example : Testing the password where it should
be minimum of 8 characters -so test it using 7 and 9
characters.
9/7/2019 43
Cont…
Emphasis on breaking not confirmation
Field ‘Types’ : Characters in numeric field
Invalid dates e.g. 31/04/08 or 31-04-08

9/7/2019 44
Cont…
Integration Testing (In the large)
 In this phase of testing, individual modules are
combined and tests as a group.
 Testing performed to expose faults in the
interfaces and in the interaction between
integrated components and products.
 Relies on successful unit, integration in the small
and system testing.
 Integration testing is carried out by testers.

9/7/2019 45
Cont…

9/7/2019 46
Cont…

9/7/2019 47
Cont…

9/7/2019 48
Cont…
• If the current balance is not developed we use
driver testing.

9/7/2019 49
Cont…

9/7/2019 50
Cont…

9/7/2019 51
Cont…
Black Box Testing
 Black box testing attempts to derive sets of inputs
that will fully exercise all the functional
requirements of a system.
 The technique of testing without having any
knowledge of the interior workings of the
application is called black-box testing.
 The tester is oblivious to the system architecture
and does not have access to the source code.
9/7/2019 52
Cont…
 Also known as closed-box testing, data-driven
testing, or functional testing.
 Performed by end-users and also by testers and
developers.
 Testing is based on external expectations -
Internal behavior of the application is unknown.
 This can only be done by trial-and-error method.

9/7/2019 53
Cont…
 This type of testing attempts to find errors in the
following categories:
• Incorrect or missing functions,
• Interface errors,
• Errors in data structures or external database
access,
• Performance errors,
• Initialization and termination errors.

9/7/2019 54
Cont…
White Box Testing
 White-box testing is the detailed investigation of
internal logic and structure of the code.
 White-box testing is also called glass testing or
open-box testing. In order to perform white-box
testing on an application, a tester needs to know
the internal workings of the code.

9/7/2019 55
Cont…
 Tester has full knowledge of the internal workings
of the application.
 Normally done by testers and developers.
 Internal workings are fully known and the tester
can design test data accordingly.
 Suited for algorithm testing.

9/7/2019 56
Review
 Software Testing is important for increasing
confidence that the software meets specification.
 To get the best results from testing certain
fundamentals should be followed.
 Testing is part of software development.
 Different software testing techniques enhance
our ability to test.

9/7/2019 57
Thank You

9/7/2019 58

Potrebbero piacerti anche