0% found this document useful (0 votes)
36 views29 pages

Unit 1

The document outlines the syllabus for a software engineering course covering five units: 1) software process and agile development, 2) requirements engineering and cost estimation, 3) design modeling, 4) software coding and testing, and 5) software maintenance and management. It also lists the course outcomes which include identifying appropriate software processes, preparing requirements documents, applying design principles, employing coding standards and testing techniques, and exploring maintenance techniques.

Uploaded by

Swaas
Copyright
© © All Rights Reserved
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)
36 views29 pages

Unit 1

The document outlines the syllabus for a software engineering course covering five units: 1) software process and agile development, 2) requirements engineering and cost estimation, 3) design modeling, 4) software coding and testing, and 5) software maintenance and management. It also lists the course outcomes which include identifying appropriate software processes, preparing requirements documents, applying design principles, employing coding standards and testing techniques, and exploring maintenance techniques.

Uploaded by

Swaas
Copyright
© © All Rights Reserved
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/ 29

19I502 SOFTWARE ENGINEERING

Unit 1

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
1
SYLLABUS
SOFTWARE PROCESS AND AGILE DEVELOPMENT: The Evolving Role of Software, Software Characteristics, Software
Process: Software Process Models - Linear Sequential Model - Prototyping Model - RAD Model - Evolutionary Software Process
Models - Incremental model - Spiral model, Agile Methodology: Extreme Programming (XP) - Scrum and Kanban, ITIL.
(9 + 3)

REQUIREMENT ENGINEERING AND COST ESTIMATION: Requirements Engineering: Elicitation - Analysis and Negotiation
- Validation - Management, Software Requirement Specification (SRS), Cost estimation: Function Point- Cocomo Models.
(9 + 3)

DESIGN MODELING: Design concepts: Abstraction, Architecture, patterns, Separation of Concerns, Modularity, Information
Hiding, Functional Independence, Cohesion - Coupling, Refinement and Refactoring, Modeling with UML- Use Case Diagrams-
Class Diagrams - Interaction Diagrams - Sequence Diagrams - Activity Diagrams - Component Diagrams - Deployment
Diagrams. (9 + 3)

SOFTWARE CODING AND TESTING: Coding standards, Styles and Guidelines, Software testing fundamentals - White box
testing - Basis path testing - Control structure testing - Black box testing - Unit Testing – Integration Testing - Validation Testing
- System Testing and Debugging. (9 + 3)

SOFTWARE MAINTENANCE AND MANAGEMENT: Software Maintenance and Configuration Management, Types of
Software Maintenance, Re-Engineering, Reverse Engineering, Forward Engineering, SCM Process, Version Control and
Change Control. (9 + 3)

Total
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are L: 45 +T: 15 = 60
provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
2
OUTCOM
CO Unit E
Course Outcome
No.

CO1 I Identify appropriate software process model for developing an application.

CO2 II Prepare software requirement specification document.

CO3 III Apply suitable architectural style and create design documents.

CO4 IV Employ standard coding guidelines during software development and apply various testing
techniques.

CO5 V Explore the various software maintenance and configuration techniques

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
3
What is Software?
1) Instructions (programs) that when executed
provide desired function and performance
2) data structures that enable the programs to
adequately manipulate information
3) documents that describe the operation and use of
the programs

A logical rather than physical system element

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
4
What is Software?

 software is engineered
 software doesn’t wear out
 software is custom built
 software is complex

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
5
Failure (“Bathtub”) Curve for Hardware
Failure Rate

Infant
mortality
Wear
out

Time

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
6
Wear vs. Deterioration
increased failure
rate due to side effects
Failure
rate

change
actual curve

idealized curve

Time

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
7
Software Applications
 system software
 real-time software
 business software
 engineering/scientific software
 embedded software
 PC software
 WebApps (Web applications)
 AI software

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
8
Software Myths
 Management
 We have standards
 We have new computers
 We’ll add more people to catch up
 I outsourced it, I’m done
 Customer
 We have general objectives, let’s start
 Change is easily accommodated
 Practitioner
 We’ll write it and be done
 I can’t assess quality until it is running
 I only need deliver code
 Software engineering is about meaningless documents

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
9
The Cost of Change
60-100x

1.5-6x
1x

Definition Development After release

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
10
Software Poses Challenges
How do we ensure the quality of the software
we produce?

How do we meet growing demand and still


maintain budget control?

How do we upgrade an aging "software plant?

How do we avoid disastrous time delays?

How do we successfully institute new softwar


technologies?

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
11
Software Engineering

 Defined by IEEE 610.12-1990 as:


 (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) The study of approaches
in (1).

12
A Layered Technology
Software
Software Engineering
Engineering
- provide support for methods
tools and processes
methods - technical how tos
-glue that holds layers
process model together
a “quality” focus
- bedrock
A quality focus: It defines the continuous process improvement principles of software.

Process: It is the foundation or base layer of software engineering. It is key that binds all the
layers together which enables the development of software

13
Process activities

•Communication: It is the first and foremost thing for the development of software.
Communication is necessary to know the actual demand of the client.
•Planning: It basically means drawing a map for reduced the complication of development.
•Modeling: In this process, a model is created according to the client for better
understanding.
•Construction: It includes the coding and testing of the problem.
•Deployment:- It includes the delivery of software to the client for evaluation and feedback.

14
Types of Software Maintenance
 Corrective
 Adaptive
 Perfective
 Preventive

15
A Common Process Framework

Common process framework


Framework activities
Task Sets
tasks
milestones,deliverables
SQA checkpoints
Umbrella Activities

16
Umbrella Activities
 Software project management (tracking and
control)
 Formal technical reviews
 Software quality assurance
 Software configuration management
 Document preparation and production
 Reusability management
 Measurement
 Risk management

17
The Process Model:
Adaptability
 the framework activities will always be
applied on every project ... BUT
 the tasks (and degree of rigor) for each
activity will vary based on:
 the type of project (an “entry point” to the model)
 characteristics of the project
 common sense judgment; concurrence of the project
team

18
SEI CMM Levels

19
Process as Problem Solving

problem
definition

status technical
quo development

solution
integration

20
The Linear Model

System/information
engineering

analysis design code test

21
Waterfall Model

Software Software
Software
Reqmts Detailed
Integration
Analysis Design
Software Item 1 Software Software Software
Architectural Coding & Qualification
Design Testing Testing

System System
Reqmts System Software Integration,
Analysis Architectural Item n Qualification
Design ... & Release
Activities

Hardware
Items

Note: 1) Software Lifecycle Activities are bolded / shaded


22
2) This model is consistent with IEEE/EIA 12207.2 - 1997
Prototyping

listen
to build/revise
customer mock-up

customer
test-drives
mock-up

Prototyping

23
RAD
team #3
team #2
business
modeling

team #1 business data


modeling modeling

business
process
modeling

modeling data
modeling application
generation

testing
&
process turnover

data modeling
modeling

application
generation
process
modeling testing
&
turnover

application
generation

testing
&
turnover

60 - 90 days

24
The Incremental Model
System/information increment 1
engineering

analysis design code test delivery of


1st increment

increment 2 analysis design code test delivery of


2nd increment

increment 3analysis design code test delivery of


3rd increment

increment 4 analysis design code test

delivery of
4th increment

calendar time

25
26
An Evolutionary (Spiral) Model
Pla n n in g
Risk Ana lysis

C usto m e r
C o m m unic a tio n

Eng in e e rin g

C usto m e r
Eva lua tio n C o nstruc tio n & Re le a se

27
28
Still Other Process Models
 WINWIN spiral model - defines negotiating activities and adds
anchor points to spiral model
 Concurrent process model—recognizes that different part of
the project will be at different places in the process
 Component-based development model—the process to apply
when reuse is a development objective
 Formal methods—the process to apply when a mathematical
specification is to be developed
 Cleanroom software engineering—emphasizes error detection
before testing

29

You might also like