|Software Engineering Lab||Learning Schedule|
The objective of this course is to:
- Design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modeling or requirements specification.
- Analyze and model requirements and constraints for the purpose of designing and implementing software systems;
- Evaluate and compare designs of such systems on the basis of requirements of the organizational needs.
At the end of the course student will be able to:
- Apply knowledge of UML, source control, and project management.
- Implementing their project and work with end user.
- Test and document software.
- Work as part of a software team and develop significant projects under a tight deadline.
- Present their work in a professional manner.
- Design and implement complex software solutions using state of the art software engineering techniques.
LIST OF EXPERIMENTS:
- Model your system design using either refined Object Diagrams or Structure Charts depending on whether you are using the Object-Oriented or Function-Oriented approach respectively (ER, Use-Case Class Diagram).
- As you model, you may need to update or refine your earlier assumptions and requirements. It would be expedient if you as-sign a team member to update/refine your preliminary system specification obtained in Experiment 1 while the system design is being worked out by other members’ assigned designer roles.
- How to keep a copy of your system design (one copy is sufficient for each project team). For consistency during implementa-tion, all members should reference the same version of the system design.
- Install RSA software development tool and familiarize yourself with it.
- In the course of the current lab session, you may need to update/refine your preliminary system specification and make changes to your project schedule and/or team organization structure.
- The manpower allocation information in your project schedule. Assign implementation work accordingly and equitably. You may need to reassign roles, e.g. have more programmers, if you are behind schedule though network diagram and indicate properly critical task.
- Create, compile, link and test your assigned objects or modules.
- Complete project schedule using Gantt Chart.
- For small size and complexity of your projects, desk checking and compiling are the best form of static testing (Alpha Test). Alternatively, if you are ahead of schedule and perhaps just for the experience, you may wish to conduct a mock-up of a walk-through or inspection involving your team members and a selected sub-system component.
- Perform dynamic testing (Beta Testing).
- Perform white box testing on individual software components while aggregates (clusters) of software components should progressively be subjected to black box testing. Perform regression tests for completeness, as your aggregates get incrementally larger.
- Make realistic approach of unit testing and integration strategy.