亚色视频

Electrical Engineering and Computer Science

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:

  1. Review the models for developing software projects.
  2. Work in a team to build a software product under realistic constraints
    and tradeoffs.
  3. Formulate a Functional Specification from a set of User Requirements.
  4. Given a specification for a system, identify the required underlying
    computing infrastructure, and software architecture.
  5. Be able to define the properties of readable and reusable code.听
  6. Conduct a specification, design, or code review.
  7. Make an effective oral presentation on a technical topic.
  8. 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.
  9. Create a test dataset for use in unit testing of a module, exercise the
    created dataset, and generate a test report.
  10. Plan and execute lifecycle steps for developing a complex software
    product.
  11. Be able to critique a software design specification, identifying possible
    global, societal, economic and environmental consequences and
    recommending ways to minimize or avoid them.
  12. 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.
  13. Develop familiarity with how non-technical issues like privacy, ethics,
    and legal aspects can affect the design and implementation of the code


Topics

  1. The Nature of Software
  2. Process Models
  3. Agility and Process
  4. Recommended Process Model
  5. Principles That Guide Practice听
  6. Understanding Requirements
  7. Requirements Modeling: A Recommended Approach
  8. Design Concepts
  9. Architecture Design: A Recommended Approach
  10. Component-Level Design
  11. User Experience Design
  12. Pattern-Based Design
  13. Quality Concepts
  14. Reviews 鈥 A Recommended Approach
  15. 听Software Quality Assurance
  16. Software Testing 鈥 Component-Level
  17. Software Testing 鈥 Integration-Level
  18. Software Metrics and Analytics
  19. Oman鈥檚 Software Maintainability Index