Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
9 views

Unit-i (Intro)- Process Models

The document outlines the syllabus for Software Engineering for II B. Tech CSE/IT and II MCA students, covering key topics such as Software Development Life Cycle (SDLC) models, Software Requirement Specifications (SRS), software design, testing, maintenance, and project management. It highlights various models like Waterfall, Prototype, Spiral, and Incremental/Iterative Enhancement, along with the importance of software quality attributes and management techniques. Additionally, it lists reference books and discusses the software crisis, myths, and applications.

Uploaded by

jithujithin657
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Unit-i (Intro)- Process Models

The document outlines the syllabus for Software Engineering for II B. Tech CSE/IT and II MCA students, covering key topics such as Software Development Life Cycle (SDLC) models, Software Requirement Specifications (SRS), software design, testing, maintenance, and project management. It highlights various models like Waterfall, Prototype, Spiral, and Incremental/Iterative Enhancement, along with the importance of software quality attributes and management techniques. Additionally, it lists reference books and discusses the software crisis, myths, and applications.

Uploaded by

jithujithin657
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 65

II B. Tech.

CSE/IT and II MCA


Software Engineering (HCS-402/HCA-304)
Syllabus

Unit-I: Introduction
Introduction to Software Engineering, Software Components,
Software Characteristics, Software Crisis, Software
Engineering Processes, Similarity and Differences from
Conventional Engineering Processes, Software Quality
Attributes. Software Development Life Cycle (SDLC) Models:
Water Fall Model, Prototype Model, Spiral Model, Evolutionary
Development Models, Iterative Enhancement Models.
Unit-II: Software Requirement Specifications (SRS)
Requirement Engineering Process: Elicitation, Analysis,
Documentation, Review and Management of User Needs,
Feasibility Study, Information Modeling, Data Flow Diagrams,
Entity Relationship Diagrams, Decision Tables, SRS Document,
IEEE Standards for SRS.
Software Quality Assurance (SQA): Verification and
Validation, SQA Plans, Software Quality Frameworks, ISO 9000
Models, SEI-CMM Model.
Unit-III: Software Design
Basic Concept of Software Design, Architectural Design, Low
Level Design: Modularization, Design Structure Charts,
Pseudo Codes, Flow Charts, Coupling and Cohesion Measures,
Design Strategies: Function Oriented Design, Object Oriented
Design, Top-Down and Bottom-Up Design. Software Measurement
and Metrics: Various Size Oriented Measures: Halestead’s
Software Science, Function Point (FP) Based Measures,
Cyclomatic Complexity Measures: Control Flow Graphs.
Unit-IV: Software Testing
Testing Objectives, Unit Testing, Integration Testing,
Acceptance Testing, Regression Testing, Testing for
Functionality and Testing for Performance, Top-Down and
Bottom-Up Testing Strategies: Test Drivers and Test Stubs,
Structural Testing (White Box Testing), Functional Testing
(Black Box Testing), Test Data Suit Preparation, Alpha and
Beta Testing of Products.
Static Testing Strategies: Formal Technical Reviews (Peer
Reviews), Walk Through, Code Inspection, Compliance with
Design and Coding Standards.
Unit-V: Software Maintenance and Software Project Management
Software as an Evolutionary Entity, Need for Maintenance,
Categories of
Maintenance: Preventive, Corrective, Adaptive and Perfective
Maintenance, Cost of Maintenance, Software Re-Engineering,
Reverse Engineering, Software Configuration Management
Activities, Change Control Process, Software Version
Control, An Overview of CASE Tools. Estimation of Various
Parameters such as Cost, Efforts, Schedule/Duration,
Constructive Cost Models (COCOMO), Resource Allocation
Models, Software Risk Analysis and Management.

Text and Reference Books:


1. R. S. Pressman, Software Engineering: A Practitioners
Approach, McGraw Hill Publication.
2. Rajib Mall, Fundamentals of Software Engineering, PHI
Publication.
3. K. K. Aggarwal and Yogesh Singh, Software Engineering, New
Age International Publishers.
4. Carlo Ghezzi, M. Jarayeri, D. Manodrioli, Fundamentals of
Software Engineering, PHI Publication.
5. Ian Sommerville, Software Engineering, Addison Wesley.
6. Pankaj Jalote, Software Engineering, Narosa Publication
7. Pfleeger, Software Engineering, Macmillan Publication.
8. A. Leon and M. Leon, Fundamentals of Software Engineering,
Vikas Publication.
Software Products
Software Engineering

 A strategy for producing high quality


software, which satisfies customer
requirements and is within budget and
schedule.
 Software engineering encompasses a
process, management techniques,
technical methods, and the use of
tools.
Software Engineering
• Deals with the management techniques
required to

Plan Organize

Control Monitor
Software Crisis
(Need of Software Engineering)

• A survey conducted by IBM in 2000 reports


that
– 31% of the projects get cancelled before
completion.
– 53% of the projects exceed to the budget schedule
even up to 189%.
– 94% of the projects have many restarts.
• Software failures receive a lot more publicity
than software engineering success stories.
Software Crisis
• Software cost has not dropped as rapidly as the
hardware cost.
• Developers in H/W industry have significantly
affected cost, quality, productivity and reliability of
hardware.
• In S/w industry, there is no single development
either in technology or in mgmt. technique that by
itself promises even one order of magnitude
improvement in the productivity, cost and reliability.
• Use of CASE tools was thought to be a
development giving boost to above factors but the
results are highly un satisfactory.
Software Myths
• Generally divided in three groups: Management myths,
Customers myths and Practitioners myths.
• Getting behind the schedule can be make up by introducing
more persons: it may further delay because of time required
for training the new comers.- M
• A general statement of objective is sufficient for software
development, the details can be easily incorporated later:
Incorporation of details is difficult and costly.- C
• Software being flexible can be easily modified: Cost of
change is very high. -M
• Quality can be assessed only after getting the running
program: Quality assurance is an umbrella activity which
begins since inception and covers all phases of development.
FTR’s during all phases are conducted to improve quality. - P
Software Myths
• Once the software has been written and get
to work our job is over: Sooner you begin to
write the code the longer it will take you to get
done.- P
• Working program is the only deliverable:
Documentation including user and operation
manuals are also to be delivered. - P
• Software Engineering makes the things
complex and may slow down the process:
Principles and practices of SE improve quality
of the software. - P
Productivity and People
Early Error Detection
Saves Money
Software Applications
• System Software: Software used to improve efficiency of other
s/w, or h/w. e.g. Compilers, Editors, Device Drivers, OS.
• Real Time Software: Used to monitor, control and analyze real
world events as they occur.
• Embedded Software: Placed in a ROM controls various
functions of a system.
• Business Software: Used to process business applications. e.g.
Payroll, employee management system, library management
system, security system
• AI Software: Used to solve non algorithmic problems. e.g.
Expert System, Game playing.
• Engineering and Scientific Software: Huge computing required
for data processing. e.g. CAD/CAM Packages, SPSS, MATLAB
• Web Based Software: Web application s/w like HTML, CGI,
Java, Perl, DHTML
Software Applications
Software Quality
What is High Quality Software?
• It must be useful (to the original customer).
• It must be portable (work at all the customer’s sites).
• It must be maintainable.
• It must be reliable.
• It must have integrity (produces correct results, with a high
degree of accuracy).
• It must be efficient.
• It must have consistency of function (it does what the user
would, reasonably expect it to do).
• It must be accessible (to the user).
• It must have good human engineering (easy to learn and
easy to use).
Software Quality Attributes
Software Quality Attributes
Attribute Description
Attribute Description
Attribute Description
Software Quality Factors
McCall’s Quality Criteria
ISO 9126 Quality Model
Software Engineering Phases
• Definition phase
– focuses on what (information engineering,
software project planning, requirements analysis).
• Development phase
– focuses on how (software design, code
generation, software testing).
• Support phase
– focuses on change (corrective maintenance,
adaptive maintenance, perfective maintenance,
preventive maintenance).
Software Life Cycle Phases
1. Requirements, analysis, and design phase.
2. System design phase.
3. Program design phase.
4. Program implementation phase.
5. Unit testing phase.
6. Integration testing phase.
7. System testing phase.
8. System delivery.
9. Maintenance.
S.E. Management Spectrum

4 P’s
• People
• Product
• Process
• Project
Project Effort Distribution
Generally accepted guidelines are:
02-03 % planning
10-25 % requirements analysis
20-25 % design
15-20 % coding
30-40 % testing and debugging
40-20-40 Rule
5WHH Principle
• Why is the system being developed (Scope) ?
• What will be done (SRS) ?
• When it will be done (Schedule) ?
• Who is responsible for a function (Resource)?
• Where are they organizationally located
(Organization) ?
• How will the job be done technically and
managerially (Process) ?
• How much of each resource is needed
(Estimation) ?
Linear Sequential Model
or Waterfall Model
Requirements
definition

System and
software design

Implementation
and unit testing

Integr ation and


system testing

Operation and
maintenance
Advantages and Disadvantages
• Easy to understand and reinforces the notion of
“define before design” and “design before code”.
• Defining all the requirements in the beginning is
very difficult.
• Not suitable for accommodating any changes at
later stages.
• Working version of the system is available very
late.
• Does not scale up well for very large projects and
real projects are rarely sequential.
• Suitable for situations where the requirements
and their implementations are well understood .
Prototype Model
Concurrent
activities

Initial
Specification
version

Outline Intermediate
Development
description versions

Final
Validation
version
Prototyping Model
Users get a feel
Requirements of the actual
system and
developers get to
Focuses only on
build something
visible aspects Quick design
immediately
and not on Refinement of
quality/efficien
cy parameters Requirements
Implementation as per
Ideally prototype suggestions
serves as a
mechanism for
identifying Customer
requirements Evaluation
precisely Now engineer the product
using usual phases of
PM Features
• Working prototype is developed as per current available
requirements. It has limited functionality, low reliability,
and poor performance (stripped down version of the
final product).
• Refined versions of prototype are more and more
suitable.
• Final prototype approved by the customer can be used
to draw requirements for the ultimate product
development through WFM.
• Involves extensive participation of customer which may
not be possible.
• Although involvement of extra cost for prototype
development but still the overall cost is relatively low
because of the experience gained.
Spiral Model

Determination of Analyze
objectives, alternatives and
alternatives and attempt to
constraints identify &
resolve the
risks

Evaluation by
the customer
Actual product
and feedback
development and
reporting
testing
Spiral Model
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
SM Features
• Entire development space is supposed to be divided into 4-6
regions.
• Radial dimension represents the cumulative cost of
development.
• Angular dimension represents the progress made in
completing each cycle.
• Each loop from x-axis clockwise through 360 degree
represents one phase.
• During first phase planning is done, risks are analyzed,
prototypes are built, and customer evaluates the prototype.
In subsequent phases more refined prototypes are built.
• Good feature is that each phase is followed by an evaluation.
• It includes quality objectives in the development by
eliminating error in the early phases through evaluation
process.
Incremental/Iterative
Enhancement Model

Define outline Assign requirements Design system


requirements to increments architecture

Develop system Validate Integrate Validate


increment increment increment system
Final
system
System incomplete
Incremental/Iterative
Enhancement Model
• Rather than delivering the system as a single
unit, the development and delivery is broken
down into increments, each of which incorporates
part of the required functionality.
• User requirements are prioritised and the highest
priority requirements are included in early
increments.
• Once the development of an increment is started,
its requirements are “frozen” while requirements
for later increments can continue to evolve.
IEM Advantages/Disadvantages
• Useful functionality is delivered with each
increment, so customers derive value early.
• Early increments act as a prototype to help
elicit requirements for later increments.
• Lower risk of overall project failure.
• The highest priority system services tend to
receive the most testing.
• Requirements may NOT be partitionable into
stand-alone increments.
Fourth Generation Language
Techniques
Specify some
characteristic of the s/w
at high level, tool
automatically generates
source codes based on
specifications.
4 GT Include
• Non Procedural Languages
• Query Languages
• Report Generators
• Graphic Utilities
• Spread Sheets
• Code Generators
• Data Processors
4 GT Model

Code
Generator?

Requirements Formal Formal Integration and


definition specification transformation system testing

Not realistic, unless “Formal


specification” is source code…
Formal transformations

Formal transformations
T1 T2 T3 T4

Formal R1 Executable
R2 R3
specification program

P1 P2 P3 P4

Proofs of transformation correctness


Advantages/Disadvantages
• Small software may be directly implemented
from the requirement specifications.
• Reduction in the development time.
• Increase in productivity.
• 4 GT is not easy to use.
• Codes generated are generally inefficient.
• Normally used for business information
system applications and for designing large
projects.
Unit-I End

You might also like