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