CSCI 265: Fall 2025 Final Exam


Question 1: Evaluating SDLCs [9]

Study the proposed new CSCI 265 team project SDLC outlined below, then discuss its advantages/disadvantages in comparison to this year's SDLC and make any recommendations you see fit to improve the proposal further.

Question 2: Requirements, Design, and Test [9]

Suppose that during testing on your team 265 project in the final phase of this term you had discovered an issue that highlighted a significant flaw in your written requirements.

Furthermore, suppose that this requirements flaw in turn led to the discovery of significant flaws in your design.

And, finally, suppose that subsequent fixes of your requirements and design meant you needed significant changes to your test cases.

Given the chain of suppositions above, describe how your team's processes and division of tasks and roles would deal with addressing the needed changes to requirements, design, testing, and implementation. (If this sequence of events did actually happen for your team in phase 4 then instead describe how your team did actually deal with it.)


Question 3: Automation in team projects [9]

If you or your 265 team wrote and used scripts to automate any aspects of the team project this term, describe those scripts and their use and how you would expand or refine them if time permitted.

If you and your 265 team didn't use any self-written automation scripts in your team project this term, describe the specific aspects of the project for which such automation would be most suitable, outline what the scripts would do and how they would achieve that, and justify your choices.


Question 4: Team version control without github [9]

Suppose you are in the following scenario: Precise git syntax is not required, but appropriate use of terminology regarding clones, pushes, pulls, merges, etc is expected.

Question 5: Bug tracking and reporting [9]

Supposing you could find/request an ideal bug reporting app for people to use in reporting bugs found in your team's 265 project:
(i) Sketch an interface for this app and briefly describe its key features/use.
(ii) Justify your specific choice of data fields/options.


Question 6: Time tracking, estimation, and reporting [9]

Suppose you were tasked with developing a simple tool/app to support CSCI 265 teams in making time estimates for tasks, tracking their time, and providing basic reporting on both the estimates and actual time spent on various aspects of the project.

Outline the key features you would include and why you selected those specific features, and sketch a simple interface to be used by the developers to enter their time spent on tasks.


Question 7: Code inspections and standards [9]

There are conflicting schools of thought on the use of formal code inspections to catch/enforce code standards: Considering this question in the context of a safety-critical system, where lives depend on the quality and correctness of the code, expand the arguments both for and against having the inspectors to catch/enforce code standards.


Question 8: Product deployment and maintenance [9]

Suppose your team project has been completed and has been expanded to be in use by many sites/clients around the world:

Assuming a bug report comes in that identifies a critical flaw in the product, detail the key issues you face with your specific product in identifying and fixing the underlying defect and in distributing the fix to all the people now using the product. Be sure to clearly state any assumptions you make regarding the expanded product and its distribution.

Question 9: Softare profiling [9]

Localizing the root cause of poor performance in a software product can sometimes be quite challenging. Study the descriptions of a software program and associated performance issue below, and list specific steps you would take to try to isolate and identify the root cause of this problem as a prelude to implementing a fix.

Be sure your answer specifically targets this system and issue: vague/generic approaches will not receive better than a passing mark.