Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Lecture 1

Software Engineering
Introduction

Objectives:

1. To comprehend the various software process models.


2. To understand the types of software requirements and SRS document.
3. To know the different software design and architectural styles.
4. To learn the software testing approaches and metrics used in software development.
5. To know about quality control and risk management.

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:

Software Engineering is a framework for building software and is an engineering approach to


software development. Software programs can be developed without S/E principles and
methodologies but they are indispensable if we want to achieve good quality software in a cost
effective manner.
Software is defined as:
Instructions + Data Structures + Documents

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.

SOFTWARE ENGINEERING is defined as a systematic, disciplined and quantifiable


approach for the development, operation and maintenance of software.

The Evolving role of software


The dual role of Software is as follows:
1. A Product- Information transformer producing, managing and displaying information.
2. A Vehicle for delivering a product- Control of computer(operating system),the
communication of information(networks) and the creation of other programs.

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

 System software is a collection of programs written to service other programs


 Embedded software-- resides in read-only memory and is used to control products and
systems for the consumer and industrial markets.
 Artificial intelligence software. Artificial intelligence (AI) software makes use of
nonnumeric algorithms to solve complex problems that are not amenable to computation
or straightforward analysis
 Engineering and scientific software. Engineering and scientific software have been
characterized by "number crunching" algorithms.

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.

You might also like