EECS 3550 - Software Engineering听Course Syllabus
Credits/Contact Hours
3 credit hours & three 50-minute lecture contact hours per week.
Textbook
Software Engineering: A Practitioner鈥檚 Approach, 9th ed., Roger S. Pressman and Bruce R. Maxim;听听听
McGraw-Hill Higher Education, 2019, 704 pp.听
Hardcover: ISBN-10/13: 1259872971 / 978-1259872976听听
Loose Leaf: ISBN-10/13: 126042331X / 978-1260423310
Course Information
An introduction to the Software Engineering process. Topics include: the software
lifecycle, programming teams, user requirements, human-computer interaction, functional
specification, security and performance, software architecture, software design, objectoriented
programming, professional programming practice, software tools, testing, and modification.
A major project is assigned.
Prerequisites:
EECS 2510 with min. grade of D鈥 AND (ENGL 2950 with min. grade of D鈥 OR ENGL 2960
with min. grade of D鈥 OR HON 1020 with min. grade of D鈥)听Required course for CSE
Specific Goals - Student听Learning Objectives听(SLOs)
The students will be able to:
- Review the models for developing software projects.
- Work in a team to build a software product under realistic constraints
and tradeoffs. - Formulate a Functional Specification from a set of User Requirements.
- Given a specification for a system, identify the required underlying
computing infrastructure, and software architecture. - Be able to define the properties of readable and reusable code.听
- Conduct a specification, design, or code review.
- Make an effective oral presentation on a technical topic.
- Construct a test plan and generate test cases for a computer-based
system of medium complexity selecting appropriate combination of
tests for ensuring system quality.听 - Create a test dataset for use in unit testing of a module, exercise the
created dataset, and generate a test report. - Plan and execute lifecycle steps for developing a complex software
product. - Be able to critique a software design specification, identifying possible
global, societal, economic and environmental consequences and
recommending ways to minimize or avoid them.听 - Implement a project in a programming language that is not part of the
current curriculum, using materials they can find (printed and/or
online) to learn enough about that language to be productive.听 - Develop familiarity with how non-technical issues like privacy, ethics,
and legal aspects can affect the design and implementation of the code
Topics
- The Nature of Software听
- Process Models听
- Agility and Process听
- Recommended Process Model听
- Principles That Guide Practice听听
- Understanding Requirements听
- Requirements Modeling: A Recommended Approach听
- Design Concepts
- Architecture Design: A Recommended Approach听
- Component-Level Design听
- User Experience Design听
- Pattern-Based Design听
- Quality Concepts听
- Reviews 鈥 A Recommended Approach听
- 听Software Quality Assurance听
- Software Testing 鈥 Component-Level听
- Software Testing 鈥 Integration-Level听
- Software Metrics and Analytics听
- Oman鈥檚 Software Maintainability Index听