CS 415 Software Engineering
This course covers the fundamentals of software engineering with a focus on the software lifecycle and the achievement of the required match between software requirements and the resulting product and processes.
They will be able to deal with the project management associated with developing a moderate to large software development project.
Students will be able to
- Gather and document requirements for software from a client
- Design and document the architecture
- Develop testing strategies
- Estimate project timelines and project management tasks
Topics covered include requirements, specification, design, quality assurance and testing, process, as well as tools and environments. Other topics include software project and risk management, and ethical and professional responsibility.
- Requirement Discovery Preparation: All member should identify a user wish list that will make the application useful for target users. That means there will be 8 ideas the group can discuss about. Output: discuss the wish list and narrow it down to two wishes
- Requirement Analysis Every student should write a scenario for the user wishes identified by the group. From the scenario, identify actors, functional requirement, non functional requirement, data entity, test cases, risk,etc
- Requirement Specification and Assign Requirement Preparation: All group members should finish the requirement analysis and bring to the group. Each student should read the software specification. Output: discuss the functional requirements identified from the analysis. Remove overlaps and select the priority functional requirements to meet the user’s wishes. Organize the specification into one document and submit as a group to software engineering class. The group should assign priority requirement to members for implementation.
- Preparation to Implement One group member should create a git hub public repository and add group members to the repository as contributors. The name of the repository should follow the template <ash-sweb-2016-groupx>. The student in charge should upload a skeleton code to the repository as master branch. Others group members should clone the repository to their personal laptop and create a branch to implement one of the requirement assigned.
- Software Model Preparation: Through the two course you will go through an exercise to model software. Using this skills, every student should create a class diagram, component diagram, sequence diagram, activity diagram based on the requirement assigned. Note that at this point you have done class diagram and activity diagrams for your web tech assignment and software engineering assignment. Output: The group should discuss and arrive at a decision on collection of classes, and components that will be used to be used to build the application. The models by group
- Testing and Documentation: The following have to be done while implementation and they should not be after thoughts
- Each group member has to write automated unit testing for the code he or she is writing. The result of the unit tests should be documented and submitted along the code.
- Each group member has to test implementation of other group members as professional and document the observation and submit a report as an issue report through git. The write up has to be professional and technical.
- Each group member has to write a wiki page for the requirement implemented on git hub.
- An API documentation should be generated using documentor chosen.
- Prerequisites: Programming 2 / Programming for Computer Science ; Computer Programming for Engineering ; Web Technologies ; Database Management