ScholarQuill logoScholarQuillUniversity Notes
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
Study Tools
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
Contact
ScholarQuill logo
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
ScholarQuill logoScholarQuillUniversity Notes
Study PortalCOMP3113Software Life Cycle
Ctrl + K
Login
Explore
Search
Semester
Papers
CGPA
    COMP3113

    Human computer interaction

    Progress0 / 51 done
    Topics51
    1Input-Output Channels2Human Memory3Thinking, Reasoning, and Problem Solving4Emotions5Individual Differences6Psychology and Design of Interacting Systems
    7Introduction8Text Entry Devices9Positioning, Pointing, and Drawing10Display Devices11Devices for Virtual Reality and 3D Interaction12Physical Controls, Sensors, and Special Devices13Paper Printing and Scanning14Memory, Processing, and Networks
    15Models of Interaction16Frameworks and HCI17Ergonomics18Interaction Styles19Elements of the WIMP Interfaces20Interactivity21Context of Interaction22Experience
    23Introduction24Paradigms for Interaction
    25Introduction26What is Design27Process of Design28User Focus29Navigation Design30Screen Design and Layout31Iteration and Prototyping
    32Introduction33Software Life Cycle34Usability Engineering35Iterative Design and Prototyping36Design Rationale37Design Rules, Prototyping, and Evaluation Techniques38Task Analysis39Universal Design40User Support41Computer Supported Cooperative Work42Guidelines, Golden Rules, and Heuristics43HCI Patterns44Choosing an Evaluation Method45Requirements of User Support46Applications47Design User Support Systems48Introduction to Groupware, Pervasive and Ubiquitous Applications49Groupware Systems50Implementation of Synchronous Groupware51Ubiquitous Computing
    7 min read
    Topic 33 of 51
    Topic Study Note Illustration
    33

    Software Life Cycle

    The Software Life Cycle (SLC) , often referred to as the Software Development Life Cycle (SDLC) , is a structured framework that outlines the stages or phases...

    Software Life Cycle

    The Software Life Cycle (SLC), often referred to as the Software Development Life Cycle (SDLC), is a structured framework that outlines the stages or phases involved in the development of software systems, from initial concept through to deployment and maintenance. The purpose of the Software Life Cycle is to ensure that software is developed systematically, with clear milestones and processes, to meet both functional and non-functional requirements, such as usability, security, and performance.

    The software life cycle typically consists of several distinct phases, each with its own set of activities and deliverables. The process may vary depending on the software development methodology (e.g., Waterfall, Agile, DevOps), but the core stages generally remain similar across methodologies.


    1. Requirement Gathering and Analysis

    The requirement gathering phase is the first and crucial step in the Software Life Cycle. It involves identifying and documenting the software's functional and non-functional requirements based on the needs of users, stakeholders, and the business.

    • Activities:

      • Stakeholder Interviews: Discussions with clients, users, and other stakeholders to understand their needs and expectations.
      • Surveys and Questionnaires: Collecting feedback from potential users to define the scope of the system.
      • Use Case Analysis: Identifying user stories, workflows, and scenarios in which the system will be used.
      • System Specifications: Writing detailed specifications of what the system should do, including both functional requirements (e.g., features, behaviors) and non-functional requirements (e.g., performance, security, usability).
    • Outcome: A comprehensive Requirements Specification Document that describes the software's expected functionality and constraints. This document serves as the foundation for all future stages of development.


    2. System Design

    Once the requirements are clearly understood, the next phase is system design, where the architecture of the software system is defined. The design phase converts the high-level requirements into a blueprint for building the system.

    • Activities:

      • High-Level Design (Architectural Design): Defining the overall structure of the system, including the system architecture, technology stack, and key components (e.g., databases, servers, user interfaces).
      • Low-Level Design (Detailed Design): Creating detailed designs of individual components, modules, or classes. This may include defining the flow of data, user interface design, algorithms, and database schema.
      • Prototyping: In some cases, a prototype or proof-of-concept is created to validate ideas or design approaches early on.
      • Usability and Interaction Design: If HCI principles are involved, the design phase also includes creating wireframes, UI mockups, and specifying interaction patterns to ensure the system is user-friendly.
    • Outcome: A System Design Document that specifies the architecture, technology stack, user interface, and how different parts of the system will work together. It may also include models such as UML diagrams or entity-relationship diagrams.


    3. Implementation (Coding/Development)

    The implementation phase is where the actual coding of the software occurs. Developers begin translating the design documents into executable code, creating the functionality described in the requirements specification.

    • Activities:

      • Coding: Developers write the code in the chosen programming language(s), ensuring the software implements the designed features and functions.
      • Unit Testing: As the code is developed, developers write and execute unit tests to ensure that each component or module functions correctly in isolation.
      • Version Control: Developers use version control systems (e.g., Git) to manage changes to the codebase, collaborate with other team members, and track progress.
    • Outcome: The software codebase and a suite of unit tests for individual components. At the end of this phase, the core functionality of the software is implemented.


    4. Testing

    Once the software is implemented, it undergoes a series of testing activities to ensure it works as intended, meets user requirements, and is free of bugs. Testing is a critical phase to ensure the software's quality and reliability.

    • Activities:

      • Integration Testing: Testing the interactions between different modules or components to ensure they work together correctly.
      • System Testing: Testing the complete, integrated software system against the requirements specification.
      • Usability Testing: Involves real users interacting with the software to identify usability issues and assess the user experience. This is particularly important in systems that rely on HCI principles.
      • Performance Testing: Assessing the software's speed, scalability, and responsiveness under different conditions.
      • Security Testing: Ensuring the software is secure against common vulnerabilities and attacks.
      • Bug Fixing: Any issues identified during testing are tracked and fixed by developers.
    • Outcome: A test report outlining the testing activities, results, and any remaining issues. Once testing is complete, the software is considered "ready for deployment."


    5. Deployment

    The deployment phase involves the release of the software to its intended users. This can occur in stages (e.g., beta releases, gradual rollouts) or as a full-scale launch.

    • Activities:

      • Release Planning: Deciding on the method of deployment (e.g., cloud, on-premises) and creating deployment plans.
      • Installation and Configuration: Preparing the system environment (e.g., setting up servers, configuring databases) and installing the software for users.
      • User Training and Documentation: Providing training to users on how to use the system and offering documentation for support.
      • Go-Live: Making the system live and available to users.
    • Outcome: The software is now live and being used by the target audience. The system should be continuously monitored for performance, errors, and user feedback.


    6. Maintenance

    After the software is deployed, the maintenance phase begins. This phase ensures the software remains functional, up-to-date, and meets the ongoing needs of users. It also involves correcting defects and enhancing the software with new features.

    • Activities:

      • Bug Fixing: Addressing any issues or bugs that arise after deployment.
      • Upgrades and Updates: Enhancing the software with new features, functionalities, or improvements based on user feedback or changing business requirements.
      • Performance Monitoring: Monitoring the software’s performance, ensuring it operates as expected, and making adjustments when needed.
      • Technical Support: Providing ongoing technical support and customer service to resolve user issues.
    • Outcome: A sustained, operational software product that is continuously improved based on evolving user needs and changing technology. Regular updates and bug fixes ensure the software stays functional and relevant over time.


    Common Software Development Methodologies

    While the core phases of the Software Life Cycle remain similar, different development methodologies approach the SDLC in different ways. Some of the most common methodologies include:

    • Waterfall: A linear and sequential approach where each phase must be completed before moving on to the next. This approach works well for projects with well-defined requirements but is less flexible when changes arise.

    • Agile: An iterative and incremental approach where development occurs in small cycles (sprints). Each cycle involves planning, development, testing, and review, with frequent adjustments based on feedback. Agile is ideal for projects with evolving requirements and emphasizes collaboration and flexibility.

    • DevOps: A methodology that integrates development and operations teams to streamline software delivery and improve collaboration between traditionally separate roles. It emphasizes continuous integration and continuous delivery (CI/CD) practices to automate and accelerate deployment.

    • Spiral: A hybrid approach that combines iterative development with a focus on risk assessment. The project evolves through multiple cycles of planning, development, testing, and review, with a focus on identifying and mitigating risks early.


    Conclusion

    The Software Life Cycle (SLC) is a systematic approach to software development that ensures software is built, tested, deployed, and maintained in an efficient and organized way. By following the various stages of the SLC, developers can create high-quality software that meets user needs, performs well, and remains relevant over time. The flexibility to adapt to different methodologies (e.g., Agile, Waterfall, DevOps) allows teams to tailor the process to the specific needs and constraints of each project, ensuring the best possible outcomes for users and stakeholders.

    ← Previous topic 32
    HCI in Software Process: Introduction
    Next topic 34 →
    Usability Engineering

    Past Papers

    Open this section to view and download past papers

    Click on Show Past Papers to load available exam papers.

    Reading Progress
    0%
    7mremaining
    1.3kwords
    Intermediatelevel
    On This Page

    No headings found

    Study Toolkit

    Subject Portal

    Human computer interaction