Summary

This document provides an overview of the software development life cycle (SDLC), including planning, analysis, design, development, and testing phases. It discusses various methodologies, approaches, and tools involved in creating software applications.

Full Transcript

TOPIC 1: SYSTEM LIFE CYCLE SYSTEM LIFE CYCLE ▪ The design phase is a key milestone in software ▪ Is a conceptual model used in PM that describes development, marking the shift from concepts to the stages involved in an IS Development Project....

TOPIC 1: SYSTEM LIFE CYCLE SYSTEM LIFE CYCLE ▪ The design phase is a key milestone in software ▪ Is a conceptual model used in PM that describes development, marking the shift from concepts to the stages involved in an IS Development Project. real outputs. ▪ From an initial Feasibility Study to the maintenance of the completed application. FUNDAMENTAL ASPECTS DEVELOPERS COVER: ▪ System Interface 7 PHASES OF SDLC ▪ User Interface PLANNING / INITIATION ▪ Security DEFINITION: the foundation of the whole SDLC ▪ Databases scheme. ▪ Network and its requirements PURPOSE: to clearly define the project's target and ELEMENTS TO CONSIDER IN THE DESIGN TO assess how to solve specific problems using software MITIGATE RISK: solutions. ▪ Identifying potential risks OBJECTIVES: ▪ Conducting a security risk assessment ▪ Problem Identification ▪ Formulating a strategy to move current data to the ▪ Resource and Cost Estimation new system ▪ Requirement Gathering DEVELOPMENT ▪ Setting Expectations & Goals DEFINITION: referred to as the coding stage, it is ACTUAL PROCESS: where coding begins to take place or where teams ▪ Outline of OBJECTIVES write the actual code. ▪ Drawing a rough plan OBJECTIVES: ▪ Pre-analysis using AI simulation tools ▪ Develop Functional, Efficient, and User-Friendly ▪ Resource estimation and allocation Software ▪ Setting of deadlines and time frames ▪ Utilize Appropriate Programming Language PRO TIP: A GOOD OUTLINE ▪ Adhere to SDD and Coding Guidelines ▪ A good outline can catch problems before they ACTUAL PROCESS: affect development. Coding ANALYSIS / FEASIBILITY Writing code as instruction. DEFINITION: determines the project’s feasibility Debugging (technical, operational, and economic aspects). Identifying and fixing errors. PURPOSE: to translate high-level plans and goals into METHODOLOGIES: actionable ideas and bridge the gap between project1. Traditional Approach conception and actual development. Highly structured approach focused on coding. OBJECTIVES: Example: ▪ Analyze the system requirements Waterfall ▪ Assess project feasibility Agile ACTUAL PROCESS: Spiral ▪ Gather information Iterative System & Client requirements V-Model Market research Big Bang ▪ Analyzation 2. Modern Approach Evaluate existing prototype/s ▪ Low-code / no-code ▪ Assessment of project’s feasibility Tools for building software with minimal or without coding. FINAL OUTPUT: ▪ Software Requirements Specification (SRS) ▪ AI-assisted development Document Automate parts of the coding process using AI. Detailed description of the system’s PURPOSE, TESTING features, and functionalities, acting as a guide for DEFINITION: a critical stage aimed at ensuring that the development team. the software application meets specified requirements DESIGN and functions correctly. DEFINITION: is centered on visualization. PROCESSES: ▪ The systems architect is responsible for designing ▪ Bug detection the system and making the first software prototype ▪ Vulnerability testing to show how it should look and function. ▪ Defect and error identification DEFINITION: A linear, structured, and sequential BEST PRACTICES: ▪ Start Testing Early (Shift-Left Testing) approach to software development and project ▪ Maintain Clear and Testable Requirements management where each stage has its separate ▪ Utilize Code Analysis Tools project plan and is strictly related to the previous and TYPES OF TESTING: next steps 1. Unit Testing ABOUT THIS MODEL: testing individual components for expected ▪ Used in projects with long timelines where there are functionality. well-defined goals and project requirements with 2. Integration Testing little room for errors ensuring that different modules work together ▪ Considers that one phase can be started after the seamlessly. completion of the previous phase with extensive 3. System Testing documentation evaluating the complete system to verify ▪ Shows a high degree of structure and clarity but is rigid, with no feedback path. compliance with functional and non-functional requirements. ITERATIVE MODEL 4. Acceptance Testing DEFINITION: Combines the sequential steps of the validating the software against user expectations Waterfall Model with the flexibility of iterative design which allows for improvements and changes to be IMPLEMENTATION made at each stage instead of waiting until the end of DEFINITION & PURPOSE: This stage starts after user project. acceptance and testing of the system. The designed ABOUT THIS MODEL: system is brought to life and put into operation. The ▪ Repeating development cycles where each system is set up to support the planned business iteration builds upon the previous one operations ▪ Gets early feedback from users ▪ Often favored for its adaptable flow where changes OBJECTIVES: are comparatively easier to accommodate ▪ successfully deploy the newly developed system ▪ Can be resource-consuming due to multiple ▪ deliver a reliable, efficient, and user-friendly iterations system. SPIRAL MODEL PROCESSES: DEFINITION: Combines the Waterfall and Iterative ▪ System Deployment models. It uses repeated cycles or loops to refine ▪ User Onboarding ▪ Performance Evaluation software progressively, making it ideal for complex ▪ Production Readiness projects with evolving requirements and high uncertainty. MAINTENANCE 4 PHASES OF SPIRAL DEFINITION & PURPOSE: The developers begin Planning practicing any activities required to handle issues Determine OBJECTIVES reported by end-users as part of the maintenance Define goals, explore alternatives, and identify mode. Developers are responsible for implementing constraints. any changes that the software might need after Risk Analysis deployment. Identify and resolve risks OBJECTIVES: Foresee challenges and plan mitigation ▪ address issues, improve performance, and adapt Development the system to changing requirements after it has Testing been deployed. Build strategies and implement solutions. PROCESSES: Evaluation ▪ Continuous Monitoring Plan the next iteration ▪ Maintenance Activities Review OUTCOMEs and get feedback. ▪ Corrective Maintenance: Addressing issues ▪ Adaptive Maintenance: Modifying the system V-MODEL ▪ Perfective Maintenance: Enhancing the system's DEFINITION: Short for Verification and Validation performance Model; is a variation of the Waterfall Model where each ▪ Ongoing Support phase has a corresponding testing phase. This 6 BASIC TYPES OF SDLC MODELS model’s approach minimizes major issues by WATERFALL MODEL addressing bugs at each stage. VERIFICATION PHASE AGILE MODEL ▪ Business requirement analysis DEFINITION: The most popular SDLC methodology ▪ System Design among developers. It strongly focuses on collaboration ▪ Architecture Design between cross-functional teams and the ▪ Module Design implementation of small changes based on regular ▪ Coding Phase client feedback. VALIDATION PHASE ▪ Unit Testing PHASES ▪ Integration Testing ▪ Plan ▪ System Testing ▪ Design ▪ Acceptance Testing ▪ Develop ▪ Test BIG BANG MODEL ▪ Deploy DEFINITION: It’s the simplest SDLC model because ▪ Review it doesn’t require any planning. This model combines ▪ Launch the efforts, time, and resources to build a product per METHODS customer requirements. However, it may happen that ▪ Scrum the end product might not meet the actual needs. ▪ Crystal ▪ Kanban CAN BE PHASED OUT IN 3 POINTS: ▪ Extreme Programming (XP) ▪ Integrate each individual’s modules to give a unique ▪ Dynamic Software Development Method (DSDM) integrated overview. ▪ Lean Software Development ▪ Test each module separately to identify any error or ▪ Feature Driven Development (FDD) defects ▪ If any error found then separate that module and BENEFITS OF SYSTEM LIFE CYCLE identify the cause of the error ▪ Enhances Product Quality WHEN TO USE IT AND WHERE NOT TO: ▪ Improves Project Management ▪ Developing a project ▪ Manages Risk Effectively ▪ Newer requirements ▪ Enhances Communication and Collaboration ▪ Changing requirements ▪ Enables Efficient Resource Utilization ▪ No clarification about the user’s expectations. ▪ Flexibility and Adaptability ▪ No strict guidelines on product release or delivery date. TOPIC 2: SYSTEM ANALYSIS AND DESIGN SYSTEM ANALYSIS AND DESIGN ▪ Develop project schedule and budget. ▪ A structured approach used to develop, maintain, SYSTEM ANALYSIS (ANALYSIS PHASE) and improve information systems within an DEFINITION: Understand current system and define organization. requirements for new system. SYSTEM ANALYST OUTCOME: Detailed requirements specification. ▪ Plan, develop, and maintain information systems. ▪ Manages IT projects and/or report to other KEY ACTIVITIES: department ▪ Identify business needs. BENEFITS OF SYSTEMS ANALYSIS AND DESIGN ▪ Gather and document user requirements. ▪ Better Decision-Making ▪ Analyze existing systems and processes. ▪ Improved Efficiency ▪ Identify system boundaries and interfaces. ▪ Cost-Savings ▪ Create process models and data flow diagrams. ▪ Alignment to Business Goals REQUIREMENT GATHERING TECHNIQUES 5 THE SYSTEMS DEVELOPMENT LIFE CYCLE ▪ Interviews (SDLC) ▪ Surveys Planning (Planning Phase) ▪ Observation DEFINITION: Define project scope, goals, and ▪ Document Analysis ▪ Joint Development feasibility. ▪ Prototyping KEY ACTIVITIES: ▪ Identify business needs. SYSTEM DESIGN (DDESIGN PHASE) ▪ Conduct preliminary investigations. DEFINITION: Create a blueprint for the new system. ▪ Perform feasibility study (technical, economic, OUTCOME: Detailed system design specification. operational). KEY ACTIVITIES: CHARACTERISTICS ▪ Develop system architecture. ▪ Graphical Representation ▪ Design user interfaces. ▪ Problem analysis ▪ Create database schema. ▪ Abstraction ▪ Define security measures. ▪ Hierarchy ▪ Plan system integration. ▪ Data Flow ▪ Ease of understanding USER INTERFACE DESIGN PRINCIPLES ▪ Modularity ▪ Consistency ▪ Accessibility ENTITY-RELATIONSHIP DIAGRAMS (ERD) ▪ Simplicity DEFINITION: A flowchart that shows relationships ▪ Efficiency between entities (people, objects, concepts) in a ▪ Feedback system. ▪ Error Prevention USED IN: Designing and debugging relational IMPLEMENTATION databases in software, business, education, and DEFINITION: Build, test, and deploy the new system. research. OUTCOME: Fully functional and operational system. UNIFIED MODELING LANGUAGE (UML) KEY ACTIVITIES: DEFINITION: Standard notation for object-oriented ▪ Develop software components. analysis and design. ▪ Conduct unit, integration, and system testing. Examples: ▪ Perform user acceptance testing ▪ Train end-users. ▪ Class Diagram ▪ Deploy the system. ▪ Use Case Diagram ▪ Sequence Diagram SOFTWARE DEVELOPMENT APPROACHES ▪ Activity Diagram OPERATION AND MAINTENANCE USE CASE DIAGRAMS (MAINTENANCE PHASE) ▪ Visual representation of system functionality from DEFINITION: Ensure ongoing system functionality the user’s perspective, highlighting how users and relevance. (actors) interact with the system. ▪ Corrective ACTIVITY DIAGRAMS ▪ Adaptive ▪ Visualize workflows and business processes, ▪ Perfective showcasing the sequence of activities, decision ▪ Preventive points, and flow of control within a system. KEY ACTIVITIES: ▪ Monitor system performance. DATA DICTIONARIES ▪ Fix bugs and address issues. ▪ A structured receptacle for data elements in a ▪ Implement system updates and enhancements. system. It stores descriptions of all data elements in ▪ Provide user support. data flow diagrams. These data elements may include processes, details and DEFINITIONs of PROJECT MANAGEMENT IN SYSTEMS ANALYSIS data flows, data stores and data within those data AND DESIGN stores. KEY COMPONENTS: ▪ Scope management DECISION TREES ▪ Time management ▪ Assist businesses with defining complex ▪ Cost management relationships and decisions in an organized ▪ Quality management diagram. It illustrates the relationship of each ▪ Risk management condition to its action, which allows analysts to consider decision sequences and identify the best TOOLS: one. ▪ Gantt charts ▪ PERT diagrams DECISION TABLES ▪ Project Management Software ▪ Improves the general understanding of a complex logical relationship by providing a matrix of rows IMPORTANCE: and columns for defining an issue and possible ▪ Ensures project stays on track and meets actions. objectives PSEUDOCODES 9 TOOLS AND TECHNIQUES IN SYSTEMS ▪ Uses structural rules of a normal programming ANALYSIS language, but professionals use it for human DATA FLOW DIAGRAMS (DFD) interpretation instead of machine interpretation. DEFINITION: Visualize data movement within a system. DATABASE DESIGN IN SYSTEMS ANALYSIS COMPLIANCE WITH LAWS AND REGULATIONS 1. Conceptual design ▪ Adheres to legal frameworks like data protection 2. Logical design and privacy laws. 3. Physical design ▪ Avoids legal repercussions and upholds organizational reputation. 6 SYSTEM SECURITY AND CONTROLS AUTHENTICATION STAKEHOLDER INTERESTS AND IMPACT DEFINITION: Process of verifying the identity of a user ▪ Balances competing interests among end-users, or system before granting access to resources management, and teams. METHODS: ▪ Promotes fairness, transparency, and ▪ Password-based accountability. ▪ Biometric-based ▪ Two-Factor Authentication (2FA) CONSEQUENCES AND UNINTENDED EFFECTS ▪ Token-based ▪ Considers broader impacts on society, individuals, and the environment. AUTHORIZATION ▪ Mitigates risks like algorithmic biases and job DEFINITION: The process of granting users access displacement. rights based on their identity and role within the system. PROFESSIONAL INTEGRITY AND REPUTATION IMPLEMENTATION: ▪ Upholds high ethical standards and ▪ Role-Based Access Control (RBAC) professionalism. ▪ Attribute-Based Access Control (ABAC) ▪ Builds trust and fosters long-term relationships in ▪ Policy-Based Access Control the industry. ENCRYPTION 5 EMERGING TRENDS IN SYSTEMS ANALYSIS DEFINITION: Protecting data confidentiality AND DESIGN TYPES: CLOUD COMPUTING ▪ Symmetric Encryption ▪ Shift towards cloud-based systems and services ▪ Asymmetric Encryption IMPLICATIONS IN SYSTEMS ANALYSIS AND DESIGN: AUDITING Scalability DEFINITION: Tracking system activities and changes Cost Efficiency FEATURES: Collaboration ▪ Log Management ▪ Intrusion Detection ▪ Audit Trails INTERNET OF THINGS (IOT) ▪ Integration of physical devices with information DISASTER RECOVERY systems DEFINITION: Planning for system restoration after IMPLICATIONS IN SYSTEMS ANALYSIS AND DESIGN: catastrophic events Data Integration COMPONENTS: Automation ▪ Backup Systems ▪ Recovery Plans User Interfaces ▪ Redundancy ARTIFICIAL INTELLIGENCE AND MACHINE COMPLIANCE LEARNING DEFINITION: Adhering to relevant laws and ▪ Enhancing system capabilities and decision- regulations (e.g., GDPR, HIPAA) making EXAMPLES OF REGULATIONS: IMPLICATIONS IN SYSTEMS ANALYSIS AND ▪ GDPR (General Data Protection Regulation) DESIGN: ▪ HIPAA (Health Insurance Portability and Enhanced Decision-Making Accountability Act) Personalization ▪ PCI DSS (Payment Card Industry Data Security Automation of Repetitive Tasks Standard) BIG DATA 5 ETHICAL CONSIDERATIONS IN SYSTEMS ▪ Analyzing large volumes of structured and ANALYSIS AND DESIGN unstructured data USER TRUST AND PRIVACY ▪ Ensures sensitive user data is protected. IMPLICATIONS IN SYSTEMS ANALYSIS AND ▪ Builds trust by preventing unauthorized access and DESIGN: misuse. Data Storage and Processing Real-Time Analytics IMPLICATIONS IN SYSTEMS ANALYSIS AND Data Visualization DESIGN Responsive Design MOBILE-FIRST DESIGN User Experience (UX) ▪ Prioritizing mobile device compatibility in system Cross-Platform Compatibility development TOPIC 3: STRUCTURED ANALYSIS METHODOLOGY STRUCTURED ANALYSIS DATA DICTIONARY ▪ It utilizes graphical diagrams to develop and portray DEFINITION: A structured repository of data elements systems specifications in the system wherein, plays an important role in building a database. STRUCTURED ANALYSIS ATTRIBUTES 1. GRAPHICAL (visual representation) 2. HIERARCHICAL (top-down approach) 3. LOGICAL (visual representation) 4. MODULAR (self-contained modules) STRUCTURED ANALYSIS BENEFITS ▪ Improved communication ▪ Early identification of issues ▪ Reduced development time ▪ Enhanced system design 6 STRUCTURED ANALYSIS TOOLS THREE CLASSES OF DATA DICTIONARY DATA FLOW DIAGRAM ▪ Data Elements DEFINITION: Also known as the "bubble chart", DFD ▪ Data Structure is a technique developed by Larry Constantine to ▪ Data Flows and Data Stores express the requirements of a system in a graphical form. TWO ATTRIBUTES OF DATA DICTIONARY Active ELEMENTS OF DATA FLOW DIAGRAM ▪ automatically updates when changes are made to a database's data Passive ▪ typically used for reference PURPOSEs, such as in analytics projects DECISION TREES DEFINITION: A decision tree is a diagram that shows alternative actions and conditions within horizontal tree framework. It depict the relationship of each condition and their permissible actions. LEVEL IN DATA FLOW DIAGRAM Level 0 - Context Diagram provides an overview of the entire system Level 1 - Process Decomposition provides a more detailed view of the system Level 2 - Deeper Dives breaks down the sub-processes identified in the level 1 DFD Level 3 - Increasing Complexity most detailed level of DFD DECISION TABLES STRUCTURED ANALYSIS PROCESS DEFINITION: Presented as a matrix, decision tables MAJOR STEPS consist of rows and columns that are utilized to 1. Studying the current business environment describe complex logical relationships in a precise and 2. Modeling the old logical system easily understandable manner. 3. Modeling a new logical system 4. Modeling a new physical environment 5. Evaluating alternatives 6. Selecting the best design 7. Creating a structure specification 3 STRUCTURED ANALYSIS PROCESS (Techniques from the 3 Orthogonal Views) FUNCTIONAL VIEW DEFINITION: define the work that has been done and the flow of data between things done STRUCTURED ENGLISH DEFINITION: Structured English is a simplified procedural language that uses natural language and logic to describe processes. DATA VIEW DEFINITION: comprises the entity relationship diagram PSEUDOCODE DEFINITION: Pseudocode is a plain-English representation of programming logic that does not conform to any specific programming language. Pseudocode serves as an alternative to flowcharts, DYNAMIC VIEW providing a clear and concise way to outline a DEFINITION: state transition diagrams and defines program’s structure and logic. when things happen and the conditions under which they may happen. DATA MODELLING DEFINITION: The process of creating a visual representation of an organization's data, including what data is collected, how it's related, and how it' it is stored and analyzed BENEFITS ▪ Simplifies the data ▪ Reduce redundancy ▪ Improving data integrity ▪ Enables data sharing ▪ Improves business reports DATA MODELLING HAS: TYPES OF SYSTEM DESIGN PHYSICAL DATA MODEL LOGICAL DESIGN A physical data model specifies how the data Mainly concerned with developing a model of the model will be built in the database. requirements of the system’s users in a form that is LOGICAL DATA MODEL easy to understand. A data model that provides a detailed, structured KEY ELEMENTS: description of data elements and the connections ▪ Inputs between them. ▪ Outputs ▪ Data Stores INPUT AND OUTPUT DESIGN ▪ Data Flow INPUT Input design is the process of converting raw data from PHYSICAL DESIGN the users into computer-based format. It acts as the Concerned with the technical aspect, it focuses on the connector between the information system and the tangible equipment, the programs, network facilities, user. and other physical components of system integration. KEY STEPS: EXAMPLES ▪ Specify ▪ Keyboard and Mouse ▪ Plan ▪ Punch Cards ▪ Devise ▪ Barcode Scanner ▪ Update ▪ Digital Pens ▪ Optical Character Recognition/Reader ARCHITECTURAL DESIGN ▪ Web Camera Refers to high-level design that focuses on the design ▪ Magnetic Ink Character Recognition of system architecture and sees the total look of the system as it unveils the aims and uppermost layout of OBJECTIVES the system. ▪ To design data entry and input procedures KEY FOCUS: ▪ To reduce input volume ▪ Structure ▪ To design source documents for data capture or ▪ Behavior devise other data capture methods ▪ To design input data records, data entry screens, DETAILED DESIGN user interface screens, etc. Process of further breaking down each system module ▪ To use validation checks and develop effective input into detailed specifications. controls KEY FOCUS: ▪ Defining Functions OUTPUT ▪ Data Structure Output design refers to the systematic approach of ▪ Interdependencies defining, formatting, and delivering information generated by a system to its users. The primary goal CONCEPTUAL DATA MODELLING DESIGN is to ensure the output is effective, meaningful, and Helps system analysts understand the organization’s tailored to the user's needs. data structure from an abstract point of view. This type EXAMPLES of modeling helps to guarantee that the system will ▪ Visual Output Devices answer both existing and future requirements for data. ▪ Audio Output Devices ▪ Physical Output Devices ENTITY RELATIONSHIP MODEL ▪ Data Transmission Output Devices The perspective of looking at the E-R model is in ▪ Touch/Interactive Output Devices relation to how the various entities (real-world items) ▪ Projection and Lighting Devices ▪ Specialized Output Devices interconnect within the system. KEY ELEMENTS: OBJECTIVES ▪ Entity ▪ Provide Accurate and Reliable Information ▪ Relationship ▪ Meet User Requirements ▪ Attributes ▪ Facilitate Decision-Making ▪ Enhance Usability and Accessibility APPLICATIONS OF STRUCTURE ANALYSIS ▪ Support Multiple Formats METHODOLOGY IN INDUSTRIAL ENGINEERING (not included on their ppt)

Use Quizgecko on...
Browser
Browser