Answer Each Of The Following Questions For 2 Points. Submit ✓ Solved

Answer each of the following questions for 2 points. Submi

Question 1: What are the five phases of the SDLC?

The five phases of the Software Development Life Cycle (SDLC) are:

  • Requirements Gathering and Analysis: This phase involves understanding what the users need from the software.
  • Design: In this phase, the architecture and design of the system are planned out based on the requirements.
  • Implementation: The actual coding takes place here, where developers write the software based on the design documents.
  • Testing: This phase identifies any defects or issues before the software goes live.
  • Deployment: The final software is delivered to the user and is made operational.

Question 2: What is the objective of each phase of the SDLC? Describe each objective briefly.

The objectives of each phase in the SDLC are:

  • Requirements Gathering and Analysis: The objective is to gather complete and accurate requirements to ensure that the final product meets user needs.
  • Design: The objective is to create a blueprint for the software, ensuring it is designed to accommodate requirements and expectations effectively.
  • Implementation: The goal is to produce a functional software application by converting design documentation into executable code.
  • Testing: The objective is to validate and verify that the software meets the specified requirements and to identify any defects.
  • Deployment: The goal is to deliver the completed product to the user so that it can be used effectively.

Question 3: What does iteration across SDLC phases (i.e. iterative approach) mean?

An iterative approach in the SDLC means repeating and refining the phases based on feedback and testing results. This allows for enhancements and modifications to be made before the final deployment, resulting in a more robust software product that better meets user expectations.

Question 4: Describe a "technique" you use to make sure you get assignments done on time. What are some “tools” you use with your technique?

A technique I use is time blocking, which involves allocating specific chunks of time to different tasks. Tools I use include digital calendars and task management apps like Trello or Asana to set deadlines and reminders for each task.

Question 5: List any three activities of systems analysis.

Three activities of systems analysis include:

  • Conducting user interviews to gather requirements.
  • Creating data flow diagrams to visualize processes.
  • Assessing system specifications to evaluate current performance against business objectives.

Question 6: What is the difference between functional requirements and non-functional requirements?

Functional requirements specify what the system should do, identifying tasks and functions that must be performed (e.g., user authentication). Non-functional requirements define how the system performs its functions, such as performance, usability, and reliability (e.g., the system should handle 1000 concurrent users).

Question 7: What would you do if you got conflicting answers for the same procedure from two different people you interviewed? What would you do if one was a clerical person and the other was the department manager?

If I received conflicting answers, I would first analyze both perspectives to understand the context. Then, I would seek additional input from other stakeholders or documentation to clarify the correct procedure, ensuring that all voices are considered.

Question 8: What is a use case?

A use case is a description of how a user interacts with a system to achieve a specific goal. It outlines the steps taken by the user and the system response, illustrating the functionalities from the user's perspective.

Question 9: What type of event would be named "Time to produce paychecks"?

This would be classified as a time-based event, often associated with periodic operations or events triggered based on a specific date or interval, educating stakeholders about payroll processing procedures.

Question 10: Draw an entity-relationship diagram, including minimum and maximum cardinality, for the following: The system stores information about two things: cars and owners.

Entity-Relationship Diagram Description

The entity-relationship diagram would include two entities: Car and Owner. The relation would indicate:

  • One Owner can own zero or many Cars (0..*)
  • One Car must have exactly one Owner (1..1)

Attributes:

  • Car Attributes: make, model, year
  • Owner Attributes: name, address

Question 11: Draw a class diagram for the cars and owners described in the previous question including subclasses for a sports car, sedan, and minivan with appropriate attributes.

Class Diagram Description

The class diagram would have a superclass named Car, with subclasses for SportsCar, Sedan, and Minivan, each inheriting attributes like make, model, and year, with additional attributes specific to each subclass as needed.

Paper For Above Instructions

The Software Development Life Cycle (SDLC) is a critical framework in software engineering that outlines the process of developing software applications. Each of the five phases—Requirements Gathering and Analysis, Design, Implementation, Testing, and Deployment—plays a vital role in ensuring that the final product meets user needs and performs as expected.

The first phase, Requirements Gathering and Analysis, is essential because it sets the foundation for the entire project. By engaging with users and stakeholders, developers can identify what functionalities are necessary for the application, thus preventing misunderstandings later in the process (Sommerville, 2016).

Next, in the Design phase, technical specifications are developed to meet the requirements identified earlier. This involves creating diagrams and documents that detail how the software will function and interact with users (Pressman, 2014). This phase is crucial, as poor design decisions can lead to challenges in later stages.

Following the Design phase, the Implementation phase involves actual coding. Developers take the designs and convert them into a functional software product. This phase requires that developers adhere to coding standards to ensure maintainability and quality (McConnell, 2004).

Testing is the fourth phase, where quality assurance teams validate the software against the requirements. This phase is vital to identify and rectify defects before users interact with the software. Effective testing ensures reliability and enhances user satisfaction (Beizer, 1995).

Finally, the Deployment phase is when the software is delivered to users and becomes operational. This requires careful planning to ensure that users transition smoothly to the new system, which may also include training and support (Boehm, 1988).

Iteration across SDLC phases means that feedback is incorporated throughout the process, allowing for continuous improvement. For instance, if during the Testing phase, developers discover issues, they may need to revisit the Design or Requirements phases to make necessary adjustments (Schwalbe, 2015). This iterative approach is advantageous as it leads to a higher quality final product that is better aligned with user needs.

In terms of personal productivity techniques to complete assignments on time, time blocking has proven effective. By scheduling specific periods dedicated to working on particular tasks, I find it easier to maintain focus and manage time effectively. Tools such as digital calendars and project management apps help keep track of deadlines and deliverables (Allen, 2001).

Systems analysis is a multi-faceted process, with activities that include gathering user requirements, creating data flow diagrams, and evaluating existing systems. These activities are integral to formulating a solid foundation for software development (Dennis et al., 2018).

The distinction between functional and non-functional requirements is significant. Functional requirements outline what a system must do, while non-functional requirements establish how the system performs its functions. Both are critical to developing a software product that meets user expectations (Robertson & Robertson, 2012).

In interviews, conflicting answers from different stakeholders can be challenging. My approach is to seek clarity through additional interviews or by consulting documentation. This ensures a comprehensive understanding of the processes involved, especially when the roles of individuals vary substantially, as in the case of clerical staff versus management (O'Neill, 2007).

Lastly, a use case effectively describes user interaction with a system, giving a clear understanding of requirements and functionalities. This is essential for guiding the design and development processes (Cockburn, 2001). Events like "Time to produce paychecks" are categorized as time-based events that are triggered through defined schedules.

References

  • Allen, D. (2001). Getting Things Done: The Art of Stress-Free Productivity. Penguin Books.
  • Beizer, B. (1995). Software Testing Techniques. Dreamtech Press.
  • Boehm, B. (1988). A Spiral Model of Software Development and Enhancement. ACM SIGSOFT Software Engineering Notes.
  • Cockburn, A. (2001). Writing Effective Use Cases. Addison-Wesley.
  • Dennis, A., Wixom, B. H., & Roth, R. M. (2018). System Analysis and Design. John Wiley & Sons.
  • McConnell, S. (2004). Code Complete: A Practical Handbook of Software Construction. Microsoft Press.
  • Pressman, R. S. (2014). Software Engineering: A Practitioner's Approach. McGraw-Hill.
  • Robertson, S., & Robertson, J. (2012). Mastering the Requirements Process. Addison-Wesley.
  • Schwalbe, K. (2015). Information Technology Project Management. Cengage Learning.
  • Sommerville, I. (2016). Software Engineering. Pearson.