You are on page 1of 29

Introduction to Software Engineering

FALL-2009
SEN-360 : Software Engineering
Tazeen Muzammil
Course Title: Software Engineering

Course Code: SEN-261

Prerequisites: NONE

Degree(s): BCS,BSE

Laboratories: none

2
Course Description
Introduction to Software Engineering
Software Process Models
Project Management Concepts
System Engineering
Requirements Engineering
Analysis Concepts and Principles
Design Concepts and Principles
Architecture and detailed design
User-interface design
Verification and Validation
Software Quality Assurance
Software Testing Techniques and Strategies
Clean Room Software Engineering
Maintenance
Configuration Management
Reengineering and Web Engineering 3
Books
TEXT:
Software Engineering:  A Practitioner's
Approach
Author:  Roger S. Pressman
Publication Information:  6th Edition,
McGraw-Hill, 2005
 

4
Books
Reference:
Software Engineering
Author: Ian Sommerville
Publication Information: 7th Edition Pearson Education
 
The Mythical Man-Month:  Essays on Software
Engineering
Author:  Frederick P. Brooks
Publication Information:  20th Anniversary Edition,
Addison-Wesley, 1995

5
Marks Distribution
Quizzes 10
Mid–Term Examination 20
Final Examination 50
Project 20
Total 100

6
Group Project
PROJECT GOAL: As a team, develop a software application (of
your own choice) through the entire development life cycle. This
means performing requirements analysis, design, implementing
a functioning prototype, testing and documenting the system
TEAM ORGANIZATION:
Each team will consist of four (4-5) students. You may choose
your own teams, although teams may be adjusted to
accommodate all the students in the class. One team member
should be chosen as project lead for organizational and contact
purposes, but all team members are expected to contribute to
all components of the project.
IMPLEMENTATION:
The prototype can be developed in any environment using any
development or prototyping language.

7
DELIVERABLES
DELIVERABLE DUE DATE

Project Definition & Team Organization 21st September

Software Requirements Specification 14th October

Design Document 4nd November

Prototype 30th November

User Documentation 16th December

8
What is Software
Computer software, or just software is a
general term used to describe the role that
computer programs, procedures and
documentation play in a computer system.

Software is computer programs and


associated documentation such as
requirements, design models and user
manuals.

9
What is Software Engineering
Software engineering is an engineering
discipline whose focus is the cost effective
development of high-quality software system.

Software engineering covers not only the


technical aspects of building software
systems, but also management issues, such
as directing programming teams, scheduling,
and budgeting.

10
Software Engineering
Classic Definition (1969)
“The establishment and use of sound engineering
principles in order to obtain economically software that is
reliable and works efficiently on real machines.”

IEEE Definition (1993)


“Software Engineering: (1) The application of a systematic,
disciplines, quantifiable approach to the development, operation,
and maintenance of software; that is the application of
engineering to software. (2) The study of approaches as in (1).”

11
What is the difference between
software engineering and computer
science?
Computer science is concerned with
theory and fundamentals; software
engineering is concerned with the
practicalities of developing and
delivering useful software.

12
What is the difference between
software engineering and system
engineering?
System engineering is concerned with all
aspects of computer-based systems
development including hardware, software
and process engineering.
Software engineering is part of this process
concerned with developing the software
infrastructure, control, applications and
databases in the system.

13
What are the Attributes of
good Software

Maintainability
Dependability
Efficiency
Usability

14
What is CASE

The acronym CASE stands for


Computer-Aided Software Engineering.

Software system which are intended to


provide automated support for software
process activities.

Software Engineering & Process


Models 15
Product & Process

Product : What is delivered to the customer

Process : Collection of activities that lead to a


product

16
Evolving Role of Software
Early Years Fourth Era
Batch orientation Desktop systems
Custom software Object Oriented
Technologies
Second Era
Expert Systems
Multi-user, Real-time
AI, neural networks
Database
Parallel computing
Product software
Network computers0,
Third Era
Distributed systems
Low cost hardware

17
S/W Characteristics
S/W is developed or engineered, it is
not developed in the classical sense

S/W doesn’t wear out

Although industry is moving towards


component based assembly, most S/W
continue to be custom built

18
S/W Applications
System Software
Real-Time Software
Business Software
Engineering & Scientific Software
Embedded Software
Personal Computer Software
Web Based Software
AI Software

19
Software Myths − Managers
We have standards and procedures for
building software, so developers have
everything they need to know.
We have state-of-the-art software development
tools; after all, we buy the latest computers.
If we’re behind schedule, we can add more
programmers to catch up.
A good manger can manage any project.

20
Software Myths − Client
A general statement of objectives is
sufficient to begin writing programs −
we can fill in the details later.
Requirement changes are easy to
accommodate because software is
flexible.
I know what my problem is, therefore I
know how to solve it.

21
Software Myths − Practitioner
If I miss something now, I can fix it
later.
Once the program is written and
running, my job is done.
Until a program is running, there’s no
way of assessing its quality.
The only deliverable for a software
project is a working program.

22
Software Engineering
Layered Technology
Key Process Areas

Tools

Methods
Process

Quality
[Pressman 97]

23
Generic View of S/W Engg.
Definition Phase(WHAT)
System/Information Engineering
Software Project planning
Requirement Analysis
Development Phase(HOW)
Software design
Code Generation
Software testing
Support Phase
Correction
Adaptation
Enhancement
Prevention

24
Capability Maturity Model
Developed by SEI
Five Process Maturity Levels
Level 0: Chaos
Level 1: Initial
Level 2: Repeatable
Level 3: Defined
Level 4: Managed
Level 5: Optimizing

25
S/W process – Activity Model
In a S/W development process context,
Process is defined as an ordered set of
activities that, after completed, result in
a S/W product

Input Activity Output

Entry Implementation Exit


Conditions Conditions Conditions

26
Process Principles
Prescribes all major activities
Uses resources, within a set of constraints,
to produce intermediate and final products
May be composed of sub-processes
Each activity has entry and exit criteria
Activities are organized in a sequence
Has a set of guiding principles to explain
goals
Constraints may apply to activity, resource
or product

27
Steps : S/W Dev.Process
Identify the S/W model
Identify the activities
Identify the relationship among activities
Document other useful information on each
activity
Document how to tailor the process
Document how to improve the process
Obtain the buy-in of the process
Continually use & improve the process
Software Engineering & Process
Models 28
S/W Process Model
Problem
Definition

Status Technical
Quo Development

Solution
Integration

Software Engineering & Process


Models 29

You might also like