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’s 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’s Software Maintainability IndexÌý