CC 106 Module 2 [Student Handout]-compressed.pdf
Document Details
Uploaded by CrisperWhistle9014
Full Transcript
# CC 106 Application Development and Emerging Technologies ## Course Overview - **University:** Pangasinan State University - **Campus:** Urdaneta Campus - **College:** College of Computing - **Department:** Information Technology Department - **Program:** Bachelor of Science in Information Techno...
# CC 106 Application Development and Emerging Technologies ## Course Overview - **University:** Pangasinan State University - **Campus:** Urdaneta Campus - **College:** College of Computing - **Department:** Information Technology Department - **Program:** Bachelor of Science in Information Technology - Specialization/Major: Web and Mobile Technologies ## Course Information - **Course:** CC 106 Application Development and Emerging Technologies - **Credit Units:** 2/1 - **Semester:** Semester 1, AY 2024-2025 - **Total Hours:** 90 - **Pre-Requisite:** SAD 102 System Analysis and Design; IM 102 Advanced Database Systems - **Co-Requisite:** None ## Course Description This course provides a comprehensive introduction to the field of application development and emerging technologies. The course covers the fundamental concepts of application development, including software development processes, methodologies, and project management. Students will explore various software platforms, frameworks, and architectures, while also gaining hands-on experience with tools used in the development lifecycle. The course also explores emerging technologies, understanding their applications and potential impact on the future of software development. ## Course Outcomes | Code | Outcome | SDG Alignment | |---|---|---| | CO1 | Demonstrate a solid understanding of the software development lifecycle and its various methodologies. | Industry, Innovation, and Infrastructure (SDG 9) | | CO2 | Apply effective project management techniques to plan, execute, and deliver software projects efficiently. | Industry, Innovation, and Infrastructure (SDG 9) | | CO3 | Utilize emerging technologies, such as artificial intelligence, big data analytics, and cloud computing, to create innovative software solutions. | Industry, Innovation, and Infrastructure (SDG 9) | | CO4 | Develop software applications that are secure, reliable, and maintainable. | Industry, Innovation, and Infrastructure (SDG 9) | | CO5 | Collaborate effectively with team members to deliver successful software projects. | Industry, Innovation, and Infrastructure (SDG 9) | ## Faculty Information ### Instructors - **Mr. Joshua C. Reyes** - **Designation:** Instructor 1 - **Email Address:** [email protected] - **Consultation Schedule:** Thursday, 1:00 PM to 5:00 PM - **Office Location:** COC Office, 2/F Academic Building 1 - **Contact Number:** 09095959442 - **Facebook Account:** facebook.com/meetserjc - **LinkedIn Account:** linkedin.com/in/meetjcreyes ## Contents - Course Overview - Module 2 Software Development Phases - Unit 1: Overview of Software Development Phases - Unit 2: Requirements Engineering - Software Requirement - Definition of a Requirement - Structure of a Requirement - Anatomy of a Good Requirement - Types of Requirements Specifications - User Requirements - System Requirements - Readers of the Requirements Specification - Classifications of System Requirements - Functional Requirements - Non-Functional Requirements - Types of Non-Functional Requirements - Metrics for Specifying Non-Functional Requirements - Definition of Requirements Engineering - Process of Requirements Engineering - Activities in the Requirements Engineering - Requirements Elicitation - The Requirements Elicitation and Analysis Process - Requirements Elicitation Techniques - Interviewing - Observation or Ethnography - Requirements Specification - User Requirements - System Requirements - Notations for Writing System Requirements - Natural language sentences: - Structured natural language: - Graphical notations: - Mathematical specifications: - Requirements Validation - Different Types of Checks - Validity checks: - Consistency checks: - Completeness checks: - Realism checks: - Verifiability checks: - Software Requirements Document (SRD) - Users of a Requirements Document - The Structure of a Requirements Document - Unit 3: System Modelling - System Modelling - The Unified Modeling Language (UML) - Structure Diagrams - Class Diagram - Object Diagram - Package Diagram - Composite Structure Diagram - Component Diagram - Manifestation Diagram - Deployment Diagram - Network Architecture Diagram - Profile Diagram - Behavior Diagrams - Use Case Diagram - Information Flow Diagram - Activity Diagram - State Machine Diagram - Behavioral State Machine Diagram - Interaction Diagram - Sequence Diagram - Communication Diagram - Timing Diagram - Interaction Overview Diagram - A Practical Approach in Creating UML Diagrams - Written Requirements - Use Case Diagrams - Sequence Diagrams - Class Diagram - UML Tools - Examples of UML Tools - IBM Rational Rose - Lucidchart - Microsoft Visio - Visual Paradigm - Enterprise Architect - StarUML - Unit 4: Design - Software Design - Activities in the Design Process - Architectural Design - Database Design - Interface Design - Component Design - Architectural Design - Architectural Views - Logical view - Process view - Development view - Physical view - Architectural Patterns - MVC (Model-View-Controller) - Pattern name - Description - When Used - Advantages - Disadvantages - Layered architecture - Pattern name - Description - When Used - Advantages - Disadvantages - Repository - Pattern name - Description - When Used - Advantages - Disadvantages - Client-Server - Pattern name - Description - When Used - Advantages - Disadvantages - Pipe and filter - Pattern name - Description - When Used - Advantages - Disadvantages - Database Design - Types of Databases - Hierarchical Databases - Network Databases - Object-Oriented Databases - Relational Databases - Cloud Databases - Centralized Databases - Personal Databases - Operational Databases - NoSQL Databases - Interface Design - Categories of UI Elements - Input controls - Navigational elements - Informational components - Containers - Types of UI Design - Graphical User Interface (GUI) - Command-Line Interface (CLI) - Natural Language Interface (NLI) - Menu-Driven Interface - Unit 5: Component Design - Component Design - Characteristics of Component-Based Design - Modularity - Reusability - Interoperability - Encapsulation - Scalability - Types of Components - UI Components - Service Components - Data Components - Infrastructure Components - Integration Components - Reusable Components - Unit 6: Software Design Document (SDD) - Software Design Document (SDD) - The Structure of a Design Document - Introduction - System Overview - Design Constraints and Assumptions - Architectural Design - Detailed Design - Data Design - Interface Design - Error Handling and Recovery - Security Considerations - Performance Considerations - Design Verification - Appendices - Unit 7: Implementation - Characteristics of a Good Implementation - Readability - Maintainability - Performance - Traceability - Correctness - Completeness - Programming Style and Coding Guidelines - Naming - Separating Words and Capitalization - Indentation and Spacing - Function/Method Size: - File-Naming Issues: - Particular Programming Constructs: - Implementation Practices - Debugging: - Assertions and Defensive Programming: - Performance Optimization: - Refactoring: - Code Reuse: - Unit 8: Testing - The Purposes of Testing - To find defects - To assess software quality - Verification and Validation (V&V) - Steps Involved in Testing - Plan tests - Perform tests - Document test results - Classes of Testing - Black-Box Testing - White-Box Testing - Stages of Testing - Development testing - Release testing - User testing - Development Testing - Stages of Development Testing - Unit testing - Component testing - System testing - Release Testing - Approaches to Release Testing - Requirements-based testing - Scenario testing - Performance testing - User Testing - Types of User Testing - Alpha testing - Beta testing - Acceptance testing - Unit 9: Software Test Document (STD) - The Structure of a Test Document - Introduction - Test Items - Features to Be Tested - Features Not to Be Tested - Test Strategy - Test Criteria - Test Deliverables - Testing Tasks - Environmental Needs - Responsibilities - Schedule - Risks and Contingencies - Approvals - Unit 10: Deployment - Software Deployment - Software Deployment Activities - Getting the software to customers - Creating installation packages - Providing documentation - Installation - Unit 11: Software Releases - Software Releases - Unit 12: Software Maintenance - Software Maintenance - Types of Software Maintenance - Fault Repairs - Environmental Adaptation - Functionality Addition - Maintenance Release - The types of maintenance releases include: - Patches - Service Packs - Upgrades