New Building Website

CSA 472/572 Software Engineering (3 credits)

 

No longer offered.

Catalog description:

A study of all phases of the systems development life cycle. Topics covered are project identification and justification, requirements analysis techniques, data modeling, process modeling, systems design and specification techniques, prototyping, systems architecture alternatives, hardware selection, software design and construction. Several different approaches to systems development will be studied. CASE tools which support the current systems development life cycle will be utilized. Object oriented analysis and design concepts will be introduced. Emphasis in this course will be on the application of concepts to a systems development team project .

 

Prerequisite:

CSA385 or equivalent.

 

Objectives:

  • be able to demonstrate an understanding of current structured software analysis and design methodologies.
  • to be able to apply object oriented analysis to a problem in the area of information systems.
  • be able to translate a logical system design into a physical system design and program specifications using object oriented design methodology.
  • Be able to explain the purpose of design in the creation of software systems, and understand the use of abstraction in this process.
  • Be aware of the differences between analysis, design, and implementation as an individual and as part of a team.
  • To understand the importance of formal methods of analysis and design and of recording analysis and design decisions.
  • To understand the properties of analysis, design, and software that determine quality.
  • To be able to interpret and develop many design representations.
  • To understand methods of quality assurance in analysis, design, and implementation.
  • To have been involved in several analysis and design exercises to amplify the above concepts and methods.
  • To appreciate the advantages of using CASE tools in analysis, design, and implementation.

 

Practiced Success Skills

  • Team project requiring analysis of a problem leading to preparation of a detailed written Software Requirements Specification (SRS)
  • One or more presentations related to project milestones and final SRS
  • Independent work with a client to create the SRS

 

Required topics (approximate weeks allocated):

  • Introduction (1.0)
    • Software engineering
    • Software process models
    • Agile development
  • System Engineering (0.5)
  • Problem definition, feasibility analysis (1.0)
    • Identification of business and technical objectives
    • Identification of constraints and risks
    • Analysis of alternative solutions and presentation to clients
  • Requirements Engineering (2.0)
    • Requirements discovery
      • Working with clients
    • Requirements analysis
    • Modeling tools
      • UML
      • object models
      • Dataflow, state diagrams, etc.
    • Controlling requirements
  • Design Engineering (3.0)
    • Legacy systems, COTS, custom development
    • Architectural Design
      • Generic architectures, including web applications
    • Component-Level Design
    • User Interface Design
  • Maintenance (0.5)
    • Software evolution; sources of change; versioning; change management
  • Software Testing (1.0)
    • Testing strategies
    • Testing techniques
  • Product Metrics for Software (0.5)
  • Team and Project Management (1.5)
    • Project planning (Task analysis and work plan)
    • Project scheduling (Critical paths, resource allocation)
    • Team communication and individual communication styles
    • Process and Project Metrics
    • Cost estimation for Software Projects
    • Risk Management
    • Quality Management
  • Advanced Topics in Software Engineering (1.0)
    • Formal Methods
    • Cleanroom Software Engineering
    • Component-Based Software Engineering
    • Reengineering
  • Written Reports (0.5)
    • Problem Definition and Feasibility, Software Requirements Specification, Team Reporting
  • Oral Presentations (1.5)
  • Exams (1.0)

 

Graduate students:

Students enrolled in CSA 572 will be given additional readings and/or assignments.