0% found this document useful (0 votes)
28 views22 pages

IT314 - Software Engineering: Asim Banerjee 18 January 2011 Soft - Engg@daiict - Ac.in

This document discusses the software engineering process. It covers the design phase where requirements are transformed into a structure suitable for implementation. It discusses structured and object-oriented design approaches. It also discusses the coding, unit testing, integration testing, system testing, validation testing, acceptance testing, and maintenance phases of software development. The key activities and objectives of each phase are outlined.

Uploaded by

Abhijeet
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views22 pages

IT314 - Software Engineering: Asim Banerjee 18 January 2011 Soft - Engg@daiict - Ac.in

This document discusses the software engineering process. It covers the design phase where requirements are transformed into a structure suitable for implementation. It discusses structured and object-oriented design approaches. It also discusses the coding, unit testing, integration testing, system testing, validation testing, acceptance testing, and maintenance phases of software development. The key activities and objectives of each phase are outlined.

Uploaded by

Abhijeet
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

IT314 - Software Engineering

Asim Banerjee

18th January 2011

[email protected]
Designing (1/4)
• Objective:
– To transform requirements specifications into a
structure that is -> suitable for implementation in some
programming language i.e. to propose a software
architecture that meets the software requirements
• Design approaches:
– (Traditional) structured design approach
– Object Oriented approach
• Design documents need to be reviewed (before
proceeding to the implementation phase)
• Responsible person: System Designer

IT314 - Software Engineering 2


Designing (2/4)
• The design of the system has a major impact on the
later phases like testing and maintenance and is
perhaps the most critical factor affecting the quality of
the software.
• The output of this phase is the design document,
similar to the blueprint or plan for the solution.
• The design activity is often divided into two sub-
phases viz.
– System design (top-level design)
– Detailed design (low-level design)

IT314 - Software Engineering 3


Designing (3/4)
STRUCTURED DESIGN
• Distinct activities:
– Carry out structured analysis on the requirements
specification
– Evolve structured design (also called as software
architecture)
• Components of software design:
– Architectural (high level) design depicts:
• System modules
• Invocation relationships between modules
– Detailed (low level) design depicts:
• Detailed description of each module e.g. data structures, algorithms
IT314 - Software Engineering 4
Designing (4/4)
OBJECT ORIENTED DESIGN
• Involves building an object structure:
– Identifying the objects in software domain
– Identifying the relationships between these objects
• Object structure is then further refined to obtain
detailed design
• Advantages of object oriented approach:
– Less development effort
– Less development time
– Better maintainability
NOTE: Several well known methodologies are available for
undertaking high level design as well as low level design
IT314 - Software Engineering 5
Any Questions?

IT314 - Software Engineering 6


Coding & Unit Testing(1/2)
• Purpose of implementation phase:
– Implement the software design into code (using
some programming language)
– A well-written code reduces the testing and
maintenance effort.
– Focus should be on developing programs that are
easy to read and understand.
• Activities involved (for each module):
– Coding
Purpose of coding:
• To translate program specification into source code
IT314 - Software Engineering 7
Coding & Unit Testing(2/2)
• Activities involved (for each module) (continued):
– Unit testing (as independent standalone module)
Purpose of unit testing:
• To confirm that each module works correctly as a standalone
module
– Documentation
• Coding standards address aspects like:
– Layouts
– Comments
– Naming convention
– Guidelines for lines per module
• End product:
– Set of independently tested modules
• Responsible person: Developer/Programmer
IT314 - Software Engineering 8
Testing (1/2)
• The testing phase can be further split into the
following sub-phases
I. Integration testing
Purpose of integration testing:
• To confirm that the interfaces between module works
correctly i.e. the modules work well when the are
combined together to build up the system.
II. System testing
Purpose of system testing:
• To confirm that the entire software system works as
desired and that all the desired functionality is present
in the system that has been built.
• Usually done with the help of the system test plan.
IT314 - Software Engineering 9
Testing (2/2)
III. Acceptance testing
Purpose of acceptance testing:
• To confirm that the software system built satisfies the
user defined acceptance criteria that would establish
that the built software is acceptable by the client.
• This may be done at the client site prior to actual
handover of the software system.

IT314 - Software Engineering 10


Any Questions?

IT314 - Software Engineering 11


Integration Testing
• Modules are integrated in planned manner
• During each integration step, partially
integrated system is tested
• When ALL modules are integrated (and
tested), the system is ready for system testing
• Types of Integration testing
– Top-down integration
– Bottom-up integration
– Regression Testing
– Smoke Testing
IT314 - Software Engineering 12
Any Questions?

IT314 - Software Engineering 13


Validation Testing (1/2)
• Objective of Validation testing
– To confirm that the developed system meets the
requirements (as specified in SRS document in the
section called validation criteria)
• Both plan and procedure are designed to ensure that
– all functional requirements are satisfied.
– all behavioral characteristics are achieved
– all performance requirements are attained
– documentation is correct
– Human-engineered and other requirements are met (e.g.
transportability, compatibility error recovery,
maintainability)

IT314 - Software Engineering 14


Validation Testing (2/2)
• Types of validation testing
– Configuration review
– Alpha testing
– Beta testing

IT314 - Software Engineering 15


Any Questions?

IT314 - Software Engineering 16


System Testing(1/2)
• Objective of System Testing
– To confirm that the developed system meets the
requirements (as specified in SRS document)
• Carried out according to the system test plan
NOTE: System test plan is prepared during
requirements phase (include test cases and expected
results)
• Types of System testing
– Recovery testing
– Security testing
– Stress testing
– Performance testing

IT314 - Software Engineering 17


System Testing (2/2)
• Final output of the test phase: Test report and Tested
System

IT314 - Software Engineering 18


Any Questions?

IT314 - Software Engineering 19


Acceptance Testing
• Objective of Acceptance Testing
– To confirm that the developed system is
acceptable by the client as meeting his/her
requirements (as specified through the
acceptance criteria)
• Carried out according to the Acceptance test
plan using the acceptance criteria specified or
agreed upon by the client
NOTE: Acceptance criteria has also to be
signed off by the client
• Final output of the test phase: The client
accepts the product and pays up!!!
IT314 - Software Engineering 20
Any Questions?

IT314 - Software Engineering 21


Maintenance Phase
• Maintenance phase involves performing one or more
of the following activities:
1. Corrective maintenance:
– Fixing errors not detected during the development phase
2. Adaptive maintenance:
– Improving implemented system e.g. performance
– Enhancing functionalities e.g. new requirements
– Porting software to new environment (as needed)
• Maintenance phase consumes far more effort than the
development phases (40:60)

IT314 - Software Engineering 22

You might also like