0% found this document useful (0 votes)
45 views58 pages

Chapter 1

Software engineering is the application of engineering principles to software development to obtain reliable and efficient software. It involves a systematic, disciplined approach to software development and maintenance. Structured systems analysis and design (SSAD) is a common software engineering methodology that uses logical data modeling, data flow modeling, and entity event modeling. Feasibility analysis helps determine if a proposed software system is technically, operationally, and economically feasible before significant resources are committed to its development.

Uploaded by

Prashant Shitole
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views58 pages

Chapter 1

Software engineering is the application of engineering principles to software development to obtain reliable and efficient software. It involves a systematic, disciplined approach to software development and maintenance. Structured systems analysis and design (SSAD) is a common software engineering methodology that uses logical data modeling, data flow modeling, and entity event modeling. Feasibility analysis helps determine if a proposed software system is technically, operationally, and economically feasible before significant resources are committed to its development.

Uploaded by

Prashant Shitole
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 58

Chapter 1

Introduction to development approach and


OOAD
 The term software engineering is the product of
two words, software, and engineering
 The software is a collection of integrated programs
Software
 Engineering on the other hand, is all about
Engineering developing products, using well-defined, scientific
principles and methods.
Software
Engineering
Software engineering is
an engineering branch
associated with
development of software
product using well-
defined scientific
principles, methods and
procedures. The outcome
of software engineering
is an efficient and reliable
software product.
Definitions
(1) The application of a systematic, disciplined,
quantifiable approach to the development, operation
and maintenance of software; that is, the application
of engineering to software.

(2) Fritz Bauer, a German computer scientist, defines


software engineering as:
Software engineering is the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and work
efficiently on real machines.
 Software Engineering is required due to the following
Why is reasons:-

Software  To manage Large software

Engineering  For more Scalability

required?  Cost Management


 To manage the dynamic nature of software
 For better quality Management
 Huge Programming: 
Need of  Adaptability:
Software  Cost:
Engineering  Dynamic Nature:
 Quality Management:
Importance
of Software
Engineering
1.Reduces
complexity
2.To minimize
software cost
3.To decrease time
4.Handling big
projects
5.Reliable software
6.Effectiveness
Overview of Software Development with SSAD 

 Structured Systems Analysis and Design (SSAD)


Method ,The three most important techniques that
are used in SSAD Method are as follows :
1. Logical Data Modeling
2. Data Flow Modeling
3. Entity Event Modeling
 Structured Analysis is a development method that
allows the analyst to understand the system and its
activities in a logical way.
What is  It is a systematic approach, which uses graphical
structured tools that analyze and refine the objectives of an
existing system and develop a new system
Analysis? specification which can be easily understandable by
user.
Structured AnalysisTools

 During Structured Analysis, various tools and


techniques are used for system development. They
are −
 Data Flow Diagrams
 Data Dictionary
 Decision Trees
 Decision Tables
 Structured Query
 Pseudocode
Structured
Analysis
Tools
Data Flow Diagrams
(DFD) or Bubble Chart
It is a technique developed by Larry Constantine to express the requirements of system in a graphical
form.
It shows the flow of data between various functions of system and specifies how the current system is
implemented.
It is an initial stage of design phase that functionally divides the requirement specifications down to
the lowest level of detail.
Its graphical nature makes it a good communication tool between user and analyst or analyst and
system designer.
It gives an overview of what data a system processes, what transformations are performed, what data
are stored, what results are produced and where they flow .
Elements of
DFD:-
Symbol Name Symbol Meaning

Square Source or Destination of


Data

Arrow Data flow

Circle Process transforming


data flow

Open Rectangle Data Store


Types of DFD:-

DFDs are of two types: 


  Physical DFD and Logical DFD. The following table lists the points that       
differentiate a physical DFD from a logical DFD.

Physical DFD Logical DFD

It is implementation dependent. It shows which It is implementation independent. It focuses only


functions are performed. on the flow of data between processes.

It provides low level details of hardware, It explains events of systems and data required by
software, files, and people. each event.

It depicts how the current system operates and It shows how business operates; not how the
how a system will be implemented. system can be implemented.
Context Diagram:-

 The context diagram of mess management is


shown below.
Data Dictionary:-
Sr.No. Data Name Description No. of Characters

1 ISBN ISBN Number 10

2 TITLE title 60

3 SUB Book Subjects 80

4 ANAME Author Name 15


Decision Trees

Decision
table
Example
A B C

Is a Gold Member Y Y N

Gold Mem>1 year N Y Y

Have Bank A/C Y Y N

Can Subscribe Yes

Can not Subscribe Yes Yes


 A pseudocode does not conform to any
programming language and expresses logic in plain
English.
 It may specify the physical programming logic
without actual coding during and after the physical
Pseudocode: design.
-  It is used in conjunction with structured
programming.
 It replaces the flowcharts of a program.
 
Basic System
Development Life
Cycle with different
users and their role
in SDLC :-

 SDLC provides a series of steps to be followed to


design and develop a software product efficiently.
SDLC framework includes the following steps:
What is SDLC?
 SDLC is a process
followed for a software
project, within a
software organization.
It consists of a detailed
plan describing how to
develop, maintain,
replace and alter or
enhance specific
software. The life cycle
defines a methodology
for improving the
quality of software and
the overall development
process.
 Stage 1: Planning and Requirement Analysis:-
A typical Software  Stage 2: Defining Requirements :-
Development Life  Stage 3: Designing the Product Architecture:-
Cycle consists of the
following stages:  Stage 4: Building or Developing the Product :-
   Stage 5: Testing the Product :-
Stage 1: Planning
 Stage 6: Deployment in the Market and
and Requirement Maintenance:-
Analysis:-
 requirements
SDLC is used by
analysts to  design
develop an
 implementation
information
system. SDLC
 testing
includes the
following  deployment
activities −
 operations

 maintenance
Phases of SDLC
 The system analyst is a person who is
thoroughly aware of the system and
guides the system development project
by giving proper directions. He is an
Role of System expert having technical and interpersonal
Analyst:- skills to carry out development tasks
required at each phase.

 He pursues to match the objectives of


information system with the organization
goal.

 Main Roles?
Attributes of a
Systems
Analyst

The
following
figure shows
the attributes
a systems
analyst
should
possess
Information  The main aim of fact finding techniques is to determine the information
requirements of an organization used by analysts to prepare a precise SRS
Gathering understood by user.
Techniques  Ideal SRS Document should 
 There are various information gathering techniques −
 Interviewing
 It can be done in two ways :
 1. Unstructured Interview
 2. Structured Interview
 Advantages of Interviewing
 Questionnaires
 There are two types of questionnaires −
 1. Open-ended Questionnaires 
 2. Closed-ended Questionnaires 
 Advantages of questionnaires
 Observation
 Advantages of Observation
Feasibility Study

 Feasibility Study can be considered as preliminary investigation that helps the management to take decision about
whether study of system should be feasible for development or not.
 Steps Involved in Feasibility Analysis

 The following steps are to be followed while performing feasibility analysis −

 Form a project team and appoint a project leader.

 Develop system flowcharts.

 Identify the deficiencies of current system and set goals.

 Enumerate the alternative solution or potential candidate system to meet goals.

 Determine the feasibility of each alternative such as technical feasibility, operational feasibility, etc.

 Weight the performance and cost effectiveness of each candidate system.

 Rank the other alternatives and select the best candidate system.

 Prepare a system proposal of final project directive to management for approval.


 Economic Feasibility:-
 Technical Feasibility:-
Types of
Feasibilities  Operational Feasibility:-
 Behavioral Feasibility:-  
 Schedule Feasibility
1.Determine objectives, schedule and resource budgets
2.Design a software project management plan (SPMP)
3.Create and sustain focused and motivated teams
4.Determine the team‘s work procedures, reporting systems
and communication infrastructure.
Responsibilities 5.Accomplish project objective within time and budget
of the Project 6.Monitor performance against the plan
Manager :- 7.Resolve technical conflicts and interpersonal conflicts
8.Control changes in the project
9.Report on project activities to upper management
10.
Keep the client informed and committed
11.
Contribute to the team members performance approval
 
1. Run the weekly project meeting

2. Post the agenda before the meeting

3. Define and keep track of action items assigned to team members (who, what,
when)

4. Measure progress (Enforce milestones)

Responsibilities 5. Deliver work packages for the tasks to the project manager

of the Team 6. Present team status to project manager


Leader :-  Technical team responsibilities:

1. Perform assigned tasks within time and budget

2. Acquire technical skills and knowledge needed to perform the work

3. Identify situations and problems that might affect your team members‘s tasks
Keep your team members informed of your progress and problems you
encounter

  
2. Understand the software application being tested

Responsibilities 3. Prepare test strategy


of a Tester:-
4. Participating in test plan preparation

5. Preparing test scenarios

6. Preparing test cases (used for module, integration, and system testing

7. Preparing test data (used for test cases)

8. Preparing test environment

9. Analyzing test cases (those prepared by others)

10. Write necessary test scripts

11. Executing the test cases

12. Defect tracking

13. Perform necessary retesting

14. Providing defect information (for developers)

15. Preparing report summaries


Different Approaches and Models for System Development:-
 

 . Waterfall Model
 Waterfall model is the simplest model of software
development paradigm. It says the all the phases
of SDLC will function one after another in linear
manner. That is, when the first phase is finished
then only the second phase will start and so on.
 This model assumes that everything is carried out
and taken place perfectly as planned in the
previous stage and there is no need to think about
Waterfall the past issues that may arise in the next phase.
Model This model does not work smoothly if there are
some issues left at the previous step. The
sequential nature of model does not allow us go
back and undo or redo our actions.
 This model is best suited when developers
already have designed and developed similar
software in the past and are aware of all its
domains.
Waterfall
Model
Waterfall Model
Different phases Activities performed in each stage

Requirement Gathering stage  During this phase, detailed requirements of the software system to be developed
are gathered from client

Design Stage  Plan the programming language, for Example Java, PHP, .net

 or database like Oracle, MySQL, etc.

 Or other high-level technical details of the project

Built Stage  After design stage, it is built stage, that is nothing but coding the software

Test Stage  In this phase, you test the software to verify that it is built as per the
specifications given by the client.

Deployment stage  Deploy the application in the respective environment

Maintenance stage  Once your system is ready to use, you may later require change the code as per
customer request
Spiral
Model :-
 Spiral model is a combination of both, iterative model and one of the SDLC model. It
can be seen as if you choose one SDLC model and combine it with cyclic process
(iterative model
process model. It is a combination of waterfall
What is Spiral Model?
model and iterative model. Spiral Model helps to
adopt software development elements of multiple
process models for the software project based on
unique risk patterns ensuring efficient development
process.

 Each phase of spiral model in software engineering


begins with a design goal and ends with the client
reviewing the progress. The spiral model in software
engineering was first mentioned by Barry Boehm in
his 1986 paper.

 The development process in Spiral model in SDLC,


starts with a small set of requirement and goes
through each development phase for those set of
requirements. The software engineering team adds
functionality for the additional requirement in
every-increasing spirals until the application is
ready for the production phase. The below figure
very well explain Spiral Model:
Spiral Model Phases

Spiral Model Activities performed during phase


Phases

Planning  It includes estimating the cost, schedule and resources for the iteration. It also
involves understanding the system requirements for continuous communication
between the system analyst and the customer

Risk Analysis  Identification of potential risk is done while risk mitigation strategy is planned and
finalized

Engineering  It includes testing, coding and deploying software at the customer site

Evaluation  Evaluation of software by the customer. Also, includes identifying and monitoring
risks such as schedule slippage and cost overrun
 The prototype model requires that before
carrying out the development of actual
software, a working prototype of the
system should be built. A prototype is a
toy implementation of the system. A
prototype usually turns out to be a very
crude version of the actual system,
possible exhibiting limited functional
capabilities, low reliability, and
Prototyping inefficient performance as compared to
Model :- actual software. In many instances, the
client only has a general view of what is
expected from the software product. In
such a scenario where there is an absence
of detailed information regarding the
input to the system, the processing needs,
and the output requirement, the
prototyping model may be employed.
:-
Prototyping Model Phases
 Step 1: Requirements gathering and analysis
Prototyping  Step 2: Quick design
Model has  Step 3: Build a Prototype
following six  Step 4: Initial user evaluation
SDLC phases as
 Step 5: Refining prototype
follow:
 Step 6: Implement Product and Maintain
Types of Prototyping Models

 Four types of Prototyping models are:

1. Rapid Throwaway prototypes

2. Evolutionary prototype

3. Incremental prototype

4. Extreme prototype
Advantag
es of the
Here, are important pros/benefits of using Prototyping models:
Prototypin
 Users are actively involved in development. Therefore, errors can be detected in the initial stage
g Model
of the software development process.

 Missing functionality can be identified, which helps to reduce the risk of failure as Prototyping is
also considered as a risk reduction activity.

 Helps team member to communicate effectively

 Customer satisfaction exists because the customer can feel the product at a very early stage.

 There will be hardly any chance of software rejection.


 Encourages innovation and flexible designing.

 It is a straightforward model, so it is easy to understand.

 No need for specialized experts to build the model

 The prototype serves as a basis for deriving a system


Advantages specification.
of  The prototype helps to gain a better understanding of
Prototyping the customer's needs.
Model  Prototypes can be changed and even discarded.

 A prototype also serves as the basis for operational


specifications.

 Prototypes may offer early training for future users of


the software system.
 RAD is a linear sequential software development process model
that emphasizes a concise development cycle using an element
based construction approach. If the requirements are well
understood and described, and the project scope is a constraint,
the RAD process enables a development team to create a fully
functional system within a concise time period.
RAD (Rapid   
Application
Development)  The RAD (Rapid Application Development) model is based on
Model prototyping and iterative development with no specific planning
involved. The process of writing the software itself involves the
planning required for developing the product.

 Rapid Application Development focuses on gathering customer


requirements through workshops or focus groups, early testing of
the prototypes by the customer using iterative concept, reuse of
the existing prototypes (components), continuous integration and
rapid delivery.
RAD Model
 SDLC RAD modeling has
following phases

 Business Modeling

 Data Modeling
Phases of
RAD Model  Process Modeling

 Application Generation

 Testing and Turnover


RAD Model
Diagram
There are following five major phases of Rapid Application Development Model

RAD Model Phases Activities performed in RAD Modeling

Business Modeling  On basis of the flow of information and distribution between various
business channels, the product is designed

Data Modeling  The information collected from business modeling is refined into a set of
Different Phases data objects that are significant for the business

of RAD Model
Process Modeling  The data object that is declared in the data modeling phase is transformed
to achieve the information flow necessary to implement a business function

Application Generation  Automated tools are used for the construction of the software, to convert
process and data models into prototypes

Testing and Turnover  As prototypes are individually tested during every iteration, the overall
testing time is reduced in RAD.
 The Rational Unified Process (RUP) is
an iterative 
software development process framework
created by the Rational Software
 Corporation, a division of IBM since
2003. RUP is not a single concrete
Rational Unified prescriptive process, but rather an
(RUP) :- adaptable process framework, intended to
Process be tailored by the development
organizations and software project teams
that will select the elements of the
process that are appropriate for their
needs. RUP is a specific implementation
of the Unified Process.
 The RUP has determined a project life-cycle consisting
of four phases. These phases allow the process to be
presented at a high level in a similar way to how a
Four project 'waterfall'-styled project might be presented, although
in essence the key to the process lies in the iterations of
life-cycle phases development that lie within all of the phases. Also,
:- each phase has one key objective and milestone at the
end that denotes the objective being accomplished. The
visualization of RUP phases and disciplines over time
is referred to as the RUP hump chart.
 RUP is based on a set of building blocks
and content elements, describing what is
to be produced, the necessary skills
RUP building required and the step-by-step explanation
blocks :- describing how specific development
goals are to be achieved. The main
building blocks, or content elements, are
the following:

You might also like