This course provides a foundation in software enginering techniques for developing secure software systems.
- Subject
- SWENG
- Credits (min)
- 3
- Credits (max)
- 3
- Credit unit
- Credits
- Type
- course
- Edition
- 2026
- Source
- bulletins.psu.edu
21 courses with the subject SWENG, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
This course provides a foundation in software enginering techniques for developing secure software systems.
Practical benefits of a Database Management System; three-stage process to create and implement a relational database to meet defined requirements.
The principles of service oriented architecture; modeling, design and implementation of services; mapping business processes to services. SWENG 569 Service Oriented Architecture (3)Service-Oriented Architecture (SOA) is a design principle for guiding the design, development, deployment, and sustaining of flexible and agile IT solutions. SOA has become increasingly viable because of the widespread adoption of Web services technology that makes creating SOA practical and cost effective. SOA essentially makes IT agile, interoperable, and more responsive. This course is structured to be appropriate for graduate students in software or systems engineering, or information science. Many of the topics covered in this course may be applied to a wide variety of research areas. Usually this course would cover the following topics: 1) Model, design, and implement SOA; 2) Create agile and reusable SOA; 3) Automate business processes by mapping to the architectural model; 4) Orchestrate services and execute processes with the Business Process Execution Language (BPEL); 5) Achieve interoperability within SOA using proven design patterns and/or best practices; and 6) Implement loosely coupled services using WSDL-first techniques. Students will be evaluated on their understanding of the course material by completing one examination (20%), weekly assignments (40%), and an individual project with presentation (40%).
Description of tools and techniques in the software development lifecycle; Mitigation and managing time-to-market and quality of large software systems.
A holistic, systems-based approach to design and analysis of real-time systems; design and implementation of a small real-time system.
Application of genetic algorithms to problems in engineering and science including combinatorial optimization, multi-criteria optimization, biology, chemistry, and neural networks.
This class examines well-known heuristics, principles and patterns in the design and construction of reusable frameworks, packages and components. SWENG 585 Pattern Oriented Design (3) This course studies the heuristics, principles and patterns of object-oriented design in the construction of extendable frameworks, reusable packages and pluggable components. Topics covered include Riel's object-oriented design heuristics, Martin's principles of class and package design, the "Gang of Four" design pattern catalog, refactoring and framework evolution.
Techniques for the analysis and visualization of large software systems to assess the quality of the design and architecture. SWENG 588 Program Understanding (3)It is a general observation that software engineers learn about software design, programming languages, paradigms, patterns and tools, and are expected to produce high quality designs and code, often without ever having seen good examples. This approach is akin to teaching students the syntax of the English language and writing techniques and then expecting them to become expert writers without ever having read great literary works. The course in Program Understanding seeks to educate graduate software engineering students beyond their understanding of code syntax and best construction practices with analytical evaluation of "great works" of software code. This approach includes manual code reading, the use of visualization techniques, and automated approaches to assessment of design and code quality.
Supervised student activities on research projects identified on an individual or small-group basis.
Creative projects, including nonthesis research, that are supervised on an individual basis and which fall outside the scope of formal courses.
Formal courses given on a topical or special interest subject which may be offered infrequently; several different topics may be taught in one year or semester.
Analysis and construction of project plans for the development of complex software products; how to manage change and cost control.
Evaluate and design interactive products that support how people work and communicate from both a theoretical and practical perspective. SWENG 826 Applied Human-Computer Interaction (3) This course introduces the student to the broad area of human-computer interaction. Emphasis is placed on applying theories and techniques to the evaluation and design of software-based products that are both useful and usable. Students will gain an understanding of these concepts primarily by analyzing existing interfaces and developing prototypes. Students will be exposed to the challenges of usability testing through review of published studies and by developing a usability study design. Objectives:The course objectives are for Information Science professionals and software engineers to: 1. Identify examples of positive and negative user experiences in both everyday life and the work environment 2. Gain an overview of HCI theories, principles, and guidelines 3. Learn ho to design for usability 4. Learn how to incorporate usability design into the software development process 5. Use usability principles to evaluate and compare software-based products 6. Learn how to effectively test for usabilityPerformance will be evaluated through projects where students will apply what they have learned to design and evaluation problems. It is anticipated that this course will be offered once every year with expected enrollment of 20 students per offering.
The application of engineering best practices to the requirements, analysis and design of large software-centric systems will be presented. This will include the state of the art in software modeling techniques, the Unified Modeling Language and the Unified Process, along with tried and tested structured approaches. Students will learn how to analyze customer requirements and then systematically develop complete software specifications to meet those requirements using appropriate techniques for the application domain.
Students will learn and practice the elements of constructing a large-scale distributed software system using current technologies. SWENG 861 Software Construction (3) This course will expose the student to the elements and activities of software construction with a particular emphasis in the development of large-scale distributed software systems. Through investigation of large-scale distributed applications, the student will have the knowledge to be much more productive at modern software development. This course will begin by covering the foundation that surrounds large scale software construction such as performance, scalability, fault-tolerance, and security. Following the foundation, a particular emphasis in this course is on technologies that are used to build applications for modern devices and systems as well an emphasis on overcoming the issues that large-scale distributed systems encounter such as security and availability. The student will also investigate web services that help with the interoperability across heterogeneous platforms as well as learn how to handle concurrency, persistence and unit testing across all tiers of the application. Finally, the students will learn how to deal with deployment and security in large-scale distributed systems. Students will learn and practice software construction by developing a project that evolves gracefully as the technology discussion evolves but will have the freedom to work on either Java EE or MS. NET platforms.
This course provides a rigorous formal framework and practical information on the testing of software throughout its life cycle. Emphasis will be placed on software testing activities throughout the software lifecycle, testing of object-oriented and non-object-oriented software, and on formal methodologies for software testing. Documentation of software testing activities will also be covered.
This course is a thorough treatment of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing and writing requirements for systems of all kinds, with an intentional focus on software-intensive systems. The course will bring to bear a variety of formal methods, social models, and modern requirements writing tools to be useful to the theorist and practicing engineer. Students will be led through a series of weekly activities that culminate in the delivery of a complete software requirements specification project for a hardware/software system (first in draft, then in final form). The project is broken down into four subprojects, Requirements Elicitation, Requirements Analysis and Representation, Requirements Validation and Testing, and Final Requirements Documentation.
Architecture is an abstract view of a software system distinct from the details of how such a system is implemented. A robust architecture is key to developing software systems that meet quality expectations (such as performance, scalability, availability, maintainability, etc.) of their stakeholders. This course introduces basic concepts of software architecture, architectural design principles, and patterns. Students also learn how to document and evaluate software architectures, and reuse architectural assets through software product lines. This course is structured to be appropriate for graduate students in software or systems engineering. Many of the topics covered in this course may be applied to a wide variety of research areas. Students will be evaluated on their understanding of the course material by completing one examination (25%), weekly assignments (35%), and an individual project with presentation (40%).
design and development of mobile computing-based applications and services utilizing current and emerging mobile computing technologies. The purpose of this course is to provide students with an advanced and hands-on exploration of mobile computing paradigms. Mobile computing addresses the mobility needs of business operations and management in organizations, with the increasing trend of leveraging a variety of deployed enterprise information systems. Hence, well-designed and developed mobile applications can meet the needs of business mobility on both the service provider and the customer sides. This course is designed to explore and discuss approaches to the design and development of mobile applications. It builds an awareness of the business need for operational agility and mobility, and the value of existing IT investments in organizations. Specifically, this course investigates the fundamental design and development of mobile applications and services using platform technologies; area topics include mobile application and services design patterns, user interface, animation, location & mapping, and integration. Through working on exercises, labs, and projects, students will be able to identify and apply appropriate mobile platform technologies in their assignments and will gain skills and coding experience in the development of adaptable and sustainable mobile application solutions. Consequently, with this course, students will learn mobile development environments, application and service design and development, device emulators, data and mobility management, and enterprise solution-based integration. Cross Listings: IST 888 will be added as a cross-listed course.
Artificial Intelligence is rapidly transforming software engineering practice, from requirements analysis and code generation to testing, code review, and DevOps support. Understanding both the technical foundations and the ethical and engineering implications of these tools is increasingly essential for software engineers and technology leaders. This course offers a foundational and applied approach to AI-Assisted Software Engineering, with emphasis on Generative AI, LLMs, AI agents, and low-code/no-code workflows. Participants will learn how to collaborate with AI in activities such as requirements generation, coding, testing, debugging, code review, and documentation, while maintaining engineering control, validation, and accountability. Through hands-on exercises and a group project, students will design and evaluate AI-enabled solutions for software engineering tasks across the software development lifecycle (SDLC). The course also introduces Software Engineering for AI Systems, highlighting the distinct challenges of building reliable systems that include AI/ML/LLM components.
Supervised, professionally oriented student activities that constitute the culminating experience for the program.
Source: Pennsylvania State University-Penn State Wilkes-Barre's catalog, linked per course · table learning_unit · CourseShelf publish 59