1chapter 7
1chapter 7
Integration Testing
Requirements Testing Ensures that integration did not cause new errors
Usability Testing Tests how easy and error-free the system is in use
Performance Testing Assures that the system works under high volumes of activity
Acceptance Testing
Alpha Testing Performed by users to assure they accept the system; frequently repeats
earlier tests
Beta Testing Uses real data, not test data. Actual users monitor for errors or needed
improvements.
Con…..
C. Installation Process during which the current system is replaced
by the new system
1.Direct Installation
2. Parallel Installation
Running the old information system and the new one at the same
time until management decides the old system can be turned off.
4. Phased Installation
Most user training deals with the operation of the system itself.
The training courses must be designed to help the user with fast
mobilization for the organization.
SAD for IT 3rd Year students
Con….
F. Support It is extremely important to users and it should be number
one principle contributing to user satisfaction with personal computing
– Information center
– Help desk
Conversion Plan
formats of the same type. For example, Microsoft Word can open
1. Inheritance
2. Polymorphism
3. Encapsulation
4. Abstraction
5. Coupling
6. Cohesion
7. Object
8. Class
9. Package
Inheritance
The ability to create new class from an existing class is called
inheritance.
Inheritance is the mechanism that permits new classes to be
created out of existing classes by extending and refining its
capabilities.
The existing classes are called the base classes/parent
classes/super-classes, and the new classes are called the
derived classes/child classes/subclasses.
The subclass can inherit or derive the attributes and methods
of the super-classes provided that the super-class allows so.
Types of Inheritance
Single Inheritance: A subclass derives from a single super-class
Multiple Inheritance: A subclass derives from more than one
super-classes.
Multilevel Inheritance: A subclass derives from a super-class
which in turn is derived from another class and so on.
Hierarchical Inheritance: A class has a number of subclasses
each of which may have subsequent subclasses, continuing for a
number of levels, so as to form a tree structure.
Hybrid Inheritance: A combination of multiple and multilevel
inheritance so as to form a lattice structure.
Polymorphism
Polymorphism is derived by the combination of two words POLY and
MORPHISM.
Example:
Let us consider two classes, Circle and Square, each with a method
findArea. the procedure of calculating area is different for each class.
Example:
Student Has-A Address (Has-a relationship between student and
address)
College Has-A Address (Has-a relationship between college and
address)
Staff Has-A Address (Has-a relationship between staff and
address)
Coupling
Coupling is the measure of the independence of components.
It defines the degree of dependency of each module of system development on the other.
Coupling Measures
Content Coupling − When one component actually modifies another, then the
modified component is completely dependent on modifying one.
Common Coupling − When amount of coupling is reduced somewhat by
organizing system design so that data are accessible from a common data store.
Control Coupling − When one component passes parameters to control the
activity of another component.
Stamp Coupling − When data structures is used to pass information from one
component to another.
Data Coupling − When only data is passed then components are connected by this
coupling.
Cohesion
Cohesion is the measure of closeness of the relationship between its
components.
Object oriented
programing
Paradigms
1. Programming Paradigm
Programming paradigm is an approach to solve
problem using some programming language or also
we can say it is a method to solve a problem using
tools and techniques that are available to us following
some approach.
There are lots for programming language that are
known but all of them need to follow some strategy
when they are implemented and this
methodology/strategy is paradigms.
Con…
Con…
It describes the components of
The language paradigm is a general principles that are used
by a programmer to communicate a task/algorithm to a
computer.
The syntax of the language is a way of specifying what is
legal in the phrase structure of the language
The semantics, or meaning, of a program in that language.
without a semantics, a programming language is just a
collection of meaningless phrases;
Cont’d….
The main purpose of programming language
paradigm is to support and facilitate the paradigm of .
Scalability/modifiability
Reusability
Portability
Performance
Reliability
Ease of creation
2. Software Design Paradigm
Is a model for implementing a group of applications sharing common
properties
The results of people‟s ideas on how to construct programs, combine
them into large software systems and formal mechanisms for how those
ideas should be expressed.
we can say that a Software Design Paradigm is a model for a class of
problems that share a set of common characteristics.
Software design paradigms can be sub-divided as:
I. Design Patterns
II. Components
III. Software Architecture
IV. Frameworks
Cont’d……
I. Design Patterns:
is a proven solution for a general design problem.
It consists of communicating „objects‟ that are customized to solve the
problem in a particular context.
II. Components:
are binary units of independent production, acquisition, and
deployment that interact to form a functioning program.
III. Software Architecture:
• is the structure of the components of the solution.
• A particular software architecture decomposes a problem into smaller
pieces and attempts to find a solution (Component) for each piece.
IV. Frameworks:
• Frameworks can be seen as an intermediate level between components
and a software architecture.
3. Software Development Paradigm
is often referred to as Software Engineering, may be seen as a
management model for implementing big software projects
using engineering principles.
Faster development
Higher-quality software.
Re-Usability
Disadvantages of Object Oriented Concepts
1. Steep learning curve: The thought process involved in object-oriented
programming may not be natural for some people, and it can take time to get
executed.
4. Not suitable for all types of problems: There are problems that lend
2.Prototyping Model
3. Iterative Model
4.Spiral Model --------and other are part of your assignment
Chapter Six
function used to fulfill system purpose. It focuses on customer„s needs and problem,
not on solutions. Before anything is done to develop a product, we must identify what
the system must do. Therefore, understanding what requirements are, what they are not,
and how best to identify them is crucial to the success of the system.
Development of a system must follow a set of practices, procedures, rules, and techniques
called methodology.
collecting the user needs to solve a problem or issues and to achieve an objective. If
the requirement gathering is not done properly/ completely, all the subsequent phase is
incomplete, no matter how best the design, until and unless requirements are complete.
Con…
So, we should carefully plan and carry out the requirements gathering with a
systematic approach.
Gathering user requirements is the first step in software development. Types of
requirements can be categorized as follows:
Requirements
Functional Requirements
It specifies the software functionality that the developers must build into the
product to enable users to accomplish their tasks, thereby satisfying the business
requirements.
It is a state what the system must do. In fact, it is usually stated by using the
“shall” statement.
Non – Functional Requirements
Non – functional requirements are Constraints or standards that the system must
have or comply with. It defines the system„s quality characteristics. As a rule of
thumb, non-functional requirements generally end with “ity”, although not all of
them do.
These requirements are discussed below:
Security
Scalability
Regulatory
Capacity
Manageability
Availability
Environmental
Reliability
Data Integrity
Recoverability
Usability
Maintainability
Interoperability
Serviceability
Performance
Con…
Gathering user requirements concerned on the following
activities
1. Putting together requirement gathering team
2. Fundamental requirements gathering techniques
3. Essential Use Case Modeling
4. Essential User Interface Prototyping
5. Domain modeling with class responsibility
collaborator (CRC) cards
6. Developing a supplementary Specification
7. Identifying Change Cases
Cont…
1.Putting together requirement gathering team
Choosing Good Subject-Matter Experts:- is a person who has
special skills or knowledge on a particular job or topic.
More flexible, leaving open more options and more readily accommodating
changes in technology.
More healthy than concrete representations, simply because they are more
likely to remain valid in the face of both changing requirements and changes
in the technology of implementation.
ellipse as follows:
Actor(s) is a person, organization, or external system that plays a role in
one or more interactions with your system.
Extend: a relationship from the extension use case to a base use case specifying how
the behavior of extension use case can be inserted into the behavior defined for the
base use case.
Include: a relationship from a base use case to inclusion use case specifying
how the behavior of the inclusion use case can be inserted into the behavior
defined for the base use case.
Iterative creativity
Facilitates communications
Con…
The main purpose of a prototype is to allow developers to acquire
the information needed to successfully build a system.
To build a successful interface developers need to acquire several
kinds of information about the system to be built. The required
information falls into the following categories.
Task specification
System functionality
Interface functionality:
Screen layouts and behavior
Design rationale:- reasons why the different design choices were
made
User feedback
Response times
Reusable code
5. Domain modeling with class responsibility collaborator (CRC) cards
It is a collection of standard index cards that have been divided into three
sections, as depicted in figure below:
9. Basic Course of Action- the main path of logic an actor follows through
a use case. Often referred to as ―happy path‖ or the ―main path‖, because
it describes how the use case works when everything works as it normally
should
Example:
The sequence of actions performed for ATM system. In this case, Client, and
ATM are actors and Controller and Database are anonymous object of the
concrete classes. The diagram is shown below:
Cont…
Sequence diagram
Con…
To draw sequence diagram follow the following points:
1. dentify the scope of the sequence diagram.
2. List the use-case steps down the left-hand side.
3. Introduce boxes for each actor.
4. Introduce controller class (es).
5. Introduce a box for each major UI element.
6. Introduce a box for each included use-case.
7. Identify appropriate messages for each use-case step.
8. Add method-invocation box for each invocation of a method.
9. Add destruction messages where appropriate.
Conceptual Modeling: Class Diagram
Class models show the classes of the system, their
interrelationships (including inheritance, aggregation, and
association) and the operations and attributes of the classes.
The conceptual models are used to depict your detailed
understanding of the problem space and solution for your system.
While a CRC model provides an excellent overview of a system, it
doesn„t provide the details needed to actually build it.
Con…
Class Diagram
Activity Diagram
Activity diagrams are used to document the logic of a single operation/ method, a
single use case, or the flow of logic of a business process. In many ways, it is the
object-oriented equivalent of flow charts and data-flow diagrams (DFD) from
structured development.
Example:The activity diagram for how someone new to the university would enroll
for the first time:
Activity Diagram
User Interface Prototyping Evolving Sour Supplementary Specification
It is an iterative analysis technique in which users are actively
involved in the mocking-up of the UI for a system.
UI prototyping has two purposes:
It enables you to explore the problem space your system addresses.
It enables you to explore the solution space of your system.
There are four high-level steps are in the UI prototyping process:
a. Determine the needs of your users
b. Build the prototype
c. Evaluate the prototype
d. Determine if you are finished.
Applying Analysis Patterns Effectively
Analysis pattern describe solutions to common problem found in the analysis/
business domain of a system.
The Business Entity Analysis Pattern: The basic idea of this pattern is to
separate the concepts of a business entity, such as a person or company, from the
roles it fulfils.
Each business entity has one or more roles with your organization and each role
has a range during which it was applicable (the ―start‖ and ―end‖ attributes).
Each role implements the behavior specific to it.
Con…
Some Potential Advantages of Patterns:
Packages are depicted as file folders and can be used on any of the
UML diagrams, although they are most common on use case
diagrams and class diagrams because these models have tendency to
grow.