Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Engineering
FALL-2009
SEN-360 : Software Engineering
Tazeen Muzammil
Course Title: Software
Engineering
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
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.
9
What is Software
Engineering
Software engineering is an engineering
discipline whose focus is the cost effective
development of high-quality software system.
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.”
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
16
Evolving Role of Software
Early Years Fourth Era
Batch orientation Desktop systems
Custom software Object Oriented
Second Era Technologies
Multi-user, Real-time Expert Systems
Database AI, neural networks
Product software Parallel computing
Third Era Network
Distributed systems computers0,
Low cost hardware
17
S/W Characteristics
S/W is developed or engineered, it is not
developed in the classical sense
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
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