Go Search
 |  Sign In

Software Engineering Course Description

Mandatory Courses

Course Code: SEN 201                        Course Title: Introduction to Software Engineering

Credit Hours: 3(3,0,1)                         Level: 3-Third

Prerequisites: CSC113

 Course Description:

This is a central course, presenting the basic principles and concepts of software engineering and giving firm foundation for many other courses in the field. It gives broad coverage of the most important terminology and concepts in the software engineering; basic understanding of software life cycle, software processes, requirements engineering processes; introduction to agile and extreme programming, basic modeling and design; basic of project management, software cost estimation, configuration management,  and testing.

 Textbooks:

    1.    Ian Sommerville: "Software Engineering", 7th edition, Addison-Wesley, 2005.

    2.    Roger S. Pressman: “Software Engineering, a Practitioner’s Approach”, Sixth Edition; McGraw-Hill; 2005.         

    3.    Jeffrey A. Hoffer, Joey F. George, and Joseph S. Valacich : “Modern Systems Analysis and Design”;  Fourth Edition; Pearson Education, Inc.; 2005.

    4.    Stephen Schach, “Classical and Object-Oriented Software Engineering”, 7/e, Vanderbilt University, McGraw-Hill, 2007.

Course Code: SEN221                 Course Title: Web Applications Development

 Credit Hours: 3(3,0,1)                         Level: 4-Fouth

Prerequisites: SEN 201

 Course Description:

A basic introduction to the internet and WWW. Static Web page development using HTML. Developing web pages and formatting with tables, images and frames. Using CSS (Cascading Style sheets). Introduction to client side scripting, using JavaScript. DHTML: Dynamic aspects of site design, animation, caching, event driven scripting and browser compatibility. The basics of XML, building simple XML files. Web Services, feeds and blogs. Scripting on the server side: PHP and an introduction to other alternative scripting languages such as CGI, ASP and .NET Framework. 

Textbooks:

1.          Ralph Moseley: “Developing Web Applications”;  John Wiley, 2006

2.          Adam Nathan: “Windows Presentation Foundation Unleashed (WPF)”; SAMS; 2007

  

Course Code: SEN241                                         Course Title: Software Requirements Engineering

Credit Hours: 3 (3,0,1)                        Level: 4-Fourth

Prerequisites: SEN201

 Course Description: 

The requirements Engineering Process - Elicitation of requirements - Functional and non functional requirements - System services and constraints – Quality of Requirements - Requirements traceability matrix - Metrics for non-functional requirements - Use case description - Use case and context diagrams - Software Requirements Specification -IEEE Standard - Requirements for agile developments - Requirements for various systems: embedded systems, web-based systems, business systems, etc. – Requirements management. Students participate in a group project on software requirements engineering. 

Textbooks:

1.          Axel van Lamsweerde: “Requirements Engineering: from System Goals to UML Models to Software Specifications”; John Wiley 2007.

2.          Linda I. Shafer and Mike Christie: “Software Requirement: A Standards-Based Guide”; John Wiley 2005.

3.          Robertson, S. & Robertson, J: “Mastering the Requirements Process”; Addison-Wesley; 1999.

4.          Gerald Kotonya, Ian Sommerville: “Requirements Engineering: Processes and Techniques”; John Wiley; 1998

5.          Ian K. Bray: “An Introduction to Requirements Engineering, Addison-Wesley, 2002.

6.          G. Kotonya and I. Sommerville: “Requirements Engineering: Processes and Techniques”, John Wiley &Sons, 2000.

7.         R.R. You, Effective Requirements Practices, Addison-Wesley, 2001.

 

  • IEEE Std. 1233, 1998 Edition IEEE Guide for Developing System Requirements Specifications 
  • IEEE Std. 830-1998 IEEE Recommended Practice for Software Requirements Specifications

Certified Software Development Professional (CSDP) - IEEE


 

Course Code: SEN261                                         Course Title: Computational Management Science

Credit Hours: 3(3,0,1)                         Level: 4-Fouth

Prerequisites: Math244, Stat324 

Course Description:

The course introduces students to various segments of business; develop mathematical models of complex situations, using or driving solution techniques for analyzing these models, using spreadsheets or other specialized computer programs to perform the necessary mathematical operations to solve the models, and analyzing the results of the computer output in order to recommend appropriate course of action. Emphasis on: Linear Programming, Network, Decision, Queuing, Simulation, Quality Management, Markov Process Models. 

Textbooks:

1.          John A. Lawrence and Barry A. Pasternack: “Applied Management Science: Modeling, Spreadsheet Analysis, and Communication for Decision Making”; 2nd. Edition; John Wiley; 2002.

 Course Code: SEN331                                         Course Title: Object-Oriented Software Engineering

Credit Hours: 4 (4,0,1)                        Level: 5-Fifth

Prerequisites: SEN201, IS230  

Course Description: 

Review of Object-Oriented Concepts– More modeling with UML: Structural Modeling, Behavioral Modeling – System architecture design, – User Interface Design – Object Persistence Design - Class and Method Design - Object-Oriented Testing. Students participate in a group project on object-oriented software engineering. 

Textbooks:

1.          John W. Satzinger, Robert Jackson, Stephen D. Burd: “Object-Oriented Analysis and Design with the Unified Process”; Course Technology, 2005.

2.          Bennet S., McRobb S., Farmer, R., Object Oriented Systems Analysis and Design using UML, 3rd edition, McGraw-Hill, 2006.

3.          Lethbridhge T., Lagraniere R., Object Oriented Software Engineering (using UML and Java), 2nd edition, McGraw-Hill, 2005.

4.          Larman C.: Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative development, 3rd edition, Prentice Hall, 2005.

5.          John W. Satzinger, Tore U. Orvik: “The Object-Oriented Approach: Concepts, Systems Development, and Modeling with UML”; Course Technology, 2001.

6.          Stephen Schach, “Classical and Object-Oriented Software Engineering”, 7/e, Vanderbilt University, McGraw-Hill, 2007.


Course Code: SEN341                                         Course Title: Software Design and Architecture

Credit Hours: 3 (3,0,1)                        Level: 5-Fifth

Prerequisites: SEN241

 Course Description: 

Introduction to software design and architecture – Software evolution, flexibility – Introduction to design patterns, multi-layer architecture, Client-Server, the Model-View-Controller, etc. - The Object-oriented and function-oriented pipelining – Control styles, the centralised and event-driven models - Software design and the reuse landscape -  Components technology - Application frameworks - Middleware architectures including COM, CORBA, and .NET. Students participate in a group project on software design and architecture.

 Textbooks:

1.          Eric J. Braude: “Software Design”; John Wiley 2003.

2.          Eric J. Braude: “Software Design: “From Programming to Architecture”; John Wiley 2004.

3.          L. Bass, P. Clements, and R. Kazman: “Software Architecture in Practice”, second ed., Addison-Wesley, 2003.

4.          G. Booch, J. Rumbaugh, and I. Jacobson: “The Unified Modeling Language User Guide”, Addison-Wesley, 1999

5.          D. Budgen: “Software Design”, second ed., Addison-Wesley, 2004.

6.          Ian Sommerville: Software Engineering, 7th edition, Addison-Wesley, 2005.

 Course Code: SEN342                                         Course Title: Software Quality Assurance

Credit Hours: 3 (3,0,1)                  Level: 5-Fifth

Prerequisites: SEN241 

Course Description:

Quality concepts – Software quality assurance - Software quality management - Quality planning and control – Quality manual – Product and process standards - Internal and external software quality attributes -  Software reviews, walkthrough and inspection  – Statistical software quality assurance – Software configuration management - Software reliability – International Software quality models, e.g. ISO 9000 Quality standards and  ISO 9000-3, etc.. – Software process improvement – The Capability Maturity Model (CMM), Balanced scorecards.  Students participate in a group project on Software quality assurance. 

Textbooks:

1.          Ernest Wallmuller: “Software Quality Assurance: A practical approach”; Prentice Hall. 1994

2.          Roger S. Pressman: “Software Engineering, a Practitioner’s Approach”; Sixth Edition; McGraw-Hill; 2005. 

3.          H. van Vliet: “Software Engineering” 2nd. Edition, John Wiley, 2000

4.          J. W. Horch: “Practical Guide to Software Quality Management”, Artech House Publishers, 2003.

5.          S.H. Kan: “Metrics and Models in Software Quality Engineering”, second ed., Addison-Wesley, 2002.

6.          G.C. Schulmeyer and J.I. McManus: “Handbook of Software Quality Assurance”, third ed., Prentice Hall, 1999.

Course Code: SEN361                                         Course Title: Human-Computer Interaction

Credit Hours: 3 (3,0,1)                  Level: 5-Fifth

Prerequisites: SEN241 

Course Description: 

Introduction to Human-Computer Interaction and Human sensory systems – Principles of User Interface Design: development, and programming - Design Considerations - Dialog Content Design - Visual Design - Introduction to Human-Computer Dialog Management - Introduction to Pen Computing - Font and Symbol Design - Introduction to Speech Computing and other Forms of Input/Output. Students participate in a group project on Human-Computer Interaction. 

Textbooks:

1.          Alan Dix, Janet Finlay, Gregory Abowd, Russell Beale: “ Human-Computer Interaction”, 3rd ed, Prentice-Hall. 2003.

2.          Andrew Sears, Julie A. Jacko: “The Human-Computer Interaction Handbook: Fundamentals, Evolving Technologies, and Emerging Applications, Human Factors and Ergonomics Series, Lawrence Erlbaum Associates; 2 edition, 2007.

3.          Helen Sharp, Yvonne Rogers, Jenny Preece: “Interaction Design: Beyond Human Computer Interaction”, 2 edition Wiley 2007.

Course Code: SEN351                                         Course Title: Software Testing

Credit Hours: 3 (3,0,1)                  Level: 6-Sixth

Prerequisites: SEN342

Course Description:

Introduction to testing - Software validation and verification – Test cases – Managing the testing process: developing test plans, test scripts and test cases, reports - Unit, functional, and acceptance testing - Black-box and white-box testing - Equivalence partitioning - Path testing – Cyclomatic complexity - Integration testing – System Testing: Regression testing; Interface testing; Stress testing; Incremental testing; Interaction and Usability testing ... etc. - Object-oriented  testing - Software testing tools - Alpha, beta, and user acceptance testing – Testing in agile development environment -  Automated testing. Students participate in a group project on software testing. 

Textbooks:

1.          Dorothy Graham, Erik van Veenendaal, etal: “Foundations of Software Testing"; Thomson Learning; 2007

2.          Boris Beizer: “Black-Box Testing: Techniques for Functional Testing of Software and Systems”; John Wiley; 1995.

3.          Marc Roper: “Software Testing”; McGraw-Hill, 1994.

4.          Marnie L Hutcheson: “Software Testing Fundamentals: Methods and Metrics”; John Wiley 2003.

5.          Mauro Pezze, Michal Young :”Software Testing and Analysis: Process, Principles and Techniques”; John Wiley; 2008

6.          P.C. Jorgensen, "Software testing: a craftsman's approach", 2nd ed., CRC Press, 2004.

7.          B. Beizer, Software Testing Techniques, International Thomson Press, 1990

8.          C. Kaner, J. Falk, and H.Q. Nguyen, Testing Computer Software, second ed., John Wiley & Sons, 1999

Additional References:

  • R. Patton, "Software Testing", Sams Publishing, 2nd ed., 2006.
  • W. Hetzel, "The complete guide to software testing", Wiley, 1988.
  • G.J. Myers, T. Badgett, T.M. Thomas and C. Sandler, "The Art of Software Testing", 2nd ed., Wiley, 2004.

Course Code: SEN357                                         Course Title: Web Applications Engineering

Credit Hours: 3(3,0,1)                         Level: 6-Sixth

Prerequisites: SEN221, SEN241 

Course Description:

This covers business aspects, market drivers and site design reflecting interdisciplinary influences on web applications development. The course explains how Web Engineering differs from software engineering, detailing the rapid prototyping and agile development methods mandated by short lead times, emphasis on interactivity and multimedia, and the increased importance of user interfaces and human-computer interaction. It covers: the systematic development of Web applications; requirement engineering for Web applications; modeling; Architectures of Web Applications; technology driven design; testing, operation and maintenance of Web applications. Special emphases should be given to: Web project management, development processes, usability, performance and security of Web applications.  

Textbooks:

1.          Gerti Kapel, Birgitt Prol, Siegried Reich, and Werner Retschitzeggar: “Web Engineering”; John Wiley, 2006.

2.          Roger S. Pressman: “Software Engineering, a Practitioner’s Approach”; Sixth Edition; McGraw-Hill; 2005. 

 Course Code: SEN343                                         Course Title: Software Engineering Lab I

Credit Hours: 2(0,4,0)                         Level: 6-Sixth

Prerequisites: SEN331, SEN342 

Course Description:

A project course where students practice what they have learned or are learning in class, through directed study. The class is an ongoing project in which students register to participate as engineers in a specific role in accordance to individual levels of expertise and profile. More emphases should be given in producing a small software application using a simple middleware architectures such as .NET and applying the software quality assurance & testing concepts. 

Course Code: SEN371                                         Course Title: Software Engineering Project Management

Credit Hours: 3(3,0,1)                         Level: 6-Sixth

Prerequisites: SEN342 

Course Description:

Project planning, cost estimation, earned-value analysis techniques and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics, Analysis of options, risk management and dynamic adjusting of project plans. Planning for change. Management of expectations. Release and configuration management. Software process standards and process implementation. Using standards in project management, including ISO10006 (project management quality) and ISO12207 (software development process) along with CMM model. Software contracts and intellectual property. Approaches to maintenance and long-term software development. Case studies of real industrial projects. 

Textbooks:

1.          Bob Huhes, Mike Cotterell: “Software Project Management”; McGraw Hill; 2002

2.          Mark Christensen and Richard H. Thayer: “The Project Manager’s Guide to Software Engineering’s Best Practices”; John Wiley, 2002.

3.          Pat Hall and Juan Fernandez-Ramil: “Managing the Software Enterprise”, Thomson Learning; 2007

Course Code: SEN433                                         Course Title: Software Engineering Tools & Methods

Credit Hours: 3(3,0,1)                         Level: 7-Seventh.

Prerequisites: SEN342 

Course Description:

The objective of this course is to guide students to understand and use different models, tools, and computer-aided software engineering, techniques, methodologies in developing application systems. This course introduces the students to different types of software development life cycles, new trends in Methodologies and programming: RAD, Prototyping,  Agile, eXtreme .... etc. The considerations involved in choosing which methodology to use. Examples and cases will be drawn from actual systems projects that enable students to learn in the context of solving problems

Textbooks:

1.  I. Sommerville: “Software Engineering”, seventh ed., Addison-Wesley, 2005.

Course Code: SEN431                                         Course Title: Software Measurements and Metrics

Credit Hours: 3 (3,0,1)                   Level: 7-Seventh

Prerequisites: SEN342 

Course Description:  

Measurements and metrics in software industry – Measurements of product, process and resource attributes – Planning a measurements program - Goal/Question/Metric - Collection and analysis of software empirical measurements - Building software metrics - Cost estimation models, Function points, COCOMO, and Use case points – Measurements and metrics of object oriented software: Coupling and cohesion – Tools for software measurements – Benchmarking.  Students participate in a group project on Software Measurements and Metrics. 

Textbooks:

1.          S.D. Conte, H.E. Dunsmore, and V.Y. Shen: “Software Engineering Metrics and Models”; The Benjamin Cummings Publishing Company, 1986.

2.          S.H. Kan: “Metrics and Models in Software Quality Engineering”, second ed., Addison-Wesley, 2002. 

o  ISO/IEC  14143-1

Software Measurement--Functional Size Measurement-Part1: Definition of Concepts 

o  ISO/IEC  14143-2

Software Measurement--Functional Size Measurement-Conformity evaluation of software size measurement methods to ISO/IEC 14143-1:1998

o  ISO/IEC  19761

COSMIC-FFP - A Functional Size Measurement Method  

o  BS ISO/IEC  20926

IFPUG 4.1 Unadjusted functional size measurement method. Counting practices manual

o  ISO/IEC  20968

Mark II Function Point Analysis Counting Manual 

 

Course Code: SEN443                                         Course Title: Software Engineering Lab II

Credit Hours: 2(0,4,0)                         Level: 7-Seventh

Prerequisites: SEN351, SEN343 

Course Description:

A project course where students practice what they have learned or are learning in class, through directed study. The practicum is an ongoing project in which students register to participate as engineers in a specific role in accordance to individual levels of expertise and profile. A larger project than the one in Lab I should be assigned to students and emphases is given into applying more software management and software measurements and metrics.

Course Code: SEN 441                        Course Title: Embedded Systems Design

Credit Hours: 3(3,0,1)                         Level: 7-Seventh

Prerequisites: CEN333 

Course Description: 

An introduction to embedded system design - complex systems and microprocessors - The embedded design process - Formalism for system design -  Introduction to instruction sets, CPUs, I/O – The Embedded computing platform – Program design and Analysis in an embedded system – Embedded operating systems – Coprocessors.

Textbooks:

3.          Wayne Wolf: “Computers as Components: Principles of Embedded Computing System Design”; Morgan Kaufmann, 2001.

Course Code: SEN451                                        Course Title: Software Maintenance

Credit Hours: 3(3,0,1)                         Level: 8-Eighth

Prerequisites: SEN431 

Course Description:

Students will study the four types of maintenance:  corrective, adaptive, perfective, and preventive maintenance; economic implications of maintenance; managerial issues related to system maintenance such as maintenance organizational structure; quality measurement, processes related to change requests and configuration management. Topics including: Website maintenance; role of CASE tools; reverse engineering, reengineering; code restructuring and amenability measures. Students will also learn different maintenance process models such as: Boehm, Osborne, Iterative enhancement and reuse-oriented modes.  

Textbooks:

1.          Armstrong A. Taknang, and Penny A. Grubb: “Software Maintenance”; ITP, 1996.

2.          Penny Grubb & Armstrong A Takang: “Software Maintenance Concepts and Practice”; Second Edition, World Scientific Publishing (UK) Ltd; 2003

3.          Jeffrey A. Hoffer, Joey F. George, and Joseph S. Valacich : “Modern Systems Analysis and Design”;  Fourth Edition; Pearson Education, Inc.; 2005.

4.          Keith Bennett and Melcolter: “Software Maintenance, Research and Practice” Journal Published by John Wiley.

5.          T.M. Pigoski: “Software Maintenance”; John Wiley; 2001

6.          T.M. Pigoski, Practical Software Maintenance: Best Practices for Managing your Software Investment, first ed., John Wiley & Sons, 1997.

7.          K.H. Bennett, “Software Maintenance: A Tutorial,” in Software Engineering, M. Dorfman and R. Thayer, eds., IEEE Computer Society Press, 2000.

  • IEEE 1219 Standards: Software Maintenance
  • ISO/IEC 14764 standards: Software Maintenance 

Course Code: SEN498                                         Course Title: Graduation Project I

Credit Hours: 2                                    Level: 7-Seventh

Prerequisites: IS335, SEN342, SEN357, SEN351 

Course Description:

The student should take a B.Sc. project in related area to his specialization and with technical merit.  This project is for two semesters, it is counted as two hours in the first semester.  At the end of the semester the student submits a report describing his projects and the parts he completed in the first semester and proposed parts in the 2nd semester.

The Basic lines of the graduation project is that students should develop a significant software system, employing knowledge gained from courses throughout the curriculum. Includes development of requirements, design, implementation, testing and quality assurance. Students may follow any suitable process model, must pay attention to quality issues, and must manage the project themselves, following all appropriate project management techniques. Success of the project is determined in large part by whether students have adequately solved their customer’s problem.

Course Code: SEN499                                         Course Title: Graduation Project II

Credit Hours: 4                                   Level: 8-Eighth

Prerequisites: SEN498 

Course Description:

In this semester the student continues his work in the graduation project.  This may require the student to present his progress biweekly.  At the end of the semester the student presents a detailed report of developed project and oral presentation. The report should indicate that the student understands the topic and his specific implementation.  Any hardware or software should be documented in detail.  The student’s grade is based on his work during the project and commitment to fulfill its objectives, both in reporting, and oral presentation.

Course Code: SEN 999                        Course Title: Training

Credit Hours: 1                                    Level:

Prerequisites: IS335, SEN342, SEN357, SEN351
 

Selective Courses


Course Code:
SEN432                                         Course Title: Advanced Software Engineering

Credit Hours: 3 (3,0,1)                  Level:

Prerequisites: SEN433, SEN431 

Course Description:   

More design patterns - Distributed systems architecture - Real-time software design – Data acquisition systems – Data processing systems – Transaction processing systems – Event processing systems.  Students participate in a group project on the design of one of the above systems. 

Textbooks:

    1.    Alan Shalloway,  James Trott:” Design Patterns Explained: A New Perspective on Object-Oriented Design”, 2nd Edition, Addison-Wesley Professional , 2004.

    2.    Zahir Tari, Omran Bukhres: “Fundamentals of Distributed Object Systems: The CORBA Perspective”, Wiley-Interscience, 1 edition, 2001.

    3.    Rob Williams: “Real-Time Systems Development”, Butterworth-Heinemann , 2005.

    4.    John Park, Steve Mackay: “Practical Data Acquisition for Instrumentation and Control Systems”, Newnes, 2003.

    5.    Marian V. Iordache, Panos J. Antsaklis: “Supervisory Control of Concurrent Systems: A Petri Net Structural Approach (Systems & Control: Foundations & Applications)”, Birkhäuser Boston; 1 edition, 2006.

    6.    Ian Sommerville: "Software Engineering", 7th edition, Addison-Wesley, 2005.

    7.    Roger S. Pressman: “Software Engineering, a Practitioner’s Approach”, Sixth Edition; McGraw-Hill; 2005.         

 

Course Code: SEN491                                         Course Title: Selected Topics in Software Engineering

Credit Hours: 3(3,0,1)                         Level:

Prerequisites: IS335, SEN342, SEN357, SEN351 

Course Description:

This course is designed to enable students to study different special topics of interest, which are carefully selected from software engineering topics as formal specification using Z-language, design patterns, component based development, etc.  The contents of such a course are to be determined by the instructor and should be approved by the department.

 Course Code: IS 455                            Course Title: Enterprise Recourse Planning for Software Engineers

Credit Hours: 3(3,0,1)                         Level:

Prerequisites: SEN 371 

Course Description: 

This course covers the following topics: definition of Enterprise Resource Planning (ERP), organization, business processes, and integration.  Motivation of integration, the differences between Software Development Life Cycle (SDLC) and implementation of ERP, obstacles to achieving Integrated Systems, actual benefits of Integrated Systems, the environment of ERP, the architecture of ERP, the critical success factors of ERP implementation, planning of ERP implementation, the preparation of ERP implementation, Change Management (CM), realizing and operation ERP system, and extending ERP

 Textbooks:

1.          Ellen Monk and Bret Wagner: Concepts in Enterprise Resource Planning, Thomas Course Technology, 2nd. Edition. 2006,

Course Code: IS 481                            Course Title: E-Commerce for Software Engineers

Credit Hours: 3(3,0,1)                         Level:

Prerequisites: SEN 371 

Course Description: 

Types of E-Commerce; Corporate strategic planning for EC adoption; Business design/architecture for EC application; Web-based marketing strategies and models; E-Commerce Project Management; Public Policy and Legal Issues of Privacy; Socio-Technical Infrastructure for E-Commerce; Risk Management in E-Commerce Initiatives; E-Transformation; Measuring Effectiveness of E-Commerce Projects; EC and organizational change management; EC and competitiveness; Success and failure in EC implementation; Retailing in E-Commerce; Techniques of consumer behavior analysis in E-Commerce context; Advertisement in E-Commerce; E-Commerce in Banking; E-Commerce and Online Publishing; E-Commerce in Manufacturing; E-Commerce and Supply Chain Management; E-Commerce and Customer Asset Management; B2B E-Commerce; B2C E-Commerce; Electronic Payment Systems; Mobile Commerce; Modern trends in developing E-commerce systems; Available packages and software tools: technical evaluation.

 Textbooks:

1.          Efraim Turban, Jae Lee, David King and Michel Chung: Electronic Commerce, A Managerial Prespective Prentice Hall, 2006, 4th. Edition

 
 

electronic publishing policy |  report violating content