SOFTWARE DEVELOPMENT PROCESS Course No Course Title Prerequisites Course Type Class Time : : : : : BIT 233 SOFTWARE DEVELOPMENT PROCESS BIT 112 Core IT Lectures ( 1.5) / Labs( 3 ) Course Objectives: The course main objectives are: To introduce the concept of the software development life cycle To develop basic skills in software development life cycle To develop an awareness of the importance of correct analysis and design process and software testing strategies and techniques. Course Description: This course introduces students to the basic modern concepts and techniques employed in developing commercial application software. It covers the basic techniques commonly used in fact finding, requirements analysis, design such as prototyping and user interface design, testing reviews and walkthrough, system implementation, software project management including project planning and quality assurance, verification & validation and software maintenance. Course Outline: Introduction to software development Project Management process including project planning Cost Estimation, Activity Network Diagram and Risk Management. Introduction to fact finding Techniques. Requirement analysis, Validation and management. Introduction to Design Techniques Eg-Context Diagram, DFD and UML and designing the data dictionary. Testing Process and Types of Testing Verification and Validation Software Maintenance. Maintenance cost and Maintainability measures Program Evolution Dynamics and System Documentation. Learning Outcomes: After completing the course students should be able to: 1. Discuss Software Development Processes and Models. 2. Conduct a detailed investigation and relate it to an analysis of requirements. 3. Apply fundamental design methods, techniques and tools to code development. 4. Explain various Software Testing Strategies & Techniques. 5. Review and test Software programs. Teaching Methods: Students will be given in-class and home assignments that require them to apply most of the techniques described in this course to real software development projects. In the first assignment the students are required to do the analysis for a real project and document all the steps of the analysis stage. In the second assignment the students are required to design the system as per the user requirement. Students will be introduced to a project planning software package such as MS Project. They will be asked to produce an outlined project plan showing the critical path, resources assigned to each task and the total cost of the project. Electronic presentation, use of a modern project planning software package such as MS Office Project 2007, use of a modern flowcharting software tool such as MS Visio, articles, and CD-ROM for action learning Use of the Internet for up-to-date global information Use of Modern Instructional Technology: Use of LCD Projector, PC, CD ROM, modern project planning software package, modern Wordprocessing and Electronic presentation packages Evaluating Student Performance: TASK Weight in % Class Participation 10 Assignments 10 Mid-term exam 20 Project and Presentation 20 Final exam 40 LO1 LO2 LO3 X X X X X X X X X X X X LO4 L05 X X X X X X X X Educational Resources: Educational Resource Textbook Required Other References Description Sommerville, I. (2010). Software Engineering, 9th ed. Addison Wesley Mall.R, Fundamentals of Software Engineering 2nd ed., Prentice Hall, New Delhi,2004 Ghezzi,Jazayeri,Mandrioli, Fundamentals of Software Engineering 2nd ed., Prentice Hall , New Delhi,2004. Somerville, Introduction to Software Engineering 5th ed. Addison-Wesley. 1995 Britton .C.Doake .j (1996).Software systems development: A gentle introduction. 2nd Ed... McGraw-hill. Senn.J.A.(1989). Analysis and design of information systems design of information systems. 2nd ed. McGraw-Hill. Computers Other Resources UML, Java or C/C++ may be used. Other tools downloadable from the Internet may be used for the team project development. The Project Team Leader will be responsible for assuring designers create “compatible” courses and properly link the courses. http://www.mhhe.com/pressman/ http://www.course.com/catalog/downloads.cfm?isbn=0-7895-6649-4) http://www.mhhe.com/schach/ Other Library resources, Internet search of periodicals Suggested Course Schedule & Outline: Week Topics 01 1. Introduction to Software Development - Terminologies(S/W, S/W Engineering) - Software products( Def. & types ) -Software Process Models - Waterfall Model - Evolutionary Development -Process Iteration - Boehm’s Spiral Model - Incremental Development - Professional Responsibility 2. Project Management - Management Activities - Project Planning - Project Scheduling - Project Cost Estimation - Activity Organization - Activity Network Diagram - Risk Management - Project Management (Ms Project) 3. Requirement Analysis - Functional Requirement - Non-functional Requirement - Feasibility Study - Requirement elicitation & analysis -Viewpoint-oriented elicitation - Fact Finding techniques - Interviewing & Questionnaires - Searching, Sampling, Observation - Requirement Validation - Requirement Management - Data Analysis 02 03 04 05 06 07 Learning Outcome Homework Assignment, Due dates LO01 LO01 LO02 LO03 LO03 LO04 LO04 Assignment 1 08 Revision LO1,2,4 09 4. Software Design -Software Design Approaches Function-oriented Design Methodology : SSADM Major Tools: DFD, ER Diagram LO05 10 Object- Oriented Design Methodology: OOP- Object Modeling using UML 5. Verification and Validation - Testing process - Testing in the Small White-Box testing Statement Coverage Edge Coverage Condition Coverage Path Coverage Black-Box testing - Testing in the Large Course Testing Bottom-Up and Top-Down Integration. System Testing Stress testing Performance testing LO5 6. Software Maintenance -The maintenance process -System documentation - Program evolution dynamics - Maintenance costs - Maintainability measurement LO5 15 Presentations LO1,2,3,4,5 16 Final Exam 11 12 13 14 Mid Term Exam -Assignment 2 LO3,4 LO4 LO5 Presentation