The document provides an introduction to software engineering and discusses key concepts such as:
1) Software is defined as a set of instructions that provide desired features, functions, and performance when executed and includes programs, data, and documentation.
2) Software engineering applies scientific knowledge and engineering principles to the development of reliable and efficient software within time and budget constraints.
3) The software development life cycle (SDLC) involves analysis, design, implementation, and documentation phases to systematically develop high quality software that meets requirements.
The document discusses the software design process. It begins by explaining that software design is an iterative process that translates requirements into a blueprint for constructing the software. It then describes the main steps and outputs of the design process, which include transforming specifications into design models, reviewing designs for quality, and producing a design document. The document also covers key concepts in software design like abstraction, architecture, patterns, modularity, and information hiding.
Evolutionary process models allow developers to iteratively create increasingly complete versions of software. Examples include the prototyping paradigm, spiral model, and concurrent development model. The prototyping paradigm uses prototypes to elicit requirements from customers. The spiral model couples iterative prototyping with controlled development, dividing the project into framework activities. The concurrent development model concurrently develops components with defined interfaces to enable integration. These evolutionary models allow flexibility and accommodate changes but require strong communication and updated requirements.
This document discusses different process models used in software development. It describes the key phases and characteristics of several common process models including waterfall, prototyping, V-model, incremental, iterative, spiral and agile development models. The waterfall model involves sequential phases from requirements to maintenance without iteration. Prototyping allows for user feedback earlier. The V-model adds verification and validation phases. Incremental and iterative models divide the work into smaller chunks to allow for iteration and user feedback throughout development.
This document discusses various topics related to software design including design principles, concepts, modeling, and architecture. It provides examples of class/data design, architectural design, interface design, and component design. Some key points discussed include:
- Software design creates representations and models that provide details on architecture, data structures, interfaces, and components needed to implement the system.
- Design concepts like abstraction, modularity, encapsulation, and information hiding are important to reduce complexity and improve design.
- Different types of design models include data/class design, architectural design, interface design, and component-level design.
- Good software architecture and design lead to systems that are more understandable, maintainable, and of higher quality.
This document provides an overview of software engineering concepts including what software and software engineering are, the software process and models, system engineering processes, and emergent system properties. It discusses the waterfall model, evolutionary development, and spiral development as software process models. The key stages of the system engineering process are defined as system requirement definition, system design, subsystem development, system integration, and system evolution. Non-functional properties like reliability, performance, safety and security are described as important emergent system properties.
The document provides an introduction to software engineering. It defines software and describes its key attributes and classifications. It discusses what constitutes good software in terms of maintainability, dependability, efficiency and usability. The document also outlines different types of software and defines software engineering as a systematic approach to software analysis, design, implementation and maintenance. It compares software engineering to computer science and system engineering. Finally, it discusses the two main components of software engineering as the systems engineering approach and development engineering approach.
The document provides an introduction to software engineering. It discusses that software has a dual role as both a product and vehicle to deliver functionality. It defines software as a set of programs, documents, and data that form a configuration. The document outlines different types of software applications and categories. It also discusses software engineering practices such as communication, planning, modeling, construction, and coding principles.
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
The document discusses the software design process. It begins by explaining that software design is an iterative process that translates requirements into a blueprint for constructing the software. It then describes the main steps and outputs of the design process, which include transforming specifications into design models, reviewing designs for quality, and producing a design document. The document also covers key concepts in software design like abstraction, architecture, patterns, modularity, and information hiding.
Evolutionary process models allow developers to iteratively create increasingly complete versions of software. Examples include the prototyping paradigm, spiral model, and concurrent development model. The prototyping paradigm uses prototypes to elicit requirements from customers. The spiral model couples iterative prototyping with controlled development, dividing the project into framework activities. The concurrent development model concurrently develops components with defined interfaces to enable integration. These evolutionary models allow flexibility and accommodate changes but require strong communication and updated requirements.
This document discusses different process models used in software development. It describes the key phases and characteristics of several common process models including waterfall, prototyping, V-model, incremental, iterative, spiral and agile development models. The waterfall model involves sequential phases from requirements to maintenance without iteration. Prototyping allows for user feedback earlier. The V-model adds verification and validation phases. Incremental and iterative models divide the work into smaller chunks to allow for iteration and user feedback throughout development.
This document discusses various topics related to software design including design principles, concepts, modeling, and architecture. It provides examples of class/data design, architectural design, interface design, and component design. Some key points discussed include:
- Software design creates representations and models that provide details on architecture, data structures, interfaces, and components needed to implement the system.
- Design concepts like abstraction, modularity, encapsulation, and information hiding are important to reduce complexity and improve design.
- Different types of design models include data/class design, architectural design, interface design, and component-level design.
- Good software architecture and design lead to systems that are more understandable, maintainable, and of higher quality.
This document provides an overview of software engineering concepts including what software and software engineering are, the software process and models, system engineering processes, and emergent system properties. It discusses the waterfall model, evolutionary development, and spiral development as software process models. The key stages of the system engineering process are defined as system requirement definition, system design, subsystem development, system integration, and system evolution. Non-functional properties like reliability, performance, safety and security are described as important emergent system properties.
The document provides an introduction to software engineering. It defines software and describes its key attributes and classifications. It discusses what constitutes good software in terms of maintainability, dependability, efficiency and usability. The document also outlines different types of software and defines software engineering as a systematic approach to software analysis, design, implementation and maintenance. It compares software engineering to computer science and system engineering. Finally, it discusses the two main components of software engineering as the systems engineering approach and development engineering approach.
The document provides an introduction to software engineering. It discusses that software has a dual role as both a product and vehicle to deliver functionality. It defines software as a set of programs, documents, and data that form a configuration. The document outlines different types of software applications and categories. It also discusses software engineering practices such as communication, planning, modeling, construction, and coding principles.
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
The document defines the software development life cycle (SDLC) and its phases. It discusses several SDLC models including waterfall, prototype, iterative enhancement, and spiral. The waterfall model follows sequential phases from requirements to maintenance with no overlap. The prototype model involves building prototypes for user feedback. The iterative enhancement model develops software incrementally. The spiral model is divided into risk analysis, engineering, construction, and evaluation cycles. The document also covers software requirements, elicitation through interviews and use cases, analysis through data, behavioral and functional modeling, and documentation in a software requirements specification.
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
Full clear download( no error formatting) at: https://goo.gl/XmRyGP
software engineering a practitioner's approach 8th edition pdf free download
software engineering a practitioner's approach 8th edition ppt
software engineering a practitioner's approach 6th edition pdf
software engineering pressman 9th edition pdf
software engineering a practitioner's approach 9th edition
software engineering a practitioner's approach 9th edition pdf
software engineering a practitioner's approach 7th edition solution manual pdf
roger s. pressman
The document discusses important concepts for effective software project management including focusing on people, product, process, and project. It emphasizes that defining project scope and establishing clear objectives at the beginning of a project are critical first steps. Finally, it outlines factors for selecting an appropriate software development process model and adapting it to the specific project.
The document provides an overview of the Software Engineering course for the second semester of the second year (B.Tech IT/II Sem-II). It includes details about the term, text books, unit syllabus, index of topics, and slides covering introductions to software engineering, the changing nature of software, software myths, generic views of process, the Capability Maturity Model Integration and personal and team software processes.
The document discusses staffing level estimation over the course of a software development project. It describes how the number of personnel needed varies at different stages: a small group is needed for planning and analysis, a larger group for architectural design, and the largest number for implementation and system testing. It also references models like the Rayleigh curve and Putnam's interpretation that estimate personnel levels over time. Tables show estimates for the distribution of effort, schedule, and personnel across activities for different project sizes. The key idea is that staffing requirements fluctuate throughout the software life cycle, with peaks during implementation and testing phases.
What is professional software development and definition of software engineering. Who is a software engineer. Difference between Computer Science and Systems Engineering
The COCOMO model is a widely used software cost estimation model that predicts development effort and schedule based on project attributes. It includes basic, intermediate, and detailed models of increasing complexity. The intermediate model estimates effort as a function of source lines of code and cost drivers. The detailed model further incorporates the impact of cost drivers on development phases. COCOMO 2 expands on this with application composition, early design, reuse, and post-architecture models for different project stages.
The document discusses the waterfall model of software development. It describes the five phases of the waterfall model as requirements gathering and analysis, design, coding, testing, and maintenance. It provides details on the activities in each phase, including documenting requirements, designing logical modules, writing code, testing software, and maintaining the system. The waterfall model is advantageous for small projects but inflexible if requirements change, as it is a sequential process where each phase must be completed before the next.
The Waterfall model is a popular sequential model of the software development life cycle where each phase must be completed before the next begins. It consists of requirements, design, implementation, verification, and maintenance phases. Though simple to understand and manage, the Waterfall model works best for smaller, well-defined projects as it is inflexible to changes and produces no working software until late in the cycle.
The document discusses various aspects of the software process including software process models, generic process models like waterfall model and evolutionary development, process iteration, and system requirements specification. It provides details on each topic with definitions, characteristics, advantages and diagrams. The key steps in software process are specified as software specifications, design and implementation, validation, and evolution. Generic process models and specific models like waterfall, evolutionary development, and incremental delivery are explained.
The document discusses the software development life cycle (SDLC) process. It includes 6 main steps: 1) requirement gathering, 2) software analysis, 3) software design, 4) coding, 5) testing, and 6) implementation. For each step, the document provides details on the objectives and activities involved. It also lists advantages of following the SDLC process such as increased quality, improved tracking, and decreased risks. Finally, it provides a coding example for a basic calculator application to illustrate one step of the process.
The COCOMO model is a widely used software cost estimation model developed by Barry Boehm in 1981. It predicts effort, schedule, and staffing needs based on project size and characteristics. The Basic COCOMO model uses three development modes (Organic, Semidetached, Embedded) and a simple formula to estimate effort and schedule based on thousands of delivered source instructions. However, its accuracy is limited as it does not account for various project attributes known to influence costs. Function Point Analysis is an alternative size measurement that counts different types of system functions and complexity factors to estimate effort and cost.
This document discusses several software cost estimation techniques:
1. Top-down and bottom-up approaches - Top-down estimates system-level costs while bottom-up estimates costs of each module and combines them.
2. Expert judgment - Widely used technique where experts estimate costs based on past similar projects. It utilizes experience but can be biased.
3. Delphi estimation - Estimators anonymously provide estimates in rounds to reach consensus without group dynamics influencing individuals.
4. Work breakdown structure - Hierarchical breakdown of either the product components or work activities to aid bottom-up estimation.
This document summarizes key concepts from the first chapter of Ian Sommerville's Software Engineering textbook. It introduces software engineering as an engineering discipline concerned with all aspects of software production. It discusses the objectives of software engineering, topics covered like frequently asked questions and professional responsibility. It also summarizes concepts like the software development process, methods, costs and challenges in the field.
Agile development focuses on effective communication, customer collaboration, and incremental delivery of working software. The key principles of agile development according to the Agile Alliance include satisfying customers, welcoming changing requirements, frequent delivery, collaboration between business and development teams, and self-organizing teams. Extreme Programming (XP) is an agile process model that emphasizes planning with user stories, simple design, pair programming, unit testing, and frequent integration and testing.
The document discusses various aspects of software project management including project planning activities like estimation, scheduling, staffing, and risk handling. It describes different project organization structures like functional organization and project organization. It also discusses different team structures like chief programmer teams, democratic teams, and mixed teams. The document emphasizes the importance of careful project planning and producing a software project management plan document. It also discusses considerations for staffing a project team and attributes of a good software engineer.
The document contains slides from a lecture on software engineering. It discusses definitions of software and software engineering, different types of software applications, characteristics of web applications, and general principles of software engineering practice. The slides are copyrighted and intended for educational use as supplementary material for a textbook on software engineering.
Software System Engineering - Chapter 1Fadhil Ismail
This document introduces software engineering and discusses some key concepts. It defines software engineering as a systematic approach to software development, operation, and maintenance. The goal of software engineering is to produce high-quality software products through defined processes. However, software development faces challenges like inability to build programs fast enough to meet demand. The document also discusses common misconceptions around software, such as the belief that more programmers can catch up on a late project. It identifies poorly defined requirements as a major cause of failed software projects. Finally, it notes problems like lack of data collection and customer dissatisfaction that demonstrate the need for a systematic approach like software engineering.
Software Engineering (Introduction to Software Engineering)ShudipPal
Software engineering is concerned with all aspects of software production. It aims to develop software using systematic and disciplined approaches to reduce errors and costs. Some key challenges in software development are its high cost, difficulty delivering on time, and producing low quality software. Software engineering methods strive to address these challenges and produce software with attributes like maintainability, dependability, efficiency, usability and acceptability.
This document provides an introduction and overview of computer validation training. It discusses why computer validation is important for business, safety, and regulatory reasons. It explains that computer validation has been a regulatory requirement for over 20 years, but scrutiny has increased significantly in recent years. The document outlines the basics of what constitutes a computer system and the validation process, who plays key roles in validation, and why defects in computer systems can have more severe consequences than other equipment problems.
Utility software maintains and optimizes the performance of a computer system. It includes functions like disk defragmentation to improve access speed, backup to safeguard files in case of hardware failure, file management to organize files for easy access, and security features like account management, antivirus scanning, and malware removal to protect the system. Additional utilities allow for compression of files to reduce storage usage, monitor settings to customize display preferences, and keyboard shortcuts for convenient operation.
The document defines the software development life cycle (SDLC) and its phases. It discusses several SDLC models including waterfall, prototype, iterative enhancement, and spiral. The waterfall model follows sequential phases from requirements to maintenance with no overlap. The prototype model involves building prototypes for user feedback. The iterative enhancement model develops software incrementally. The spiral model is divided into risk analysis, engineering, construction, and evaluation cycles. The document also covers software requirements, elicitation through interviews and use cases, analysis through data, behavioral and functional modeling, and documentation in a software requirements specification.
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
Full clear download( no error formatting) at: https://goo.gl/XmRyGP
software engineering a practitioner's approach 8th edition pdf free download
software engineering a practitioner's approach 8th edition ppt
software engineering a practitioner's approach 6th edition pdf
software engineering pressman 9th edition pdf
software engineering a practitioner's approach 9th edition
software engineering a practitioner's approach 9th edition pdf
software engineering a practitioner's approach 7th edition solution manual pdf
roger s. pressman
The document discusses important concepts for effective software project management including focusing on people, product, process, and project. It emphasizes that defining project scope and establishing clear objectives at the beginning of a project are critical first steps. Finally, it outlines factors for selecting an appropriate software development process model and adapting it to the specific project.
The document provides an overview of the Software Engineering course for the second semester of the second year (B.Tech IT/II Sem-II). It includes details about the term, text books, unit syllabus, index of topics, and slides covering introductions to software engineering, the changing nature of software, software myths, generic views of process, the Capability Maturity Model Integration and personal and team software processes.
The document discusses staffing level estimation over the course of a software development project. It describes how the number of personnel needed varies at different stages: a small group is needed for planning and analysis, a larger group for architectural design, and the largest number for implementation and system testing. It also references models like the Rayleigh curve and Putnam's interpretation that estimate personnel levels over time. Tables show estimates for the distribution of effort, schedule, and personnel across activities for different project sizes. The key idea is that staffing requirements fluctuate throughout the software life cycle, with peaks during implementation and testing phases.
What is professional software development and definition of software engineering. Who is a software engineer. Difference between Computer Science and Systems Engineering
The COCOMO model is a widely used software cost estimation model that predicts development effort and schedule based on project attributes. It includes basic, intermediate, and detailed models of increasing complexity. The intermediate model estimates effort as a function of source lines of code and cost drivers. The detailed model further incorporates the impact of cost drivers on development phases. COCOMO 2 expands on this with application composition, early design, reuse, and post-architecture models for different project stages.
The document discusses the waterfall model of software development. It describes the five phases of the waterfall model as requirements gathering and analysis, design, coding, testing, and maintenance. It provides details on the activities in each phase, including documenting requirements, designing logical modules, writing code, testing software, and maintaining the system. The waterfall model is advantageous for small projects but inflexible if requirements change, as it is a sequential process where each phase must be completed before the next.
The Waterfall model is a popular sequential model of the software development life cycle where each phase must be completed before the next begins. It consists of requirements, design, implementation, verification, and maintenance phases. Though simple to understand and manage, the Waterfall model works best for smaller, well-defined projects as it is inflexible to changes and produces no working software until late in the cycle.
The document discusses various aspects of the software process including software process models, generic process models like waterfall model and evolutionary development, process iteration, and system requirements specification. It provides details on each topic with definitions, characteristics, advantages and diagrams. The key steps in software process are specified as software specifications, design and implementation, validation, and evolution. Generic process models and specific models like waterfall, evolutionary development, and incremental delivery are explained.
The document discusses the software development life cycle (SDLC) process. It includes 6 main steps: 1) requirement gathering, 2) software analysis, 3) software design, 4) coding, 5) testing, and 6) implementation. For each step, the document provides details on the objectives and activities involved. It also lists advantages of following the SDLC process such as increased quality, improved tracking, and decreased risks. Finally, it provides a coding example for a basic calculator application to illustrate one step of the process.
The COCOMO model is a widely used software cost estimation model developed by Barry Boehm in 1981. It predicts effort, schedule, and staffing needs based on project size and characteristics. The Basic COCOMO model uses three development modes (Organic, Semidetached, Embedded) and a simple formula to estimate effort and schedule based on thousands of delivered source instructions. However, its accuracy is limited as it does not account for various project attributes known to influence costs. Function Point Analysis is an alternative size measurement that counts different types of system functions and complexity factors to estimate effort and cost.
This document discusses several software cost estimation techniques:
1. Top-down and bottom-up approaches - Top-down estimates system-level costs while bottom-up estimates costs of each module and combines them.
2. Expert judgment - Widely used technique where experts estimate costs based on past similar projects. It utilizes experience but can be biased.
3. Delphi estimation - Estimators anonymously provide estimates in rounds to reach consensus without group dynamics influencing individuals.
4. Work breakdown structure - Hierarchical breakdown of either the product components or work activities to aid bottom-up estimation.
This document summarizes key concepts from the first chapter of Ian Sommerville's Software Engineering textbook. It introduces software engineering as an engineering discipline concerned with all aspects of software production. It discusses the objectives of software engineering, topics covered like frequently asked questions and professional responsibility. It also summarizes concepts like the software development process, methods, costs and challenges in the field.
Agile development focuses on effective communication, customer collaboration, and incremental delivery of working software. The key principles of agile development according to the Agile Alliance include satisfying customers, welcoming changing requirements, frequent delivery, collaboration between business and development teams, and self-organizing teams. Extreme Programming (XP) is an agile process model that emphasizes planning with user stories, simple design, pair programming, unit testing, and frequent integration and testing.
The document discusses various aspects of software project management including project planning activities like estimation, scheduling, staffing, and risk handling. It describes different project organization structures like functional organization and project organization. It also discusses different team structures like chief programmer teams, democratic teams, and mixed teams. The document emphasizes the importance of careful project planning and producing a software project management plan document. It also discusses considerations for staffing a project team and attributes of a good software engineer.
The document contains slides from a lecture on software engineering. It discusses definitions of software and software engineering, different types of software applications, characteristics of web applications, and general principles of software engineering practice. The slides are copyrighted and intended for educational use as supplementary material for a textbook on software engineering.
Software System Engineering - Chapter 1Fadhil Ismail
This document introduces software engineering and discusses some key concepts. It defines software engineering as a systematic approach to software development, operation, and maintenance. The goal of software engineering is to produce high-quality software products through defined processes. However, software development faces challenges like inability to build programs fast enough to meet demand. The document also discusses common misconceptions around software, such as the belief that more programmers can catch up on a late project. It identifies poorly defined requirements as a major cause of failed software projects. Finally, it notes problems like lack of data collection and customer dissatisfaction that demonstrate the need for a systematic approach like software engineering.
Software Engineering (Introduction to Software Engineering)ShudipPal
Software engineering is concerned with all aspects of software production. It aims to develop software using systematic and disciplined approaches to reduce errors and costs. Some key challenges in software development are its high cost, difficulty delivering on time, and producing low quality software. Software engineering methods strive to address these challenges and produce software with attributes like maintainability, dependability, efficiency, usability and acceptability.
This document provides an introduction and overview of computer validation training. It discusses why computer validation is important for business, safety, and regulatory reasons. It explains that computer validation has been a regulatory requirement for over 20 years, but scrutiny has increased significantly in recent years. The document outlines the basics of what constitutes a computer system and the validation process, who plays key roles in validation, and why defects in computer systems can have more severe consequences than other equipment problems.
Utility software maintains and optimizes the performance of a computer system. It includes functions like disk defragmentation to improve access speed, backup to safeguard files in case of hardware failure, file management to organize files for easy access, and security features like account management, antivirus scanning, and malware removal to protect the system. Additional utilities allow for compression of files to reduce storage usage, monitor settings to customize display preferences, and keyboard shortcuts for convenient operation.
This document outlines the course plan for a Computer Operations Management course. It includes the course objectives, session topics, assessment details, and required literature. It also provides an introduction to computer operations management and describes the key processes involved, including management activities, development, maintenance, and services. Finally, it outlines the task assignment for students to analyze and propose improvements to the computer operations management system of a company.
This document discusses configuring and using disk quotas on Linux. It describes:
1. Enabling disk quotas by modifying /etc/fstab and remounting filesystems.
2. Initializing quota tracking with quotacheck and assigning quotas to users with edquota.
3. Creating a virtual ext3 filesystem with quotas to test on, and configuring a shared directory with group quotas.
Este documento describe las tecnologías de información y comunicación (TIC) y la sociedad de la información y el conocimiento (SIC). Explica que las TIC incluyen herramientas electrónicas como la televisión, la radio y las computadoras que facilitan el intercambio y difusión de información. También discute tres campos principales de las TIC: e-learning, e-commerce y e-government, y cómo una relación positiva entre las TIC y la SIC podría mejorar el aprendizaje, el comercio y los servicios gub
El documento presenta una introducción al análisis vectorial, incluyendo conceptos como vectores, campos vectoriales, suma y resta de vectores, multiplicación por escalares, sistema de coordenadas cartesianas, vectores unitarios, campo vectorial, producto punto y producto vectorial cruz. Se proveen ejemplos para ilustrar los conceptos y se explican las propiedades de las operaciones vectoriales.
Paleobotany is the study of plant remains from geological contexts to reconstruct past environments, the evolutionary history of plants, and their bearing on the evolution of life. It includes the study of terrestrial plant fossils as well as prehistoric photosynthetic algae and seaweeds. Closely related is palynology, which studies fossilized and extant spores and pollen. Plant fossils can be preserved through impressions, petrifactions showing cellular detail, molds and casts showing three-dimensional form, authigenic mineralizations, and charcoalified fusain preserving fine morphology. Paleobotany is important for reconstructing ancient climate and ecology and the development and evolution of green plants.
Subhash Kumar is an electrical draftsman with over 10 years of experience in the UAE. He has extensive experience in MEP drafting using AutoCAD and Revit, including lighting, power, and small power layouts, single line diagrams, substation and transformer installation details, load schedules, cable routing, and more. Currently working as a senior electrical draughtsman at Al-Banan Electro Mechanical Contracting in Abu Dhabi, he has worked on numerous projects in the oil and gas, industrial, and building sectors.
Propiedades de la Materia Viva, Soluciones, Coloides y Movimiento Brownianopatty1591
Propiedades de la Materia Viva, Soluciones, Coloides y Movimiento Browniano
Sistemas dispersos o mezclas, se tendrá en cuenta que se denomina así, a los sistemas homogéneos (soluciones) o heterogéneos (dispersiones), formados por más de una sustancia. Hay sistemas dispersos en los que se distinguen dos medios: la fase dispersante y la fase dispersa. Las mezclas se caracterizan porque: las componentes de las mezclas conservan sus propiedades, intervienen en proporciones variadas, en ellos hay diferentes clases de moléculas, cuando son homogéneas se pueden fraccionar y cuando son heterogéneas se pueden separar en fases.
Ing. JOSE LUIS SOLIS ROJAS
The document discusses different approaches to systems building, including the traditional systems lifecycle model consisting of definition, feasibility, design, development, testing, implementation, evaluation and maintenance phases. It also covers prototyping, using application software packages, end-user development, outsourcing, structured methodologies, object-oriented development, computer-aided software engineering and software reengineering.
Software is a set of instructions and data structures that enable computer programs to provide desired functions and manipulate information. Software engineering is the systematic development and maintenance of software. It differs from software programming in that engineering involves teams developing complex, long-lasting systems through roles like architect and manager, while programming involves single developers building small, short-term applications. A software development life cycle like waterfall or spiral model provides structure to a project through phases from requirements to maintenance. Rapid application development emphasizes short cycles through business, data, and process modeling to create reusable components and reduce testing time.
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Neetu Marwah
The document discusses the software development life cycle (SDLC). It describes SDLC as a process used in software engineering to break down development into distinct phases to better plan and manage projects. The phases include requirements study, design, development, testing, and maintenance. The document outlines each phase in detail and notes the key documents produced and activities involved at each stage of the SDLC process.
Software Development Life Cycle (SDLC).pptxsandhyakiran10
The document describes the system development life cycle (SDLC) process. It involves several key phases: problem definition, feasibility study, system analysis, system design, system development, implementation, and maintenance. In the system analysis phase, requirements are gathered through interviews, documentation review, and other techniques. System design then specifies how the system will meet requirements through elements like the user interface, data design, and process design. The system is built during development, tested, and then implemented, which may involve training, file conversion, and evaluation. Maintenance keeps the system meeting needs with ongoing support. Accountants can be involved throughout by specifying needs, testing, and using the new system.
The document discusses the system development life cycle (SDLC), which includes various phases for developing and maintaining systems. The key phases are: system investigation, feasibility study, system analysis, system design, coding, testing, implementation, and maintenance. The feasibility study phase evaluates the technical, operational, economic, motivational, and schedule feasibility of a proposed system. The system analysis phase involves studying user requirements and the current system. System design then specifies how the new system will meet requirements through elements like data design, user interface design, and process design. This produces specifications for the system.
The document discusses various approaches to system analysis including waterfall, prototyping, rapid application development, and agile methods. It describes the typical phases of system analysis as planning, analysis, design, implementation, and support/maintenance. Key aspects of requirements analysis are covered such as information discovery techniques like interviews, questionnaires, and joint application design sessions. The benefits and shortcomings of different system analysis methodologies are also summarized.
The document discusses the system development life cycle (SDLC), which is a conceptual model for developing or altering systems throughout their lifecycle. The SDLC includes planning, analysis, design, implementation, testing, and maintenance phases. It is a systematic approach that breaks the work into required phases to implement new or modified information systems. The system analyst guides the system development project by defining requirements, designing logical system structures, and ensuring the system meets user needs.
SE chp1 update and learning management .pptxssuserdee5bb1
The document provides an overview of software engineering concepts including definitions, types of software, software processes, life cycle models and the waterfall model. It defines software engineering as a discipline concerned with all aspects of software development and defines types of software such as system software and application software. The document also summarizes software engineering objectives, reasons for software failures, and the three R's of software engineering - reuse, re-engineering, and re-tooling. Finally, it provides a brief introduction to software process models including the waterfall model.
Week_01-Intro to Software Engineering-1.ppt23017156038
This document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and different types of software applications. The document also introduces a generic software engineering process framework consisting of communication, planning, modeling, construction, and deployment activities. Finally, it provides examples of an embedded insulin pump control system and a patient information system for mental health care to illustrate software engineering concepts and processes.
The document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and characteristics that make it different than other engineered products. The document also outlines some common software applications and categories. It defines the key activities in a generic software process including communication, planning, modeling, construction, and deployment. Finally, it provides examples of two case studies - an embedded system in an insulin pump and a patient information system for mental health care.
The document provides an overview of the Software Development Life Cycle (SDLC), which is a process used to develop software in a logical, structured manner. It consists of six phases - system planning, system analysis, system design, system coding, system testing, and deployment and maintenance. The goal of the SDLC is to produce high-quality software that meets customer expectations with the highest quality, lowest cost, and shortest time. Each phase results in deliverables for the next phase and aims to gradually develop the system from inception of an idea through implementation and delivery.
Software engineering is the process of developing reliable and efficient software using science and engineering principles. It involves determining requirements, designing software modules, coding and testing modules, integrating the system, implementing the system, and maintaining it. The software development life cycle includes requirements specification, design, coding/testing, integration/testing, implementation, and maintenance/documentation/training. Requirements specification involves determining needs, analyzing requirements, feasibility studies, and finalizing requirements. Design includes logical design of modules and physical design of module implementation.
this pdf file includes software development life cycle, requirement analysis and specification, project management, design, coding, testing, maintenance and quality reuse and case tools.
The document discusses the information system development life cycle (SDLC) which includes various phases from problem definition to maintenance and review. It describes each phase in detail including system analysis, design, development, implementation and post-implementation maintenance. It also provides an overview of database management systems (DBMS), their basic concepts and why DBMS are used to manage organizational data and address issues with traditional file-based systems.
The document discusses various aspects of software processes and life cycles. It describes three types of reusable software components: web services, object collections, and stand-alone systems. It also outlines common phases in a software life cycle like requirements analysis, design, implementation, testing, deployment, and maintenance. Incremental delivery approaches are discussed where early increments are delivered to customers.
The document discusses various aspects of software processes and life cycles. It describes three types of reusable software components: web services, object collections, and stand-alone systems. It also outlines common phases in a software life cycle like requirements analysis, design, implementation, testing, deployment, and maintenance. Incremental delivery approaches are discussed where early increments are delivered to customers.
The document provides an overview of a college website management system. It discusses the purpose and scope of the system, which is to automate college operations and provide services to members. It outlines the key functionality including online membership, tracking admissions and activities. The objectives are to make information retrieval and maintenance easy while adopting security measures. The proposed system would use ASP.NET for the front-end and be suitable for any education institute.
Management Information Systems – Week 7 Lecture 2Developme.docxcroysierkathey
Management Information Systems – Week 7 Lecture 2
Development & Improvement
Chapter 13 Systems Development: Design, Implementation, Maintenance,
and Review
You have learned about information systems and seen a little about how the project is run to create a new
system. This week you will focus on the actual systems design process. This will help you whether you
become a programmer, systems analyst or are a department manager. There are countless articles on
this subject on the internet and some great YouTube videos so take a moment to do some extra research
and learn more about systems development.
When an IS manager sits down to design a system they look at several areas and have many special
tools at their disposal.
A systems engineer or senior developer will first look at the logical design. This usually means that they
look at the user request and determine what they really mean! Once they have clarification they will create
a physical design. This might be object-oriented (using code that has already been created) or mock ups
showing interface design and controls. This is sometimes called storyboarding. This image is an example
of creating a new user interface:
System design time is an investment for the business, it will help by preventing, detecting, and correcting
errors prior to the application software being written. It will generate systems design alternatives. One
alternative is to ask software developers to create the application for the business, this is done by creating
a request for proposal (RFP). Software vendors will then propose several options at various price points.
The business can then review the proposals, do a cost benefit analysis and select an appropriate plan of
action.
Once a project has started it is a good idea to freezing design specifications using a contract, and even a
design report called a Functional Design Document. This process is intended to allow the development
team to focus on creating a specific application and not have to try to hit a constantly moving target. As
the application is being developed it is also time to acquire the hardware that will be needed. If the
application requires a headset with microphone for voice input or a super-fast computer, this is the time to
make sure the application will be functional when it is implemented.
Types of IS hardware vendors include:
General computer manufacturers
Small computer manufacturers
Peripheral equipment manufacturers
Computer dealers and distributors
Chip makers
While the application is being developed and the hardware acquired, in a perfect world the personnel will
be hired and trained and any preparations will be done for the site and data requirements (additional disk
drives for databases or could computing). One of the phases of software development is the testing
phase. It really cannot be considered the final stage because it may result in some additional planning,
programming or other modifications. It can be considered to be ...
The systems development life cycle (SDLC) describes the process for planning, creating, testing, and deploying an information system. It involves preliminary system study, feasibility study, detailed system study, system analysis, system design, coding, testing, implementation, and maintenance. The SDLC follows a structured process to ensure high quality systems while maximizing productivity and providing management controls. It originated in the 1960s to develop large scale business systems.
Artificial Intelligence (AI) has revolutionized the creation of images and videos, enabling the generation of highly realistic and imaginative visual content. Utilizing advanced techniques like Generative Adversarial Networks (GANs) and neural style transfer, AI can transform simple sketches into detailed artwork or blend various styles into unique visual masterpieces. GANs, in particular, function by pitting two neural networks against each other, resulting in the production of remarkably lifelike images. AI's ability to analyze and learn from vast datasets allows it to create visuals that not only mimic human creativity but also push the boundaries of artistic expression, making it a powerful tool in digital media and entertainment industries.
Post init hook in the odoo 17 ERP ModuleCeline George
In Odoo, hooks are functions that are presented as a string in the __init__ file of a module. They are the functions that can execute before and after the existing code.
Information and Communication Technology in EducationMJDuyan
(𝐓𝐋𝐄 𝟏𝟎𝟎) (𝐋𝐞𝐬𝐬𝐨𝐧 2)-𝐏𝐫𝐞𝐥𝐢𝐦𝐬
𝐄𝐱𝐩𝐥𝐚𝐢𝐧 𝐭𝐡𝐞 𝐈𝐂𝐓 𝐢𝐧 𝐞𝐝𝐮𝐜𝐚𝐭𝐢𝐨𝐧:
Students will be able to explain the role and impact of Information and Communication Technology (ICT) in education. They will understand how ICT tools, such as computers, the internet, and educational software, enhance learning and teaching processes. By exploring various ICT applications, students will recognize how these technologies facilitate access to information, improve communication, support collaboration, and enable personalized learning experiences.
𝐃𝐢𝐬𝐜𝐮𝐬𝐬 𝐭𝐡𝐞 𝐫𝐞𝐥𝐢𝐚𝐛𝐥𝐞 𝐬𝐨𝐮𝐫𝐜𝐞𝐬 𝐨𝐧 𝐭𝐡𝐞 𝐢𝐧𝐭𝐞𝐫𝐧𝐞𝐭:
-Students will be able to discuss what constitutes reliable sources on the internet. They will learn to identify key characteristics of trustworthy information, such as credibility, accuracy, and authority. By examining different types of online sources, students will develop skills to evaluate the reliability of websites and content, ensuring they can distinguish between reputable information and misinformation.
How to Create User Notification in Odoo 17Celine George
This slide will represent how to create user notification in Odoo 17. Odoo allows us to create and send custom notifications on some events or actions. We have different types of notification such as sticky notification, rainbow man effect, alert and raise exception warning or validation.
How to Download & Install Module From the Odoo App Store in Odoo 17Celine George
Custom modules offer the flexibility to extend Odoo's capabilities, address unique requirements, and optimize workflows to align seamlessly with your organization's processes. By leveraging custom modules, businesses can unlock greater efficiency, productivity, and innovation, empowering them to stay competitive in today's dynamic market landscape. In this tutorial, we'll guide you step by step on how to easily download and install modules from the Odoo App Store.
8+8+8 Rule Of Time Management For Better ProductivityRuchiRathor2
This is a great way to be more productive but a few things to
Keep in mind:
- The 8+8+8 rule offers a general guideline. You may need to adjust the schedule depending on your individual needs and commitments.
- Some days may require more work or less sleep, demanding flexibility in your approach.
- The key is to be mindful of your time allocation and strive for a healthy balance across the three categories.
Cross-Cultural Leadership and CommunicationMattVassar1
Business is done in many different ways across the world. How you connect with colleagues and communicate feedback constructively differs tremendously depending on where a person comes from. Drawing on the culture map from the cultural anthropologist, Erin Meyer, this class discusses how best to manage effectively across the invisible lines of culture.
The Science of Learning: implications for modern teachingDerek Wenmoth
Keynote presentation to the Educational Leaders hui Kōkiritia Marautanga held in Auckland on 26 June 2024. Provides a high level overview of the history and development of the science of learning, and implications for the design of learning in our modern schools and classrooms.
2. Introduction , Defining Software
A set of Instructions (computer programs) that when executed provide desired features,
functions and performances , is called a Software.
Some of the constituted items of software are described below:
Program: The program or code itself is definitely included in the software.
Data : The data on which the program operates is also considered as part of the
software.
Documentation : All the documents related to the software are also considered as part
of the software.
So the software is not just the code written in Cobol , Java or C++ , It also includes the
data and all the documentation related to the program.
3. Engineering and Software Engineering
“The process of productive use of scientific knowledge is called engineering”
Software Engineering is the process of utilizing our knowledge of computer science in effective production of
software systems.
Software Engineering as defined by IEEE(International Institute of Electric and Electronic Engineering). IEEE is an
institution regarding the computer related issues.
“The application of a systematic , disciplined ,quantifiable approach to the development, operation and maintenance of
software, that is , the application of engineering to software”
Definition of Software Engineering by Somerville “All aspects of software production –
It is not just concerned with the technical processes of software development but also with activities such as software
project management and with the development of tools, methods, and theories to support software production”
So , Software engineering is the combination of all the tools , techniques , and processes that used in software
production.
4. Software Engineering by Fritz Bauer
“The establishment and use of sound engineering principles in order to obtain
economically software that is reliable and works efficiently on real machines”
What are “sound engineering principles” that can be applied to computer software
development?
How do we “economically” build software so that it is “reliable”?
What is required to create computer programs that work “efficiently” on not one but
many different “real machines”?
5. Relevant Things To Software
Programming Languages
Programming Language Design
Software Design Techniques
Tools
Testing
Maintenance
Development
Documentation
Project Management
6. Well-Engineered Software’s
Characteristics
It is reliable and produces accurate and expected results.
It has good user-interface (GUI): Information systems must interface effective and
efficient interface to the user.
It has acceptable performances
It is of good quality
It is cost-effective : economically feasible
Every company can build software with unlimited resources, but well-engineered
software is one that conforms to all properties listed above.
The major challenge for a software engineer is that he/she has to build software within
limited TIME and BUDGET in a cost-effective way with good quality.Challenge
7. Stakeholders in Software Systems
Different people have different views of an information system. Managers, users
and technical specialists each view the system in different ways and in different
levels of details. We call these people stakeholders in the system.
A person who gets benefitted by the system is a stakeholder.
OR
A person or group of persons hwo have shares in business.
A stakeholders is any person who has an interest in an existing or new system.
They can be technical or nontechnical workers. These can classified into SIX
groups:
8. Stakeholders in Software Systems
Owners: Who pay for the system to be built and maintained, set priorities, determine
policies for its use, they are sponsors of the system, and responsible for funding the
project to develop, operate and maintain.
Users: Who actually use the system to perform or support the work to be completed
Designers: Who designs (–how will the system be implemented using technology. )the
system to meet the user’s requirements (-what the system “is” and “must” do
independent of technology.)
Builders: Who construct , test and deliver the system into operation. Computer
programmes are written , tested and debugged in coding process.
Analysts: Who studies and analyse the systems in use.
IT Vendors and Consultants: Who sell you hardware and software or services.
9. Software System Development
A system development is a set of activities processes,
methods, best practices and tools used to develop a high quality software and to
maintain it.
Given a taskset , we apply FOUR layers in Software Engineering to solve it
Process (like which theoretical process to follow e.g. Waterfall )
Methods (like how to model data e.g. OOD, UML ,Database Schema)
Tools (like what tools to use for Coding it e.g. C/Java)
A Quality Focus (like performance , efficiency , Cost effectiveness , Time)
10. Stages of Software's Systems
A system life cycle divides the life of an information system into 2 stages.
System Development
System Operation & Support (Maintenance)
First you build it , then you use it , keep it running and support it. Eventually at some
point , you cycle back from Operation & Support to Re-Development.
The 2 key EVENTS between the 2 STAGES are:
1. When a system cycles from Development to Operation & Support, a conversion
must take place.
2. At some point, Obsolescence occurs & a system cycles from Operation & Support
to Re-Development.
11. Conversions
Pilot Conversion- manual work is stopped at a sudden and software is used.
Partial Conversion- simultaneously the developed software is used along with the
manual paper work.
12. 3 important reasons to start a project
(Business Needs)
These are reasons due to which the existing system requires changes:
Problems – it needs corrective actions and are complaints made by users
whether internal or external users. Problems are to be solved. e.g. Reports may be
late or customers complaining about quality or to build the defected area of the
existing system.
Opportunities- these are chances of successes for businesses , new ways and
enhancements for earnings. Knowledge workers like managers explores it.
Opportunities are exploited. e.g. management sees that the expected goals are not
achieved… explore an option.
Directives- these are simply orders from the management like owners or board of
governors of organizations. Directives are obeyed. e.g. re-organizing the system or
building new one.
13. Software Development Life Cycle (SDLC):
8-steps in 3-phases
Survey the situation
Study the existing system Analysis Phase
Define User Requirements
Evaluate Alternative Solutions
Acquire new Hardware / Software (if needed) Design Phase
Design the system
Implement the system
Deliver the system Implementation Phase
14. SDLC: Survey The Situation
Feasibility and initial survey of the project with objectives and nature
Cost/benefit analysis in rough
Scope of the project (boundaries of the system) and Problem
Knowledge Workers identification (Domain Experts)
Time and Budget
Existing Hardware and Software with skills of workers and staff
Suppliers , Customers , Unions , Policies , Charts , Forms , Documents
Output: Feasibility Statement with verification from owners
Check to cancel the project.
15. SDLC: Study The Existing System
Detailed survey of the existing system (appoint a study team)
Identification of Various Sources of data with Collection of data using:
Interviews , Questionnaires , Record Reviews ,Meetings , Observation
How serious are the problems ? And how important are the opportunities?
Costs and expenditures for the existing system, cost/benefits of the proposed
system
Identification of the competitors, vendors and services providers
Job descriptions and responsibilities of workers
Output: Problem Statement with verification from owners.
Check to cancel the project.
16. SDLC: Define User Requirements
What the owners and users wants of the system?
Requirement Engineering (slide 25)
Output: Requirement Statement with verification from owners
17. SDLC: Evaluate Alternative Solutions
Look for possible solutions on the basis of :
Economic Feasibility – do we have the budget? New equipment may be needed
and staff deployed… (cost-benefit analysis)
Operational Feasibility- any resistance from users if implemented? Will it be
user-friendly if implemented? Better than existing system?
Technical Feasibility- do our team have the capability to do the project?
Will it solve the problem easily? Existing equipment or new to use? Repair the
defected area of the existing system or new one to develop?
(less cost , user friendly, expertise)-get opinion of the owners
Think of OUTSOURCERS in special. Check to cancel the project.
Select the one
18. SDLC: Acquire New Hardware/Software (if
needed)
Demand of proposals to Venders and Service providers
Output: Proposals for equipment in return
19. SDLC: Design The System
Algorithms and business logic on paper (Processing Design )
Flowcharts of activities to view system flow of control
Front-end GUI (effective and efficient that must be user friendly)
Controls for navigation (Interface Design )
Forms Layout for data entering (Input Design)
Reports layout to view information (Output Design)
Database schema for storing data (Storage Design and File structure)
Advice: (get it okayed by the owners and users) –get opinion of owners
Check to cancel the project.
20. SDLC: Implement The System
Write computer programs,
test(identification of un-discovered error) and
debug (fixing errors) and documenting it
Actual code in high level languages is hard coded
Installation and configuration of hardware and software if purchased
21. SDLC: Deliver The System
Software
Hardware
Installation and Configuration
Documentation
Training (support)
22. Documentation Phase of SDLC
Feasibility Statement
Problem Statement
Requirements Statement and SRS
Getting Opinions and Views of Owners and Users (Internal and External)
on Design of the system
Flowcharts and Algorithms to visualize activities in Design with Reports and Forms
plus Database Schema ( DFD and ERD)
Source Code , devising Testing strategies
Trainings and Tutorials (Support)
23. Usage of SDLC
Manual system when applied SDLC , you get Improved Proposed system
Existing
System
SDL
C
Proposed System
24. Usage of SDLC
Given an existing system with business needs of Problems, Directive or Opportunities,
when you apply SDLC to it, you get an Improved system where the Directives are
fulfilled, Problems removed and Opportunities exploited.
25. REQUIREMENTS ENGINEERING
“The broad spectrum of tasks and techniques that leads to an understanding of
requirements is called requirements engineering “
Does the customer know what is required?
Do the end users have understanding of the features and functions that will
provide benefit to organization?
Will the needs not change?
26. Definitions of Software Requirements
Caper Jones … “ a statement of needs by a user that triggers the development of
a program or system”
Alan Davis … “ a user need or necessary feature, function, or attribute of a system
that can be sensed from a position external to that system”
Sommerville…” a specification of what should be implemented. They are
descriptions of how the system should behave , or of a system property or
attribute. They may be a constraint on the development process of the system”
IEEE…” a condition or capability needed by user to solve a problem or achieve an
objective”
27. Characteristics of Requirement Statement
Complete (covering all aspects like scope , performance , constraints…)
Correct (posses no mistakes, according to the needs)
Feasible (can be done under the known capabilities of resources)
Prioritized (whether a basic need or an ad-on)
Un-ambiguous (narrative be interpreted as the same by all)
Verifiable (testable and sources defined)
Traceable (Features are well distinguished in each phase)
Changeable (Traceable features are changeable)
28. Importance of Requirements
Fred Brooks in his classical book on software engineering and project
management “ The Mythical Man Month” emphasizes the importance of
requirements engineering and writes:
“The hardest single part of building a software system is deciding precisely what to
build. No other part of the conceptual work is as difficult as establishing the
detailed technical requirements , including all the interfaces to people , to
machines, and to other software systems. No part of the work so cripples the
system if done wrong. No part is more difficult to rectify later.”
So , Requirements engineering tasks are conducted to establish a solid foundation for
design and implementation. It occurs in communication and analysis phases
mainly.
29. Key Point
Requirements Engineering establishes a solid base for design and implementation.
Without it , the resulting software has a high probability of not meeting customers’
needs.
“The seeds of major software disasters are usually sown in the first three months
of commencing the software project” – Caper Jones
“Requirement Engineering provides the appropriate mechanism for understanding
what the customer wants, analyzing needs , assessing feasibility , negotiating a
reasonable solution ,specifying the solution unambiguously , validating the
specification ,and managing the requirements as they are transformed into an
operational system.”
30. Some Risks In Requirements
Insufficient user involvement leads to unacceptable products.
Creeping user requirements contribute to overruns and degrade quality.
Ambiguous requirements lead to ill-spent time and rework.
Gold-plating by developers and users adds unnecessary features.
Minimal specification lead to missing key requirement and hence result in an
unacceptable product.
Incompletely defined requirements make accurate project planning and tracking
impossible.
Internal Politics may influence requirements.
32. Stakeholders Point Of View
Different stakeholders have different requirements-sometimes even conflicting e.g.
Users would describe their own requirements and quality attributes, and that
cannot be ignored because they actually use the system.
Management would provide business requirements and project parameters.
Hardware Engineers would specify hardware interfaces.
Marketers would specify their own requirements.
Software engineer will be interested in some other.
33. Seven Tasks or Functions in Requirements
Engineering
These 7 tasks are conducted by members of the Software Team
Inception
Elicitation
Elaboration
Negotiation
Specification
Validation
Management
34. Inception
Establish a basic understanding of the problem, and scope
Feasibility of project (3-types of feasibility )
Address major features and functions that must be present for the system to meet
its objectives.
The people who want a solution are identified (stakeholders)
The nature of the solution that is desired (stakeholders perception)
Define overriding project constraints and restrictions
Effectiveness of preliminary communication and collaboration between the other
stakeholders and the software team
35. Inception (output)
Problem understanding
Scope of project
Stakeholders perception of solution
Feasibility of the project
Features and functions of the system
Constraints on features and functions applied
Quality constraints (speed and accuracy )
Size , Time ,Cost ,Deadlines related restrictions or any business rules
OUTPUT : Product Request in 1 or 2 pages
36. Elicitation (A requirement gathering activity) --3
What are the objectives of the system and product?
Previous info is expanded and refined. (INPUT)
How the system or product fits into the needs of the business?
Christel and Kang identified 3 types of problems while eliciting :
Problem of scope : The boundary of the system is ill-defined or the
customer / user specify unnecessary technical detail that may confuse , rather
than clarify overall system objectives.
Problem of volatility: The requirements change over time.
Problem of understanding: continued on next slide…
37. Elicitation
Problem of understanding: The customers /users are not completely sure of
what is needed
Have poor understanding of the capabilities and limitations of their computing
environment
Don’t have a full understanding of the problem domain
Have trouble communicating needs to the system engineer
Omit information that is believed to be “obvious”
Specify requirement that conflict with the needs of other customers/users
Specify requirements that are ambiguous or untestable
38. Elicitation (Goal)--1
The goal is to identify the problem , propose elements of solution , negotiate different
approaches , and specify a preliminary set of solution requirements .
Collaborative Requirements Gathering : (Procedure)
Meetings are conducted
Rules for preparations and participation are established
An agenda is suggested
Charts , bulletin boards etc are used for reviews (Definition Mechanism)
39. Elicitation (Taskset)--2
For a small , relatively simple project ,the taskset for elicitation is:
Make a list of stakeholders for the project
Invite all to an informal meeting
Ask each one to make a list of features and functions required
Discuss and build a final list
Prioritize requirements
Note areas of uncertainty
Note constraints and restrictions that will be placed on the system
Discuss methods for validation
40. Elicitation (Output)--4
Feasibility statement
Requirements statement
Scope and boundary of the system
Stakeholders perception of solution
Technical details
Features and functions with constraints and restrictions imposed
Costs approximations
41. Elaboration
Expanding and refinements using UML and diagrams are made
(You must know when to stop)
Covered in slide 51
42. Negotiation
Customers ,users and other stakeholders are asked to rank requirements and then
discuss conflicts in priority.
Assess their cost and risk
Addresses any internal conflicts
Combined ,modified to achieve some measure of satisfaction
(all argue that their version of requirements is essential for their special needs)
Advice: There should be no winner and no loser in an effective negotiation. Both sides
win, because a “deal” that both can live with is solidified.
The intent of this negotiation is to develop a realistic project plan on the basis of
priority and relative cost of each requirement.
43. The Art of Negotiation
Not a competition rather compromise
Listen carefully
Focus on the other side interests
Be creative
44. Specification Definition
A specification can be a written document, a set of graphical models , a
mathematical model , a collection of usage scenarios , a prototype, or any
combination of these.
Written document that combines natural language descriptions and graphical
models may be a best approach that is well understood in technical environments.
A software requirements specification (SRS ) is a document that is created when a
detailed description of all aspects of the software to be built must be specified
before the project is to commence.
45. Software Requirements Specification
(SRS)
Table of contents
Revision History
Introduction
• Purpose
• Project Scope
• References
Product and System Features
Operating Environment
Design and Implementation Constraints
Assumptions and Dependencies
User Interfaces
Performance Requirements
Security Requirements
Issues List
46. Central Role of SRS
Refer to srs-template
SRS
Project Planning
& Analysis
Project
Management
System Testing
Project
Documentation
Design
Implementation
Analysis
47. Validation (For Quality)
To ensure that software requirements have been stated unambiguously
That inconsistencies , omissions and errors have been detected and corrected or
removed
The specification is looked for errors in content or interpretation
Areas where clarification may be required
Missing information
Conflicting requirements
Un-realistic and un-achievable requirements
Use of Checklist in Validation… (Next Slide)
48. Validation Checklist
It is often useful to examine each requirement against a set of checklist questions.
Are requirements stated clearly?
Can they be misinterpreted?
Is the source (e.g. a person , a regulation , a document) of the requirement
identified or referenced?
Does the requirements violate any system domain constraints?
Is the requirements testable? If so, can we specify tests called validation criteria ,to
exercise the requirements?
Is the requirements structured in a way that leads to easy understanding , easy
reference , and easy translation into more technical word products?
49. Requirements Management
Project team must identify , control , and track requirements and changes to
requirements at any time as the project proceeds.
50. DATA MODELING
System description shows overall business functionality that is achieved by
applying software ,hardware ,data , human
Design shows application architecture , user interface & component level structure
SYSTEM
DESCRIPTIO
N
ANALYSI
S MODEL Design
51. Elements of analysis model
Scenario based elements depicts how the user interacts with the system and the
specific sequence of activities that occur as the software is used
Class based elements shows relationships between the objects
Behavioral elements show how external events change the state of the system
Flow oriented elements represent the system as an information transform ,
depicting how data flow through various system functions
52. Elements Of Analysis Model
.
Scenario –based elements
like use cases
Class based like Class
Diagram
Behavioral elements like
state and sequence
diagrams
Flow elements like DFD’s
Software
Requirements
53. Use Cases LIBERARY SYSTEM
-
Reserve
book
Borrow
book
Return
book
Extend
loan
Update Record
Browse
65. The Software PROCESS (Phased approach )
A process is a collection of activities , actions and tasks that are performed when some
work product (software) is to be created .
A process framework is a collection of activities in sequence …
Communication
Planning
Analysis
Design
Implementation
Deployment
Maintenance
Decommissioning
66. Communication
Before any technical work can commence , it is critically important to communicate
and collaborate with the customer and other stakeholders . The intent is to
understand stakeholders objectives for the project and to gather requirements that
help define software features and functions .
67. Planning
The software project plan defines the work by describing :
the technical tasks to be conducted ,
the risks that will affect the quality ,
the resources that will be required (needed),
the work product to be produced ,
and a work schedule .
69. Design
Algorithms and business logic on paper (Processing Design )
Flowcharts of activities to view system flow of control
Front-end GUI (Interface Design )
Forms Layout for data entering (Input Design)
Reports layout to view information (Output Design)
Data Model
Database schema for storing data (Storage Design and File structure)
ERD
70. Implementation
This activity combines code generation ( either manual or automated ) and testing
that is required to uncover errors in the code.
71. Deployment
The software is delivered to the customer and feedback is received on acceptance
testing.
74. Umbrella Activities (overlapped)
Software engineering process framework activities are complemented by a number of
umbrella activities which are applied throughout a software project and help a software
team to manage and control progress , quality , change , and risk .
Software project tracking and control (Project Management )
Risk management (Quality affecting )
Software quality assurance (Q/A)
Technical reviews (Validation)
Change control management
Reusability management
Documentation
Testing
75. The Waterfall Software Process Model
In times when the requirements are well understood , well defined and reasonably
stable and static.
When work flows from COMMUNICATION through DEPLOYMENT in a linear
fashion.
When enhancements to an existing system are made.
The Waterfall model , sometimes called the classic life cycle , suggests a
systematic , sequential approach to software development that begins with
communication , and progresses through planning , analysis , design,
implementation , deployment …
This approach was first formulated and documented by Dr. Winston W. Royce in
1983
Blocking States are present .
76. WATERFALL PROCESS MODEL
CONCEPT & FEASIBILITY
USER REQUIREMENTS
DEVELOPER SPECIFICATIONS
PLANNING
DESIGN
IMPLEMENTATION
INTEGRATION TESTING
ACCEPTANCE TESTING
OPERATION & MAINTENANCE
DECOMMISSIONING
TEST
TEST
TEST
TEST
TEST
DEVELOPMENT
OPR &
MAINTENANCE
2
WEEK
S
2
WEEKS
2
WEEKS
8 WEEKS
4 WEEKS
77. A case in point
I didn’t discuss with the customer the specs of the HW and OS before developing a
particular e-commerce software
I wrote it for the hardware and operating system that was easily available to me.
Unfortunately that hardware / operating system differed from the what was easily
available to the client.
Result: huge amount of rework, higher cost, delayed delivery, low quality, raised
complexity.
79. The Extreme Programming Process
.
Planning Design
Testing
Implement
ation
User stories
Acceptance Test
Criteria
Prototypes
Pair Programming
Refactoring
Unit Testing
Acceptance Testing
Release
Or Software
Increments