The document discusses various roles and stages in the software development lifecycle, including:
1) The project manager directs and monitors all aspects of the project. Systems analysts understand client needs and convey them to developers. Programmers implement the solution.
2) Analysis involves understanding client requirements. Design develops a plan for the new system. Implementation converts the design into executable code.
3) Testing and documentation are also important stages to ensure quality and usability of the final software product.
SWE-401 - 12. Software CASE Tools Overviewghayour abbas
CASE (Computer Aided Software Engineering) tools automate various stages of the Software Development Life Cycle (SDLC) and are used by software engineers, project managers, and analysts. There are different types of CASE tools that can be used for activities like documentation, project management, analysis, design, programming, testing, and maintenance. CASE tools provide benefits like accelerated development, reduced errors, and improved collaboration through features like centralized repositories and version control.
SWE-401 - 4. Software Requirement Specifications ghayour abbas
The document defines a Software Requirements Specification (SRS) as a formal report that lays the foundation for software engineering activities by eliciting and analyzing all system requirements. An SRS should have several key characteristics, including being correct, complete, consistent, unambiguous, modifiable, verifiable, and traceable. It should also be structured, concise, written from a black-box perspective, demonstrate conceptual integrity, and contain requirements that can be verified. The purpose of an SRS is to formally represent the desired software system and allow customers to review that the system meets their needs.
The document provides details for performing a system analysis for a software engineering project. It outlines the following steps:
1. Introduction including purpose, intended audience, project scope.
2. Overall description of the product including perspective, features, user classes, operating environment, and design/implementation constraints.
3. Functional requirements organized by user class/feature including descriptions, conditions, business rules.
4. External interface requirements including user interfaces, hardware interfaces, software interfaces, communications interfaces.
5. System features including reliability, security, performance, supportability, design constraints.
The document specifies requirements for a software engineering project and provides guidance on performing requirement analysis and developing a software requirements specification (SR
The document provides an overview of fundamentals of software development including definitions of software, characteristics of software, software engineering, layered approach to software engineering, need for software engineering, and common software development life cycle models. It describes system software and application software. It outlines characteristics like understandability, cost, maintainability, modularity, reliability, portability, documentation, reusability, and interoperability. It also defines software engineering, layered approach, and need for software engineering. Finally, it explains popular life cycle models like waterfall, iterative waterfall, prototyping, spiral, and RAD models.
SWE-401 - 1. Introduction to Software Engineeringghayour abbas
Software engineering is the application of engineering principles to the development of software. It involves systematic, disciplined, and quantifiable approaches to develop, operate, and maintain software. The goal of software engineering is to produce reliable and efficient software products. Some key aspects of software engineering include requirements gathering, design, programming, testing, and maintenance. Software engineering principles are important for developing large, complex software in a cost-effective manner that can scale and adapt to changing needs over time.
This document discusses structured programming, functional programming, programming style, coding guidelines, software documentation, and challenges in software implementation. Structured programming breaks problems down into smaller pieces and uses modular programming and structured coding. Functional programming uses mathematical functions and concepts like recursion. Good programming style and coding guidelines make code readable and understandable. Software documentation includes requirements, design, technical, and user documentation. Challenges include code reuse, version management, and designing for target hosts.
Sanjeevi's SDLC Guest Lecture in Anna University campus at AU-PERS Centre (Ye...Sanjeevi Prasad
This presentation was used to train the students studying Embedded Systems in the Anna University campus (AU-PERS Centre) by me (Sanjeevi Prasad). I used to be a guest lecturer here in the year 2003. I was given an appreciation letter by this centre because they saw distinct improvements in the performances of their students in project evaluation by the IT professionals of a well-known IT MNC.
SWE-401 - 12. Software CASE Tools Overviewghayour abbas
CASE (Computer Aided Software Engineering) tools automate various stages of the Software Development Life Cycle (SDLC) and are used by software engineers, project managers, and analysts. There are different types of CASE tools that can be used for activities like documentation, project management, analysis, design, programming, testing, and maintenance. CASE tools provide benefits like accelerated development, reduced errors, and improved collaboration through features like centralized repositories and version control.
SWE-401 - 4. Software Requirement Specifications ghayour abbas
The document defines a Software Requirements Specification (SRS) as a formal report that lays the foundation for software engineering activities by eliciting and analyzing all system requirements. An SRS should have several key characteristics, including being correct, complete, consistent, unambiguous, modifiable, verifiable, and traceable. It should also be structured, concise, written from a black-box perspective, demonstrate conceptual integrity, and contain requirements that can be verified. The purpose of an SRS is to formally represent the desired software system and allow customers to review that the system meets their needs.
The document provides details for performing a system analysis for a software engineering project. It outlines the following steps:
1. Introduction including purpose, intended audience, project scope.
2. Overall description of the product including perspective, features, user classes, operating environment, and design/implementation constraints.
3. Functional requirements organized by user class/feature including descriptions, conditions, business rules.
4. External interface requirements including user interfaces, hardware interfaces, software interfaces, communications interfaces.
5. System features including reliability, security, performance, supportability, design constraints.
The document specifies requirements for a software engineering project and provides guidance on performing requirement analysis and developing a software requirements specification (SR
The document provides an overview of fundamentals of software development including definitions of software, characteristics of software, software engineering, layered approach to software engineering, need for software engineering, and common software development life cycle models. It describes system software and application software. It outlines characteristics like understandability, cost, maintainability, modularity, reliability, portability, documentation, reusability, and interoperability. It also defines software engineering, layered approach, and need for software engineering. Finally, it explains popular life cycle models like waterfall, iterative waterfall, prototyping, spiral, and RAD models.
SWE-401 - 1. Introduction to Software Engineeringghayour abbas
Software engineering is the application of engineering principles to the development of software. It involves systematic, disciplined, and quantifiable approaches to develop, operate, and maintain software. The goal of software engineering is to produce reliable and efficient software products. Some key aspects of software engineering include requirements gathering, design, programming, testing, and maintenance. Software engineering principles are important for developing large, complex software in a cost-effective manner that can scale and adapt to changing needs over time.
This document discusses structured programming, functional programming, programming style, coding guidelines, software documentation, and challenges in software implementation. Structured programming breaks problems down into smaller pieces and uses modular programming and structured coding. Functional programming uses mathematical functions and concepts like recursion. Good programming style and coding guidelines make code readable and understandable. Software documentation includes requirements, design, technical, and user documentation. Challenges include code reuse, version management, and designing for target hosts.
Sanjeevi's SDLC Guest Lecture in Anna University campus at AU-PERS Centre (Ye...Sanjeevi Prasad
This presentation was used to train the students studying Embedded Systems in the Anna University campus (AU-PERS Centre) by me (Sanjeevi Prasad). I used to be a guest lecturer here in the year 2003. I was given an appreciation letter by this centre because they saw distinct improvements in the performances of their students in project evaluation by the IT professionals of a well-known IT MNC.
The document discusses various software development life cycle models, including the classical waterfall model, iterative waterfall model, prototyping model, evolutionary model, spiral model, and compares them. It provides details about each phase of the classical waterfall model, including feasibility study, requirements analysis, design, coding, testing, and maintenance. It also discusses iterative waterfall model which allows for feedback loops to catch errors in earlier phases.
1. The document outlines 9 lab assignments related to software engineering processes and techniques. The assignments cover topics like software development models, requirements specification, effort estimation, risk analysis, project scheduling, system modeling, testing, and configuration management.
2. Each assignment includes objectives, references, prerequisites, overview of relevant concepts, expected outputs, and post-lab discussion questions.
3. The assignments are designed to familiarize students with key phases of the software development lifecycle through hands-on practice of process models, documentation, analysis, design, testing and project management methods.
The document discusses various software quality metrics that can be used to measure product quality, in-process quality, and maintenance quality. It describes three main groups of metrics: product metrics, process metrics, and project metrics. Specific metrics discussed include defect density, mean time to failure, customer problems, function points, defect arrival patterns, phase-based defect removal, and customer satisfaction surveys. The purpose of these metrics is to understand relationships between quality factors and improve both the development process and product quality.
SWE-401 - 3. Software Project Managementghayour abbas
The document discusses various aspects of software project management including defining a software project, the need for software project management, roles and responsibilities of a project manager, key project management activities like planning, estimation, scheduling, resource management, risk management, execution and monitoring, communication management, configuration management, and change control. It also discusses tools that can help with project management like Gantt charts, PERT charts, resource histograms, and critical path analysis.
The document discusses various types of software testing:
- Development testing includes unit, component, and system testing to discover defects.
- Release testing is done by a separate team to validate the software meets requirements before release.
- User testing involves potential users testing the system in their own environment.
The goals of testing are validation, to ensure requirements are met, and defect testing to discover faults. Automated unit testing and test-driven development help improve test coverage and regression testing.
Testing involves executing a program to find errors and is done at various stages - unit testing focuses on individual program modules, integration testing combines units and tests their interactions, and regression testing re-executes previous tests to ensure changes haven't caused errors. Key aspects of testing include white box testing which examines internal logic and black box testing which treats the program as a "black box" and focuses on inputs/outputs.
This document provides an overview of software engineering. It defines software engineering as a systematic approach to software analysis, design, implementation, and maintenance. It describes conventional software engineering methods including requirements analysis, design, construction, testing, and maintenance. It also covers software project management principles, quality assurance, metrics, estimation, risk management, and testing. The document is a comprehensive introduction to the key concepts and processes in software engineering.
Software Cost Estimation in Software Engineering SE23koolkampus
Software cost estimation involves predicting resources required for development using metrics like productivity, size, and function points. The COCOMO 2 model is an empirical algorithmic model that estimates effort as a function of product, project, and process attributes. It operates at three levels - early prototyping based on object points, early design using function points mapped to lines of code, and post-architecture directly using lines of code. Key cost drivers include requirements, personnel experience, reuse, and development flexibility.
Software testing involves validating and verifying software to ensure it meets requirements and specifications. There are different types of testing such as unit, integration, system, and acceptance testing. Testing can be done manually or automatically using tools. Black-box testing focuses on functionality without knowledge of internal design, while white-box testing examines internal structure and design. Thorough documentation is required throughout the testing process.
This document discusses various software engineering tools used at different stages of the software development lifecycle. It outlines tools for database development, programming, web development, software configuration management, design and analysis, and testing. Database tools like Oracle and MySQL are used to store and manage application data. Programming tools include IDEs and libraries that help with coding. Web development tools assist with designing web pages. SCM tools cover source control, building, installation, and defect tracking. Common design tools include data flow diagrams. Software testing tools help automate testing tasks.
The document discusses software maintenance. It defines software maintenance as modifying software after delivery to correct faults, improve performance, or adapt to environmental changes. Maintenance activities include error correction, enhancing capabilities, deleting obsolete functions, and optimization. Lehman's Law states that software maintenance is evolutionary development and past maintenance informs future decisions. The challenges of software maintenance include technical issues like testing and limited understanding, as well as management issues like cost estimation and priorities.
The document discusses various topics related to verification and validation of critical systems, including reliability metrics, hazard analysis, fault tolerance techniques, and software testing approaches. It describes verification as checking that the product is being built correctly according to specifications, while validation checks that the right product is being built to meet user requirements. Various static and dynamic verification methods are covered, including inspections, static analysis, and different types of software testing.
This document summarizes key aspects of software engineering processes and models. It discusses the fundamental activities of software specification, development, validation, and evolution. It describes plan-driven and incremental process models like the waterfall model and incremental development. It also covers topics like software prototyping, reuse-oriented processes, and coping with changing requirements through change avoidance and change tolerance strategies.
SE2018_Lec-22_-Continuous-Integration-ToolsAmr E. Mohamed
The document discusses build tools and continuous integration. It provides an overview of Maven, a build tool that standardizes project builds through conventions and dependencies. Maven aims to simplify builds through predefined directories and dependencies. It also provides dependency management, documentation generation, and release management. The document then discusses Jenkins, a tool for continuous integration that can trigger automated builds and tests. It notes Maven and Jenkins are often used together, with Maven for builds and Jenkins triggering builds.
This document discusses the scope of software engineering. It begins by defining software and engineering. It then explains that software engineering aims to produce software that meets client needs, is fault-free, delivered on time and budget, and is easy to modify. It discusses why software engineering is needed due to past software failures. The document then covers various aspects of software engineering including historical, economic, and maintenance aspects. It also discusses common software engineering roles and development team members. Finally, it provides an overview of different software development lifecycle models.
1. Good software development organizations require programmers to follow standardized coding standards to improve code quality.
2. Coding standards specify rules for global variables, header contents, naming conventions, and error handling to make code more consistent, understandable, and use best practices.
3. Code reviews involve code inspections to find common errors, and code walkthroughs where reviewers simulate and trace the code to find logical errors.
SE2_Lec 19_Design Principles and Design PatternsAmr E. Mohamed
The document discusses software design patterns and principles. It defines what design patterns are, their benefits, and some commonly used patterns like Singleton, Observer, and Strategy. It also covers software design principles like the Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, and others. The document provides examples to illustrate how patterns and principles can be applied to improve software design.
This document discusses 15 factors that influence quality and productivity in software development processes: individual ability, team communication, product complexity, appropriate notations, systematic approaches, change control, level of technology, level of reliability, problem understanding, available time, required skills, facilities and resources, adequacy of training, management skills, and appropriate goals. Each factor is described in 1-3 paragraphs on how it can impact quality and productivity.
This document provides an overview of various software testing techniques, including:
- Unit testing, integration testing, acceptance testing, and regression testing.
- Top-down and bottom-up integration strategies are described.
- Testing objectives like quality improvement, verification, and reliability estimation are outlined.
- Additional topics covered include test drivers, stubs, white box testing, and stress testing. The document serves as a guide to different approaches for thoroughly testing software applications and systems.
The document is the final paper for SSW-565A that discusses testability in software systems. It elaborates on various architectural tactics to achieve testability like well-defined interfaces, record/playback, abstract data sources, and limiting complexity. It then discusses how these tactics could be applied to a ration shop web application to make it more testable, such as using local test data instead of a real database, mocking external dependencies, and ensuring high cohesion and loose coupling between classes. The paper concludes that testability relies on factors like controllability, observability, and complexity being addressed at the architectural level to facilitate effective testing.
This document summarizes trends and contemporary multimedia technologies, including communications technologies like USB, Firewire, WiFi and Bluetooth; storage technologies such as magnetic hard drives, optical CDs and DVDs, and potential holographic storage; processing technologies that are becoming smaller, faster, and cheaper with specialized processors; and display technologies ranging from flexible and rollable screens to virtual and real 3D projection with and without glasses. Emerging technologies are converging functions, with smartphones merging phone and laptop capabilities and pocket PCs combining mobile phone, laptop and desktop features.
Video is a collection of bit-mapped images played back quickly to create the illusion of movement. It is made up of individual frames captured at a standard rate of 25 frames per second. Video can be captured using devices like digital video cameras, webcams, or specialized video capture cards and stored using formats like AVI or compressed using lossy formats like MPEG which reduce file size. Video editing involves arranging and trimming clips, applying transitions between scenes, and setting the final sequence.
The document discusses various software development life cycle models, including the classical waterfall model, iterative waterfall model, prototyping model, evolutionary model, spiral model, and compares them. It provides details about each phase of the classical waterfall model, including feasibility study, requirements analysis, design, coding, testing, and maintenance. It also discusses iterative waterfall model which allows for feedback loops to catch errors in earlier phases.
1. The document outlines 9 lab assignments related to software engineering processes and techniques. The assignments cover topics like software development models, requirements specification, effort estimation, risk analysis, project scheduling, system modeling, testing, and configuration management.
2. Each assignment includes objectives, references, prerequisites, overview of relevant concepts, expected outputs, and post-lab discussion questions.
3. The assignments are designed to familiarize students with key phases of the software development lifecycle through hands-on practice of process models, documentation, analysis, design, testing and project management methods.
The document discusses various software quality metrics that can be used to measure product quality, in-process quality, and maintenance quality. It describes three main groups of metrics: product metrics, process metrics, and project metrics. Specific metrics discussed include defect density, mean time to failure, customer problems, function points, defect arrival patterns, phase-based defect removal, and customer satisfaction surveys. The purpose of these metrics is to understand relationships between quality factors and improve both the development process and product quality.
SWE-401 - 3. Software Project Managementghayour abbas
The document discusses various aspects of software project management including defining a software project, the need for software project management, roles and responsibilities of a project manager, key project management activities like planning, estimation, scheduling, resource management, risk management, execution and monitoring, communication management, configuration management, and change control. It also discusses tools that can help with project management like Gantt charts, PERT charts, resource histograms, and critical path analysis.
The document discusses various types of software testing:
- Development testing includes unit, component, and system testing to discover defects.
- Release testing is done by a separate team to validate the software meets requirements before release.
- User testing involves potential users testing the system in their own environment.
The goals of testing are validation, to ensure requirements are met, and defect testing to discover faults. Automated unit testing and test-driven development help improve test coverage and regression testing.
Testing involves executing a program to find errors and is done at various stages - unit testing focuses on individual program modules, integration testing combines units and tests their interactions, and regression testing re-executes previous tests to ensure changes haven't caused errors. Key aspects of testing include white box testing which examines internal logic and black box testing which treats the program as a "black box" and focuses on inputs/outputs.
This document provides an overview of software engineering. It defines software engineering as a systematic approach to software analysis, design, implementation, and maintenance. It describes conventional software engineering methods including requirements analysis, design, construction, testing, and maintenance. It also covers software project management principles, quality assurance, metrics, estimation, risk management, and testing. The document is a comprehensive introduction to the key concepts and processes in software engineering.
Software Cost Estimation in Software Engineering SE23koolkampus
Software cost estimation involves predicting resources required for development using metrics like productivity, size, and function points. The COCOMO 2 model is an empirical algorithmic model that estimates effort as a function of product, project, and process attributes. It operates at three levels - early prototyping based on object points, early design using function points mapped to lines of code, and post-architecture directly using lines of code. Key cost drivers include requirements, personnel experience, reuse, and development flexibility.
Software testing involves validating and verifying software to ensure it meets requirements and specifications. There are different types of testing such as unit, integration, system, and acceptance testing. Testing can be done manually or automatically using tools. Black-box testing focuses on functionality without knowledge of internal design, while white-box testing examines internal structure and design. Thorough documentation is required throughout the testing process.
This document discusses various software engineering tools used at different stages of the software development lifecycle. It outlines tools for database development, programming, web development, software configuration management, design and analysis, and testing. Database tools like Oracle and MySQL are used to store and manage application data. Programming tools include IDEs and libraries that help with coding. Web development tools assist with designing web pages. SCM tools cover source control, building, installation, and defect tracking. Common design tools include data flow diagrams. Software testing tools help automate testing tasks.
The document discusses software maintenance. It defines software maintenance as modifying software after delivery to correct faults, improve performance, or adapt to environmental changes. Maintenance activities include error correction, enhancing capabilities, deleting obsolete functions, and optimization. Lehman's Law states that software maintenance is evolutionary development and past maintenance informs future decisions. The challenges of software maintenance include technical issues like testing and limited understanding, as well as management issues like cost estimation and priorities.
The document discusses various topics related to verification and validation of critical systems, including reliability metrics, hazard analysis, fault tolerance techniques, and software testing approaches. It describes verification as checking that the product is being built correctly according to specifications, while validation checks that the right product is being built to meet user requirements. Various static and dynamic verification methods are covered, including inspections, static analysis, and different types of software testing.
This document summarizes key aspects of software engineering processes and models. It discusses the fundamental activities of software specification, development, validation, and evolution. It describes plan-driven and incremental process models like the waterfall model and incremental development. It also covers topics like software prototyping, reuse-oriented processes, and coping with changing requirements through change avoidance and change tolerance strategies.
SE2018_Lec-22_-Continuous-Integration-ToolsAmr E. Mohamed
The document discusses build tools and continuous integration. It provides an overview of Maven, a build tool that standardizes project builds through conventions and dependencies. Maven aims to simplify builds through predefined directories and dependencies. It also provides dependency management, documentation generation, and release management. The document then discusses Jenkins, a tool for continuous integration that can trigger automated builds and tests. It notes Maven and Jenkins are often used together, with Maven for builds and Jenkins triggering builds.
This document discusses the scope of software engineering. It begins by defining software and engineering. It then explains that software engineering aims to produce software that meets client needs, is fault-free, delivered on time and budget, and is easy to modify. It discusses why software engineering is needed due to past software failures. The document then covers various aspects of software engineering including historical, economic, and maintenance aspects. It also discusses common software engineering roles and development team members. Finally, it provides an overview of different software development lifecycle models.
1. Good software development organizations require programmers to follow standardized coding standards to improve code quality.
2. Coding standards specify rules for global variables, header contents, naming conventions, and error handling to make code more consistent, understandable, and use best practices.
3. Code reviews involve code inspections to find common errors, and code walkthroughs where reviewers simulate and trace the code to find logical errors.
SE2_Lec 19_Design Principles and Design PatternsAmr E. Mohamed
The document discusses software design patterns and principles. It defines what design patterns are, their benefits, and some commonly used patterns like Singleton, Observer, and Strategy. It also covers software design principles like the Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, and others. The document provides examples to illustrate how patterns and principles can be applied to improve software design.
This document discusses 15 factors that influence quality and productivity in software development processes: individual ability, team communication, product complexity, appropriate notations, systematic approaches, change control, level of technology, level of reliability, problem understanding, available time, required skills, facilities and resources, adequacy of training, management skills, and appropriate goals. Each factor is described in 1-3 paragraphs on how it can impact quality and productivity.
This document provides an overview of various software testing techniques, including:
- Unit testing, integration testing, acceptance testing, and regression testing.
- Top-down and bottom-up integration strategies are described.
- Testing objectives like quality improvement, verification, and reliability estimation are outlined.
- Additional topics covered include test drivers, stubs, white box testing, and stress testing. The document serves as a guide to different approaches for thoroughly testing software applications and systems.
The document is the final paper for SSW-565A that discusses testability in software systems. It elaborates on various architectural tactics to achieve testability like well-defined interfaces, record/playback, abstract data sources, and limiting complexity. It then discusses how these tactics could be applied to a ration shop web application to make it more testable, such as using local test data instead of a real database, mocking external dependencies, and ensuring high cohesion and loose coupling between classes. The paper concludes that testability relies on factors like controllability, observability, and complexity being addressed at the architectural level to facilitate effective testing.
This document summarizes trends and contemporary multimedia technologies, including communications technologies like USB, Firewire, WiFi and Bluetooth; storage technologies such as magnetic hard drives, optical CDs and DVDs, and potential holographic storage; processing technologies that are becoming smaller, faster, and cheaper with specialized processors; and display technologies ranging from flexible and rollable screens to virtual and real 3D projection with and without glasses. Emerging technologies are converging functions, with smartphones merging phone and laptop capabilities and pocket PCs combining mobile phone, laptop and desktop features.
Video is a collection of bit-mapped images played back quickly to create the illusion of movement. It is made up of individual frames captured at a standard rate of 25 frames per second. Video can be captured using devices like digital video cameras, webcams, or specialized video capture cards and stored using formats like AVI or compressed using lossy formats like MPEG which reduce file size. Video editing involves arranging and trimming clips, applying transitions between scenes, and setting the final sequence.
Impactos no Design utilizando programação funcional Light TalkLuiz Costa
Orientação a Objetos é sem dúvidas o paradigma de programação mais utilizado, mas ultimamente temos visto
um crescimento significativo no uso de linguagens funcionais. O objetivo desta palestra é mostrar uma abordagem de design com problemas comuns que temos em orientação a objetos, dentro do mundo funcional. Para isso, vamos utilizar um sistema que simula algumas operações de bolsa de valores, para mostrar como as decisões tomadas em um design OO, podem ser mapeadas no mundo funcional através das linguagens Javascript e Clojure.
Share Your Photos And Videos Online - Social Media GuideKara Krautter
Photos and videos can engage customers and convey more about a company and its people, products and services than text alone. Today, new technologies and Web sites like Flickr and YouTube have made it easier than ever for businesses to produce and share multi-media content.
The document discusses the multimedia development process. It involves several stages: analysis to define requirements, design of navigation and interfaces, implementation by creating media elements, testing for bugs, documentation, and evaluation to check if requirements are met. Maintenance then fixes any issues. Authoring software like Flash and presentation software like PowerPoint are used to create multimedia applications. Applications can be distributed via web pages, standalone programs, or players using streaming or embedded media. Codecs compress files while container files group multiple compressed files.
This white paper provides guidance on deploying Microsoft operating systems to Dell PowerEdge servers. It discusses several deployment methods including the Unified Server Configurator (USC), Dell Systems Build and Update Utility (SBUU), Dell OpenManage Deployment Toolkit (DTK), Microsoft WDS/RIS, and Microsoft Automated Deployment Service (ADS). It also covers manual installation and potential drive lettering issues with newer PowerEdge servers.
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
O objetivo desta palestra é mostrar como é possível evoluir e reescrever partes de uma aplicação legada com mais 5 anos em produção utilizando técnicas de uma parte Domain Driven Design conhecida como Strategic Design. É uma aplicação web escrita em Python e Django que suporta a operação de um grupo focado em medicina do trabalho, com clínicas espalhadas pelo país.
Nesta palestra vamos mostrar uma abordagem que pode ajudar times que precisam lidar com aplicações legadas grandes e complexas no caminho da modernização.
The document provides information about computing homework questions covering several topics:
- Binary number systems and conversions between binary and decimal
- Floating point numbers and how changing mantissa and exponent sizes affects values
- ASCII encoding and Unicode methods
- Bitmapped and vector graphics
- Computer system components and memory types
- CPU architecture and bus functions
- Benchmark tests and factors affecting computer performance
- Networking concepts like LANs, WANs, servers, and topologies
- Operating systems, file formats, and antivirus software
- The software development process and documentation
Bit-mapped graphic files size is calculated by multiplying the number of pixels by the color depth per pixel measured in bits or bytes. Increasing image resolution or color depth improves quality but also increases file size. Techniques like dithering, anti-aliasing, and re-sampling can help reduce artifacts and enhance image quality. Lossy compression can significantly reduce file size with minimal impact on quality depending on the compression rate used. Graphics cards process and store images, converting digital signals to analog for display via a DAC. The GPU on the card generates images faster than the CPU for gaming and advanced graphics. CRT monitors were bulkier than modern LCD/TFT screens but cost less.
The document discusses how breaking programs down into sections or subprograms makes them easier to read, understand and manage. It provides examples of how to structure a program using subprograms and parameters to pass information between the subprograms. Key aspects covered include declaring global and local variables, using subprograms to perform main steps, and using parameters and CASE statements to control program flow and data passing between subprograms.
The document discusses different file formats for storing bitmap graphic data:
1) Bitmap (BMP) files store uncompressed pixel data and use RLE compression, but result in large file sizes. Colour depth determines the number of representable colors as 2 to the power of the bit depth.
2) GIF uses LZW compression, supports animation and transparency, and is good for images with few colors but not photos.
3) JPEG uses lossy DCT compression that exploits limitations in human vision, allowing for high compression ratios, and is best for photographic images.
4) PNG is a lossless compression format like GIF but without restrictions on color depth or transparency.
The document discusses different file formats for storing bitmap graphic data:
1. Bitmap (BMP) files store uncompressed pixel data and can have large file sizes. Compression uses RLE which encodes runs of identical pixels to reduce file size.
2. GIF files use LZW compression and support animation and transparency but are limited to 256 colors. They are good for images with flat color areas and animation.
3. JPEG files use lossy DCT compression optimized for photographic images, allowing for greater compression ratios than lossless formats. It does not support transparency or interlacing.
4. PNG files provide all GIF capabilities without color limitations, support 24-bit color and partial transparency, and use
The document discusses digitized sound data used in multimedia presentations. It describes key concepts like sampling frequency, sampling depth, file formats for storing sound like WAV and MP3. Higher sampling frequencies and depths improve sound quality but increase file sizes. Compression techniques like MP3 reduce file sizes significantly compared to uncompressed formats like WAV, with some loss of quality.
The document discusses the iterative software development process (SDP). It describes the main stages as analysis, design, implementation, testing, documentation, evaluation, and maintenance. At each stage, specific tasks are undertaken, such as creating requirements in analysis, designing algorithms and diagrams in design, coding in implementation, testing in testing, creating user guides in documentation, and fixing bugs in maintenance. People involved include clients, analysts, project managers, and programmers. Documents created include specifications, algorithms, test reports, guides, and evaluation/maintenance reports.
Introduction,Software Process Models, Project Managementswatisinghal
The document discusses different types of software processes and models used in software engineering. It defines software and differentiates it from programs. It then explains key concepts in software engineering including the waterfall model, prototyping model, incremental/iterative model, and spiral model. For each model it provides an overview and discusses their advantages and limitations.
The document discusses frameworks for software development. It describes the typical stages in a software development framework: investigation, design, development, and evaluation. Investigation involves problem description and requirements definition. Design includes data structure and algorithm design. Development consists of coding, debugging, and testing. Evaluation comprises user acceptance testing and retrospectives. The document also outlines good programming practices like input validation, meaningful naming, using constants, commenting code, proper indentation, and using control structures appropriately. It emphasizes single responsibility per module and meaningful module naming.
The document provides an introduction to software engineering. It defines software and discusses types of software. It then covers important software quality attributes like reliability, efficiency, usability, and maintainability. The document introduces the software development life cycle, including requirements, design, coding, testing, deployment, and maintenance. It discusses software development methodologies like waterfall model, V-model, and agile scrum.
This document provides information about obtaining fully solved assignments from an assignment help service. It lists the email and phone contact information and requests students to send their semester and specialization to receive help with assignments. It also lists some of the programs and subjects that assignments are available for, including MBADS, MBAFLEX, MBAN2, and PGDISMN.
Software Testing and Quality Assurance Assignment 3Gurpreet singh
Short questions :
Que 1 : Define Software Testing.
Que 2 : What is risk identification ?
Que 3 : What is SCM ?
Que 4 : Define Debugging.
Que 5 : Explain Configuration audit.
Que 6 : Differentiate between white box testing & black box testing.
Que 7 : What do you mean by metrics ?
Que 8 : What do you mean by version control ?
Que 9 : Explain Object Oriented Software Engineering.
Que 10 : What are the advantages and disadvantages of manual testing tools ?
Long Questions:
Que 1 : What do you mean by baselines ? Explain their importance.
Que 2 : What do you mean by change control ? Explain the various steps in detail.
Que 3 : Explain various types of testing in detail.
Que 4 : Differentiate between automated testing and manual testing.
Que 5 : What is web engineering ? Explain in detail its model and features.
This document discusses systems analysis and the waterfall model of software development. It describes the stages of systems analysis including investigation, design, and implementation with user consultation. The design stage produces a system specification detailing materials, procedures, hardware requirements, and inputs/outputs. Systems are monitored after implementation for changes. The waterfall model stages are feasibility, requirements analysis, design specification, coding, testing, and maintenance. Prototyping is discussed as an alternative that involves users earlier to detect issues and ensure requirements are met.
This document discusses structured programming, functional programming, programming style, coding guidelines, software documentation, and challenges in software implementation. Structured programming breaks problems down into smaller pieces and uses modular programming and structured coding. Functional programming uses mathematical functions and avoids side effects. Good programming style and coding guidelines make code more readable and maintainable. Software documentation includes requirements, design, technical, and user documentation. Challenges include code reuse and compatibility issues.
The document discusses various types of audit software and tools used by auditors. It describes generalized audit software (GAS) that can automate audit tasks and specialized audit software designed for specific audit objectives. It also covers integrated test facilities, snapshot techniques, data security procedures like backups, replication, and server clusters. The system development life cycle and auditor's role in reviewing each phase is explained.
This document outlines the typical sections included in an IEEE standard test plan format. The sections provide guidance on the key information to include in a test plan such as the test items, approach, pass/fail criteria, responsibilities, and risks. The outline is intended to ensure test plans are comprehensive and address all important areas to effectively test software.
The document discusses the programming process and various concepts involved, including:
- Developing a program involves defining requirements, designing algorithms and pseudocode, coding, testing, documenting, and deploying the program.
- The program development cycle (software development life cycle) outlines stages like requirements gathering, design, implementation, testing, deployment, and maintenance.
- An algorithm is a set of steps to solve a problem, with characteristics like being well-defined, finite, deterministic, and producing the correct output. Pseudocode and flowcharts can be used to describe algorithms.
- A flowchart uses graphical symbols to represent a process through steps and decisions, helping communicate logic visually. Pseudocode describes algorithms
Learn software testing with tech partnerz 3Techpartnerz
Software configuration management identifies and controls all changes made during software development and after release. It organizes all information produced during engineering into a configuration that enables orderly control of changes. Some key items included in a software configuration are management and specification plans, source code, databases, and production documentation.
Elementary Probability theory Chapter 2.pptxethiouniverse
The document discusses various software process models including waterfall, iterative, incremental, evolutionary (prototyping and spiral), and component-based development models. It describes the key activities and characteristics of each model and discusses when each may be applicable. The waterfall model presents a linear sequential flow while evolutionary models like prototyping and spiral are iterative and incremental to accommodate changing requirements.
The document discusses software development life cycles (SDLC). It describes the typical stages of an SDLC including feasibility study, requirements analysis, system design, development, testing, implementation, and maintenance. Several SDLC models are mentioned, including waterfall, spiral, iterative, prototyping, and RAD (rapid application development). The waterfall model is described as having distinct sequential stages with no overlap between phases. Prototyping and RAD methodologies are also explained in further detail.
The document provides an overview of manual software testing concepts and processes. It discusses why testing is important, the different levels of testing (unit, integration, system acceptance), test planning including test cases and test data preparation, defect reporting, and test tracking and reporting. The software development lifecycle of requirements, design, coding, testing, release and maintenance is also summarized.
The document discusses the software development life cycle (SDLC) and different software development models. SDLC involves stages like requirements gathering, design, coding, testing, implementation and maintenance. The waterfall model follows a linear sequence of stages from requirements to maintenance. Prototyping allows for user feedback earlier to refine requirements before implementation.
This document provides an overview of several software development life cycle models:
- The Waterfall Model involves sequential phases from requirements to maintenance without iteration.
- Prototyping allows for experimenting with designs through iterative prototype development and user testing.
- Iterative models like the Spiral Model involve repeating phases of design, implementation, and testing in cycles with user feedback.
There are three main types of software:
1) System software which operates the computer hardware and provides basic functionality and a platform for other software. This includes operating systems, drivers, servers, and utilities.
2) Programming software which are tools used by developers to create, debug, and maintain other programs and applications, such as compilers, debuggers, and text editors.
3) Application software which allows users to perform specific tasks, such as web browsers, office suites, graphics software, and media players. Application software runs on top of system software and may use programming software during development.
Software design is the process of planning the structure and interfaces of a software program to ensure it functions properly and meets requirements. It includes architectural design to break the program into components and detailed design to break components into classes and interfaces. Software design patterns provide reusable solutions to common problems in design. The most important patterns include adapter, factory method, state, builder, strategy, observer, and singleton. The software design process involves research, prototyping, development, testing, and maintenance.
The document discusses how breaking programs and other materials into smaller, more manageable sections makes them easier to read, understand and work with. It provides examples of how books are divided into chapters, essays into paragraphs, school subjects into units, and school years into classes. The same principle of breaking things into logical "chunks" applies to programming through the use of procedures and subprograms.
Bit-mapped graphic files size is calculated by multiplying the number of pixels by the color depth per pixel measured in bits or bytes. Increasing resolution or color depth improves quality but also increases file size. Techniques like dithering, anti-aliasing, and re-sampling can help reduce artifacts and enhance image quality. Lossy compression can reduce file size while maintaining adequate quality depending on the compression rate used. Graphics cards process and store images, converting digital signals to analog for display via a DAC. The GPU on the card accelerates graphics processing over the CPU. Common display types include CRT, LCD, and TFT screens.
The document discusses breaking down tasks into steps through stepwise refinement or writing algorithms. It provides the example of breaking down the task of having a bath into main steps and further refinements. The main steps are running the bath, having a bath, and drying off. Each main step is then broken down into more detailed sub-steps or refinements. The document also discusses the process of program design which involves analysis, design, and developing an algorithm by breaking problems down into main and refinement steps.
The document provides an overview of data representation in computers. It discusses how computers use binary numbers to represent data, including integers, real numbers, text, and graphics. Binary numbers are explained along with how to convert between binary and decimal. Different methods for representing negative numbers and real numbers are described. The document also discusses how computers represent text using ASCII and Unicode encoding. Finally, it covers graphics representation in computers, including bit-mapped graphics, calculating memory requirements for images, arranging bytes that make up an image, representing grayscale and color images, compression techniques, and vector graphics.
This document describes a home page with navigation buttons, animated content, and formatting elements like titles and text styling. A printer animation plays after 5 seconds on a black background with red text. Navigation buttons allow moving between pages that feature multimedia PCs and other content.
This document explains how to calculate the size of a sound file based on its frequency, time length, bit depth, and whether it is mono or stereo. For example, a 30 second stereo sound clip recorded at 44Khz with 8-bit depth would be about 2.52 megabytes in size, calculated as (frequency * time * bit depth * stereo) divided by file size conversions.
The document discusses object oriented data types and file formats. Object oriented data represents information as objects that have attributes which can be edited individually. Examples of object types given are text, music, drawings and 3D images. Common file formats discussed are Scalable Vector Graphics (SVG) for drawings, Virtual Reality Modeling Language (VRML) for 3D objects, and Musical Instrument Digital Interface (MIDI) files for synthesized sound. Attributes stored for each object determine its appearance and properties can be edited without affecting other objects.
This document contains VRML code that defines basic 3D shapes like cubes, cones, cylinders and spheres. It also includes code for materials, lights and transformations like translation and rotation. The shapes and lights are organized into nested separator blocks to group related objects together in the 3D scene.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
Thinking of getting a dog? Be aware that breeds like Pit Bulls, Rottweilers, and German Shepherds can be loyal and dangerous. Proper training and socialization are crucial to preventing aggressive behaviors. Ensure safety by understanding their needs and always supervising interactions. Stay safe, and enjoy your furry friends!
How to Fix the Import Error in the Odoo 17Celine George
An import error occurs when a program fails to import a module or library, disrupting its execution. In languages like Python, this issue arises when the specified module cannot be found or accessed, hindering the program's functionality. Resolving import errors is crucial for maintaining smooth software operation and uninterrupted development processes.
The simplified electron and muon model, Oscillating Spacetime: The Foundation...RitikBhardwaj56
Discover the Simplified Electron and Muon Model: A New Wave-Based Approach to Understanding Particles delves into a groundbreaking theory that presents electrons and muons as rotating soliton waves within oscillating spacetime. Geared towards students, researchers, and science buffs, this book breaks down complex ideas into simple explanations. It covers topics such as electron waves, temporal dynamics, and the implications of this model on particle physics. With clear illustrations and easy-to-follow explanations, readers will gain a new outlook on the universe's fundamental nature.
Physiology and chemistry of skin and pigmentation, hairs, scalp, lips and nail, Cleansing cream, Lotions, Face powders, Face packs, Lipsticks, Bath products, soaps and baby product,
Preparation and standardization of the following : Tonic, Bleaches, Dentifrices and Mouth washes & Tooth Pastes, Cosmetics for Nails.
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
it describes the bony anatomy including the femoral head , acetabulum, labrum . also discusses the capsule , ligaments . muscle that act on the hip joint and the range of motion are outlined. factors affecting hip joint stability and weight transmission through the joint are summarized.
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...PECB
Denis is a dynamic and results-driven Chief Information Officer (CIO) with a distinguished career spanning information systems analysis and technical project management. With a proven track record of spearheading the design and delivery of cutting-edge Information Management solutions, he has consistently elevated business operations, streamlined reporting functions, and maximized process efficiency.
Certified as an ISO/IEC 27001: Information Security Management Systems (ISMS) Lead Implementer, Data Protection Officer, and Cyber Risks Analyst, Denis brings a heightened focus on data security, privacy, and cyber resilience to every endeavor.
His expertise extends across a diverse spectrum of reporting, database, and web development applications, underpinned by an exceptional grasp of data storage and virtualization technologies. His proficiency in application testing, database administration, and data cleansing ensures seamless execution of complex projects.
What sets Denis apart is his comprehensive understanding of Business and Systems Analysis technologies, honed through involvement in all phases of the Software Development Lifecycle (SDLC). From meticulous requirements gathering to precise analysis, innovative design, rigorous development, thorough testing, and successful implementation, he has consistently delivered exceptional results.
Throughout his career, he has taken on multifaceted roles, from leading technical project management teams to owning solutions that drive operational excellence. His conscientious and proactive approach is unwavering, whether he is working independently or collaboratively within a team. His ability to connect with colleagues on a personal level underscores his commitment to fostering a harmonious and productive workplace environment.
Date: May 29, 2024
Tags: Information Security, ISO/IEC 27001, ISO/IEC 42001, Artificial Intelligence, GDPR
-------------------------------------------------------------------------------
Find out more about ISO training and certification services
Training: ISO/IEC 27001 Information Security Management System - EN | PECB
ISO/IEC 42001 Artificial Intelligence Management System - EN | PECB
General Data Protection Regulation (GDPR) - Training Courses - EN | PECB
Webinars: https://pecb.com/webinars
Article: https://pecb.com/article
-------------------------------------------------------------------------------
For more information about PECB:
Website: https://pecb.com/
LinkedIn: https://www.linkedin.com/company/pecb/
Facebook: https://www.facebook.com/PECBInternational/
Slideshare: http://www.slideshare.net/PECBCERTIFICATION
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
1. Software Development Revision Personnel Lifecycle Languages HLL constructs & Algorithms Documentation Characteristics Click to select a topic
2. Personnel Project Manager The head of the development team, this person will direct and monitor all aspects ( personnel, time-scales, budget ) of the project from start to finish Client The company or organisation who want a new system Systems Analyst Has the task of gaining an understanding of the client's needs and conveying these to the developer or team of developers. Outlines the basic problem in a problem specification . Discovers exactly what the client wants in the solution. The Systems Analyst uses three main methods to find out about what the client wants and how to get them what they want: Experience (of all stages of software development, technical knowledge and working within time/money/technical restrictions) Analytical Observation & Problem solving (observing current system functions and how and documents are used) Communication (with the Clients staff and with the project manager) Programmers Implement the solution Menu Q
3. Documentation specifies what the new system has to be capable of doing Requirements Specification (Operational Requirements) states the desired system, setting out hardware and software specifications plus any human and organisational implications. System Specification Provides a snap-shot of the development and suggests possible options for solutions Feasibility Study A plan to solve the problem, shows functionality of system System Design A formatted printout of program code with indentation of loops and conditions Structured Listing of Code Menu Q
4. The Software Development Lifecycle Analysis Testing Documentation Design Evaluation Implementation Maintenance Menu Q
5. Analysis Analysis is the process of finding out what the client wants and needs and looking at the existing system to find out what the new system needs to do. Systems Analysts can use CASE tools to help them with the analysis phase (and other parts of the software development process) CASE stands for Computer Aided Software Engineering CASE tools can be used to: * assist the summarising of a project's initial requirements. * allow graphical representation of modules within a project tree structure allowing individual modules within a project, to be selected and worked on. * facilities to have program code generated from the design which in turn has been generated from the specification. * graphical design representation editing. * code editing. * documentation generation which tends to be in Rich Text Format (RTF) allowing data export to most word processing packages. * work on networks, different languages and OS Lifecycle Q
6. Design This is where a plan for the new system is drawn up. The HCI should be designed A variable table be be created to specify any variables required A structure diagram is a graphical approach to designing the main steps of the solution Pseudocode is a textual approach to designing the main steps An indication of Data Flow in the design. A set of Test Data should be created to test the design at this stage. This will check for errors in the design such as logical errors Lifecycle Q
7. Implementation Implementation means taking the design template and converting it into a form the computer can understand – code. Things to consider: Data Structures The correct types should/must be implemented. Modular Code should be written which defines the subprograms. Coupling of existing subprograms that have been stored for use within other programs e.g subprograms which search or sort a list of numbers, to save time and to improve speed and efficiency in development Variable and Subprograms & functions and variable names should be clear, sensible subprogram names and meaningful. Internal Internal commentary has no effect, but helps when maintenance Commentary activities take place. Loop usage Make sure execution of these is carefully considered, and the proper 'escape' condition has been applied Logic Tests Make sure execution of these is carefully considered, and the logical test has been applied correctly Lifecycle Q
8. Testing There are different ways that software should be tested. *** A Dry Run is the process of going through the program in your head and keeping a note of the different values of variables on paper. This is used to try and eliminate many errors before your run the program. Many programs have a built in ‘trace’ facility which will do this for you. *** A specially designed set of test data is used to test your program when it runs. This test data should include: * A set of normal , valid data to check for proper operation. * Test at the limits (extremes) to see if boundary conditions function as expected. * ‘Exceptional’ data to see how the software will react to unexpected data input. Alpha testing is the first stage of whole program testing and takes place with the developers. Beta testing (acceptance testing) is the second stage and often takes place within the company, under actual conditions If programs are made up of different modules, the modules are tested separately then are tested again when they are integrated into the main program. Lifecycle Q
9.
10.
11. Maintenance Corrective Maintenance Eradicating errors reported by the Client, which were undetected at testing. Adaptive Maintenance Altering the software to 'interface' with changes in the operating environment (new hardware/software). Perfective Maintenance This is the largest of the four, allowing enhancements to the performance of the system in some way. Preventative Maintenance Improving the future maintainability of a development There are four types of maintenance activity: Lifecycle Q
12. Characteristics A program is ROBUST if it can cope with problems that come from outside and are not of its own making. For example unexpected data entered by a user or an unexpected condition such as a printer jam. RELIABILITY is an internal matter. A program is reliable if it runs well, and is never brought to a halt by a design flaw. A reliable program should be able to inform the user if an error occurs, try to recover from the error and if all else fails stop running with a minimum of fuss. A program which is said to be PORTABLE is machine independent, it should run on most computer systems using different hardware and operating systems. A program is said to be MODULAR if it is clearly divided into sub-programs or modules which each perform a specific task. Menu Q
13. Languages Before you begin to implement a solution to a problem you must consider what type of programming language is most appropriate for the task. There are four different types of programming language. Procedural Declarative Event-Driven Scripting Q Menu
14. Procedural A program written in a Procedural (Imperative) language will have a main program from which subprograms such as procedures/subroutines and/or functions will be called, i.e. the control of the flow of execution lies in the code in the main program. When choosing a procedural language to solve a problem, the best solution will be obtained when the particular features of the procedural language are most closely matched with the particular features of the problem to be solved. i.e. matching the objects and operations of the language to that of the problem Common features of a Procedural language: Data A range of data types and data structures can be used. Calculation Arithmetic and logical operations are possible. Sequencing T he flow of control from one instruction to the next. Control Repetition of instructions. (a fixed number of times or condition Structures controlled) Conditional W hich test some criteria and may transfer control elsewhere in the Structures program. Modular Procedures or subroutines , which let you break a program into smaller Structures named sections. Parameter Data flow into and out of the procedures/subroutines. Passing Languages Q
15. A declarative language stores a list of facts and rules relating to these facts, in what is known as a knowledge base. When the user enters a query, the declarative language attempts to find a solution by searching the knowledge base. Because of their usefulness in resolving logical issues, much research in declarative language usage is being done in the sphere of Artificial Intelligence, where the intention is to develop machines which can make logical decisions in a natural way. A declarative has a list of facts (things that are TRUE) in what is known as a knowledge base . Declarative Declaration of Fact Interpretation is_daughter(mary, susan) Mary is Susan's daughter is_daughter(susan, julia) Susan is Julia's daughter is_daughter(claire, alison) Claire is Alison's daughter Query Result is_daughter(claire, alison)? which will return the answer TRUE or YES because an exact match can be found in the database. is_daughter(tom, alison)? will return FALSE or NO as there is no match in the database. These facts can be interrogated by a query. Languages Q
16. An Event-Driven Language also uses a procedural approach, except that the procedures are associated with objects available within the application . Execution of a procedure is triggered by an EVENT (input from the user) involving an OBJECT , e.g. the click of a button on a form or the selection from a menu . Event-Driven Typical Objects Typical Events When to execute code Command Button Click Mouse click on object Radio Button Double-Click Mouse double-click on object Toggle Button Got Focus Cursor over object List Box Lost Focus Cursor moved from object Message Box Key Down Mouse button pressed but not released Dialogue Box Key Up Mouse button released Text Box On Enter Application, Form, Dialogue Box opened Image Box On Exit Application, Form, Dialogue Box closed Languages Q
17. Scripting A scripting language is one which is designed to be used in a particular operating or application environment. They tend to be an additional facility available in several applications packages, particularly database management packages. The benefits of using a scripting language are that it increases the flexibility of a programming language, allowing it to be customised to meet the users needs. Features that may not be readily available in a package can be added using scripts - e.g. a set of commands or actions can be carried out with a single key press ( similar to a macro ) Languages Q
18. High Level Language Constructs & Algorithms Module Libraries Data Types Linear Search Count Occurrence Maximum & Minimum Parameters Variables Menu Q
19. Module Libraries Module Libraries are pre-written and tested routines that the programmer can CALL upon to support and speed up the development process. Most software companies will build up or buy in module libraries of regularly used modules of code, often in a variety of languages. These library modules would be tried and tested, robust code. Comprehensive libraries of these modules can almost lead to the " cut and paste " method of software development. This approach requires very little new code to be written and the software consists almost entirely of library modules, customised for the task and linked together in the required logical order. HLL page Q
20. Data Types Simple Data Types Type Description Sample Data String text & numbers Hello, 95 Clifton Road Integer whole numbers 12, 267, 2300 Single real numbers 2.99, 13.725, 15.01 Boolean true or false True, False (or Yes, No) Complex Data Types An Array is a set of information that is related. You set how many data item you want the array to store. DIM Name(10) of String this is an array which can hold 10 names HLL page Q
21. Variables There are two different ways variables can be used: Global Variables Global Variables are declared at the beginning of your program and can be used and changed throughout the whole program. They may be used in different sub-programs and can be passed as parameters. Local variables Local Variables are declared within ONE sub program and can the data only be used and changed within that one sub program. Local variables cannot be passed as parameters. It is good programming practise to try and have as many local variables and as few Global variables as possible. HLL page Q
22. Parameters Parameters handle the flow of data within your program. A parameter can be either a variable or a value . Parameters can be passed into and out of a sub-program. There are two different ways to pass parameters between sub-programs. You can pass parameters by VALUE or you can pass parameters by REFERENCE By Value Parameter Passing by VALUE is when a value is passed into a subprogram for use by the subprogram, but the changed value is not passed out. Parameters passed by Value are indicated by putting brackets around the parameter name. By Reference Parameter Passing by REFERENCE is when a value is passed into a subprogram for use by the subprogram, and then the changed value is passed out to be used by other sub-programs. Parameters are passed by Reference by default and are simply listed in the parameter list. HLL page Q
23. Linear Search A linear search is the process of examining a list , file or group of data to see if a given data item occurs in it. Sometimes called a serial search, this method involves looking at each data item in turn to see if there is a match with the value required . 1 prompt user to enter the number 2 set count to 1 3 while number is not array(count) AND count <> 10 4 add one to count 5 end while 6 if count =10 AND number is not array(count) 7 print number not in list 8 else 9 print number at position count 10 end if Example Algorithm HLL page Q
24. Count Occurrences HLL page This is the process of counting the number of times a data item occurs in a list, file or group of data. Based on the linear search it merely notes the number of times a match is found 1 prompt user to enter a name 2 set occur to zero 3 repeat for person 1 to 100 4 if name same as array(person) 5 add 1 to occur 6 end if 7 end loop 8 if occur=0 9 print name not in list 10 else 11 print it appears occur times 12 end if Example Algorithm Q
25. Maximum and Minimum HLL page This is the process of finding the largest or the smallest value in list , file or group of data 1 set max to zero 2 repeat for numbers 1 to 100 3 if array(number)>max 4 make max the array(number) 5 endif 6 end loop 7 print biggest value is max Example Algorithm The Algorithm for minimum would be the same except it would test for <min rather than >max Q