Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 28

IT314 - Software Engineering

Asim Banerjee

4th January 2011

soft_engg@daiict.ac.in
Course Schedule and Organization
• Semester VI Course for B.Tech. (ICT)
• Course Structure 3–0–3–4.5
• 2 lectures per week of 90 minutes duration
– Tuesday 09:30 to 10:55
– Wednesday 09:30 to 10:55
Will shortly change to
– Tuesday 09:30 to 10:55
– Thursday 09:30 to 10:55

IT314 - Software Engineering 2


Course Schedule and Organization
• We would use the slot on Wednesday for
course related activities.
• 3 lab hours per week 14:00 to 17:00 Lab004
on Monday, Tuesday, Thursday & Friday
NOTE: The groups visiting the labs on the
various days would be announced shortly.

IT314 - Software Engineering 3


Course Evaluation (Tentative)
In class evaluations 10%
1st Mid Semester Examination 10%
2nd Mid Semester Examination10%
Lab work 10%
Project work 30%
End Semester Examination 25%
Overall impression 5%

IT314 - Software Engineering 4


What is/are your

expectation(s)

out of this course?


IT314 - Software Engineering 5
Course Objectives (1/2)
1. To understand the philosophy & justification for
software engineering approach to software
development.
2. To provide knowledge in software process
improvement in general, and into the personal
software development process in particular.
3. Appreciate that software development is an
engineering discipline and is highly process focused.

IT314 - Software Engineering 6


Course Objectives (2/2)
4. On completion of the course a student will be able
to:
a) Understand basic concepts of software engineering
process
b) Work within a standard development process
c) Document process and product measurements
d) Effectively utilize personal design and code reviews
e) Analyze process data and propose improvements

IT314 - Software Engineering 7


Course Methodology (1/4)
• The batch has been divided into 19 project teams
of 10 or 11 members each.
• Each of the 19 teams would be doing software
projects.
• They would execute the projects using the
software engineering principles that are taught in
class.
• All the projects would go through the different
phases of the software development life cycle.

IT314 - Software Engineering 8


Course Methodology (2/4)
NOTE: You are expected to sit with your teams in the
lectures/lab and other components of the course.
• Each project team would have to select a team
member as their team leader.
• The project topic can be finalized in consultation with
the TAs/Course instructor and notified by 17:00 hrs.
on 10th January 2011 through e-mail.
• For all course related matters send e-mails to
soft_engg@daiict.ac.in

9
Course Methodology (3/4)
• For certain quizzes, the team would be represented
by some “selected” members from the team.
• The performance of the “selected” members in the
quizzes would be treated as the performance of
each team member in that quiz.
• The representative members would be selected on
the day of the quiz, just before the quiz begins.

IT314 - Software Engineering 10


Course Methodology (4/4)
• Feedback on the progress of the project
would be obtained from the project teams by
the TAs and the course instructor from time to
time.
• Deadlines for the submission of the
assignments and other documents would
have to be strictly adhered to.

IT314 - Software Engineering 11


Course Outline (1/2)
1. Introduction
2. Software life cycle models
3. Software Project phases
4. Requirements analysis & specification
5. Software Project Estimation
6. Software Project Scheduling
7. Risk Management
8. Configuration Management
9. Software design Methodologies

IT314 - Software Engineering 12


Course Outline (2/2)
10. Software Coding and Testing
11. Software Reliability and Quality Assurance
12. Computer Aided Software Engineering
(CASE)
13. Software Maintenance
14. Software Project Management
15. Agile Methodologies

IT314 - Software Engineering 13


Books (1/2)
• Roger S Pressman, “Software Engineering – A
practitioner’s Approach”, McGraw Hill Higher Education,
5th, 6th and 7th Edition, 2010.
• Pankaj Jalote, “An Integrated Approach to Software
Engineering”, Narosa Publication, 2001.
• Eric Braude (Ed.), “Software Engineering – Selected
Readings”, IEEE, 2000.
• Ivor Jacobson, “Object Oriented Software Engineering :
A Use Case Driven Approach”, Pearson Education Asia,
2001.
• Carlo Ghezzi, “Fundamentals of Software Engineering”.
Prentice Hall of India, 2001.
IT314 - Software Engineering 14
Books (2/2)
• Ian Sommerville, “Software Engineering”, 8th Edition,
Addison-Wesley, 2006.
• Richard Fairley, “Software Engineering Concepts”,
Tata McGraw-Hill, 2001.
• Ali Behforooz, “Software Engineering Fundamentals”,
Oxford University Press, 1996.
• Richard Thayer (ed.), “Software Engineering Project
Management”, IEEE Computer Society, 1997.
• Rajib Mall, “Fundamentals of Software Engineering”,
Prentice Hall of India, 2003.

IT314 - Software Engineering 15


Journals
• IEEE Transactions on Software Engineering.
• IEEE Software
• Journal of Systems and Software

IT314 - Software Engineering 16


Any Questions?

IT314 - Software Engineering 17


Assignment #1
1. List down your individual experiences in
developing the software for any of your
previous projects.

Submit by: 10th January 2011, 12:00 hrs.

E-mail submissions to:


soft_engg@daiict.ac.in
IT314 - Software Engineering 18
Some Comments from Students
“The course is very heavy and there is precious
little time to devote to the other courses in this
semester”

• This is NOT true…if you feel this way about the


course, then you are NOT following the “right
engineering way” of developing software for
your project.

IT314 - Software Engineering 19


What Is Software?
• Computer software, or just software, is the collection of
computer programs and related data that provide the
instructions telling a computer what to do.
• We can also say software refers to one or more computer
programs and data held in the storage of the computer for some
purposes. Program software performs the function of the
program it implements, either by directly providing instructions to
the computer hardware or by serving as input to another piece
of software.
NOTE: The term was coined to contrast to the old term
hardware (meaning physical devices). In contrast to hardware,
software is intangible, meaning it "cannot be touched".
• Software is also sometimes used in a more narrow sense,
meaning application software only. Sometimes the term includes
data that has not traditionally been associated with computers,
such as film, tapes, and records
IT314 - Software Engineering 20
What Is Engineering?
• Engineering is the discipline, art and profession of
acquiring and applying scientific, mathematical,
economic, social, and practical knowledge to design
and build structures, machines, devices, systems,
materials and processes that safely realize solutions
to the needs of society.
• The American Engineers' Council for Professional
Development has defined "engineering" as:
The creative application of scientific principles to
design or develop structures, machines, apparatus, or
manufacturing processes, or works utilizing them
singly or in combination; or to construct or operate the
same with full cognizance of their design; or to
forecast their behavior under specific operating
conditions; all as respects an intended function,
economics of operation and safety to life and property
What Is Software Engineering? (1/3)
• Software engineering (SE) is a profession dedicated
to designing, implementing, and modifying software so
that it is of higher quality, more affordable,
maintainable, and faster to build.
• It is a "systematic approach to the analysis, design,
assessment, implementation, test, maintenance and
re-engineering of a software by applying engineering to
the software".
NOTE: The term software engineering first appeared in
the 1968 NATO Software Engineering Conference,
and was meant to provoke thought regarding the
perceived "software crisis" at the time.
IT314 - Software Engineering 22
What Is Software Engineering? (2/3)
• Since the field is still relatively young compared to its
sister fields of engineering, there is still much debate
around what software engineering actually is, and if it
conforms to the classical definition of engineering.
• The IEEE Computer Society's Software Engineering
Body of Knowledge defines "software engineering" as
“The application of a systematic, disciplined, quantifiable
approach to the development, operation, and
maintenance of software, and the study of these
approaches; that is, the application of engineering to
software”.
• It is the application of Engineering to software because it
integrates significant mathematics, computer science
and practices whose origins are in Engineering.
IT314 - Software Engineering 23
What Is Software Engineering? (3/3)
• Software development, a much used and more generic
term, does not necessarily subsume the engineering
paradigm.
• Objective of Software Engineering (SE):
– To “systematically” develop “high quality” software in “timely
and cost effective” manner
• Basic knowledge for SE comes from various engineering
disciplines
• SE methodologies, techniques and guidelines have
been evolved by systematically organizing:
– Past innovations in software development
– Past experience in software development
IT314 - Software Engineering 24
Why Software Engineering? (1/3)
• Computers have been in use for commercial purposes
for last 60 years.
• Early software used exploratory programming styles in
– Assembly language programming
• Small programs
• Written by one programmer
• Programs lacked sophistication
• Every programmer had own individualistic style
– Higher-level language programming
• Helped programmers to write larger programs
• Considerably reduced software development effort

IT314 - Software Engineering 25


Why Software Engineering? (2/3)
• With time, the computers are becoming:
– Faster
– More capable
– Easy to use
– Cheaper
• Sophistication in computers has resulted in
demand for large and complex software.
• Exploratory style of software development are
– Adequate only for small tasks
– Inadequate to cope with the changing scenario
IT314 - Software Engineering 26
Why Software Engineering? (3/3)
• Also, the software needs to be:
– Developed within the specified time
– In a cost effective manner
– Amenable for maintenance by someone other than the
author
• All this requires a systematic approach to developing
software i.e. software has to be engineered.
• Systematic and engineering like approach to
software development is inevitable for developing
large and complex software
NOTE: It involves use of techniques like systems
analysis, estimation, prototyping, designing, testing,
etc.
IT314 - Software Engineering 27
Any Questions?

IT314 - Software Engineering 28

You might also like