Lec 1
Lec 1
Lec 1
Software Engineering
Introduction
Objectives:
UNIT - I:
Introduction to Software Engineering: The evolving role of
software, Changing Nature of Software, Software myths.
A Generic view of process: Software engineering- A layered technology, a
process framework, Process patterns, process assessment.
Process models: The waterfall model, Incremental process models,
Evolutionary process models, The Unified process, Agility and Agile
Process model, Extreme Programming, Other process models of Agile
Development and Tools
UNIT - II:
Software Requirements: Functional and non-functional requirements,
User requirements, System requirements, Interface specification, the
software requirements document.
Requirements engineering process: Feasibility studies,
Requirements elicitation and analysis, Requirements
validation, Requirements management.
System models: Context Models, Behavioral models, Data
models, Object models, structured methods. UML Diagrams.
1
UNIT - III:
Design Engineering: Design process and Design quality, Design concepts, the design
model.
Creating an architectural design: Software architecture,
Data design, Architectural styles and patterns, Architectural
Design.
Object-Oriented Design: Objects and classes, An Object-Oriented design
process, Design evolution. Performing User interface design: Golden
rules, User interface analysis and design, interface analysis, interface
design steps, Design evaluation.
UNIT - IV:
Testing Strategies: A strategic approach to software testing, test strategies
for conventional software, Black-Box and White-Box testing, Validation
testing, System testing, the art of Debugging. Product metrics: Software
Quality, Metrics
TEXT BOOKS:
1. Software Engineering A practitioner’s Approach, Roger S Pressman,
6thedition. McGraw Hill International Edition.
2. Software Engineering, Ian Sommerville, 7th edition, Pearson
education.or Analysis Model, Metrics for Design Model,
Metrics for source code, Metrics for testing, Metrics for maintenance.
Metrics for Process and Products: Software Measurement, Metrics for software
quality.
2
INTRODUCTION:
Engineering is the branch of science and technology concerned with the design, building, and use
of engines, machines, and structures. It is the application of science, tools and methods to find
cost effective solution to simple and complex problems.
Characteristics of software
Software is developed or engineered, but it is not manufactured in the classical sense.
Software does not wear out, but it deteriorates due to change.
Software is custom built rather than assembling existing components.
3
THE CHANGING NATURE OFSOFTWARE
The various categories of software are:
1. System software
2. Application software
3. Engineering and scientific software
4. Embedded software
5. Product-line software
6. Web-applications
7. Artificial intelligence software
LEGACY SOFTWARE
Legacy software are older programs that are developed decades ago. The quality of legacy
software is poor because it has inextensible design, convoluted code, poor and nonexistent
documentation, test cases and results that are not achieved.
As time passes legacy systems evolve due to following reasons:
The software must be adapted to meet the needs of new computing environment or
technology.
The software must be enhanced to implement new business requirements.
The software must be extended to make it interoperable with more modern systems or
database
The software must be re-architected to make it viable within a network environment.
4
SOFTWARE MYTHS
Myths are widely held but false beliefs and views which propagate misinformation and
confusion. Three types of myth are associated with software:
Management myth
Customer myth
Practitioner’s myth
MANAGEMENT MYTHS
Myth(1)-The available standards and procedures for software are enough.
Myth(2)-Each organization feel that they have state-of-art software development tools
since they have latest computer.
Myth(3)-Adding more programmers when the work is behind schedule can catch up.
Myth(4)-Outsourcing the software project to third party, we can relax and let that party
build it.
CUSTOMER MYTHS
Myth(1)- General statement of objective is enough to begin writing programs, the details
can be filled in later.
Myth(2)-Software is easy to change because software is flexible
PRACTITIONER’S MYTH
Myth(1)-Once the program is written, the job has been done.
Myth(2)-Until the program is running, there is no way of assessing the quality.
Myth(3)-The only deliverable work product is the working program
Myth(4)-Software Engineering creates voluminous and unnecessary documentation and
invariably slows down software development.