Software Engineering (SE)

Software Engineering (SE)

Course usage information

SE-505   Principles of Software EngineeringCredits: 1.5   

Term Offered: All Terms

Course Type(s): None

Basic introduction to software engineering. Justification that software engineering is an engineering discipline. The two main components of the software engineering discipline- the software product and software process-will be discussed in detail. For design and verification, there will be a focus on traditional Structured-Analysis method. Limited to Software Engineering students only.

Course usage information

SE-511   Object-Oriented AnalysisCredits: 1.5   

Prerequisite(s): SE-505 passed with a grade of B- or higher

Term Offered: All Terms

Course Type(s): CISEL

Introduces the development of the requirements and analysis model for a software application. Uses object-oriented methodologies. This is not a programming course. Limited to Software Engineering students only.

Course usage information

SE-512   Object-Oriented DesignCredits: 1.5   

Prerequisite(s): SE-511 passed with a grade of B- or higher

Term Offered: All Terms

Course Type(s): CISEL

Introduces the design of a software application. Uses object-oriented methodologies. This is not a programming course. Limited to Software Engineering majors only.

Course usage information

SE-517   Engineering Web-Based SystemsCredits: 3   

Prerequisite(s): CS-501A

Term Offered: All Terms

Course Type(s): None

A practical introduction to the principles, methods and tools required to create high-quality software applications for the distributed, client-server context of the Web. The course emphasizes on architectural designs, and language and data access methods that are common in web-based systems.

Course usage information

SE-565   Software System RequirementsCredits: 3   

Prerequisite(s): CS-501A, SE-505, and SE-511

Term Offered: All Terms

Course Type(s): CISEL

Students will learn advanced methods in software system requirements. Ideally, these methods should be applied at the system, enterprise or global levels of software development. Methods in requirements elicitation, modeling of enterprises, prioritization and negotiation of requirements will be emphasized. Methods for including Commercial Off-the Shelf (COTS) system applications and product families will be introduced. By the end of the course, students will master the standard documentation of system requirements. Many opportunities for hands-on experience with requirements tools will be provided throughout the course.

Course usage information

SE-571   Software Design and Systems ArchitectureCredits: 1.5   

Prerequisite(s): SE-565

Term Offered: Spring Term

Course Type(s): CISEL

Introduces software application design and system architecture in terms of the design process, design principles, design notations, design tools, design heuristics, and design patterns. Covers application and system design in detail concentrating on developing designs that are complete, correct, robust, implementable, and deployable. Limited to Software Engineering students only.

Course usage information

SE-572   Enterprise and Global ArchitectureCredits: 1.5   

Prerequisite(s): SE-571

Term Offered: All Terms

Course Type(s): CISEL

Introduces architectural design at the Enterprise and Global Architectural levels. Provides students with an understanding of how new systems are brought into an organization to interoperate with an existing system, how systems are maintained throughout their lifecycle, and how systems are retired at the end of their lifecycle. Also provides students with an understanding of how the computing capabilities of a company fits into the larger scope of the Internet. Limited to Software Engineering students only.

Course usage information

SE-575   Software Verification, Validation and MaintenanceCredits: 3   

Prerequisite(s): CS-501A and SE-505

Term Offered: All Terms

Course Type(s): None

Covers software verification, validation and maintenance. The first half of the course includes inspections of requirements, design and code as well as testing. The second half addresses the handling of change requests, software evolution, code comprehension, and change management. It will include hands-on experience with a change management system and an automated testing tool.

Course usage information

SE-580   The Process of Engineering SoftwareCredits: 3   

Prerequisite(s): CS-503 and SE-505

Term Offered: Spring Term

Course Type(s): None

Students will learn how to define, apply and improve a software process. The basic components of a software process will be introduced, as well as the most influential process models. Students will experiment with both plan-based and agile methods of software development. The need for continuous process quality assessment and improvement will be described. Models such as CMM, ISO9001 will be introduced as reference models for organizations process models.

Course usage information

SE-588   Software Practice and ExperienceCredits: 1   

Prerequisite(s): 18 credits from Computer Science or Software Engineering

Term Offered: All Terms

Course Type(s): None

Provides opportunity for Software Engineering graduate students to obtain related experience in employment at a local company or institution, with Monmouth University sponsorship. Available to Software Engineering graduate students who have completed at least eighteen credit hours of graduate courses (500-level), with a minimum G.P.A. of 3.00. Does not satisfy elective requirements. Students may take this course a maximum of two times. This is a pass/fail course.

Course usage information

SE-599   Independent Study in Software EngineeringCredits: 1-3   

Prerequisite(s): Completion of at least 12 credits in Software Engineering

Term Offered: All Terms

Course Type(s): None

The development and execution of a significant research project designed by the student in consultation with a software engineering professor. This is an experience meant to focus learning on an area of special interest to the student. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

SE-601   Outsourcing: Specifications and StrategiesCredits: 3   

Prerequisite(s): SE-565

Term Offered: Spring Term

Course Type(s): CISEL

Covers issues associated with outsourcing software development in a fashion that assures delivery of acceptable products. The emphasis is on basic factors that determine the effectiveness of outsourcing, strategies for minimizing risk, project tracking, contract-specified breakpoints, and requirements.

Course usage information

SE-602   Technology AssessmentCredits: 3   

Prerequisite(s): SE-565

Term Offered: Spring Term

Course Type(s): CISEL

Covers the practicalities of assessing a technology for use in delivery of products. It examines how new tools, processes, and training fit into an overall technology-adoption decision.

Course usage information

SE-603   MOST ImplementationCredits: 3   

Prerequisite(s): SE-565

Term Offered: Spring Term

Course Type(s): CISEL

A practical application of MOST concepts by following the process of adopting a new technology and putting the appropriate elements into an organization. Focuses on technology assessment, cost, scheduling, training, and project management.

Course usage information

SE-610   Software Systems SecurityCredits: 3   

Prerequisite(s): SE-505

Term Offered: All Terms

Course Type(s): None

Threats, vulnerabilities, and attacks to network- based systems, Heuristic procedures for breaking systems. UNIX and Internet case studies. Security modeling techniques including Bell-Lapadula, Biba, and Clark-Wilson. Composition of non-deducibility and noninterference security. Safeguard techniques including cryptographic protocols, online auditing and intrusion detection, access control, Internet firewalls, authentication, security kernel design, and trusted software development. Case studies in database security and secure network design.

Course usage information

SE-611   Secure Web Services DesignCredits: 3   

Prerequisite(s): SE-565

Term Offered: Spring Term

Course Type(s): None

Web applications present a complex set of security issues for architects, designers, and developers. The most secure and hack-resilient Web applications are those that have been built from the ground up with security in mind. This course focuses on principles of secure Web applications design. Topics include threats and counter measures, security in Web service frameworks, session control, access control, and data protection. Also listed as CS-611.

Course usage information

SE-615   Usability Engineering/Human-Computer InteractionCredits: 3   

Prerequisite(s): SE-565

Term Offered: Spring Term

Course Type(s): None

Explores the requirements analysis, design and evaluation of the Computer User Interface in the context of Software Engineering Processes. Specific methods and design problems will be illustrated with real-world examples in information technology, the Internet, communications, mobility, multimedia, and speech technologies. Prepares students to perform usability tasks directly or to successfully manage and collaborate with usability experts.

Course usage information

SE-616   Extensible Markup Language (XML)Credits: 3   

Prerequisite(s): CS-501B

Course Type(s): None

Presents XML fundamental concepts, XML as a document format, XML as a data format, and special topics in using XML.

Course usage information

SE-620   Networked Software Systems ICredits: 3   

Prerequisite(s): SE-565

Course Type(s): CISEL

Network Computing Models, Concepts and Requirement specification; Techniques for Interprocess Communication; Message Passing; Remote Procedures Calls; Directory Service; Synchronization; Task Partition and Allocation; Threads; Security and Authentication; Time Management. Prerequisites: SE-565

Course usage information

SE-621   Networked Software Systems IICredits: 3   

Prerequisite(s): SE-620

Term Offered: Spring Term

Course Type(s): None

Distributed File Systems, Replication, Shared Data, Transactions, Distributed Operating Systems, Micro Kernels, Network Operating Systems, Computing Environments and Toolkits: ONC, DCE, ISIS, Languages.

Course usage information

SE-623   Management Information SystemsCredits: 3   

Term Offered: Fall Term

Course Type(s): None

A survey of the concepts of management information systems and the information needs of management. A user-oriented introduction of the fundamentals of information systems and their integration into business organizations. Also listed as MIS-623. Not open to students who have successfully completed BM-520.

Course usage information

SE-625   Information Systems ArchitectureCredits: 3   

Prerequisite(s): SE-565 or MIS-565

Term Offered: All Terms

Course Type(s): None

Theoretical and practical issues related to the modeling and design of information systems to support medium to large organizations. The Target Architecture and its roles in building enterprise-wide information systems. Operational, warehouse, departmental, and individual-level data. Data modeling levels and associated constructs: Entity-Relationship Diagrams, Data Item Sets, Physical Data Models. Process modeling levels and associated constructs: Functional decomposition, Context diagrams, Data Flow Diagrams, State transition Diagrams, HIPO charts, Pseudo-code and programming specs. Relationship with Object-based modeling. Also listed as MIS-525.

Course usage information

SE-626   Information Systems EngineeringCredits: 3   

Prerequisite(s): SE-625

Term Offered: Spring Term

Course Type(s): None

Theoretical and practical issues related to the implementation of information systems to support medium to large organizations. Databases within the Target Architecture and their role in building enterprise-wide information systems. Logical vs. Physical database design. Transaction Processing (TPS) and Decision Support Systems (DSS): similarities and differences. Knowledge-based systems. Implementation issues; reliability, integrity, security, performance, scalability and maintainability. Review of existing commercial tools and environments for building, using and maintaining Information Systems for the enterprise.

Course usage information

SE-640   Real-time SystemsCredits: 3   

Prerequisite(s): CS-501B and SE-505

Term Offered: Fall Term

Course Type(s): CISEL

Theoretical foundations and practical algorithms in the specification and validation of real-time systems and applications. Important topics include real-time system specification, scheduling, resource access control, real-time task assignment, and high-level system modeling and analysis.

Course usage information

SE-641   Real-time Robot ControlCredits: 3   

Prerequisite(s): SE-640

Term Offered: Spring Term

Course Type(s): CISEL

Fundamentals of real-time and embedded software technology. Inter-process communication and synchronization. Robot operating system. Modern robot programming toolkits. Robot movement control. Robot speech and vision recognition.

Course usage information

SE-650   Software Project ManagementCredits: 3   

Prerequisite(s): SE-505

Term Offered: Fall Term

Course Type(s): None

Project management techniques and their application to the management of software projects. How to develop a software development plan and its associated tasks, milestones and deliverables. Software project scheduling and the establishment of relationships among the different tasks. Tasks, dependencies and conflict resolution. Resource management and allocation. Software project cost estimation. Algorithmic models for estimating costs: the COCOMO model and its derivatives. Risk assessment and its impact in the planning and scheduling of software projects. Software project measurement and tracking. Comparative review of software tools for software project management. Software configuration management and its importance in the management of large software projects. Also listed as MIS-550. For Software Engineering students only.

Course usage information

SE-651   Software Organization ManagementCredits: 3   

Prerequisite(s): SE-505

Term Offered: Spring Term

Course Type(s): None

Management issues regarding the software process. Authority and delegation. Leadership and leadership paradigms. Software Team management: organization, staffing and valuation, organizational alternatives. Centralized vs. Decentralized organizations. Managing design, development and testing teams. Managing software support organizations. Strategies for staffing: minimal vs. redundant staffing. Combining generalists and specialists to achieve an optimal staff configuration. Staff development and growth. Fostering professional growth within the organization. Evaluation strategies and techniques. Compensation and reward issues. Also listed as MIS-551.

Course usage information

SE-655   Cloud Computing - Concepts, Technology and ArchitectureCredits: 3   

Prerequisite(s): CS-503

Term Offered: Summer Term

Course Type(s): CISEL

This course will introduce students to proven and mature cloud computing technologies and practices into a series of well-defined concepts, models, and technology mechanisms and architectures. Case studies will be presented to applying the concepts to practical applications. Also listed as CS-655.

Course usage information

SE-691   Software Engineering Thesis ResearchCredits: 3   

Prerequisite(s): SE-565 and SE-580.

Term Offered: All Terms

Course Type(s): None

Independent research in software engineering, spanning a period of two consecutive semesters in an area not substantially covered in a regular course offering, under the supervision of a software engineering faculty member. A formal thesis is required. An oral defense of the thesis before a committee of two faculty members, plus the advising professor is required. Depending on the topic, a reviewer from outside the software engineering department may be asked to serve as a committee member. Limited to Software Engineering majors.

Course usage information

SE-692   Software Engineering Thesis ResearchCredits: 3   

Prerequisite(s): SE-691 and prior permission of the advising professor

Term Offered: All Terms

Course Type(s): None

Independent research in software engineering, spanning a period of two consecutive semesters in an area not substantially covered in a regular course offering, under the supervision of a software engineering faculty member. A formal thesis is required. An oral defense of the thesis before a committee of two faculty members, plus the advising professor is required. Depending on the topic, a reviewer from outside the software engineering department may be asked to serve as a committee member. Limited to Software Engineering majors.

Course usage information

SE-695A   Software Engineering PracticumCredits: 3   

Prerequisite(s): SE-565 and SE-580

Term Offered: All Terms

Course Type(s): None

A two-semester course sequence with major emphasis on hands-on, team-oriented large software development projects. Students will be asked to form groups of three to five persons, who will work as a software team whose purpose will be to develop a software product. The particular product will be chosen through negotiation with the instructor. Teams will operate in accordance with a well-defined set of policies and procedures (documented in an SE Handbook) that governs the entire development process. This document process addresses work products, roles, activities, entry and exit criteria, reviews and audits, documented procedures, and training. The practicum will also include the use of a set of approved tools. Additional software project management topics such as planning, estimation, and tracking will be covered. Project management techniques and their application to the management of software projects. How to define a software development plan, its associated tasks, milestones, and deliverables. Software project scheduling and the establishment of relationships among the different tasks. Task dependencies and conflict resolution. Resource management and allocation. Software project cost estimation. Algorithmic models for estimating costs: the COCOMO model and its derivatives. Risk assessment and its impact in the planning and scheduling of software projects. Software project measurement and tracking. Comparative review of software tools for software project management. Software configuration management and its importance in the management of large software projects. The students will be asked to serve in team roles, hold oral reviews, and prepare documentation appropriate to their project. Students in the class will participate in the reviews of other teams in the class. At the end of the second semester, each team will give a formal presentation on the project. Limited to Software Engineering majors.

Course usage information

SE-695B   Software Engineering PracticumCredits: 3   

Prerequisite(s): SE-695A

Term Offered: All Terms

Course Type(s): None

A two-semester course sequence with major emphasis on hands-on, team-oriented large software development projects. Students will be asked to form groups of three to five persons, who will work as a software team whose purpose will be to develop a software product. The particular product will be chosen through negotiation with the instructor. Teams will operate in accordance with a well-defined set of policies and procedures (documented in an SE handbook) that governs the entire development process. This documented process addresses work products, roles, activities, entry and exit criteria, reviews and audits, documented procedures, and training. The practicum will also include the use of a set of approved tools. Additional software project management topics such as planning, estimation, and tracking will be covered. Project management techniques and their application to the management of software projects. How to define a software development plan, its associated tasks, milestones, and deliverables. Software project scheduling and the establishment of relationships among the different tasks. Task dependencies and conflict resolution. Resource management and allocation. Software project cost estimation. Algorithmic models for estimating costs: the COCOMO model and its derivatives. Risk assessment and its impact in the planning and scheduling of software projects. Software project measurement and tracking. Comparative review of software tools for software project management. Software configuration management and its importance in the management of a large software project. Students will be asked to serve in team roles, hold oral reviews, and prepare documentation appropriate to their project. Students will participate in the reviews of other teams in the class. At the end of the second semester, each team will give a formal presentation on the project. Limited to Software Engineering majors.

Course usage information

SE-698   Special Topics in Software EngineeringCredits: 3   

Term Offered: All Terms

Course Type(s): None

The subject matter varies with the interest of the students and of the professor teaching the course. The exact nature of the topic covered in any given semester is indicated in the student's transcript. Approval of the department is required to take this course. If a prerequisite is required it will be announced in the course schedule.

Course usage information

SE-699   Individual Research Project in Software EngineeringCredits: 3   

Term Offered: All Terms

Course Type(s): None

The development and execution of a significant research project designed by the student in consultation with a software engineering professor. An experience meant to focus learning on an area of special interest to the student. Prior permission of the directing professor and department chair is required to take this course.