Software Engineering (SE)

Course usage information

SE-505   Principles of Software EngineeringCredits: 1.5   

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: SE-505.

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: SE-511.

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-515   Disciplined Software DevelopmentCredits: 3   

Prerequisite: SE-505.

Term Offered: All Terms

Course Type(s): None

Introduces the need for an engineering approach to software, through a motivational discussion of the so-called "software crisis" and a presentation of software development processes at the various degrees of granularity; this ranges from organizational processes to team and individual engineers' processes. Provides practical experiences with the Personal Software Process. A software process is defined as a set of guidelines, activities, and methods that engineers use to develop and maintain software. Without a software process, most projects are over budget and behind schedule, since successful efforts cannot be guaranteed. The success of a project depends greatly upon the experience and discipline of the engineers. Limited to Software Engineering students.

Course usage information

SE-565   Software System RequirementsCredits: 3   

Prerequisites: 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: SE-565.

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: SE-571.

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   

Prerequisites: CS-501A and SE-505.

Term Offered: Fall Term

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   

Prerequisites: 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   

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 GPA 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-601   Outsourcing: Specifications and StrategiesCredits: 3   

Prerequisites: SE-565 and SE-571.

Term Offered: Fall Term

Course Type(s): None

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   

Prerequisites: SE-565 and SE-571.

Term Offered: All Terms

Course Type(s): None

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   

Prerequisites: SE-565 and SE-571.

Term Offered: Spring Term

Course Type(s): None

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-605   Software Implementation and ReuseCredits: 3   

Prerequisites: SE-565 and SE-571.

Term Offered: All Terms

Course Type(s): None

Explores contemporary topics in systematic software implementation and reuse. Includes the impact of Object-Based and Object-Oriented Design and Programming with Ada83, Ada95, and C++ along with Domain Engineering on the software development process. Concentrates on the practical aspects of applying architecture-centric, domain-specific, library-based reuse methodologies integrated with the software development process to create software systems in an efficient, cost-effective manner. Illustrates how object-oriented and domain-engineering techniques coupled with domain-specific libraries can be used to effectively develop significant software systems in a short period of time, frequently realizing reuse on the order of 70% or more. Libraries of object-based reusable software components will be used to design and implement solutions to problems.

Course usage information

SE-610   Software Systems SecurityCredits: 3   

Prerequisite: SE-505.

Term Offered: Fall Term

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: SE-565.

Term Offered: All Terms

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.

Course usage information

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

Prerequisite: 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: CS-501B.

Term Offered: All Terms

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   

Prerequisites: SE-565 and SE-571.

Term Offered: Fall Term

Course Type(s): None

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.

Course usage information

SE-621   Networked Software Systems IICredits: 3   

Prerequisite: 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: All Terms

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   

Prerequisites: SE-565 or MIS-565.

Term Offered: Fall Term

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.

Course usage information

SE-626   Information Systems EngineeringCredits: 3   

Prerequisite: SE-625.

Term Offered: All Terms

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-630   Real Time Software Analysis and SpecificationCredits: 3   

Prerequisites: CS-503 and SE-505.

Term Offered: Fall Term

Course Type(s): None

Scheduling policies and mechanisms. Classification of Real-Time Systems: hard, soft; uniprocessor, multiprocessor, distributed. Kernels and executives. Real-time programming languages and their tasking systems. Real-Time distributed systems; processor and communication scheduling domains, priority inversions and mappings, global time synchronization. Real-Time Structured Analysis (TTSA), CASE tools for RTSA, Real-Time Object Oriented Analysis methods. Comparison to RTSA. Prototyping real-time software systems. Using prototype tools like CAPS (Computer Aided Prototyping System) to establish and validate system requirements.

Course usage information

SE-631   Real-Time Software Design and ImplementationCredits: 3   

Prerequisite: SE-630.

Term Offered: Spring Term

Course Type(s): None

Criteria and trade-off for partitioning the functions of a real-time system among the hardware, firmware, and software. The interfaces of a real-time system to the external environments such as sensors and actuators. Designing real-time systems: structured and object-oriented methods. Case studies and comparison between the two. Design verification and validation. Implementation of Real-Time Systems. Development environments and tools: Simulators, Emulators and Debuggers. Testing Real-Time systems. Test coverage and regression testing. Special approaches for Real-Time software testing. Engineering and organizational issues in real-time software development. Performance testing and its importance in real-time systems.

Course usage information

SE-650   Software Project ManagementCredits: 3   

Prerequisite: 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: 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.

Course usage information

SE-652   Software Quality ManagementCredits: 3   

Prerequisites: SE-565 and SE-571.

Term Offered: All Terms

Course Type(s): None

Designed to help students develop a broad understanding of the requirements and consideration in planning, managing, and implementing a software project with special emphasis on teams, quality, process, and measurement. This experiential course involves two iterations of a team project which help students learn how to apply specific software engineering practices and understand their value (or lack of value) to specific projects. The main themes include in-depth coverage of process models, such as CMMI and ISO 9000, as well as specific practices such as Risk Management, Configuration Management, Team Development, Inspections, and practical applications of Measurement.

Course usage information

SE-660   Computer System ArchitectureCredits: 3   

Prerequisite: CS-503.

Term Offered: All Terms

Course Type(s): None

Computer system interconnection structures, central processing unit, control unit, microprogrammed control, memory organization, cache and virtual memory, computer arithmetic, RISC processor, introduction to parallel processing, and case studies.

Course usage information

SE-691   Software Engineering Thesis ResearchCredits: 3   

Prerequisites: SE-565, SE-571, 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   

Prerequisites: 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   

Prerequisites: SE-565, SE-571, 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: 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   

Prerequisite: Approval of the department.

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.

Course usage information

SE-699   Individual Research Project in Software EngineeringCredits: 3   

Prerequisite: Approval of the department.

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.