You are on page 1of 57

Chapter 1

Unit I
 SE deals with building of software system.
 These s/w systems are large and complex.
 They are build by team of engineers.
 Multiple Versions.
 During its lifetime, they undergo many
changes to free from defects , to change
existing features, to add new features, to
remove old.
 SE is an application of the systematic, disciplined,
quantifiable approach to the development,
operation and maintenance of the s/w. i.e the
application of engineering to the software.

 The term ‘systematic approach’ means that the


software engineering should provide methods for
developing s/w that are close to the general
method as possible.

 Means if the methodologies are applicable by


different people, similar s/w can be produced.
 Main goal of SE is to produce high quality s/w
in low cost.
 A s/w product generally contains a set of
programs, their configuration files, system
documentation describing structure of the
system, user documentation and web sites
for the users to download the information
about the product.

 S/w engineers should develop the s/w which


are sold to the customers.
 Types of s/w products.
1. Generic Product

2. Customized Product
 Generic product are stand alone systems
produced by an organization.
 Generic s/ws are developed for “General
Purpose” audience.
 General purpose s/w are designed for
marketing point of view.
 In this, we can imagine what an end-user
requires.
 Eg: Database s/ws, MS word, Drawing
Packages
 Customized Product are also called as bespoke
product is a s/w that is specially developed for
some specific organization or to other users.
 It can be compared with the use of s/w packages
developed for the mass market, such as
commercial-off-the-shelf (COTS or generic s/w)
s/w.
 Custom s/w can be developed by in- house
development group, or be commissioned from a
s/w house or independent s/w developer.
 Since custom s/w is developed for a single
customer, it can accommodate that
customer's particular preferences and
expectations.
 Custom s/w can be developed stage by stage.
 Large companies commonly use custom s/w
for critical functions, including inventory
management, customer management, HRM.
 It is considered expensive.
 Generic s/w is tough and compared to
custom.
 In Generic, we need to imagine what the end
user might require, but in custom s/w we
know the end user and their requirements.
 Custom s/w is expensive than generic.
 The characteristics should be displayed when
the software is installed and used.
 Attributes reflects the quality of s/w.

 Attributes depends on its application.

Eg: Banking system, Messenger


1. Maintainability
2. Dependability
3. Efficiency
4. Usability
It deals with the following factors:
 Maintainability :to locate and fix the errors or
 changing requ.
 Flexibility: Testing the s/w to check system or
modules functions properly.
 Testability: Testing to ensure s/w function
properly.
 Portability: Able to run the system under
different environment.
 Reusability: Existing applications reused in
new application.
 Inter –operability: connecting system with
other system.
 Correctness of programs will satisfy its
specification.
 Reliability: how well s/w meets requirements.
 Integrity : separately developed components
should work together correctly.
 Security: allow for valid users, unauthorized
users are denied.
 Safety: in case of system failure it should not
cause physical or economical damage.
 Factors related to execution of s/w.
 It includes consideration such as response
time, processing time, memory utilization.
 How Easy to use.
 Training the end users of the system.
 Should have proper user interface and
sufficient documentation.
 User familiarity: terms , concepts that are
user familiar.
 Consistency: operations are achieved in same
way throughout the s/w.
 The challenges faced by s/w are:
1. Legacy Challenges.

2. Heterogeneity challenges

3. Delivery challenges.

4. Trust challenge
 Most huge s/w in use today are developed
many years ago.
 It is the challenge of maintaining and
updating the s/w such that essential business
services are continued avoiding excessive
costs.
 Sometimes it is required to integrate new
system with old system written in
programming language.
 It is a challenge of developing techniques to
build dependable s/w which is flexible
enough to fulfill the requirements.
 S/w development takes lot of times.
 It deals with delivering the s/w system in
short time, without compromising on quality.
 It is important that user must trust the s/w,
especially when accessed through web pages.
 The challenge is to develop the s/w in such a
way that it is trusted by the user.
 s/w process is complex.
 It is defined as set of activities and associated
results that produces s/w products.
 It has characteristics such as

1. Understanding: how easy is to understand


the process.
2. Visibility : how visible are result of process.

3. Supportability : to what extent processes


are supported .
3. Acceptability: is the defined process is
acceptable and usable.
4. Reliability : will the process avoid errors.
5. Robustness: can the process continue to
work in case of unexpected errors?
6. Maintainability: can the process take
changing requirements.
7. Rapidity: how fast the system can be
delivered?
 s/w process divided into 4 fundamental
activities.
1. S/w specification: defining specification of
the software product and its constraints.
2. S/w development: designing and
programming of the s/w
3. S/w Validation: Checking to know if meets
the user requirements.
4. S/w Evolution: It is the activity where the
s/w is modified to meet the changing
requirements of the customer.
 The software development life cycle (SDLC) is a
framework defining tasks performed at each step in
the software development process. SDLC is a
structure followed by a development team within the
software organization. It consists of a detailed plan
describing how to develop, maintain and replace
specific software.

 Different Stages
1. Requirement Analysis and definition
2. System and software requirements
3. Implementation and Unit testing
4. Integration and System testing
5. Operation maintenance.
 Requirement analysis is the most important
and fundamental stage in SDLC. It is
performed by the senior members of the
team with inputs from the customer/client.
 Planning for the quality assurance,
requirements and identification of the risks
associated with the project is also done in the
planning stage.
 Once the requirement analysis is done the
next step is to clearly define system and s/w
requirements.
 This is done through an SRS (Software
Requirement Specification) document which
consists of all the product requirements to be
designed and developed during the project
life cycle.
 This stage produces actual codes.
 After implementation, unit testing is done.
 Unit testing ensure that defects are quickly
recognized and each unit testing meets it
requirements.
 All the modules or programs that are tested
individually are integrated and tested as a
whole system.
 To ensure that system meets the
requirements entire system it tested.
 Delivered to the customer.
 Operation: Installation, testing and evolution.
 Maintenance involves correcting errors that
are missed in previous stages.
 It should meet the requirements.
 s/w training and support is important, since
s/ws are effective only if it is used correctly.
1. Water Fall Model
2. Boehm’s Spiral model
3. Evolution model
4. Incremental model
5. Agile development model
 It has got 5 stages.
1. Requirement analysis and specification

2. System and software design

3. Implementation and unit testing

4. Integration and system testing

5. Operation and maintenance.


 Requirement analysis and specification
1. It defines costs and benefits of the system.

2. The purpose of this stage is to identify and


document the exact requirements for the
system.
3. If the requirements are not clear, then there
will interaction with the user and developer.
 System and Software Design
1. Once requirements are documented, we
enter to the design phase.
2. This phase spilt onto 2 phases.

3. High level design and detailed design.

 High level design: It deals with overall


modules or structure and organization.
 Detailed design: Once high level design is
defined by the designers each module in
detailed, it is called as detailed development.
 In this phase, clear distinction is made b/w
what the problem is and how the problem can
be solved.
 Implementation and testing:
1. This phase produces actual code that is to
be delivered to the customer.
2. Once the code is implemented, it undergoes
unit testing.
3. In unit testing, each module is tested
separately before it goes to next phase.
 Integration and system testing
1. All the modules that are tested separately
are integrated and the whole system is
tested..
 Operation and Maintenance
1. Once the system passes all tests and
delivered to the customers, we enter
maintenance phase.
2. In maintenance phase, system must
undergo changes demanded by the
customers.
3. Changes occur due to errors encountered
because of new environment.
 This model requires fulfillment of each phase
before going to next phase.
 This helps to find the errors in initial stages
itself.
 Well known among s/w developers.
 Easily understood.
 Developing s/w in short time span.
 Requirements must be clearly understood.
 Changing in requirements creates problems.
 It takes lots of time, not suitable for big
projects.
 It was published by Barry Boehm.
 It is well suitable for large scale complex
system.
 The whole project is presented as a spiral
with number of loops.
 Each loop represents a phase of the s/w
process.
 Thus the innermost loop start at the core of
the spiral could represent the requirements,
next loop with the definition, next with the
design and so on.
 This model includes 4 quadrant
1. Objective setting: identifying the s/w
targets, constraints, development
restrictions and risks and plan.
2. Risk Analysis: detailed analysis of risk, how
to eliminate or reduce risk.
3. Development and validation: to develop one
or more representation of the application by
setting process and test the s/w.
4. Planning: after the project review deciding
whether we are continuing with another
loop.
This model can be applied throughout the life
cycle of the s/w.
 Developer actively look for possible risk and
analyze it accordingly.
 It uses prototyping- risk reducing
 Systematic step by step approach
 Develop large system.
 Difficult to convince customer
 It demands expertise for risk management.
 It involves developing s/w from the very
abstract specification and modifying acc to
the customer requirements.
 Inherits features from previous versions.
 Each version is developed acc to the need of
the customer.
 Two types of evolutionary development.
1. Exploratory development: work with the
customers.
2. Throw away proto typing: Begins with poor
understanding requirements.
Applicability:
1. Small interactive systems, short life span.
Advantages
 Specifications can be developed
incrementally.
Disadvantages:
 Difficult to produce documentation for each
version.
 Badly structured implementation.

 Not cost effective.


 Good skilled programmers are rquired.
 S/w is developed in increments.
 Each increments adds some functionalities to the
system.
 Increments gives feedback from the clients.
 First increment is core product – basic
requirement met.
 This core product is used by the customer.
 Instead of single delivery, development and
delivery is broken into increments.
 In each increments, deliver parts of the required
functionality will be met.
 This process continues until the complete
product is produced.
 Less people required.
 Deadlines can be managed.
 Lower risk of project failure.
 It combines concepts of water fall and
prototyping model.
 Minimum reusability of the code.
 Integration testing is difficult.
 Each increments gets tested.
 Development of s/w is based on iterative
development.
 Tasks are broken down into iterations and do
not directly involves long term planning.
 Each iterations – short time – 2-4 weeks.
 Agile processes uses feedback rather than
planning.
 Helps minimizing overall risk, adopts to
changes quickly.
 Extreme programming: carried out in steps .
Single step may take from 1 day to 1 week.
 It solves the problems of identifying and
managing the risks associated with the s/w
projects.
 3 categories

1. Project risk: Staff, H/w unavailability, size,


requirement change.
2. Product risk: specification delay, poor
performance.
3. Business risk: technology change,
competetion.
 Risk identification
 Risk analysis
 Risk planning
 Risk monitoring
 Each process should end with documentation(
reports and reviews)
 Different stages:

1. Documentation

2. Diagrams
3. Sharing
1. Confidentiality
2. Completence
3. Intellectual property rights: local laws. Such
as patents, copy rights.
4. Misuse : skills should not be used for
misuse other computers

You might also like