Dr Deepak B Phatak - it.iitb.ac.in · PDF file– System Software ... – Railway...
Transcript of Dr Deepak B Phatak - it.iitb.ac.in · PDF file– System Software ... – Railway...
CS 101 Computer Programming and utilization
Dr Deepak B Phatak Subrao Nilekani Chair Professor
Department of CSE, Kanwal Rekhi Building IIT Bombay
Session 15,Software Engineering and Course Projects
Friday, September 23, 2011
IIT BOMBAY
Session 15, Software Engineering and course projects
Dr. Deepak B Phatak 2
IIT BOMBAY
Session 15, Software Engineering and course projects
Overview
• Introduction to Software Engineering • Role of Software • Software development process
• Course projects • Activities to be carried out in the project • Reporting process • Deadlines
• Project evaluation • Stage I • Stage II
Dr. Deepak B Phatak 3
IIT BOMBAY
Software Engineering
Session 15, Software Engineering and course projects
• Principles of Software Engineering • Software Engineering Activities • Process Maturity Measures • ER Model • Functional Model
– Data Flow Model • User Interface Issues • Software Requirement Specifications (SRS)
Dr. Deepak B Phatak 4
IIT BOMBAY
Role of Software
Session 15, Software Engineering and course projects
• Classical categorization – System Software – Application Software – Embedded software – Web applications
Dr. Deepak B Phatak 5
IIT BOMBAY
System Software
Session 15, Software Engineering and course projects
– OS, Programming Languages (3GL) compilers – 4GL (SQL), Rapid Application Development (RAD) Tools – Tools To Build Software Keep Evolving
Dr. Deepak B Phatak 6
IIT BOMBAY
Application Software
Session 15, Software Engineering and course projects
• Determines Business Functionality • Students’ Information system, Accounting, payroll, …
– Railway reservation, Core banking, … – Simulators, Equation solvers, genome sequencing – Typical Life Cycle: 10 -25 Years
Dr. Deepak B Phatak 7
IIT BOMBAY
Embedded systems
Session 15, Software Engineering and course projects
• Software inside any gadget or appliance – Washing machines, watch, camera, lift, car, aircraft, … – Equipment in manufacturing Plant, Instruments
• Some special characteristics – Code size has to be ‘compact’ – Changes in versions are difficult – Development cycle is longer
Dr. Deepak B Phatak 8
IIT BOMBAY
Software Engineering
Session 15, Software Engineering and course projects
• Software is Developed or Engineered – Not Manufactured
• Hardware does wear out • Software does not “Wear Out”
– May Become Un-Maintainable • Most Software is Custom-Built
– Limited Role for Packaged Products Which Need Customization and Integration With Other Apps.
Dr. Deepak B Phatak 9
IIT BOMBAY
Definition
Session 15, Software Engineering and course projects
• Application Of a Systematic, Disciplined, Quantifiable Approach To The Development, Operation And Maintenance Of Software; i.e., The Application Of Engineering To Software – IEEE Definition 1993
• Engineering is The Analysis, Design, Construction, Verification and Management of Technical (Or) Social Entities
• To Engineer S/W, We Must Define a Development Process
Dr. Deepak B Phatak 10
IIT BOMBAY
Software Engineering Activities
Session 15, Software Engineering and course projects
• Functional Specifications • System Engineering • Feasibility Study • Allocation To H/W, S/W, People • System Analysis • System Design • Coding, Testing, Integration • Acceptance & Deployment
Dr. Deepak B Phatak 11
IIT BOMBAY
Software project management
Session 15, Software Engineering and course projects
• Basic Project Management • Software Teams • Coordination & Communication • Process and Project Metrics • Based on Lines of Code (LoC) • Function Point Oriented • Project Scheduling and Tracking
Dr. Deepak B Phatak 12
IIT BOMBAY
SEI models
Session 15, Software Engineering and course projects
• Software Engineering Institute – At Carnegie Mellon University
• Capability Maturity Model • Five Levels of Maturity to Measure Effectiveness of an
Organization in its Software Development Practices
Dr. Deepak B Phatak 13
IIT BOMBAY
CMM LEVEL 1 (Initial)
Session 15, Software Engineering and course projects
• Process is Ad Hoc (Even Chaotic) • Very Few Processes Are Defined • Success Depends Entirely On Individual Efforts
Dr. Deepak B Phatak 14
IIT BOMBAY
Classical System analysis
Session 15, Software Engineering and course projects
• Understand S/W Requirements – What functions should the system perform – Specify S/W Functions, Interfaces, Constraints
• Represent Information Domain Of The Problem – Which Data, How Manipulated – What is input, what output is desired – Rules governing values of data – Rules governing processing logic
Dr. Deepak B Phatak 15
IIT BOMBAY
Tasks to be completed during system analysis
Session 15, Software Engineering and course projects
• Modeling Interactive Screens – Capture and Validate Input – Query screens for Data Retrieval
• Modeling Reports – Contents and Format (text, graphics) – On Screen, On Printer
• Special Interfaces • Screen And Forms Layouts • Source And Target files • Operational Considerations • Ease Of Use (User Friendliness)
– Keystroke Minimization
Dr. Deepak B Phatak 16
IIT BOMBAY
SRS document (modified for CS101)
Session 15, Software Engineering and course projects
• Introduction • Problem definition for your project
– Functional Specifications • Description of data (Input and Output) • User Interface Requirements • Interfaces to Other Systems, if any • Acceptance Criteria • Appendices
Dr. Deepak B Phatak 17
IIT BOMBAY
Session 15, Software Engineering and course projects
CS101 Course Projects
• The course project is a chance for you to apply your programming knowledge to solve a larger problem by developing programs to solve the problem – A taste of professional Software Development activity
Dr. Deepak B Phatak 18
IIT BOMBAY
Session 15, Software Engineering and course projects
Course Projects …
• Open ended Projects – What is to be done is not necessarily well defined – Team work will be most important
• Efforts MUST be made by each individual member • Two stage submission and evaluation process • Stage 1
– Problem definition – Analysis, and design of the algorithms, sample code – SRS document, including draft User Manual
• Stage 2 – Complete implementation, final documentation
Dr. Deepak B Phatak 19
IIT BOMBAY
You will learn …
Session 15, Software Engineering and course projects
• Basic principles of project management • Professional programming style • To work together in groups, towards a common goal • To discuss, design, document, review • To take decisions, to meet deadlines
Dr. Deepak B Phatak 20
IIT BOMBAY
Coordination of project activities
Session 15, Software Engineering and course projects
• A lab-batch will work on an allocated programming project • Your batch TA will be your project mentor • Each batch may divide itself into multiple teams
– A team should ordinarily have 3 students – Each team to elect a team leader – All the team leaders will be joint coordinators for the batch
• Regular meetings and discussions amongst members of a batch – Lab attendance is now COMPULSORY – At least one additional meeting per week
Dr. Deepak B Phatak 21
IIT BOMBAY
Project diary
Session 15, Software Engineering and course projects
• Each student must maintain a record of the time spent for the project and specific work done in that time. The categorization of nature of the work could be as follows: – Discussions (names of participants, nature of discussion,
decisions taken) – Design: Data/file/algorithm/function/program – Programming – Testing/Documentation/Report writing – Logistics (maintaining records of meetings and decisions,
uploading files, CVS work, etc.) – Miscellaneous
Dr. Deepak B Phatak 22
IIT BOMBAY
Project diary …
Session 15, Software Engineering and course projects
• Each student will maintain a project diary – Daily entries, format will be notified
• Consolidated entries to be uploaded every week – Each batch will sum up the number of person hours
spent by each member on each of the subheads during the week
Dr. Deepak B Phatak 23
IIT BOMBAY
Submission Schedule
Session 15, Software Engineering and course projects
• Will be notified on moodle – Weekly diary submissions – Stage wise submission schedule – Stage wise evaluation process
Dr. Deepak B Phatak 24
IIT BOMBAY
Self evaluation with Peer-review
Session 15, Software Engineering and course projects
• Perhaps never attempted by any of you earlier – Good time to learn
• Award Marks out of 5 to yourself, at each of the two stages – Based on the quantitative and qualitative contribution – Norms will be defined.
• The entire batch will review these marks in a formal meeting • Supervisory check
– Viva will be conducted for some selected student – Marks will be uniformly deducted for every student of the
batch if effort/marks discrepancy is noticed during viva
Dr. Deepak B Phatak 25
IIT BOMBAY
Announcements
Session 15, Software Engineering and course projects
• Make-up activity for Lab assignments – Problems will be assigned by the TA – Submissions will be evaluated, viva may be conducted – Lab assignment marks will be upgraded appropriately
• Make-up for midsem examination. – Will be conducted for students scoring less than T – New scores to replace old (Up to T)
• Lab attendance is compulsory from next week – Additional batch meetings will be essential
• Additional lab-slot on Monday, Wednesday, Saturday, Sunday – Very limited TA support – You will need to pre-register
Dr. Deepak B Phatak 26
IIT BOMBAY
Project selection
• Projects of Cs101-2010 batch will be uploaded on the moodle • A new portal is being • The URL of the C portal along with other requisite information
regarding the log in details for students www.it.iitb.ac.in/Cportal • Students can login with following details Username: RollNo Password: RollNo Right Now, • You can access data on projects quiz, post things to the forum...
• You may have to download