Software Engineering ( CS-403 )
( CS- 4th Sem )
The purpose of this subject is to cover the underlying concepts and techniques used in Software Engineering & Project Management. Some of these techniques can be used in software design & its implementation.
After Completion of this Course students can:
- Understand concepts of The Software Product and Software Process.
- Understand concepts of Software Design.
- Understand concepts of Requirement Elicitation, Analysis, and Specification.
- Understand concepts of Software Analysis and Testing.
- Understand concepts of Software Maintenance & Software Project Measurement.
Main Contents of this course which students needs to learn are:
- Software Product and Process Characteristics, Software Process Models: LinearSequential Model, Prototyping Model, RAD Model, Evolutionary Process Models likeIncremental Model, Spiral Model, Component Assembly Model, RUP and Agileprocesses. Software Process customization and improvement, CMM, Product andProcess Metrics.
- Need and Types of Maintenance, Software Configuration Management (SCM), Software Change Management, Version Control, Change control and Reporting, Program Comprehension Techniques, Re-engineering, Reverse Engineering, Tool Support. Project Management Concepts, Feasilibility Analysis, Project and Process Planning, Resources Allocations, Software efforts, Schedule, and Cost estimations, Project Scheduling and Tracking, Risk Assessment and Mitigation, Software Quality Assurance(SQA). Project Plan, Project Metrics.
- Functional and Non-functional requirements, Requirement Sources and Elicitation Techniques, Analysis Modeling for Function-oriented and Object-oriented software development, Use case Modeling, System and Software Requirement Specifications, Requirement Validation, Traceability.
- The Software Design Process, Design Concepts and Principles, Software Modeling andUML, Architectural Design, Architectural Views and Styles, User Interface Design, Functionoriented Design, SA/SD Component Based Design, Design Metrics.
- Software Static and Dynamic analysis, Code inspections, Software Testing, Fundamentals, Software Test Process, Testing Levels, Test Criteria, Test Case Design, TestOracles, Test Techniques, Black-Box Testing, White-Box Unit Testing and Unit, Testing Frameworks, Integration Testing, System Testing and other Specialized, Testing, Test Plan, Test Metrics, Testing Tools. , Introduction to Object-oriented analysis, design and comparison with structured Software Engg.
Some books which will help you to learn this course:
- Pankaj Jalote ,”An Integrated Approach to Software Engineering”, Narosa Pub, 2005.
- Rajib Mall, “Fundamentals of Software Engineering” Second Edition, PHI Learning.
- R S. Pressman ,”Software Engineering: A Practitioner's Approach”, Sixth edition2006, McGraw-Hill.
- Sommerville,”Software Enginerring”,Pearson Education.
- Richard H.Thayer,”Software Enginerring & Project Managements”, WileyIndia.
- Waman S.Jawadekar,”Software Enginerring”, TMH
- Bob Hughes, M.Cotterell, Rajib Mall “ Software Project Management”, McGrawHill.
Lab Work is important in software engineering as I have mention one below.
- Lab work should include a running case study problem for which different deliverable sat the end of each phase of a software development life cycle are to be developed. Thiswill include modeling the requirements, architecture and detailed design. Subsequentlythe design models will be coded and tested. For modeling, tools like Rational Roseproducts. For coding and testing, IDE like Eclipse, Net Beans, and Visual Studio can be used.
For "Course Notes" you can refer our Notes Section for 2nd Year( Click Here )