Software Engineering Analysis and Design
Requirements, project planning, use cases, class and behavior models, UML.
Textbook: Systems Analysis and Design: An Object-Oriented Approach with UML, 6th Edition
- Week 1Introduction to Systems Analysis and Design
- Introduction to systems analysis and design: SDLC and methodologiesThe four phases of the SDLC, the roles of the systems analyst, and the differences between methodologies from waterfall to Scrum. Definition questions and 'which methodology fits' questions on the midterm come from here.
- Week 2Systems Analysis and Design for Information Systems
- System request and feasibility: ROI, NPV, paybackThe system request that states why a project will be done, and technical, economic and organizational feasibility. The calculation question on the exam is usually NPV, ROI and break-even.
- Week 3Project Management, Scope Definition
- Project management and scope: function points, timeboxing, WBSEstimating project size with function points, converting to effort and schedule, scope creep and timeboxing. A step-by-step function point calculation often appears on the midterm.
- Week 4Problem Analysis, Scheduling Tools
- Problem analysis and scheduling tools: Gantt, PERT, critical pathFinding the root cause of a problem (fishbone, PIECES) and turning the work plan into a Gantt chart and a PERT/CPM network. Forward and backward passes, the critical path and slack calculations are almost certain on the exam.
- Week 5Problem Discovery, Requirements Discovery, Requirements Analysis
- Requirements determination: types, techniques, qualityThe difference between functional and nonfunctional requirements, interviews, JAD, questionnaires, observation and document analysis, and the properties of a good requirement. The exam asks 'classify this requirement' and 'which technique' questions.
- Week 6Use Cases and Use Case Diagrams
- Use cases and use case diagramsActor, use case, system boundary, and the include, extend and generalization relationships. On the exam a scenario is given and you are asked to extract the actors and use cases and draw the diagram.
- Week 7Use Case Descriptors
- Use case descriptions: from brief to fully dressedWriting a use case as text: trigger, preconditions, normal flow, subflow, alternate and exception flows. On the exam you are asked to write a use case description from start to finish.
- Week 8Structural Modeling
- Structural modeling: CRC cards, class and object diagramsExtracting classes from text, CRC cards, and attributes, operations, associations, multiplicity, aggregation, composition, generalization and object diagrams in a class diagram. The highest-scoring drawing question on the midterm.
- Week 9Midterm Exam
- Midterm review: weeks 1-8SDLC, feasibility calculations, function points, critical path, requirements, use cases and class diagrams on a single page. Mixed midterm questions at the end.
- Week 10Behavioral Modeling
- Behavioral modeling 1: sequence and communication diagramsObjects exchanging messages in time order to realize a use case: lifelines, activations, message types, alt/opt/loop fragments, and the same information as a communication diagram. On the exam you are asked to draw a sequence diagram for a scenario.
- Behavioral modeling 2: state machine and activity diagramsThe states of an object over its lifetime (state, event, guard, action) and the flow of a process (action, decision, merge, fork, join, swimlane). The exam brings 'draw the state machine for X' or 'activity diagram with swimlanes'.
- Week 11Validating and Evolving Analysis Models
- Verifying and evolving the analysis models: walkthrough, balancing, layersChecking whether the functional, structural and behavioral models are consistent within themselves and with each other (walkthrough, balancing), then factoring, packages and layers to move to design. The exam asks 'what is inconsistent in these models?'.
- Week 12Physical Architecture Layer Design
- Physical architecture layer design: client-server, cloud, nonfunctional requirementsDistributing the four components of an application (data storage, data access, business logic, presentation) onto hardware: server-based, client-based, 2/3/n-tier client-server, cloud (IaaS/PaaS/SaaS); moving from nonfunctional requirements to architecture and the hardware/software specification.
- Week 13Construction: Programming, Documenting and Testing
- Construction: programming management, documentation and testingManaging the coding process, system and user documentation, test levels (unit, integration, system, acceptance), black-box and white-box testing, boundary values and writing test cases. The final brings test case table and test type questions.
- Week 14Post implementation activities
- Installation and afterwards: conversion strategies, change management, maintenanceMoving from the old system to the new one (direct, parallel, pilot, phased), change management and training, system support, the four types of maintenance and the post-implementation review. 'Which conversion strategy' and 'which maintenance type' questions are certain on the final.