Post on 09-Apr-2018
8/7/2019 Sen Lecture02
1/25
IT314 - Software Engineering
Asim Banerjee
11th January 2011
soft_engg@daiict.ac.in
8/7/2019 Sen Lecture02
2/25
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 Thursday 09:30 to 10:55
Applicable from next week.
We would use the slot on Wednesday for
course related activities.
8/7/2019 Sen Lecture02
3/25
IT314 - Software Engineering 3
Course Schedule and Organization
3 lab hours per week 14:00 to 17:00 Lab004on Monday, Tuesday, Thursday & Friday
Project Teams 1 to 5 - Thursday
Project Teams 6 to 10 - FridayProject Teams 11 to 15 - Monday
Project Teams 16 to 19 - Tuesday
8/7/2019 Sen Lecture02
4/25
IT314 - Software Engineering 4
Course Schedule (Change)
3 lab hours per week 14:00 to 17:00 Lab004on Monday, Tuesday, Thursday & Friday
Project Teams 1 to 5 - Thursday
Project Teams 6 to 9 - FridayProject Teams 10 to 14 - Monday
Project Teams 15 to 19 - Tuesday
This will be operational from next week.
8/7/2019 Sen Lecture02
5/25
IT314 - Software Engineering 5
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:soft_engg@daiict.ac.in
8/7/2019 Sen Lecture02
6/25
IT314 - Software Engineering 6
TA Details
There are eight TAs who have been assigned tothis course viz.
ID Name
200911006 Sonal Kumari
200911032 Chauhan Tejas Chandulal
200911033 Hemnani Deepak
200911035 ParmarChintan
201011011 Aghera Piyush Keshavlal
201011013 Dipendra Singh Mandloi201011035 Jani Yash Rajkumar
201011042 Paridhi Munshi
8/7/2019 Sen Lecture02
7/25
IT314 - Software Engineering 7
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 Lecture02
8/25
IT314 - Software Engineering 8
What Is Software?
Computer 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 Lecture02
9/25
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 Lecture02
10/25
IT314 - Software Engineering 10
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 Lecture02
11/25
IT314 - Software Engineering 11
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 Lecture02
12/25
IT314 - Software Engineering 12
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 Lecture02
13/25
IT314 - Software Engineering 13
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
8/7/2019 Sen Lecture02
14/25
IT314 - Software Engineering 14
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 Lecture02
15/25
IT314 - Software Engineering 15
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 Lecture02
16/25
IT314 - Software Engineering 16
Any Questions?
8/7/2019 Sen Lecture02
17/25
IT314 - Software Engineering 17
Software Development Practices -
Changes (1/2)
More focus is on requirements specification
Design has become a distinct phase between
the requirements and the coding
Coding has become small part of the project
(from being the dominant part of project)
Focus has shifted from error detection (and
correction) to error prevention Reviews are carried out after each phase
8/7/2019 Sen Lecture02
18/25
IT314 - Software Engineering 18
Software Development Practices -
Changes (2/2)
Testing has become more systematic e.g. test
cases are developed right after the requirements
are identified
Improved documentation has resulted in:
Better visibility thru consistent use of standards
Smoother fault diagnosis and maintenance
Use of Computer Aided Software Engineering(CASE) tools has increased
8/7/2019 Sen Lecture02
19/25
IT314 - Software Engineering 19
Software Development Methodologies (1/2)
Software Development Methodologies specify: How to do the job?
e.g. analysis, design, coding, testing
What outputs to produced?
How to check for entry/exit criteria? How to measure progress?
Typical phases associated in software projectlife cycle:
Feasibility (pre-development) Requirements
Design
8/7/2019 Sen Lecture02
20/25
IT314 - Software Engineering 20
Software Development Methodologies (1/2)
Typical phases associated in software projectlife cycle (Continued):
Coding and Unit testing
Testing
Maintenance (post-development)
Software development organizations expect
their employees to master their development
methodologies (before being assigned to ajob)
8/7/2019 Sen Lecture02
21/25
IT314 - Software Engineering 21
Software Project Phases
Pre-development Phase Feasibility Study
Technical Proposals
Development Phase Requirements Study
Designing
Implementation - Coding and unit testing
Integration and System testing
Post-Development Phase
Maintenance
8/7/2019 Sen Lecture02
22/25
IT314 - Software Engineering 22
Why Software Project Phases?(1/2)
It breaks the overall problem of developingrequired software, into performing
(successfully) a set of phases, each handling a
different concern of software development.
It ensures that the cost of development is lower
than what it would have been if the whole
problem was tackled together.
A phased process allows proper checking forquality and progress at some defined points
during development (end of phases).
8/7/2019 Sen Lecture02
23/25
IT314 - Software Engineering 23
Why Software Project Phases?(2/2)
Thus having the development process in
phases aids in
Managing the complexity
Project tracking
Ensuring quality.
The development process in phases increases
the probability of developing the software in atimely and cost effective manner.
8/7/2019 Sen Lecture02
24/25
IT314 - Software Engineering 24
Any Questions?
8/7/2019 Sen Lecture02
25/25
IT314 - Software Engineering 25
Thats all for now
Well continue in the next class.