IT 410

Software Engineering and Management (3 credits)

Text:  Object-Oriented and Classical Software Engineering, 8th edition by S. Schach, McGraw-Hill, 2011

Course Information:This course introduces the software development life cycle and key concepts related to software engineering. Topics include software process models, software project management, software requirements engineering, formal and informal modeling, software architecture, software design, coding and implementation, software testing and quality assurance, software deployment, and software evolution. Additional topics such as software metrics and measures, application domains, software engineering standards, and software configuration management will also be presented. This is a project-driven course.

Prerequisite:

Required/Elective: Required

Course Outcomes:

Students should be capable of:

  1. Discussing various models of the software development life cycle (SDLC) and summarizing deliverables for each phase of the SDLC
  2. Preparing a project management plan for developing a software product
  3. Describing the objectives of each phase of the SDLC and designing, implementing, and deploying a computer-based system
  4. Using a modeling notation such as UML to model some aspect of a software system
  5. Evaluating an implementation and discussing system delivery, deployment, and training
  6. Defining software application version control and configuration management

Student Outcomes: 

A.  An ability to apply knowledge of computing and mathematics appropriate to the program’s student outcomes and to the discipline.

C.  An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.

J.  An ability to use and apply current technical concepts and practices in the core information technologies.

N.  An ability to assist in the creation of an effective project plan.

Course Topics:

  1. Software development lifecycle
  2. Application domains
  3. Software process models (waterfall, incremental, iterative, agile, the Unified model)
  4. Software project management (planning, scheduling, cost estimation, resource allocation, team organization, risk management)
  5. Software requirements engineering (requirements identification, requirements modeling, requirements documentation, requirements review, requirement validation), formal and informal modeling (e.g., dataflow diagrams, finite state diagrams, Z)
  6. Software architecture (architectural analysis, architectural patterns, trade off analysis); software design and design concepts (information hiding, modular cohesion and coupling)
  7. Software implementation (coding, documentation, standards)
  8. Software quality assurance (reviews, code inspection, static and dynamic testing)
  9. Software testing strategies (unit testing, integration testing, requirement testing, system testing), software test case generation techniques (black box testing and white box testing techniques)
  10. Software delivery (deployment and deployment testing, user and operator training, creation and distribution of user and operator manuals)
  11. Software metrics and measurement
  12. Software version control management
  13. Software evolution
  14. Software configuration management

One of 34 U.S. public institutions in the prestigious Association of American Universities
Nearly $290 million in financial aid annually
44 nationally ranked graduate programs.
—U.S. News & World Report
Top 50 nationwide for size of library collection.
—ALA
23rd nationwide for service to veterans —"Best for Vets," Military Times
KU Today