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听