8/7/2019 Sen Lecture01
1/29
8/7/2019 Sen Lecture01
2/29
IT314 - Software Engineering 2
Course Schedule and Organization
Semester VI Course for B.Tech. (ICT) Course Structure 3034.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
8/7/2019 Sen Lecture01
3/29
IT314 - Software Engineering 3
Course Schedule and Organization
We would use the slot on Wednesday forcourse 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.
8/7/2019 Sen Lecture01
4/29
IT314 - Software Engineering 4
Course Evaluation (Tentative)
In class evaluations 10%
1st Mid Semester Examination 10%
2nd
Mid Semester Examination 10%Lab work 10%
Project work 30%
End Semester Examination 25%Overall impression 5%
8/7/2019 Sen Lecture01
5/29
IT314 - Software Engineering 5
What is/are your
expectation(s)
out of this course?
8/7/2019 Sen Lecture01
6/29
IT314 - Software Engineering 6
Course Objectives (1/2)
1. To understand the philosophy & justification
for software engineering approach to software
development.
2. To provide knowledge in software processimprovement 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.
8/7/2019 Sen Lecture01
7/29
IT314 - Software Engineering 7
Course Objectives (2/2)
4. On completion of the course a student willbe able to:
a) Understand basic concepts of software
engineering process
b) Work within a standard development processc) Document process and product
measurements
d) Effectively utilize personal design and code
reviews
e) Analyze process data and propose
improvements
8/7/2019 Sen Lecture01
8/29
IT314 - Software Engineering 8
Course Methodology (1/4)
The batch has been divided into 19 projectteams 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 differentphases of the software development life
cycle.
8/7/2019 Sen Lecture01
9/29
9
Course Methodology (2/4)
NOTE: You are expected to sit with yourteams 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
January2011 through e-mail.
For all course related matters send e-mails to
8/7/2019 Sen Lecture01
10/29
IT314 - Software Engineering 10
Course Methodology (3/4)
For certain quizzes, the team would berepresented 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 beselected on the day of the quiz, just before the
quiz begins.
8/7/2019 Sen Lecture01
11/29
IT314 - Software Engineering 11
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.
8/7/2019 Sen Lecture01
12/29
IT314 - Software Engineering 12
Course Outline (1/2)
1. Introduction2. Software life cycle models
3. Software Project phases
4. Requirements analysis & specification5. Software Project Estimation
6. Software Project Scheduling
7. Risk Management
8. Configuration Management
9. Software design Methodologies
8/7/2019 Sen Lecture01
13/29
IT314 - Software Engineering 13
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
8/7/2019 Sen Lecture01
14/29
IT314 - Software Engineering 14
Books (1/2) Roger S Pressman, Software Engineering A
practitioners Approach, McGraw Hill Higher Education,5th, 6th and 7th Edition, 2010.
Pankaj Jalote, An Integrated Approach to SoftwareEngineering, Narosa Publication, 2001.
Eric Braude (Ed.), Software Engineering SelectedReadings, 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.
8/7/2019 Sen Lecture01
15/29
IT314 - Software Engineering 15
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.
8/7/2019 Sen Lecture01
16/29
IT314 - Software Engineering 16
Journals
IEEE Transactions on Software Engineering. IEEE Software
Journal of Systems and Software
8/7/2019 Sen Lecture01
17/29
IT314 - Software Engineering 17
Any Questions?
8/7/2019 Sen Lecture01
18/29
IT314 - Software Engineering 18
Assignment #11. List down your individual experiences in
developing the software for any of yourprevious projects.
Submit by: 10th January 2011, 12:00 hrs.
E-mail submissions to:[email protected]
8/7/2019 Sen Lecture01
19/29
IT314 - Software Engineering 19
Some Comments from Students
The course is very heavy and there is preciouslittle time to devote to the other courses in thissemester
This is NOT trueif you feel this way about thecourse, then you are NOT following the rightengineering way of developing software foryour project.
8/7/2019 Sen Lecture01
20/29
IT314 - Software Engineering 20
What Is Software?
C
omputer software, or just software, is the collection ofcomputer programs and related data that provide theinstructions telling a computer what to do.
We can also say software refers to one or more computerprograms and data held in the storage of the computer for somepurposes. Program software performs the function of the
program it implements, either by directly providing instructionsto the computer hardware or by serving as input to anotherpiece of software.
NOTE: The term was coined to contrast to the old termhardware (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 termincludes data that has not traditionally been associated withcomputers, such as film, tapes, and records
8/7/2019 Sen Lecture01
21/29
What Is Engineering?
E
ngineering is the discipline, art and profession ofacquiring and applying scientific, mathematical,economic, social, and practical knowledge to designand build structures, machines, devices, systems,materials and processes that safely realize solutionsto the needs of society.
The American Engineers' Council for ProfessionalDevelopment has defined "engineering" as:
The creative application of scientific principles todesign ordevelop structures, machines, apparatus, ormanufacturing processes, or works utilizing themsingly or in combination; or to construct or operate thesame with full cognizance of their design; or toforecast their behavior under specific operatingconditions; all as respects an intended function,economics of operation and safety to life and property
8/7/2019 Sen Lecture01
22/29
IT314 - Software Engineering 22
What Is Software Engineering? (1/3)
Software engineering (SE) is a profession dedicatedto designing, implementing, and modifying software sothat 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 andre-engineering of a software by applying engineeringto the software".
NOTE: The term software engineering first appeared in
the 1968 NATO Software Engineering Conference,and was meant to provoke thought regarding theperceived "software crisis" at the time.
8/7/2019 Sen Lecture01
23/29
IT314 - Software Engineering 23
What Is Software Engineering? (2/3)
Since the field is still relatively young compared to itssister fields of engineering, there is still much debatearound what software engineering actually is, and if itconforms to the classical definition of engineering.
The IEEE Computer Society's Software Engineering
Body of Knowledge defines "software engineering" asThe application of a systematic, disciplined, quantifiableapproach to the development, operation, andmaintenance of software, and the study of theseapproaches; that is, the application of engineering to
software. It is the application of Engineering to software because it
integrates significant mathematics, computer scienceand practices whose origins are in Engineering.
8/7/2019 Sen Lecture01
24/29
IT314 - Software Engineering 24
What Is Software Engineering? (3/3)
Software development, a much used and more genericterm, does not necessarily subsume the engineeringparadigm.
Objective of Software Engineering (SE):
To systematically develop high quality software in timelyand cost effective manner
Basic knowledge for SE comes from variousengineering disciplines
SE methodologies, techniques and guidelines have
been evolved by systematically organizing: Past innovations in software development
Past experience in software development
8/7/2019 Sen Lecture01
25/29
IT314 - Software Engineering 25
Why Software Engineering? (1/3)
Computers have been in use for commercial purposesfor 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
8/7/2019 Sen Lecture01
26/29
IT314 - Software Engineering 26
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
8/7/2019 Sen Lecture01
27/29
IT314 - Software Engineering 27
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 theauthor
All this requires a systematic approach to developingsoftware i.e. software has to be engineered.
Systematic and engineering like approach tosoftware development is inevitable for developinglarge and complex software
NOTE: It involves use of techniques like systemsanalysis, estimation, prototyping, designing, testing,etc.
8/7/2019 Sen Lecture01
28/29
IT314 - Software Engineering 28
Any Questions?
8/7/2019 Sen Lecture01
29/29
IT314 - Software Engineering 29
Thats all for now
Well continue in the next class.