Course Title: Software Engineering

Course Code: CMP-3310

Course Structure: Lectures: 3/ Labs: 0

Credit Hours: 3

Prerequisites: None

Description: This course is an introduction to the practical problems of specifying, designing, building, testing, and delivering reliable software systems. Special topics include fundamentals of software engineering,  understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development,professionalism, project management and the application of engineering tools.

Intended Learning Outcomes: 

At the end of the course the students will be able to:

  •  Understand different software processes and how to choose between them
  • How to elicit requirements from a client and specify them
  • Design in the large, including principled choice of a software architecture, the use of modules and interfaces to enable separate development, and design patterns.
  • Understand good coding practices, including documentation, contracts, regression tests and daily builds.
  • Various quality assurance techniques, including unit testing, functional testing, and automated analysis tools.

Textbook(s):

1.  Software Engineering: A Practitioner's Approach by Roger S. Pressman, McGraw-Hill Science/Engineering/Math; 8th Edition (2015). ISBN- 978-0-07-802212-8

2. Software Engineering by Ian Sommerville, Pearson Education Limited ; 10th Edition (2016).ISBN-978-0-13-394303-0

 

Assessment Criteria:

Sessional Marks: 20 Marks (Quiz + Assignment + Presentation)

Mid Semester Exam: 30 Marks

Final Semester Exam: 50 Marks

Course Contents:

Following contents will be covered in this course

1. The Nature of Software, Unique Nature of WebApps, Software Engineering, The Software Process, Software Engineering Practice, Software Myths. 

2. Generic Process Models: Framework Activity, Task Set, Process Patterns, Process Improvement, CMM, Prescriptive Process Models: Waterfall Model, Incremental Process Model, Evolutionary Process Model. 

3. Specialized Process Models: Component Based Development, The Formal Methods  Models, Agile Development. 

4. Introduction to Systems Analysis and Design, Business Information Systems, Information System Components, Types of Information Systems, Evaluating Software,

Make or Buy Decision. 

5. Introduction to SDLC, SDLC Phases, System Planning, Preliminary Investigation, SWOT Analysis.

6. The Importance of Strategic Planning, Information Systems Projects, Evaluation of  Systems Requests, Preliminary Investigation, Systems Analysis, Requirements Modeling, Fact-Finding Techniques. 

7. Requirements Engineering, Establishing the Groundwork, Eliciting Requirements, Developing Use Cases, Building the Requirements Model. 

8. Requirements Modelling Strategies, Difference between Structured Analysis and Object Oriented Analysis; Difference between FDD Diagrams & UML Diagrams.

9. Data & Process Modelling, Diagrams: Data Flow, Context, Conventions, Detailed Level DFD‘s Diagram 0, Levelling, Balancing, Logical Versus Physical Models.

10. Design Within the Context of Software Engineering, The Design Process, Design Concepts, Design Models: Data Design Elements. 

11. Architecture Design Elements, Interface Design Elements, Component-Level Design Elements, Deployments Design Elements. 

12. System Architecture, Architectural Styles, User Interface Design: The Golden Rules, User Interface Analysis and Design, WebApps Interface Design. 

13. Software Quality Assurance: Background Issues, Elements of Software Quality Assurance, Software Testing Strategies, Strategic Issues, Test Strategies for Conventional Software. 

14. Validation Testing, System Testing, Internal and External View of Testing: White Box Testing and Black Box Testing Techniques. 

15. Introduction to Project Management, Project Scheduling: Gantt Chart, Risk Management: Proactive versus Reactive Risk Strategies, Software Risks, Maintenance and Reengineering: Software Maintenance, Software Reengineering. 

Time Table:

Tuesday: 09:30-11:00am (BS Regular),             11:00am to 12:30pm(BSIT Self)

Wednesday: 09:30-11:00am (BSIT Regular),     11:00am to 12:30pm(BSIT Self)

Thursday: 09:30-11:00am (BSIT Regular),         11:00am to 12:30pm(BSCS Reg)

Course Material