Software Systems Engineering Course Descriptions
UNH CERTIFICATE PROGRAM IN SOFTWARE SYSTEMS ENGINEERING COURSE DESCRIPTIONS
Software Systems Engineering Process. To meet the formidable challenges of contemporary systems, this course addresses an interdisciplinary set of processes from concepts to deployment that balances competing parameters toward a design solution meeting stakeholder needs. This integrated discipline is referred to as “software system engineering” and is the central expertise possessed by software technical leaders and software architects. The course addresses a core set of system engineering skills: operations needs analysis; requirements analysis and engineering; software architecture; system integration and test; and system engineering management. An attendee acquires an improved ability to tackle the tough technical decisions that will make or break a project.
Building Trusted Software. This course is focused on "how" to write trusted software without requiring the team to become security experts. There is an abundance of advice from security experts on "what" you should do. While this advice is generally sound it normally assumes you or your team needs to become security experts. This course boils down all of this advice and provides recommendations for: 1) How to modify your existing processes. 2) How to achieve the goal of creating trusted software. 3) How to know when to bring in security help.
Software Systems Engineering Case Study. The case study is the capstone course for the Certificate. With the Instructor as mentor, students analyze the outcomes of a complex project case. The study provides a systematic in-depth assessment of lessons learned including failures and successes.
Requirements Engineering. Yes, writing down the requirements coherently and understandably is difficult. But the really big challenge is mastering the decision stream that leads up to those requirements! This course focuses on the skills required to identify, analyze, synthesize, and manage system requirements. It addresses the key requirements gathering and analysis tasks throughout the system life cycle. Participants learn about the requirements process, explore what constitutes good requirements, and understand how requirements are documented. A case study provides practice and feedback on key skills of the requirements process.
Architecture Concepts. This course examines the role of architecture to satisfy an organization’s business requirements. The hard choices that must be made by the architect to fulfill the often conflicting needs of performance, availability, security, interoperability, and modifiability are highlighted. Other topics include representations of architectures, case studies, and the role of architecture in product lines.
Object Oriented Methodology. Object orientation has emerged as the de-facto standard for visualizing, designing, and implementing software systems. This course emphasizes the Unified Modeling Language (UML) and its various views to analyze, architect, design, and implement systems. A project culminating in the programming implementation of a case study is the focus of the course.
System Test/Evaluation. The course identifies an integrated software test and evaluation process framework that emphasizes a “systems engineering” approach: The validation and viability of customer/user needs statements, verification of system design, full exercise developmental testing, system integration/test dovetailing on the prior validations, plus evaluation of system robustness attributes. Especially highlighted is system definition, development, and verification based on user scenarios (use cases) and threads.
Performance Engineering. The emphasis of this course is on avoiding the costly consequences when software products fail to meet their performance objectives when initially constructed. Model-based techniques are presented for creating responsive software including the recognition of patterns and anti-patterns. Especially highlighted are the creation of quantitative models from the ongoing architecture and design processes.
Software Project Management. This course focuses on a core set of project management essentials that can affect the bottom line of software project technical and business performance. These are termed "best practices," and those addressed are: formal risk management, agreement on interfaces, metrics based scheduling/tracking, frequent binary completion milestones, incremental development, people aware management style, and change management. Additional contemporary topics on managing commercial off-the-shelf (COTS) solutions and product line management are also presented.