CSA 348 Applied Software Engineering (3 credits)
Typically offered during both the fall and spring semesters.
Catalog description:
Study of all phases of the systems development life cycle: project identification and justification, requirements analysis, data modeling, process modeling, design and specification techniques, prototyping, systems architectures, software design and construction, and object oriented analysis and design.
Prerequisite:
Course Objectives:
- Survey and apply alternative approaches to the software development life-cycle including project organization and management.
- Apply object oriented system modeling.
- Apply methods of requirements identification, elicitation, and analysis.
- Translate a logical system design into a physical system design and program specifications using object oriented design methodology.
- Apply methods of configuration management and software testing.
- Explain the purpose of design in the creation of software systems, and understand the use of abstraction in this process.
- Describe the importance of formal methods of analysis and design and of recording analysis and design decisions.
- Describe methods of quality assurance in analysis, design, and implementation.
- Effectively document and communicate a software system, both in writing and orally.
- Apply several analysis and design exercises to amplify the above concepts and methods, including a team project.
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
Learning Outcomes: | |
CSA348.1: Describe the software life cycle, distinguishing among the purposes of the various phases. | |
CSA348.2: Describe and apply standard methods of project planning, requirements analysis, design, and verification and validation to system development problems. CSA348.2.1: The student can apply contemporary analysis and design methods, such as object-oriented analysis and design (OOA/D). | |
CSA348.3: Use standard tools, e.g. UML, to analyze and synthesize components of software systems. |
Required topics (approximate weeks allocated):
- Introduction (0.5)
- Definition, Concepts, Activities
- Modeling with UML (1.0)
- Use Case Diagrams
- Class Diagrams
- Interaction (sequence) Diagrams
- Project Organization and Communication (0.5)
- Project organization
- Project activities
- Requirements Elicitation (1.0)
- Elicitation concepts
- Elicitation activities
- Negotiation
- Requirements Analysis (1.0)
- Analysis Concepts
- Analysis Activities
- System Design (2.0)
- System architecture
- Design activities
- Addressing Design Goals
- Object Design (2.0)
- Design Patterns
- Reuse
- Interface specification
- Mapping models to code
- Testing (1.0)
- Testing Concepts
- Testing Activities
- Testing Management
- Rationale Management (0.5)
- Configuration Management (0.5)
- Project Management (0.5)
- Software Life Cycle (1.0)
- Software Engineering Methodologies (1.0)
- Methodology Issues
- Agile methods
- Component Based Software Engineering
- Exams (1.0)
- Oral Presentations (1.5)
