Bachelors Level/Third Year/Sixth Semester/Science csit/sixth semester/software engineering/syllabus

B.Sc Computer Science and Information Technology

Institute of Science and Technology, TU

Nature of the course: (Theory+Lab)

F.M: 60+20+20 P.M: 24+8+8

Credit Hrs: 3Hrs

Software Engineering [CSC375]
Course Objective
i.
The main objective of this course is to provide knowledge of different concepts of software engineering so that students will be able to develop high quality software using different software management skills.
Course Description

This course familiarizes students with different concepts of software engineering mainly focusing on software process models, agile development, requirements engineering, models, design, implementation, testing, evolution, and software project management

S1:Introduction[2]
1
Software and its Types; Attributes of Good Software; Software Engineering and its Importance; Fundamental Software Engineering Activities; Difference between Software Engineering and Computer Science; Difference between Software Engineering and System Engineering; Challenges and Cost of Software Engineering; Professional Software Development; Software Engineering Diversity; Internet Software Engineering; Software Engineering Ethics
S2:Software Processes[5]
1
Software Process; Software Process Models (Waterfall Model; Incremental Development; Integration and Configuration); Software Process Activities (Software Specification, Software Design and Implementation; Software Validation; Software Evolution); Coping with Change (Prototyping, Incremental Delivery); Process Improvement
S3:Agile Software Development[3]
1
Agile Development; Plan-Driven vs. Agile Development; Agile Methods; Agile Development Techniques; Introduction to Agile Project Management
S4:Requirements Engineering[3]
1
Concept of User and System Requirements; Functional and Non-Functional Requirements; Requirements Engineering Process; Requirements Elicitation; Requirements Specification; Requirements Validation; Requirements Change
S5:System Modeling[6]
1
Introduction to System Modeling; Context Models; Interaction Models; Structural Models; Behavioral Models; Model-Driven Architecture
S6:Architectural Design[6]
1
Introduction; Architectural Design Decisions; Architectural Views; Architectural Patterns; Application Architectures
S7:Design and Implementation[5]
1
Introduction; Object-Oriented Design using UML; Design Patterns; Implementation Issues; Open-Source Development
S8:Software Testing[5]
1
Introduction; Validation and Verification Testing; Software Inspection; Software Testing Process; Development Testing; Test-Driven Development; Release Testing; User Testing
S9:Software Evolution[3]
1
Evolution Process; Legacy Systems; Software Maintenance
S10:Software Management[7]
1
Software Project Management; Project Management Activities (Project Planning, Risk Management, People Management, Reporting and Proposal Writing); Project Planning (Software Pricing, Plan-Driven Development, Project Scheduling, Estimation Techniques, COCOMO Cost Modeling); Introduction to Quality Management and Configuration Management
References
1.
Software Engineering, 10th Edition, Ian Sommerville, Pearson Education 2016
2.
Software Engineering: A Practitioner’s Approach, 8th Edition, Roger S. Pressman and Bruce R. Maxim, McGraw-Hill Education 2015
3.
Beginning Software Engineering, Rod Stephens, John Wiley & Sons Inc 2015
Labrotary Work
Students should prepare a project report along with software product using different concepts of software engineering. The project can be done in groups with at most four members in each group using any suitable database, programming, interfacing technologies, and project management concepts.