Sen Lecture01

Embed Size (px)

Citation preview

  • 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

    [email protected]

  • 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.