The document discusses software engineering and the Unified Software Development Process (USDP). It describes the USDP which includes phases of inception, elaboration, construction, and transition. Each phase involves iterations where requirements, analysis, design, implementation, and testing are done. The goal of each iteration is to produce an executable increment that is tested and evaluated.
This document provides an overview of software engineering. It discusses what software engineering is, common software development process models like waterfall, spiral, agile development, and the Unified Software Development Process (USDP). The USDP follows an iterative approach with phases for inception, elaboration, construction, and transition. Each phase has milestones and the process involves iterations where requirements, design, coding, and testing are done to create executable increments.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
The document provides information on the Software Engineering course for the second semester of the B.Tech IT program in 2008-2009. It includes the syllabus, topics to be covered in each lecture, and slides on various topics like the introduction to software engineering, the changing nature of software, software myths, a generic view of the software process, the Capability Maturity Model Integration (CMMI), and personal and team process models.
This document discusses key topics in software engineering including its importance, costs, methods, challenges and professional responsibilities. It begins by outlining the objectives of understanding what software engineering is, its importance, and ethical issues. It then discusses that software costs, especially maintenance, often exceed development costs. Software engineering aims to improve cost-effectiveness. The document poses several frequently asked questions about software engineering and provides concise answers, covering topics such as the definition of software and differences between computer science, software engineering and system engineering. It also discusses software processes, costs, methods, CASE tools, attributes of good software and challenges in the field.
Project management involves planning, monitoring, and controlling a project from initial concept through deployment. It includes defining the project scope, decomposing problems, managing stakeholders, choosing an appropriate process model, and ensuring effective communication. Signs a project may be in jeopardy include poorly defined scope or needs, uncontrolled changes, unrealistic deadlines, lack of skills on the team, and failure to apply best practices.
This document discusses the software development life cycle (SDLC) model. It defines the SDLC as a detailed plan for creating, developing, implementing, and eventually retiring software. The SDLC involves phases such as concept development, planning, requirements analysis, design, development, testing, implementation, and maintenance. Two common SDLC models are the waterfall model and iterative model. Following an SDLC is important for health IT systems to ensure software meets needs, integrates properly, and has appropriate documentation for maintenance.
Process models provide structure and organization to software development projects. They define a series of steps and activities to follow, including communication, planning, modeling, construction, and deployment. Various process models exist such as waterfall, iterative, incremental, prototyping, and spiral. Process patterns describe common problems encountered and proven solutions. Process assessment ensures the chosen process meets criteria for success. Evolutionary models like prototyping and spiral are useful when requirements are unclear and the project involves risk reduction through iterative development.
This document provides an overview of software engineering. It discusses what software engineering is, common software development process models like waterfall, spiral, agile development, and the Unified Software Development Process (USDP). The USDP follows an iterative approach with phases for inception, elaboration, construction, and transition. Each phase has milestones and the process involves iterations where requirements, design, coding, and testing are done to create executable increments.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
The document provides information on the Software Engineering course for the second semester of the B.Tech IT program in 2008-2009. It includes the syllabus, topics to be covered in each lecture, and slides on various topics like the introduction to software engineering, the changing nature of software, software myths, a generic view of the software process, the Capability Maturity Model Integration (CMMI), and personal and team process models.
This document discusses key topics in software engineering including its importance, costs, methods, challenges and professional responsibilities. It begins by outlining the objectives of understanding what software engineering is, its importance, and ethical issues. It then discusses that software costs, especially maintenance, often exceed development costs. Software engineering aims to improve cost-effectiveness. The document poses several frequently asked questions about software engineering and provides concise answers, covering topics such as the definition of software and differences between computer science, software engineering and system engineering. It also discusses software processes, costs, methods, CASE tools, attributes of good software and challenges in the field.
Project management involves planning, monitoring, and controlling a project from initial concept through deployment. It includes defining the project scope, decomposing problems, managing stakeholders, choosing an appropriate process model, and ensuring effective communication. Signs a project may be in jeopardy include poorly defined scope or needs, uncontrolled changes, unrealistic deadlines, lack of skills on the team, and failure to apply best practices.
This document discusses the software development life cycle (SDLC) model. It defines the SDLC as a detailed plan for creating, developing, implementing, and eventually retiring software. The SDLC involves phases such as concept development, planning, requirements analysis, design, development, testing, implementation, and maintenance. Two common SDLC models are the waterfall model and iterative model. Following an SDLC is important for health IT systems to ensure software meets needs, integrates properly, and has appropriate documentation for maintenance.
Process models provide structure and organization to software development projects. They define a series of steps and activities to follow, including communication, planning, modeling, construction, and deployment. Various process models exist such as waterfall, iterative, incremental, prototyping, and spiral. Process patterns describe common problems encountered and proven solutions. Process assessment ensures the chosen process meets criteria for success. Evolutionary models like prototyping and spiral are useful when requirements are unclear and the project involves risk reduction through iterative development.
This ppt explains about the FAQ's in software engineering and software engineer profession and ethics of software engineer.
Difference between the system engineer and software engineer.
The document discusses the system development life cycle (SDLC), which describes the stages involved in developing or improving an information system. It identifies the key stages as system planning, analysis, design, implementation, and operation/support. In system planning, a request is made and feasibility is analyzed. Analysis involves requirements modeling. Design develops the user interface and architecture. Implementation includes programming, testing, installation, and training. Operation/support involves maintenance, enhancement, and security of the live system.
The document discusses software architecture and life cycle management. It defines a company information system and notes that architecture has always been important, even in the 1960s, though the technological means have changed. It discusses architectural disorientation and notes that without proper architecture, software systems can become disorganized "shantytowns". It provides definitions of architecture and notes that good architecture balances stakeholder needs and may conform to recognized styles.
This presentation explains what is software development methodology. It also explores various methodologies such as Waterfall Model, Prototype Model, Incremental Model, Spiral Model, RAD Model, and V-Model.
http://www.ifour-consultancy.com/
http://www.ifourtechnolab.com
This document discusses several system development approaches and models, including the waterfall model, incremental model, spiral model, and V-model. It provides details on the key stages and principles of the waterfall model. The incremental model aims to address some limitations of the waterfall model by developing the system incrementally in successive stages with client feedback between each increment. The spiral model incorporates risk analysis into system development through a series of cycles or iterations. The V-model emphasizes the connection between development stages and corresponding testing stages to help ensure quality.
The document discusses different systems development life cycles (SDLC) including the traditional SDLC model and alternatives like prototyping, Rapid Application Development (RAD), and Joint Application Development (JAD). The traditional SDLC model involves phases like requirements definition, feasibility study, systems analysis, systems design, implementation, and maintenance. However, it has some limitations that newer approaches aim to address, focusing more on user involvement, flexibility, and rapid iterations.
This document provides an overview of software and software engineering. It defines software, discusses why software is important, and explores key software engineering concepts like the software development process, process models, case studies, and requirements. Specifically, it defines software, explains that software engineering aims to produce reliable software economically, and discusses the importance of processes and methods in software development.
During the Spring semester, I teach a 3 credit survey course in software development, at UW-Madison (IS 371), which is the first in the series of courses in the Information Systems major track. As part of this course, I devote an entire lecture to discussing different types of software development (Agile, Waterfall, Extreme, Spiral, etc.) I hope it helps the students better understand the different types of software development styles, as well as the benefits and drawbacks of each. In my opinion, they need to learn early on that there is more than one way to go about a software development challenge, and they need to figure out which style works best for them.
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.
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.
This document contains lecture notes for a course on Software Engineering (CS504). It covers topics like introduction to software engineering, requirement engineering, software design, object oriented analysis and design, coding guidelines, testing, debugging and more. The lectures were delivered by Dr. Fakhar Lodhi and there are a total of 45 lectures in the notes.
The document discusses object oriented analysis and design using the iterative development approach. It describes the iterative development process, which involves short, fixed-length iterations to incrementally develop a software system. Each iteration includes requirements analysis, design, implementation, and testing activities. The Rational Unified Process (RUP) framework is discussed as an example of an iterative development methodology. RUP includes phases like inception, elaboration, construction, and transition with iterations conducted within each phase. The benefits of the iterative approach over the traditional sequential waterfall model are highlighted.
Software engineering is a field of Computer science, for designing and writing programs for computers or other electronic device. This presentation is about of Principles of Software Engineering, Phases of Agile Unified Process, and Work areas of Agile Unified Process (AUP), Philosophies of Agile Unified Process (AUP) and Laws on Agile Unified Process (AUP).
The document discusses several software process models:
- The Linear Sequential (Waterfall) Model is a simple, systematic approach where each phase must be completed before moving to the next. It is best for small, well-defined projects.
- The Incremental Model applies the Linear Sequential Model iteratively to increments, delivering working software in stages. This allows for early delivery and flexibility.
- The Prototyping Model involves building prototypes to refine requirements through client feedback in iterations. This helps establish clear objectives.
- Rapid Application Development (RAD) is a fast version of the Linear Sequential Model using a component-based approach to accelerate delivery of fully functional projects.
The document discusses the importance of requirements gathering for project success. It notes that 70-80% of project failures can be attributed to poor requirements gathering, analysis, and management. While requirements gathering is critical, it is often overlooked or not allocated enough time. The document provides five key components of effective requirements gathering: clearly defining requirements before scope, identifying project and product requirements, adequately documenting requirements, selecting the right methodology, and engaging diverse users. It emphasizes that requirements gathering lays the foundation for a successful project.
This is short review of project matrices. This short lecture provides an overview that how software project matrices help software project manager to make accurate estimates.
This document provides an introduction to software engineering. It defines software engineering as a systematic approach to software development that addresses quality. The document also discusses how software engineering emerged in response to the "software crisis" of the 1960s to establish discipline around software development. It outlines the typical roles and phases in a software engineering project, including requirements analysis, design, implementation, testing, and maintenance.
This document discusses object-oriented analysis and design (OOAD) using the Unified Modeling Language (UML). It covers the software development life cycle (SDLC), different software development approaches, object-oriented concepts, and the role of OOAD in SDLC. Specifically, it outlines the phases of SDLC, compares software development approaches like waterfall and prototyping, explains core OO concepts, and describes how OOAD incorporates OO principles into requirements analysis and design.
Pinnacle West Capital Corporation sought to transform its IT department from a traditional functional model to a process-oriented one to improve communication between business and IT and increase responsiveness to change. The company's CIO, Denny Brown, established a Center for Process Excellence to lead the effort using lean principles and small, skilled teams. An assessment determined that implementing a Process and Enterprise Maturity Model was the best approach to identify strengths and weaknesses and enable the necessary process capabilities and performance management. The implementation focused on defining responsible owners for each process, empowering performers through decentralized management, and establishing metrics to continuously improve processes across the organization.
The document discusses software process models which define a structured set of activities for developing software systems. These activities typically include specification, design & implementation, validation, and evolution. Process models provide organization and stability to software development. They define the approach taken and include activities like communication, planning, modeling, construction, and deployment. Process models can have different flows like linear, iterative, or evolutionary and can address problems at different levels of abstraction through patterns. Process assessment methods help ensure processes meet criteria for successful software engineering.
Software Engineering The Multiview Approach And Wisdmguestc990b6
The document provides an overview of web information system development methodology. It discusses key components of information systems and why structured methodologies are important for information system projects. It then describes various software development models including waterfall, iterative, evolutionary, spiral and V-model. Finally, it discusses special considerations for web-based information systems and proposes a socio-technical web information system development methodology called WISDM that takes organizational, technical and human factors into account.
The document discusses architecture-centric software development processes. It describes traditional waterfall and iterative development models, and notes that iterative models allow for more flexibility to changing requirements. Agile development methods like eXtreme Programming (XP) are discussed, which emphasize iterative development, collaboration, and rapid delivery of working software. Key practices of XP are outlined, including user stories, testing, pair programming, refactoring, and continuous integration. The role of architecture in agile processes is also addressed.
This ppt explains about the FAQ's in software engineering and software engineer profession and ethics of software engineer.
Difference between the system engineer and software engineer.
The document discusses the system development life cycle (SDLC), which describes the stages involved in developing or improving an information system. It identifies the key stages as system planning, analysis, design, implementation, and operation/support. In system planning, a request is made and feasibility is analyzed. Analysis involves requirements modeling. Design develops the user interface and architecture. Implementation includes programming, testing, installation, and training. Operation/support involves maintenance, enhancement, and security of the live system.
The document discusses software architecture and life cycle management. It defines a company information system and notes that architecture has always been important, even in the 1960s, though the technological means have changed. It discusses architectural disorientation and notes that without proper architecture, software systems can become disorganized "shantytowns". It provides definitions of architecture and notes that good architecture balances stakeholder needs and may conform to recognized styles.
This presentation explains what is software development methodology. It also explores various methodologies such as Waterfall Model, Prototype Model, Incremental Model, Spiral Model, RAD Model, and V-Model.
http://www.ifour-consultancy.com/
http://www.ifourtechnolab.com
This document discusses several system development approaches and models, including the waterfall model, incremental model, spiral model, and V-model. It provides details on the key stages and principles of the waterfall model. The incremental model aims to address some limitations of the waterfall model by developing the system incrementally in successive stages with client feedback between each increment. The spiral model incorporates risk analysis into system development through a series of cycles or iterations. The V-model emphasizes the connection between development stages and corresponding testing stages to help ensure quality.
The document discusses different systems development life cycles (SDLC) including the traditional SDLC model and alternatives like prototyping, Rapid Application Development (RAD), and Joint Application Development (JAD). The traditional SDLC model involves phases like requirements definition, feasibility study, systems analysis, systems design, implementation, and maintenance. However, it has some limitations that newer approaches aim to address, focusing more on user involvement, flexibility, and rapid iterations.
This document provides an overview of software and software engineering. It defines software, discusses why software is important, and explores key software engineering concepts like the software development process, process models, case studies, and requirements. Specifically, it defines software, explains that software engineering aims to produce reliable software economically, and discusses the importance of processes and methods in software development.
During the Spring semester, I teach a 3 credit survey course in software development, at UW-Madison (IS 371), which is the first in the series of courses in the Information Systems major track. As part of this course, I devote an entire lecture to discussing different types of software development (Agile, Waterfall, Extreme, Spiral, etc.) I hope it helps the students better understand the different types of software development styles, as well as the benefits and drawbacks of each. In my opinion, they need to learn early on that there is more than one way to go about a software development challenge, and they need to figure out which style works best for them.
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.
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.
This document contains lecture notes for a course on Software Engineering (CS504). It covers topics like introduction to software engineering, requirement engineering, software design, object oriented analysis and design, coding guidelines, testing, debugging and more. The lectures were delivered by Dr. Fakhar Lodhi and there are a total of 45 lectures in the notes.
The document discusses object oriented analysis and design using the iterative development approach. It describes the iterative development process, which involves short, fixed-length iterations to incrementally develop a software system. Each iteration includes requirements analysis, design, implementation, and testing activities. The Rational Unified Process (RUP) framework is discussed as an example of an iterative development methodology. RUP includes phases like inception, elaboration, construction, and transition with iterations conducted within each phase. The benefits of the iterative approach over the traditional sequential waterfall model are highlighted.
Software engineering is a field of Computer science, for designing and writing programs for computers or other electronic device. This presentation is about of Principles of Software Engineering, Phases of Agile Unified Process, and Work areas of Agile Unified Process (AUP), Philosophies of Agile Unified Process (AUP) and Laws on Agile Unified Process (AUP).
The document discusses several software process models:
- The Linear Sequential (Waterfall) Model is a simple, systematic approach where each phase must be completed before moving to the next. It is best for small, well-defined projects.
- The Incremental Model applies the Linear Sequential Model iteratively to increments, delivering working software in stages. This allows for early delivery and flexibility.
- The Prototyping Model involves building prototypes to refine requirements through client feedback in iterations. This helps establish clear objectives.
- Rapid Application Development (RAD) is a fast version of the Linear Sequential Model using a component-based approach to accelerate delivery of fully functional projects.
The document discusses the importance of requirements gathering for project success. It notes that 70-80% of project failures can be attributed to poor requirements gathering, analysis, and management. While requirements gathering is critical, it is often overlooked or not allocated enough time. The document provides five key components of effective requirements gathering: clearly defining requirements before scope, identifying project and product requirements, adequately documenting requirements, selecting the right methodology, and engaging diverse users. It emphasizes that requirements gathering lays the foundation for a successful project.
This is short review of project matrices. This short lecture provides an overview that how software project matrices help software project manager to make accurate estimates.
This document provides an introduction to software engineering. It defines software engineering as a systematic approach to software development that addresses quality. The document also discusses how software engineering emerged in response to the "software crisis" of the 1960s to establish discipline around software development. It outlines the typical roles and phases in a software engineering project, including requirements analysis, design, implementation, testing, and maintenance.
This document discusses object-oriented analysis and design (OOAD) using the Unified Modeling Language (UML). It covers the software development life cycle (SDLC), different software development approaches, object-oriented concepts, and the role of OOAD in SDLC. Specifically, it outlines the phases of SDLC, compares software development approaches like waterfall and prototyping, explains core OO concepts, and describes how OOAD incorporates OO principles into requirements analysis and design.
Pinnacle West Capital Corporation sought to transform its IT department from a traditional functional model to a process-oriented one to improve communication between business and IT and increase responsiveness to change. The company's CIO, Denny Brown, established a Center for Process Excellence to lead the effort using lean principles and small, skilled teams. An assessment determined that implementing a Process and Enterprise Maturity Model was the best approach to identify strengths and weaknesses and enable the necessary process capabilities and performance management. The implementation focused on defining responsible owners for each process, empowering performers through decentralized management, and establishing metrics to continuously improve processes across the organization.
The document discusses software process models which define a structured set of activities for developing software systems. These activities typically include specification, design & implementation, validation, and evolution. Process models provide organization and stability to software development. They define the approach taken and include activities like communication, planning, modeling, construction, and deployment. Process models can have different flows like linear, iterative, or evolutionary and can address problems at different levels of abstraction through patterns. Process assessment methods help ensure processes meet criteria for successful software engineering.
Software Engineering The Multiview Approach And Wisdmguestc990b6
The document provides an overview of web information system development methodology. It discusses key components of information systems and why structured methodologies are important for information system projects. It then describes various software development models including waterfall, iterative, evolutionary, spiral and V-model. Finally, it discusses special considerations for web-based information systems and proposes a socio-technical web information system development methodology called WISDM that takes organizational, technical and human factors into account.
The document discusses architecture-centric software development processes. It describes traditional waterfall and iterative development models, and notes that iterative models allow for more flexibility to changing requirements. Agile development methods like eXtreme Programming (XP) are discussed, which emphasize iterative development, collaboration, and rapid delivery of working software. Key practices of XP are outlined, including user stories, testing, pair programming, refactoring, and continuous integration. The role of architecture in agile processes is also addressed.
Iterative model.
Spiral model
RAD(Rapid application development)
model.
Iterative model.
Spiral model
RAD(Rapid application development)
model.
A Water Fall Model is easy to flow.
It can be implemented for any size of project.
Every stage has to be done separately at the right time so you cannot jump stages.
Documentation is produced at every stage of a waterfall model allowing people to understand what has been done.
Testing is done at every stage.
This model was not the first model to discuss iterative development.
As originally envisioned, the iterations were typically 6 months to 2 years long.
Each phase starts with a design goal and ends with the client (who may be internal) reviewing the progress thus far.
Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of the project.
This model was not the first model to discuss iterative development.
As originally envisioned, the iterations were typically 6 months to 2 years long.
Each phase starts with a design goal and ends with the client (who may be internal) reviewing the progress thus far.
Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of the project.
This model was not the first model to discuss iterative development.
As originally envisioned, the iterations were typically 6 months to 2 years long.
Each phase starts with a design goal and ends with the client (who may be internal) reviewing the progress thus far.
Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of the project.
This approach carries less risk than a traditional Waterfall approach but is still far more risky and less efficient than a more Agile approaches.
In Iterative model, iterative process starts with a simple implementation of a small set of the software requirements and iteratively enhances the evolving versions until the complete system is implemented and ready to be deployed.
Iterative model.
Spiral model
RAD(Rapid application development)
model.
The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce
Royce did not use the term "waterfall" in this article.
Royce presented this model as an example of a flawed, non-working model.
Chapter 2 software development life cycle modelsdespicable me
The document discusses several software development life cycle models including:
- Build and Fix model - A simple two phase model of building code without design then fixing issues. Not suitable for projects over 200 lines of code.
- Waterfall model - A sequential model consisting of requirements, design, implementation, testing, and maintenance phases. Difficult to define all requirements up front.
- Incremental and iterative models - Deliver working versions in cycles with additional functionality added each cycle.
- Spiral model - Addresses project risks through risk analysis phases. Each phase involves planning, risk analysis, development and customer evaluation in a spiral pattern.
The document discusses software processes and activities. It describes common process models like waterfall, incremental development, and configuration management. The key activities involved in most processes are specification, development, validation, and evolution. Specification defines system requirements while development includes design, implementation, and debugging. Validation ensures the system meets requirements through testing. Processes also evolve to adapt to changing needs.
The document discusses the prototype model in software development. It defines a prototype model as building a working prototype of the system before full development to allow users to evaluate proposals. The key steps are requirements analysis, quick design, building the prototype, getting customer evaluation and feedback, and refining the prototype iteratively until the user is satisfied. Prototype models have advantages like early assessment, clarifying requirements, and ensuring user requirements are met. However, they can also be time-consuming and expensive if multiple prototypes are needed before finding the perfect fit.
The document discusses different software development life cycle (SDLC) models including waterfall, spiral/iterative, and agile. It provides an overview of each model's phases and when they are best applied. The waterfall model follows sequential phases from requirements to maintenance. The spiral model is risk-driven and iterative. The agile model emphasizes speed, reduced documentation, and frequent customer feedback through shorter development cycles. SDLC models provide structure, standard processes and deliverables to software development projects.
The document discusses the system development life cycle (SDLC) as a systematic method for organizations to implement change through new technologies. It describes the four phases of SDLC - planning, analysis, design, and implementation. The planning phase involves feasibility studies to understand economic, organizational, and technical factors. The analysis phase breaks down the problem and gathers stakeholder requirements. The design phase decides if the system will be internal or outsourced. The implementation phase builds, tests, trains users on, and evaluates the new system. SDLC provides a systematic strategy for large development projects involving many stakeholders.
The document discusses several software development life cycle (SDLC) models including waterfall, V-shaped, prototyping, incremental, spiral, rapid application development (RAD), dynamic systems development method (DSDM), adaptive software development, and agile methods. It provides an overview of the key characteristics, strengths, weaknesses, and types of projects that each model is best suited for. Tailored SDLC models are recommended to customize processes based on specific project needs and risks.
Software engineering is defined as the systematic, disciplined and quantifiable approach to software development. It focuses on applying engineering principles and techniques to software in a cost-effective manner. As software grew in size and complexity, an engineering approach became necessary to effectively manage projects. Early approaches included structured programming and design based on control flow and data structures. Modern approaches include object-oriented design and iterative development processes. The software development life cycle typically includes phases for requirements analysis, design, implementation, testing, deployment and maintenance.
This document discusses various process models for software engineering:
- The waterfall model defines sequential phases of requirements, design, implementation, testing, and maintenance. It is inflexible to change.
- Iterative models allow repetition of phases to incrementally develop software. The incremental model delivers functionality in increments.
- Evolutionary models like prototyping and spiral development use iterative evaluation and refinement of prototypes to evolve requirements and manage risk.
- Other models include component-based development, formal methods, aspect-oriented development, and the Unified Process with iterative development of use cases. Personal and team software processes focus on self-directed teams, planning, metrics, and process improvement.
software engineering , its characteristic ,changing nature of software,evolving nature of software,legacy software,generic view of software,process flow ,umbrella activity,CMMI,PROCESS ASSESSMENT ,team and personal software process
This document provides an overview of a software engineering course. The course objectives are to understand how to build complex software systems while dealing with change, produce high-quality software on time, and acquire both technical and managerial knowledge. The main topics covered include the software process, project management, system models, requirements analysis, design principles, verification and validation, testing techniques, and quality assurance. Recommended textbooks are also listed.
This document provides an overview of various software engineering process models, including:
- Waterfall model which divides the software development life cycle into sequential phases like requirements, design, implementation, testing and maintenance.
- Iterative waterfall model which allows for feedback loops between phases to catch errors earlier.
- Prototyping model which involves building prototypes to refine requirements before development.
- Incremental/evolutionary model which develops the system in modules through successive versions.
- Spiral model which represents the software process as iterative loops to progressively develop and test the product.
- Agile models like Scrum and XP which emphasize adaptive planning, evolutionary development, team collaboration and frequent delivery of working software.
This document discusses various prescriptive software process models. It begins by describing a generic process framework that includes communication, planning, modeling, construction, and deployment. It then covers traditional models like the waterfall model and incremental model. Specialized models discussed include component-based development and formal methods. Finally, it describes the unified process model, which is iterative and incremental.
This document provides an introduction to software engineering. It discusses the evolving role of software, characteristics of software like correctness and maintainability, and categories of software like system software and web applications. It also covers legacy software, common software myths, project management processes, and challenges with project estimation. The key aspects of software engineering like the definition, development, and maintenance phases are summarized.
This document provides an overview of software project planning and estimation. It discusses the key aspects of project planning including defining the product, process, project, and people. It emphasizes the importance of understanding stakeholders and structuring an effective software development team. The document also covers estimating resources, costs, schedules, and risks. It presents different estimation techniques including problem-based decomposition, function point analysis, and process-based and use case-based approaches. Finally, it introduces various project metrics and empirical estimation models that can be used to plan and control a software project.
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.
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.
The document discusses the system development life cycle (SDLC), which includes preliminary investigation, requirements analysis, system design, software development, system testing, and implementation and maintenance. It describes the purpose and history of SDLC as emerging in the 1960s to address the "software crisis". It also outlines the main steps and activities in each phase of the SDLC process.
The document discusses the system development life cycle (SDLC), which involves 6 main steps: 1) preliminary investigation, 2) requirements analysis, 3) system design, 4) system acquisition and development, 5) system testing, and 6) implementation and maintenance. It describes each step in detail, including gathering user requirements, designing and selecting a software model, testing the system, training users, and evaluating the results. The SDLC aims to efficiently develop high-quality software through a structured process of analysis, design, implementation, and maintenance activities.
The document provides an overview of the topics covered in the Unit 1 syllabus, which includes an introduction to software engineering and a generic view of the software development process. The key topics are: [1] the evolving role of software and changing nature of software; [2] software myths; and [3] a process framework for software engineering projects including the Capability Maturity Model Integration and process assessment.
The document discusses interaction design and the design process for interactive systems. It covers identifying user requirements, conceptual and physical design, prototyping and evaluation. The design process involves requirements specification, architectural design, detailed design, coding, testing, and maintenance. Iterative design and user evaluation are important to develop an acceptable product. Capturing the design rationale helps communicate decisions and supports reuse.
The document discusses SDLC (Systems Development Life Cycle) and e-business. It begins by defining key terms like system, information system, and problem identification. It then explains various phases of SDLC like planning, analysis, design, implementation, testing and maintenance. It also discusses different SDLC models like waterfall, iterative and agile. The document also covers topics like requirements analysis, feasibility study, design and testing. Finally, it provides definitions of business, commerce and e-business and discusses how ICT technologies help in integrating business processes and enabling e-business.
The document discusses various aspects of managing software projects and processes. It covers tasks that a project manager would be responsible for, including planning, scheduling, directing teams, and monitoring progress. It also discusses different software development models like the waterfall model and agile development. Project managers play an important role in planning projects, estimating costs and schedules, and building effective teams to complete software work.
This document summarizes a seminar presentation on project management. It defines key terms like project, management, and project management. It also discusses the software development life cycle including requirements gathering, design, implementation, testing, deployment, and maintenance. Common software development models are outlined like waterfall, V-shaped, prototyping, spiral, iterative, and agile. Data flow diagrams are introduced as a way to graphically represent data flows in a system.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This document discusses a seminar focused on creative campaigns. It describes exercises for analyzing Pictionary's innovative "Cloud Sketch" campaign in Guatemala. Students research the campaign and identify the cross-functional relationships and stakeholder groups needed to execute it. They also discuss tools for internally communicating the campaign to employees, considering channels, motivating engagement, and tailoring messages to different stakeholders.
1) The document discusses brand and product portfolio management. It covers developing brand portfolios aligned with customer segments and objectives, evaluating brand portfolios, and managing product lifecycles.
2) It also discusses building trust with customers in the insurance industry by being transparent and treating customers fairly. Examples of practices that can create or reduce trust are provided.
3) Customer value management is discussed, including understanding the most profitable customer segments through data analytics, segmentation modeling, and customer lifetime value modeling to optimize marketing activities and target customers.
This document provides an overview of the first lecture for a course on assurance and risk management. It introduces assurance as a three-party relationship between a practitioner, intended users, and responsible party. Assurance engagements can provide either reasonable or limited assurance on a subject matter against stated criteria. Reasonable assurance allows a positive conclusion, while limited assurance allows a negative conclusion. Absolute assurance is not possible due to limitations of evidence and controls. The document also discusses the expectations gap between what auditors do and what others perceive, and provides learning objectives and assessment details for the course.
Corporate reporting and finance lecture 1moduledesign
This document provides an overview of external financial reporting and key concepts. It discusses the objective of external financial reporting which is to provide useful financial information to users for decision making. It also outlines the primary financial statements and key accounting concepts like the accounting equation. Examples are provided to demonstrate accounting entries for a sole trader business and how the statement of financial position is constructed.
The document is a lecture on introduction to taxation that covers:
1. The UK tax structure including HMRC, tax tribunals, and types of taxation such as income tax, corporation tax, capital gains tax, inheritance tax, and VAT.
2. Key concepts related to income tax including the tax year, tax residency tests, sources of tax law, income tax computation, personal allowances, tax bands and rates.
3. Examples are provided to illustrate income tax computation for individuals, the effect of personal allowances on tax liability, and how gift aid donations can reduce tax payable.
This document provides an overview of the key topics covered in a lecture on digital and social marketing. The learning outcomes are to understand the rise of digital technologies and changing consumer patterns, the benefits of digital marketing, and how online and offline marketing concepts are interlinked. It defines digital marketing and discusses elements like websites, SEO, social media, mobile, analytics and CRM. Trends covered include the growth of mobile, video, native advertising and the importance of an integrated digital strategy.
This document provides an overview of corporate governance and discusses key concepts and examples. It begins by defining corporate governance as the rules, processes and practices by which a company is directed and controlled. It then examines corporate governance practices in both the UK and US, highlighting the UK Corporate Governance Code and the Sarbanes-Oxley Act passed in response to scandals like Enron. Examples like the Robert Maxwell and Enron scandals are discussed to showcase how weaknesses in governance can be exploited. The document concludes by outlining essential topics to explore in the next lecture such as the effectiveness of current governance structures.
The document provides an introduction to operations management. It defines operations and process management as how organizations create products and services. It discusses that all organizations have operations and processes. It also outlines key learning outcomes which are to understand the meaning of operations management and possible performance objectives of operational processes. Finally, it discusses different levels of analysis for operations including the supply network, operation, and process levels.
The document discusses project management and key related topics. It defines a project as a series of tasks focused on completing an overall objective. Project management involves planning, directing, and controlling resources to meet time, cost, and technical constraints. Projects are unique, time-limited operations designed to accomplish specific objectives. Project managers are responsible for work, quality, time, costs, and communications. Key project management techniques include work breakdown structures, Gantt charts, network diagrams, and critical path method for scheduling tasks and identifying the longest path through a project.
Pearson principles of business implementing strategy lecture 2moduledesign
This document outlines Kotter's 8 steps for implementing strategy and developing a balanced scorecard. The 8 steps are: create urgency, form a guiding coalition, create a vision, communicate the vision, remove obstacles, create short-term wins, build on initial successes, and anchor changes in corporate culture. It also provides an example of a balanced scorecard for a transportation company, with financial, customer, internal process, and learning/growth objectives. The company's mission is to be the personal transportation brand of choice by making outstanding products.
This presentation provides an overview of key considerations in research design. It discusses the major layers of research design including research approach, strategy/methods, and data collection. For research approach, it explains the difference between deductive and inductive approaches. Common research strategies like surveys, experiments, and case studies are outlined. Finally, it discusses important aspects of data collection like sampling and recording methods. The goal is to help researchers structure their study in a way that meets objectives and allows others to replicate the work.
Generic lecture 3 literature review tutormoduledesign
This document provides guidance on conducting and writing a literature review. It discusses the key components of a literature review including searching for relevant literature, critically analyzing and summarizing research findings, and organizing the review. The document also provides examples of how to structure a literature review and properly cite sources using the Harvard referencing system.
Generic lecture 2 research proposal studentmoduledesign
This document outlines the key components that should be included in a research proposal. It discusses the structure and content, including: the research title, background information justifying the topic, research aim and objectives, proposed methodology and research design, ethical considerations, project management, and references. Specific guidance is provided for each section, such as how to write an effective title, what to include in the background and literature review, how to structure the objectives, and elements to address for the methodology, management, and ethics. Examples are also given. The presentation encourages attendees to use the information to draft elements of their own research proposal, including pausing to work on the title, background, objectives, methodology, and project planning.
Tutor version slides seminar 9 implementing knowledge managementmoduledesign
This document outlines a seminar on implementing knowledge management. It provides learning outcomes on analyzing and advising on knowledge management activities within corporations. It lists reading assignments on a case study and discussion questions about setting up a virtual community between two offices, encouraging staff engagement, and the most appropriate knowledge management strategy. The tutor's input recommends leadership support for a virtual community pilot, technological infrastructure, training, and recognition programs. It suggests open office designs, common spaces, job rotation, and virtual meetings to encourage interaction. And it identifies multiple knowledge management strategies as appropriate, including a publication, personalization, technology, databases, office design, cross-team collaboration, and external partnerships.
Tutor version slides eminar 2 the nature of knowingmoduledesign
This document summarizes a seminar on applying knowledge management principles at the World Bank. The seminar covered:
1. Learning outcomes which included advising on knowledge management activities, applying principles and appreciating strategic use of knowledge.
2. A reading assignment and discussion questions about interventions to further the World Bank's knowledge management activities and use knowledge to aid developing country clients.
3. The tutor's inputs which suggested potential interventions like developing an online database, encouraging thematic groups to focus on problems, and examining processes to improve service and encourage innovation. The tutor also discussed applying knowledge centrally to the World Bank's core business.
Tutor version slides seminar 10 assignment supportmoduledesign
This seminar discusses the expectations for an upcoming individual coursework assignment. The assignment will require students to research a topical issue using a wide range of online and offline data sources. Students must demonstrate which sources are most valid and credible by discussing why some sources may be misleading or not as reliable. They also must show how the sources they select support their points on the issue, and explain how the different data informed the conclusions in their report. The seminar aims to clarify the assignment requirements and allow students to ask any questions.
Tutor version slides seminar 5 the learning organisationmoduledesign
This seminar discusses how Honda can improve organizational learning and competitiveness in battery technologies. The tutor provides input on how Honda can strategically decide whether to lead or follow technological developments, invest significantly in R&D exploring new battery types, engage in vicarious learning from competitors, and partner with universities. The tutor also discusses how slogans at Honda allow tacit knowledge to be shared creatively. Finally, ways Honda could improve UK talent management are proposed, such as questioning assumptions of training models and exploring job rotation, self-managed learning, and mentoring.
Tutor version slides seminar 1 introduction to knowledge managementmoduledesign
This document provides an overview of a seminar on introduction to knowledge management. The seminar discusses how knowledge management issues are impacted in today's digital world. Students are asked to read a case study on Ernst & Young and discuss in groups questions on overcoming an aging workforce, codifying critical client and industry knowledge, and the strengths and pitfalls of using social media. The tutor then provides input on each discussion question, outlining potential ways to overcome an aging workforce through employing boomerangs or retired employees, codifying specialist knowledge, and involving retired employees in training. The tutor also discusses strengths like allowing expertise pooling and weaknesses like security risks of using social media at Ernst & Young.
Tutor version slides seminar 4 organisational learningmoduledesign
This seminar discusses organizational learning at Toyota. It focuses on improving human capital and handling contradictory viewpoints. Students are asked to discuss advising Akio Toyoda on Toyota's North American plants, improving Toyota's learning and human capital, and the benefits and shortfalls of contradictory viewpoints at Toyota. The tutor provides input on each discussion question. For the plants, the tutor suggests redeploying staff to training roles. To improve learning, the tutor recommends communities of practice, questioning norms, and capturing tacit knowledge. Benefits of contradictory views include challenging norms and creativity, while shortfalls include preventing decision making and accentuating political struggles.
Tutor version slides seminar 7 digital knowledge managment moduledesign
This seminar discusses improving knowledge management at Tata Consultancy Services through a potential strategic alliance with Cisco. The document provides questions and the tutor's input on advising the CEO of TCS, identifying current weaknesses in their knowledge management approach, and how to improve those weaknesses. The tutor recommends examining compatibility between TCS and Cisco goals before forming an alliance, exploring knowledge transfer and opportunities while avoiding conflicts with competitors. Current weaknesses include a lack of informal networks and underutilizing their diverse employees and subsidiaries. The tutor suggests encouraging communities of practice, questioning norms, improving processes, and cultural learning to strengthen knowledge management.
This document provides an overview of wound healing, its functions, stages, mechanisms, factors affecting it, and complications.
A wound is a break in the integrity of the skin or tissues, which may be associated with disruption of the structure and function.
Healing is the body’s response to injury in an attempt to restore normal structure and functions.
Healing can occur in two ways: Regeneration and Repair
There are 4 phases of wound healing: hemostasis, inflammation, proliferation, and remodeling. This document also describes the mechanism of wound healing. Factors that affect healing include infection, uncontrolled diabetes, poor nutrition, age, anemia, the presence of foreign bodies, etc.
Complications of wound healing like infection, hyperpigmentation of scar, contractures, and keloid formation.
Chapter wise All Notes of First year Basic Civil Engineering.pptxDenish Jangid
Chapter wise All Notes of First year Basic Civil Engineering
Syllabus
Chapter-1
Introduction to objective, scope and outcome the subject
Chapter 2
Introduction: Scope and Specialization of Civil Engineering, Role of civil Engineer in Society, Impact of infrastructural development on economy of country.
Chapter 3
Surveying: Object Principles & Types of Surveying; Site Plans, Plans & Maps; Scales & Unit of different Measurements.
Linear Measurements: Instruments used. Linear Measurement by Tape, Ranging out Survey Lines and overcoming Obstructions; Measurements on sloping ground; Tape corrections, conventional symbols. Angular Measurements: Instruments used; Introduction to Compass Surveying, Bearings and Longitude & Latitude of a Line, Introduction to total station.
Levelling: Instrument used Object of levelling, Methods of levelling in brief, and Contour maps.
Chapter 4
Buildings: Selection of site for Buildings, Layout of Building Plan, Types of buildings, Plinth area, carpet area, floor space index, Introduction to building byelaws, concept of sun light & ventilation. Components of Buildings & their functions, Basic concept of R.C.C., Introduction to types of foundation
Chapter 5
Transportation: Introduction to Transportation Engineering; Traffic and Road Safety: Types and Characteristics of Various Modes of Transportation; Various Road Traffic Signs, Causes of Accidents and Road Safety Measures.
Chapter 6
Environmental Engineering: Environmental Pollution, Environmental Acts and Regulations, Functional Concepts of Ecology, Basics of Species, Biodiversity, Ecosystem, Hydrological Cycle; Chemical Cycles: Carbon, Nitrogen & Phosphorus; Energy Flow in Ecosystems.
Water Pollution: Water Quality standards, Introduction to Treatment & Disposal of Waste Water. Reuse and Saving of Water, Rain Water Harvesting. Solid Waste Management: Classification of Solid Waste, Collection, Transportation and Disposal of Solid. Recycling of Solid Waste: Energy Recovery, Sanitary Landfill, On-Site Sanitation. Air & Noise Pollution: Primary and Secondary air pollutants, Harmful effects of Air Pollution, Control of Air Pollution. . Noise Pollution Harmful Effects of noise pollution, control of noise pollution, Global warming & Climate Change, Ozone depletion, Greenhouse effect
Text Books:
1. Palancharmy, Basic Civil Engineering, McGraw Hill publishers.
2. Satheesh Gopi, Basic Civil Engineering, Pearson Publishers.
3. Ketki Rangwala Dalal, Essentials of Civil Engineering, Charotar Publishing House.
4. BCP, Surveying volume 1
A Visual Guide to 1 Samuel | A Tale of Two HeartsSteve Thomason
These slides walk through the story of 1 Samuel. Samuel is the last judge of Israel. The people reject God and want a king. Saul is anointed as the first king, but he is not a good king. David, the shepherd boy is anointed and Saul is envious of him. David shows honor while Saul continues to self destruct.
1. App Design for Business
Topic: Software Engineering
Topic Number: 3
2. Key topics / learning outcomes
of this lecture
• Software Engineering
• USDP
• Agile and Scrum
2
3. What is Software Engineering (SE) ?
Wikipedia says:
• "the application of a systematic, disciplined, quantifiable
approach to the development, operation, and
maintenance of software".
• "an engineering discipline that is concerned with all
aspects of software production“
• "the establishment and use of sound engineering
principles in order to economically obtain software that is
reliable and works efficiently on real machines"
3
4. Software Engineering
• Ian Sommerville
– Software Engineering is concerned with
method, tools and techniques for developing
and managing the process of creating and
evolving software products.
• Oxford English Dictionary
– The professional development, production,
and management of system software.
4
5. Design and Engineering
• Engineering is
– the application of scientific principles and methods to the
construction of useful structures or machines.
• Design is
– the essence of any engineering discipline
– the creative selection of appropriate principles and
methods to efficiently and effectively transform concept
into reality
• A large part of software development is really about
design in various forms.
5
6. SE Origins
• The idea and the label are over 40 years old.
– First used at NATO Conference on Software Engineering, Garmisch-
Partenkirchen, Germany, 1968
• "Software Engineering" deliberately chosen as provocative ... an
aspiration.
– "Expressed a need rather than a reality.“
• Serious problems with software development needed to be solved
scientifically and rigourously.
– Ironically many of the same problems remain today...
• By the time of the conference the following year in Rome, the label
"Software Engineering" had stuck fast even if no one knew how to achieve
the goals. – still don’t really know.
6
7. Present day reality
• The reality is mixed
– Computer Science provides the scientific basis.
– A growing number of software development approaches
are recognised as good engineering practice.
– But many aspects of development are still ad hoc rather
than good scientific or engineering practice.
• Software design is still very difficult.
– Few guiding scientific principles.
– Few universally applicable methods.
– Much poor practice.
– Frequent failures.
7
8. Key Issues
• Software Engineering principles are particularly relevant to construction
of large systems.
– Involving large numbers of people to manage.
• Mastering complexity.
– Abstraction, information hiding, separation of concerns.
• Continual evolution.
– For improved reliability, fixing errors, incorporation of new features,
improving other desirable qualities.
• Efficiency of development.
– Human-centred tasks are extremely costly.
• Cooperation of people.
– Cannot develop a system in isolated pieces.
• Usability.
8
9. Properties of Good Software
• Delivers required functionality.
• Maintainable
– can evolve to meeting changes in requirements.
• Dependable
– Robust, reliable, trustworthy.
• Efficient
– Good use of resources: computational, user time,
development time/cost
• Usable
– Usable by the users (or systems) it is designed to
interact with.
9
10. Scale
• Scaling-up does not work reliably
– too much detail for any one person to deal with
– communication overhead
– effect of changes not obvious
– need for discipline, documentation and
management
10
Note:
It is very important that you keep the
problems of scale and complexity firmly
in mind throughout the course.
11. Failure...
• Numerous examples of failed or seriously
delayed software development projects.
– Or fail to deliver full functionality within time and
budget.
– E.g., Pensions system, NHS patient records, Taurus
(Stock Exchange), Air Traffic Control
– Disasters: ESA Arianne 5, Patriot Missile System,
Therac-25 radiation therapy machine
– Just about every UK government software
development project...
11
15. The Solution...
• Don't know yet.
– Many unresolved issues.
– Much active research (e.g., SSE group in CS department)
• But, building blocks are:
– Education
– Professionalism
– Standards, Quality Assurance
– Defining sound methodologies and practice
– Application of scientific techniques
– Communication
– Self evaluation
15
16. The Software Development Process
• Structured set of activities required to develop a
software system, including:
– Requirements Gathering
– Analysis
– Design
– Implementation
– Testing
– Deployment
– Maintenance
• Activities vary depending on organization and type of
system being developed.
• Must be modelled in order to be managed.
16
17. Requirements Gathering
• Aim: a complete description of the problem and
of the constraints imposed by/on the
environment
• Description may contain:
– Functions of the system
– Future extensions
– Amount of documentation required
– Response time and performance
– Acceptance criteria
• Result: Requirements Specification
17
18. Analysis
• Aim: Analyse requirements to create a
conceptual model of the software system.
– Data modelling
– Functional modelling and information/control flow
– Behavioural modelling and state
– User interface modelling
• Result: A set of Analysis Models
18
What is a model? A systematic conceptual description of a system, or aspect of a
system, defining its structure and behaviour. Abstraction and simplification are
used to constrain the complexity while retaining the essential information.
19. Design
• Aim: an implementable model of the software system.
– Sufficient information to allow system to be built.
• Architecture is defined.
– The definition of the global architecture of the system is
essential.
• System is decomposed to components within the
architecture:
– Definition of component interfaces and functionalities
• Design decisions dramatically impact system quality.
– Wrong architecture/design == throw it away.
• You can’t build a tower block on the foundations for a bungalow.
• Result: Detailed Design Documentation
19
20. Implementation
• Aim: implementation of all design elements.
• Starts from the component specifications
developed during design.
– Interfaces defined in the design should be respected
by the implementation of the component.
• Code should be well documented and easy to
read, flexible, correct, reliable AND fully tested.
• Result: working software.
20
21. Testing
• Kinds of testing:
– Unit testing: Classes/methods.
– Functional testing: Component implementations against
their interfaces.
– Integration testing: Component integration against system
architecture.
– System testing: validation of the extent to which the
requirements specification is fulfilled.
– Acceptance testing: validation of external behaviour against
user expectations.
– Testing and implementation should run in parallel.
• Result: Fully tested software
21
22. Deployment
• Package software ready to install on a
computer system.
• Actually installing the software.
• Live testing in real environment.
• Documentation and manuals.
• Training.
• Result: Working software in situ
22
23. Maintenance
• Aim: keeping the system operational after delivery to the customer.
– Corrective: identification and removal of faults.
– Adaptive: modifications needed to achieve interoperability
with other systems and platforms.
– Perfective: incorporation of new features, improved
performance and other modifications to increase customer
satisfaction.
– Preventive: modifications to mitigate possible degradation
of usability, maintainability, etc.
• The maintenance phase needs to be considered part of the overall development
process.
– Even though the activities within maintenance are
requirements analysis, design, implementation and testing.
– Maintenance is ongoing and expensive.
23
24. Process Model
• A development process is described in a process model.
– There are many ways of organising development.
– There are many process models described in the literature.
• You need to model the process because:
– when a team writes down a description of its development process, it
forms a common understanding of the activities, resources and
constraints involved in software development..
– creating a process model helps the team find inconsistencies,
redundancies and omissions in the process; as these problems are
noted and corrected the process becomes more effective.
24
25. Process Model (cont.)
• You need to model the process because (cont.):
– the model reflects the goals of development and shows explicitly how
the product characteristics are to be achieved.
– each development is different, and a process has to be tailored for
different situations, and so the model helps people to understand
these differences.
25
26. Common Software Lifecycle Models
• Waterfall Development
– Separate and distinct phases of specification and development.
• Prototyping
– Interleaved specification and development.
• Incremental Development
– Development of a system in increments.
• Agile Development
– Continual availability of a fully tested functioning system, developed
with minimal organisational overhead.
• Ad Hoc
26
27. The Waterfall
• Winston Royce defined the seven-step Waterfall Model in 1970
– (see “Managing the development of large software systems”, proceedings of
IEEE Wescon)
• Widely referenced as the “default process model”.
• Each step is distinctly different, needing to be planned and resourced
differently.
27
28. But...
• Not all is what is seems...
• Royce actually introduced the Waterfall as a
‘strawman’ that he argued was flawed.
• Constrained iteration is needed to make the process
work.
28
29. The problem in practice...
• The risk is that iteration is not confined to
successive steps.
• Flaws are not discovered until after significant work
has been done, which then has to be revised or
throw away.
29
31. Spiral
• Successive repetitions of the same activities.
• Emphasis on prototyping, well before
operational software built.
• Accommodates successive discovery of
requirements.
• A better reflection of what designers do.
• Accepted as an industry standard model.
– Like the waterfall (ironically).
31
32. V Model
32
From Wikipedia
Relates each phase of the development cycle to an associated testing phase.
Emphasises different kinds of testing required for each phase.
33. Iterative Model
33
From Wikipedia
In practice many developers take an iterative approach, often informal
without a defined process.
Select a requirement, analyse/design/implement/test, repeat.
Has advantage of getting a basic version working early and then
developing it step-by-step, from one working version to the next.
34. Incremental Model
34
deliver 1st
increment
analysis design code test
deliver 2nd
increment
analysis design code test
analysis design code test
conception
architecture
feedback
feedback
structure
Essentially an iterative approach but organised to allow increments to be
developed in parallel.
Allows multiple teams to develop same system, providing application structure
can be broken down into relatively independent components/modules.
Needs a well defined architecture and interfaces between parts.
35. Exploratory Model
35
develop outline
specification
build software
system
use software
system
test adequacy
yes
deliver
no
Incrementally build a system using test/user feedback to guide development.
Find and refine the real requirements by building versions and getting real
users to use them.
36. Prototyping Model
36
establish outline
specification
develop
prototype
evaluate
prototype
specify
system
design and
implement system
validate system
components
Construct a prototype to determine how to specify and build the real system.
The prototype implementation should not be used as the real system.
"Build the system once to find out what it should really be, throw it away and
build a second system using the knowledge gained."
37. Agile Development
37
From Wikipedia
eXtreme Programming
Scrum
Crystal Clear
DSDM
and others
A rethink of process and values, to address the problems encountered in
software development.
Lightweight, highly iterative, short iterations, test-driven, focus on value to
customer, frequent releases, ability to cope with change.
38. No Model
38
Muddle through and hope for the best...
39. Unified Software Development Process
(USDP or just UP) Jacobsen, 1999
• UP is the development process associated with
the Unified Modeling Language (UML)
– It is use-case driven and risk-confronting
– It is architecture-centric
– It is iterative and incremental
– It is free!
• UP is based on an incremental model.
• Each iteration delivers a part of the system.
• Provides a structural framework for a software
development project.
39
40. Overall Structure of the UP Lifecycle
40
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Phases
Process Workflows
Iterations
Supporting Workflows
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Deployment
Configuration Mgmt
Elaboration Inception Construction Transition
Adapted from [Jacobson 1999]
41. UP Lifecycle Phases and Milestones
Product
Release
41
Inception Elaboration Construction Transition
time
Life-cycle
objectives
Life-cycle
architecture
Initial operational
capability
• Inception Define scope of project and develop business case
• Elaboration Plan project, specify features and baseline architecture
• Construction Build product
• Transition Transition product to its users
Adapted from [Booch 1999]
42. UP Milestone Acceptance Criteria
• Lifecycle objectives: system scope, key requirements, outline
architecture, risk assessment, business case, feasibility, agreed project
objectives with stakeholders.
• Lifecycle architecture: executable architectural baseline, updated risk
assessment, project plan to support bidding process, business case
verified against plan, continued stakeholder agreement.
• Initial operational capability: product ready for beta test in user
environment.
• Product release: completed beta and acceptance tests, defects fixed
with fixes in the user community.
42
43. UP Iterations
43
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Phases
Process Workflows
Iterations
Supporting Workflows
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Deployment
Configuration Mgmt
Elaboration Inception Construction Transition
Adapted from [Jacobson 1999] an iteration in the elaboration phase
44. UP Phases and Iterations
44
Iteration is key to UPEach iteration is like
a mini-project.Results in an increment.
Inception Elaboration Construction Transition
Arch.
Iteration
... Dev.
Iteration
Dev.
Iteration
... Trans.
Iteration
...
Release Release Release Release Release Release Release Release
Prelim.
Iteration
...
An iteration is a sequence of activities
with an established plan and evaluation
criteria, resulting in an executable release
Adapted from [ Booch 1999]
45. Iteration Workflows
45
Requirements Analysis Design
Implemen-tation
Testing
UP specifies 5 core workflows
Planning An iteration
Assessment
Specific
Activities
Each iteration may contain all of
the core workflows but with
different emphasis depending on
where the iteration is in the
lifecycle.
46. Iterations may overlap
46
Iteration 1
Iteration 2
Iteration 3
In order to allow parallel development and
flexible working in large teams, iterations can,
and often do, overlap.
In the example above, Iteration 1 overlaps
significantly with iteration 2.
This requires
careful
planning.
47. UP Increments
• Each iteration results in the release of various
artefacts, which together are called a
baseline.
• Baselines assist with review and approvals
procedures.
• An increment is actually the difference
between two successive baselines.
47
48. Inception
48
Requirements
Analysis
Design
Implementation
Test
Inception Elaboration Construction Transition
Preliminary I1 I2 In In+1 In+2 Im Im+1
Iterations
49. Inception - Goals
• Establish feasibility of the project.
• Create a business case.
• Capture key requirements.
• Scope the system.
• Identify critical risks.
• Create proof of concept prototype.
• Decide whether project is feasible and should
proceed further.
49
50. Inception - Focus
• Requirements – establish business case, scope
and core requirements.
• Analysis – establish feasibility.
• Design – design proof of concept or technical
prototypes.
• Implementation – build the proof of concept
prototype.
• Test – not generally applicable.
– But do want feedback from stakeholders.
50
N.B. The bars indicate approximately the relative amount of resource needed
51. Life Cycle Objectives
• Conditions of satisfaction:
– System scope has been defined.
– Key requirements for the system have been
captured. These have been defined and agreed with
the stakeholders.
– An architectural vision exists. This is just a sketch at
this stage.
– A Risk Assessment.
– A Business Case.
– Project feasibility is confirmed.
– The stakeholders agree on the objectives of the
project.
51
52. Elaboration
52
Requirements
Analysis
Design
Implementation
Test
Inception Elaboration Construction Transition
Preliminary I1 I2 In In+1 In+2 Im Im+1
Iterations
53. Elaboration - Goals
• Establish an executable architectural baseline.
• Refine Risk Assessment.
• Define quality attributes (defect rates etc.).
• Capture use-cases around 80% of the functional
requirements.
• Create a detailed plan for the construction
phase.
• Formulate a bid which includes resources, time,
equipment, staff and cost.
53
54. Elaboration - Focus
• Requirements – refine system scope
and requirements.
• Analysis – establish what to build.
• Design – create a stable architecture.
• Implementation – build the architectural
baseline.
• Test – test the architectural baseline.
54
55. Life Cycle Objectives
• Conditions of satisfaction:
– A resilient, robust executable architectural
baseline has been created.
– The Risk Assessment has been updated.
– A project plan has been created to enable a
realistic bid to be formulated.
– The business case has been verified against the
plan.
– The stakeholders agree to continue.
55
56. Construction
56
Requirements
Analysis
Design
Implementation
Test
Inception Elaboration Construction Transition
Preliminary I1 I2 In In+1 In+2 Im Im+1
Iterations
57. Construction - Goals
• Completing use-case identification,
description and realisation.
• Finish analysis, design, implementation and
testing.
• Maintain the integrity of the system
architecture.
• Revise the Risk Assessment.
57
58. Construction - Focus
• Requirements – uncover any requirements
that had been missed.
• Analysis – finish the analysis model.
• Design – finish the design model.
• Implementation – build the Initial
Operational Capability.
• Test – test the Initial Operational Capability.
58
59. Life Cycle Objectives
• Conditions of satisfaction:
– The product is ready for beta testing in the user
environment.
59
60. Transition
60
Requirements
Analysis
Design
Implementation
Test
Inception Elaboration Construction Transition
Preliminary I1 I2 In In+1 In+2 Im Im+1
Iterations
61. Transition - Goals
• Correct defects.
• Prepare the users site for the new software.
• Tailor the software to operate at the users site.
• Modify software if unforeseen problems arise.
• Create user manuals and other documentation.
• Provide customer consultancy.
• Training.
• Conduct post project review.
61
62. Transition - Focus
• Requirements – not applicable.
• Analysis – not applicable.
• Design – modify the design if problems
emerge in beta testing.
• Implementation – tailor the software for the
users site and correct problems uncovered in
beta testing.
• Test – beta testing and acceptance testing at
the users site.
62
63. Agile Methods
• Over the past decade there has been much focus on how to
improve the development process.
• Agile Methods have emerged as a widely used approach:
– Focus on short iterations, teamwork, collaboration, and process
adaptability throughout the life-cycle of the project.
– Minimal planning and overheads (e.g., short, stand-up meetings).
• Relies on skilled, professional approach.
• Minimal != low standards or sloppy work.
– Code-centred approach.
• Code embodies the design.
– Very strong focus on delivering value.
63
64. Key factors...?
•“Research also indicates that smaller timeframes, with
delivery of software components early and often, will increase
the success rate. Shorter time frames result in an iterative
process ...”
•“...the approach of full requirements definition followed by a
long gap before those requirements are delivered is no longer
appropriate. The high ranking of changing business
requirements suggests that any assumption that there will be
little significant change to requirements once they have been
documented is fundamentally flawed, and that spending
significant time and effort defining them to the maximum
level is inappropriate.”
64
66. Extreme Programming (Beck 1999)
• A disciplined, iterative, agile approach to software systems
development.
• Some key XP practices
– Test-driven development
– The tests are the system specification
– Releases are as small and frequent as possible
– Pair programming
– Collective code ownership
– Coding standards
– Continuous integration
– Frequent refactoring of code
– Onsite customer is a member of the development team
– 40-hour work week
66
67. When to use XP
• XP works best when
– Requirements are changing rapidly
– Projects are high-risk with new challenges
– Development can be carried out by small groups
(2-10 developers)
– Automated testing is possible
– Direct customer involvement is possible
Remember that the process must be matched to the problem!
67
68. Scrum
• A widely used iterative/incremental method
used with agile development.
• The following slides describing Scrum were
created by Mike Cohn of Mountain Goat
Software.
– Creative Commons License
• Widely used by the Open Source movement
68
69. Scrum in 100 words
• Scrum is an agile process that allows us to
focus on delivering the highest business value in
the shortest time.
• It allows us to rapidly and repeatedly inspect
actual working software (every two weeks to one
month).
• The business sets the priorities. Teams self-organize
to determine the best way to deliver
the highest priority features.
• Every two weeks to a month anyone can see
real working software and decide to release it as
is or continue to enhance it for another sprint.
70. Scrum origins
• Jeff Sutherland
– Initial scrums at Easel Corp in 1993
– IDX and 500+ people doing Scrum
• Ken Schwaber
– ADM
– Scrum presented at OOPSLA 96 with Sutherland
– Author of three books on Scrum
• Mike Beedle
– Scrum patterns in PLOPD4
• Ken Schwaber and Mike Cohn
– Co-founded Scrum Alliance in 2002, initially
within the Agile Alliance
71. Scrum has been used by:
• Microsoft
• Yahoo
• Google
• Electronic Arts
• IBM
• Lockheed Martin
• Philips
• Siemens
• Nokia
• Capital One
• BBC
• Intuit
• Nielsen Media
• First American Real Estate
• BMC Software
• Ipswitch
• John Deere
• Lexis Nexis
• Sabre
• Salesforce.com
• Time Warner
• Turner Broadcasting
• Oce
72. Scrum has been used for:
• Commercial software
• In-house development
• Contract development
• Fixed-price projects
• Financial applications
• ISO 9001-certified
applications
• Embedded systems
• 24x7 systems with
99.999% uptime
requirements
• the Joint Strike Fighter
• Video game development
• FDA-approved, life-critical
systems
• Satellite-control software
• Websites
• Handheld software
• Mobile phones
• Network switching
applications
• ISV applications
• Some of the largest
applications in use
73. Characteristics
• Self-organizing teams
• Product progresses in a series of 2-4 week
“sprints”
• Requirements are captured as items in a list of
“product backlog”
• No specific engineering practices prescribed
• Uses generative rules to create an agile
environment for delivering projects
• One of the “agile processes”
74. The Agile Manifesto–a statement
of values
Process and tools
Individuals and
interactions
over
Following a plan
Responding to
change
over
Source: www.agilemanifesto.org
Comprehensive
documentation
Working software over
Contract negotiation
Customer
collaboration
over
76. Putting it all together
Image available at
www.mountaingoatsoftware.com/scrum
77. Sprints
• Scrum projects make progress in a series of
“sprints”
– Analogous to Extreme Programming iterations
• Typical duration is 2–4 weeks or a calendar
month at most
• A constant duration leads to a better rhythm
• Product is designed, coded, and tested during
the sprint
78. Sequential vs. overlapping
development
Requirements Design Code Test
Rather than doing all
of one thing at a
time... ...Scrum teams do a
little of everything all
the time
Source: “The New New Product Development Game” by Takeuchi and
Nonaka. Harvard Business Review, January 1986.
79. No changes during a sprint
• Plan sprint durations around how long you
can commit to keeping change out of the
sprint
Change
82. Product owner
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the
product (ROI)
• Prioritize features according to market value
• Adjust features and priority every iteration, as
needed
• Accept or reject work results
83. The ScrumMaster
• Represents management to the project
• Responsible for enacting Scrum values and
practices
• Removes impediments
• Ensure that the team is fully functional and
productive
• Enable close cooperation across all roles and
functions
• Shield the team from external interferences
84. The team
• Typically 5-9 people
• Cross-functional:
– Programmers, testers, user experience designers,
etc.
• Members should be full-time
• May be exceptions (e.g., database administrator)
85. The team
• Teams are self-organizing
– Ideally, no titles but rarely a possibility
• Membership should change only between
sprints
87. Sprint planning
meeting
Sprint
prioritization • Analyze and evaluate product
backlog
• Select sprint goal
Sprint planning
• Decide how to achieve sprint
goal (design)
• Create sprint backlog (tasks)
from product backlog items
(user stories / features)
• Estimate sprint backlog in
hours
Sprint
goal
Sprint
backlog
Team
capacity
Product
backlog
Business
conditions
Current
product
Technology
88. Sprint planning
• Team selects items from the product backlog they
can commit to completing
• Sprint backlog is created
– Tasks are identified and each is estimated (1-16 hours)
– Collaboratively, not done alone by the ScrumMaster
• High-level design is considered
As a vacation
planner, I want to
see photos of the
hotels.
Code the middle tier (8
hours)Code the user interface
(4)Write test fixtures (4)Code
the foo class (6)Update
performance tests (4)
89. The daily scrum
• Parameters
– Daily
– 15-minutes
– Stand-up
• Not for problem solving
– Whole world is invited
– Only team members, ScrumMaster, product
owner, can talk
• Helps avoid other unnecessary meetings
90. Everyone answers 3 questions
• These are not status for the ScrumMaster
– They are commitments in front of peers
What did you do yesterday?
1
What will you do today?
2
Is anything in your way?
3
91. The sprint review
• Team presents what it accomplished during
the sprint
• Typically takes the form of a demo of new
features or underlying architecture
• Informal
– 2-hour prep time rule
– No slides
• Whole team participates
• Invite the world
92. Sprint retrospective
• Periodically take a look at what is and is not
working
• Typically 15–30 minutes
• Done after every sprint
• Whole team participates
– ScrumMaster
– Product owner
– Team
– Possibly customers and others
93. Sprint retrospective
• Periodically take a look at what is and is not
working
• Typically 15–30 minutes
• Done after every sprint
• Whole team participates
– ScrumMaster
– Product owner
– Team
– Possibly customers and others
95. Product backlog
• The requirements
• A list of all desired work on the project
• Ideally expressed such that each item has
value to the users or customers of the product
• Prioritized by the product owner
• Reprioritized at the start of each sprint
This is the
product backlog
96. A sample product backlog
Backlog item Estimate
Allow a guest to make a reservation 3
As a guest, I want to cancel a reservation. 5
As a guest, I want to change the dates of a
3
reservation.
As a hotel employee, I can run RevPAR
reports (revenue-per-available-room)
8
Improve exception handling 8
... 30
... 50
97. The sprint goal
• A short statement of what the work will be
focused on during the sprint
Database Application
Life Sciences
Support features necessary for
population genetics studies.
Financial services
Support more technical indicators
than company ABC with real-time,
streaming data.
Make the application run on SQL
Server in addition to Oracle.
98. Managing the sprint backlog
• Individuals sign up for work of their own choosing
– Work is never assigned
• Estimated work remaining is updated daily
• Any team member can add, delete or change the sprint
backlog
• Work for the sprint emerges
• If work is unclear, define a sprint backlog item with a
larger amount of time and break it down later
• Update work remaining as more becomes known
99. A sprint backlog
Tasks
Code the user interface
Code the middle tier
Test the middle tier
Write online help
Write the foo class
Mon
8
16
8
12
8
Tues
4
12
16
8
Wed Thur
4
11
8
4
Fri
8
8
Add error logging
8
10
16
8
8
101. Code the user interface
Code the middle tier
Test the middle tier
Write online help
Hours
Tasks
40
30
20
10
0
Mon
8
16
8
12
Tues Wed Thur Fri
4
12
16
8
10
7
16 11
8
Mon Tue Wed Thu Fri
50
102. Scalability
• Typical individual team is 7 ± 2 people
– Scalability comes from teams of teams
• Factors in scaling
– Type of application
– Team size
– Team dispersion
– Project duration
• Scrum has been used on multiple 500+ person
projects
105. A Scrum reading list
• Agile and Iterative Development: A Manager’s Guide by Craig
Larman
• Agile Estimating and Planning by Mike Cohn
• Agile Project Management with Scrum by Ken Schwaber
• Agile Retrospectives by Esther Derby and Diana Larsen
• Agile Software Development Ecosystems by Jim Highsmith
• Agile Software Development with Scrum by Ken Schwaber and
Mike Beedle
• Scrum and The Enterprise by Ken Schwaber
• User Stories Applied for Agile Software Development by Mike Cohn
• Lots of weekly articles at www.scrumalliance.org
106. Essential work for next week
• Please consult the OLE for details of:
– Essential readings*
– Seminar/workshop preparation work*
– Recommended further readings
– Any additional learning
* Essential readings and preparation work must always be completed in time
for the next session
106