This document outlines the syllabus for a Software Engineering course. It includes 3 modules - an introduction to software engineering, teamwork, and customers/users. For each module, it lists the intended learning outcomes, assessment tools (exams, assignments), and whether the assessments are formative or summative. It provides details on the topics to be covered in each module such as the Agile manifesto, principles of Agile development, roles in Agile teams, and integrating user-centered design into Agile development. The document also describes the structure of "business days" where student teams present their work, receive feedback, and plan future iterations.
Building Sustainable Software: An Introduction to Software EngineeringMuhammad Shehata
Introduction to software engineering and project management methodologies like Waterfall and Agile. In addition to discussing some practices and tools like Version Control Systems, CI/CD, Code reviews and testing strategies.
- Agile values and manifesto
- Scrum in details
- Themes, epics, and user stories
- Combining and splitting user stories.
- What could go wrong in Scrum and why?
- Overview in Other Agile methodologies:
- XP Agile Methodology
- KanBan Agile Methodology.
The document provides an overview of an agile revision course contents including:
1. Agile principles, values, and methodologies like Scrum.
2. Details of Scrum like sprint timeline and activities, product backlog, user stories, and measuring productivity.
3. Comparison of Scrum to other agile methodologies and what could go wrong and how to fix issues.
The document discusses key aspects of Agile software development including the Agile Manifesto, values, principles, practices, and approaches. It describes that the Agile Manifesto was created in 2001 and emphasizes individuals, working software, customer collaboration, and responding to change. Common Agile practices mentioned include daily stand-ups, early feedback, user story creation, retrospectives, and continuous integration. Specific Agile approaches like Scrum, Kanban, and Extreme Programming are also summarized.
Managing a team and project are quite synonymous. Especially, teams require effective distribution of responsibility / roles. Once that is setup, a proper process guides people to make progress. All this fits into a product lifecycle, which is essential to develop the right product, in the right way, and deliver it at the right time.
Changing landscape of software project managementPramesh Vaidya
This document provides an overview of project management and the changing landscape of software project management. It defines what a project is and what project management entails. It then discusses traditional sequential models like waterfall and more iterative models like spiral and agile. Agile practices are based on values like collaboration, working software, responding to change. Specific agile frameworks like Scrum and Kanban are covered. The document also discusses challenges of scaling agile and approaches like SAFe, Nexus and LeSS. It concludes by noting the transformation in project management tools.
Topic: UI/UX DESIGN IN AGILE PROCESS
Why do we integrate design into our Agile process?
As we all know, the Agile Manifesto is well-received and successfully adopted as it is today thanks to the 12 underpinning principles. While “good design” is one main reason that “enhances agility”, “Agile processes promote sustainable development”.
At Axon Active, it’s important for us to do everything Agile and work with one another collaboratively in Collaboration Model. It gets people on the same page, makes everyone engage more with the product, encourages them to share more creative ideas, and gives them the flexibility they need to improve themselves.
Indeed, Designers and Developers can collaborate more closely and effectively, and subsequently integrating design into Agile process will yield numerous benefits.
For that reason, Scrum Breakfast Da Nang this October will be the very chance for you to learn:
• How to successfully integrate design into Agile process in practice
• How different Collaboration Model is from traditional model
• The benefits of Collaboration Model when done correctly
Building Sustainable Software: An Introduction to Software EngineeringMuhammad Shehata
Introduction to software engineering and project management methodologies like Waterfall and Agile. In addition to discussing some practices and tools like Version Control Systems, CI/CD, Code reviews and testing strategies.
- Agile values and manifesto
- Scrum in details
- Themes, epics, and user stories
- Combining and splitting user stories.
- What could go wrong in Scrum and why?
- Overview in Other Agile methodologies:
- XP Agile Methodology
- KanBan Agile Methodology.
The document provides an overview of an agile revision course contents including:
1. Agile principles, values, and methodologies like Scrum.
2. Details of Scrum like sprint timeline and activities, product backlog, user stories, and measuring productivity.
3. Comparison of Scrum to other agile methodologies and what could go wrong and how to fix issues.
The document discusses key aspects of Agile software development including the Agile Manifesto, values, principles, practices, and approaches. It describes that the Agile Manifesto was created in 2001 and emphasizes individuals, working software, customer collaboration, and responding to change. Common Agile practices mentioned include daily stand-ups, early feedback, user story creation, retrospectives, and continuous integration. Specific Agile approaches like Scrum, Kanban, and Extreme Programming are also summarized.
Managing a team and project are quite synonymous. Especially, teams require effective distribution of responsibility / roles. Once that is setup, a proper process guides people to make progress. All this fits into a product lifecycle, which is essential to develop the right product, in the right way, and deliver it at the right time.
Changing landscape of software project managementPramesh Vaidya
This document provides an overview of project management and the changing landscape of software project management. It defines what a project is and what project management entails. It then discusses traditional sequential models like waterfall and more iterative models like spiral and agile. Agile practices are based on values like collaboration, working software, responding to change. Specific agile frameworks like Scrum and Kanban are covered. The document also discusses challenges of scaling agile and approaches like SAFe, Nexus and LeSS. It concludes by noting the transformation in project management tools.
Topic: UI/UX DESIGN IN AGILE PROCESS
Why do we integrate design into our Agile process?
As we all know, the Agile Manifesto is well-received and successfully adopted as it is today thanks to the 12 underpinning principles. While “good design” is one main reason that “enhances agility”, “Agile processes promote sustainable development”.
At Axon Active, it’s important for us to do everything Agile and work with one another collaboratively in Collaboration Model. It gets people on the same page, makes everyone engage more with the product, encourages them to share more creative ideas, and gives them the flexibility they need to improve themselves.
Indeed, Designers and Developers can collaborate more closely and effectively, and subsequently integrating design into Agile process will yield numerous benefits.
For that reason, Scrum Breakfast Da Nang this October will be the very chance for you to learn:
• How to successfully integrate design into Agile process in practice
• How different Collaboration Model is from traditional model
• The benefits of Collaboration Model when done correctly
This document discusses agile software development processes. It outlines some common reasons for challenged, failed, and successful projects. Some key problems with the traditional waterfall model are that mistakes are hard to find early on and requirements often change. The document then introduces agile concepts like iterative development, test-driven development, extreme programming, scrum, and their benefits like producing working software earlier, adapting to change, and improved communication.
The document discusses various software development methodologies including Agile, Scrum, XP, Kanban, Lean, Crystal, DSDM, FDD, V-Model, Incremental Model, Evolutionary Prototyping, Cowboy Coding, and Personal Software Process. It describes how each methodology works, the roles involved, advantages and disadvantages. For example, it states that Agile is responsive to market changes, Scrum uses sprints, planning meetings and burndown charts, and Cowboy Coding lacks structure but allows for experimentation.
The document discusses agile methodology and its core principles. It defines agile as an incremental, iterative approach that values frequent delivery of working software and responsiveness to change. The document outlines traditional software development models like waterfall and spiral, then introduces the agile manifesto and its emphasis on individuals, collaboration, customer feedback and responding to change. It describes various agile roles, practices like scrum and XP, and the overall process of organizing work into short iterations to deliver working software.
The document discusses the concept of a "holistic programmer" who takes a whole-team approach. A holistic programmer sees the big picture even when working on parts, communicates well with the team, and shares responsibility. The challenges of seeing the whole picture while minding details and having business and technical people understand each other are addressed. The solutions involve generalizing specialists who learn new skills, taking responsibility for multiple tasks, and processes like "ready-ready" and "done-done" that improve communication. The holistic programmer aims to foster team learning and get better through communication and inspection/adaptation.
This document provides an overview of agile practices for product management. It begins with definitions of agile and its principles, which emphasize iterative development, collaboration between teams, and frequent delivery of working software. The document then outlines the typical agile procedure, including sprints, iterations, and product backlogs. It discusses various roles like product owners, coaches, and designers. It also covers practices for effective meetings, prioritizing work, designing user stories, testing, and ensuring quality through continuous delivery.
The Agile model emphasizes small incremental releases with frequent testing. The entire development team, including developers, testers, managers, and customers, work closely together in daily meetings over short 1-4 week sprints. Agile methods like Scrum and Extreme Programming use open communication to gather feedback. Advantages include rapid delivery of useful software and collaboration between customers and developers. Disadvantages can include lack of clarity on project goals.
This document provides an overview of process models and agile development approaches. It discusses the Unified Process (UP) and its phases including inception, elaboration, and more. Agile methods like Scrum and Extreme Programming (XP) are also summarized. Scrum uses sprints, daily stand-ups, sprint reviews and retrospectives. XP practices pair programming, test-driven development, and frequent small releases. The document emphasizes that agile prioritizes individuals, working software, customer collaboration and responding to change over processes and tools.
Essence of agile gives flavor of Agile and its core principles, highlighting how it can give real time benefits. I developed this asset, based on my certified knowledge and my years of experience in handling Agile projects, transitioning from waterfall to Agile and transforming business.Best used for 1 day workshop.
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...UXPA Boston
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Your Agile Process
Mark Ferencik's presentation from the UXPA Boston 2016 Conference
The document provides an introduction to agile software development processes. It discusses the waterfall model and iterative and incremental model. It then defines agile as a collection of iterative development methodologies that are lightweight and value individuals, interactions, working software, and responding to change. The document outlines agile principles and practices like user stories, story points, test-driven development, pair programming, daily stand-up meetings, story boards, burn down charts, continuous integration, and retrospectives. It concludes with feedback from an agile team noting benefits like earlier defect detection but also challenges in applying new techniques and lack of product management involvement.
The document provides an overview of agile methodologies. It defines agile as an iterative project management approach using short development cycles called sprints. The core values of agile according to the Agile Manifesto are prioritizing individuals, working software, customer collaboration, and responding to change. Key aspects of agile include sprint planning, daily standup meetings, user stories, acceptance criteria, product and sprint backlogs, and retrospectives. Popular agile frameworks are Scrum, Kanban, and lean.
This document outlines the course objectives and units for a Project Management course. The course aims to develop skills for planning, managing, and delivering successful software projects. The key objectives are to manage projects through each stage of the software development life cycle, learn activity planning and risk management, and deliver projects that support organizational goals. The first unit covers project evaluation, planning, methodologies, objectives setting, risk evaluation, and stepwise project planning. It includes topics such as importance of software project management, project portfolio management, and cost-benefit evaluation.
This document outlines the course objectives and units for a Project Management course. The course aims to teach students to plan, manage, and deliver successful software projects throughout the software development lifecycle. The first unit covers evaluating and planning projects, including importance of project management, methodologies, project categorization, setting objectives, risk evaluation, and stepwise project planning. Additional details are provided on project phases, stakeholders, management skills, and challenges with software projects.
The document discusses various aspects of the design process for interactive systems, including design rules, usability engineering, and iterative design. It provides an overview of different types of design rules such as principles, standards, and guidelines. Specific examples of design rules like learnability, flexibility, and robustness are mentioned. Ben Shneiderman's eight golden rules of interface design are also summarized, which include consistency, informative feedback, error handling, and reducing memory load.
Extreme Programming (XP) is an agile software development framework that aims to improve quality and developer satisfaction. It utilizes frequent small releases, customer collaboration, simple designs, testing automation, pair programming, and other practices. The core values of XP include communication, simplicity, feedback, courage, and respect. Some key practices are planning games, small releases, testing, refactoring, pair programming, on-site customers, and continuous integration. XP focuses on rapid feedback and continuous improvement through its values and lightweight practices.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
This document discusses agile software development processes. It outlines some common reasons for challenged, failed, and successful projects. Some key problems with the traditional waterfall model are that mistakes are hard to find early on and requirements often change. The document then introduces agile concepts like iterative development, test-driven development, extreme programming, scrum, and their benefits like producing working software earlier, adapting to change, and improved communication.
The document discusses various software development methodologies including Agile, Scrum, XP, Kanban, Lean, Crystal, DSDM, FDD, V-Model, Incremental Model, Evolutionary Prototyping, Cowboy Coding, and Personal Software Process. It describes how each methodology works, the roles involved, advantages and disadvantages. For example, it states that Agile is responsive to market changes, Scrum uses sprints, planning meetings and burndown charts, and Cowboy Coding lacks structure but allows for experimentation.
The document discusses agile methodology and its core principles. It defines agile as an incremental, iterative approach that values frequent delivery of working software and responsiveness to change. The document outlines traditional software development models like waterfall and spiral, then introduces the agile manifesto and its emphasis on individuals, collaboration, customer feedback and responding to change. It describes various agile roles, practices like scrum and XP, and the overall process of organizing work into short iterations to deliver working software.
The document discusses the concept of a "holistic programmer" who takes a whole-team approach. A holistic programmer sees the big picture even when working on parts, communicates well with the team, and shares responsibility. The challenges of seeing the whole picture while minding details and having business and technical people understand each other are addressed. The solutions involve generalizing specialists who learn new skills, taking responsibility for multiple tasks, and processes like "ready-ready" and "done-done" that improve communication. The holistic programmer aims to foster team learning and get better through communication and inspection/adaptation.
This document provides an overview of agile practices for product management. It begins with definitions of agile and its principles, which emphasize iterative development, collaboration between teams, and frequent delivery of working software. The document then outlines the typical agile procedure, including sprints, iterations, and product backlogs. It discusses various roles like product owners, coaches, and designers. It also covers practices for effective meetings, prioritizing work, designing user stories, testing, and ensuring quality through continuous delivery.
The Agile model emphasizes small incremental releases with frequent testing. The entire development team, including developers, testers, managers, and customers, work closely together in daily meetings over short 1-4 week sprints. Agile methods like Scrum and Extreme Programming use open communication to gather feedback. Advantages include rapid delivery of useful software and collaboration between customers and developers. Disadvantages can include lack of clarity on project goals.
This document provides an overview of process models and agile development approaches. It discusses the Unified Process (UP) and its phases including inception, elaboration, and more. Agile methods like Scrum and Extreme Programming (XP) are also summarized. Scrum uses sprints, daily stand-ups, sprint reviews and retrospectives. XP practices pair programming, test-driven development, and frequent small releases. The document emphasizes that agile prioritizes individuals, working software, customer collaboration and responding to change over processes and tools.
Essence of agile gives flavor of Agile and its core principles, highlighting how it can give real time benefits. I developed this asset, based on my certified knowledge and my years of experience in handling Agile projects, transitioning from waterfall to Agile and transforming business.Best used for 1 day workshop.
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...UXPA Boston
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Your Agile Process
Mark Ferencik's presentation from the UXPA Boston 2016 Conference
The document provides an introduction to agile software development processes. It discusses the waterfall model and iterative and incremental model. It then defines agile as a collection of iterative development methodologies that are lightweight and value individuals, interactions, working software, and responding to change. The document outlines agile principles and practices like user stories, story points, test-driven development, pair programming, daily stand-up meetings, story boards, burn down charts, continuous integration, and retrospectives. It concludes with feedback from an agile team noting benefits like earlier defect detection but also challenges in applying new techniques and lack of product management involvement.
The document provides an overview of agile methodologies. It defines agile as an iterative project management approach using short development cycles called sprints. The core values of agile according to the Agile Manifesto are prioritizing individuals, working software, customer collaboration, and responding to change. Key aspects of agile include sprint planning, daily standup meetings, user stories, acceptance criteria, product and sprint backlogs, and retrospectives. Popular agile frameworks are Scrum, Kanban, and lean.
This document outlines the course objectives and units for a Project Management course. The course aims to develop skills for planning, managing, and delivering successful software projects. The key objectives are to manage projects through each stage of the software development life cycle, learn activity planning and risk management, and deliver projects that support organizational goals. The first unit covers project evaluation, planning, methodologies, objectives setting, risk evaluation, and stepwise project planning. It includes topics such as importance of software project management, project portfolio management, and cost-benefit evaluation.
This document outlines the course objectives and units for a Project Management course. The course aims to teach students to plan, manage, and deliver successful software projects throughout the software development lifecycle. The first unit covers evaluating and planning projects, including importance of project management, methodologies, project categorization, setting objectives, risk evaluation, and stepwise project planning. Additional details are provided on project phases, stakeholders, management skills, and challenges with software projects.
The document discusses various aspects of the design process for interactive systems, including design rules, usability engineering, and iterative design. It provides an overview of different types of design rules such as principles, standards, and guidelines. Specific examples of design rules like learnability, flexibility, and robustness are mentioned. Ben Shneiderman's eight golden rules of interface design are also summarized, which include consistency, informative feedback, error handling, and reducing memory load.
Extreme Programming (XP) is an agile software development framework that aims to improve quality and developer satisfaction. It utilizes frequent small releases, customer collaboration, simple designs, testing automation, pair programming, and other practices. The core values of XP include communication, simplicity, feedback, courage, and respect. Some key practices are planning games, small releases, testing, refactoring, pair programming, on-site customers, and continuous integration. XP focuses on rapid feedback and continuous improvement through its values and lightweight practices.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...University of Maribor
Slides from talk presenting:
Aleš Zamuda: Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapter and Networking.
Presentation at IcETRAN 2024 session:
"Inter-Society Networking Panel GRSS/MTT-S/CIS
Panel Session: Promoting Connection and Cooperation"
IEEE Slovenia GRSS
IEEE Serbia and Montenegro MTT-S
IEEE Slovenia CIS
11TH INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONIC AND COMPUTING ENGINEERING
3-6 June 2024, Niš, Serbia
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
ACEP Magazine edition 4th launched on 05.06.2024Rahul
This document provides information about the third edition of the magazine "Sthapatya" published by the Association of Civil Engineers (Practicing) Aurangabad. It includes messages from current and past presidents of ACEP, memories and photos from past ACEP events, information on life time achievement awards given by ACEP, and a technical article on concrete maintenance, repairs and strengthening. The document highlights activities of ACEP and provides a technical educational article for members.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
2. Syllabus Intended Learning Outcomes [ILOs]
reflecting domain specific
knowledge, cognitive skills and
non-cognitive skills.
(At the end of the module, students
will be able to …..)
Assessment Tools
(including Sessionals
and Prefinals)
Formative /
Summative
(at least one
formative
assessment
for a module)
Module - 01
Overview, Objectives,Three Perspectives on Software
Engineering , The Agile Manifesto, Principles of Agile,
Application of Agile Software Development
Teamwork: Overview, Objectives, A Role Scheme in
Agile Teams, Remarks on the Implementation of the
Role Scheme, Human Perspective on the Role Scheme,
Using the Role Scheme to Scale Agile Projects,
Dilemmas in Teamwork, Teamwork in Learning
Environments, Teaching and Learning Principles
Customers and Users: Overview, Objectives, The
Customer, Customer Role, Customer Collaboration, The
User, Combining UCD with Agile Development,
Customers and Users in
Learning Environments, Teaching and Learning
Principles, Customer Stories.
1.Describe the Agile manifesto and
its principles. *
2.Relate the principles of Agile to the
existing SD environment. *
3.Explain the various Agile methods
in SD. *
4.List out the objectives of
Teamwork. *
5.Explain about refactoring in an
Agile environment.*
6.Give the Pros and Cons of Pair
Programming technique in Agile
methods.*
MCQ 1
Sessional Exam
Pre Final Exam
FA
SA
SA
3. Syllabus Intended Learning Outcomes [ILOs]
reflecting domain specific
knowledge, cognitive skills and
non-cognitive skills.
(At the end of the module, students
will be able to …..)
Assessment Tools
(including Sessionals
and Prefinals)
Formative /
Summative
(at least one
formative
assessment
for a module)
SOFTWARE DESIGN:
• Design Diagrams: Use Case Diagrams - Class
Diagrams - Interaction Diagrams - State chart
Diagrams - Activity Diagrams
• Design Process- Design concepts : Abstraction,
Architecture, patterns, Separation of Concerns,
Modularity, Information Hiding, Functional
Independence, Refinement, Aspects, Refactoring.
• Object Oriented Design Concepts, Design Classes-
Design Model: Data, Architectural,
Interface, Component, Deployment Level Design
Elements ,
• Code review Analysis.
1.Design State chart diagramS
1.Design Use Case Diagrams
1.Design Interaction Diagrams
1.Design Activity Diagrams
MCQ 1
Sessional Exam
Pre Final Exam
FA
SA
SA
4. Software Engineering
Software engineering is the profession
that applies scientific knowledge in the
construction of software products needed
by customers that are:
1) on time
2) on budget
3) with acceptable performance
4) with correct operation
9. Software Industry
Problems
➔ Coping with change
➔ Software quality Management
of software projects
Solution
➔ Agile development -- enhances
and supports diversity
Outcome
➔ Better processes
10. Three perspectives of Software Engineering
❖ The Human perspective
➢ cognitive and social aspects
➢ Refers to learning and interpersonal
processes (teammates, customers,
management)
❖ The Organizational perspective
➢ managerial and cultural aspects
➢ refers to the workspace and issues that
spread beyond the team.
❖ The Technological perspective
➢ practical and technical aspects
➢ refers to how-to and code-related
issues. HOT
Organizational
Perspective
Technological
Perspective
Human
Perspective
Software
Engineering
11.
12.
13. The Agile Manifesto
❖ People - teammates, customers,
management
❖ high priority to the people who
participate in the development
process
❖ decision related to the
development process → influence
on people who are part of the
development environment, their
relationships and communication
14. The Agile Manifesto
❖ main target of software projects is to
produce quality working software
● Focus is on working s/w or solution
○ Documents only for essential
requirement and accessible to all
○ Actual development commences
early
○ S/W that business can see and give
feedback
15. The Agile Manifesto
● development process is based on an
on-going and on a daily basis
contract with the customer.
● enables to cope successfully with the
frequent changes that characterize
software projects.
● Creates agile culture
16. The Agile Manifesto
● establish a development process that
copes successfully with changes
○ customers cannot predict a-priori all
their requirements;
● Respond to change and refine plan
without much implications on cost
● Encourages team to spend more time
working than creating project plans
32. Agile in Practice
● Whole Teams
● Short Releases
● Time Estimation
● Measures
● Customer Collaboration
● Test Driven Development
● Pair Programming
● Refactoring
33. Whole team Approach
● project team (including all role
holders and the customer)
communicate in a face-to-face
fashion as much as possible.
● development team work in a
collaborative workspace
● all team members participate in the
actual process planning
34. Short Releases
● Short releases usually of 2-3
months
● short iteration usually of one or two
weeks
○ Business Days
■ Previous iteration review
■ Project status review
■ Planning of next iteration
● Customer feedback at the end of
each iteration
35. Measures
Monitoring process transparent and known to all project stakeholders
● ON-TIME OR SPEED OF DELIVERY
○ burndown and the burnup charts
● PRODUCT QUALITY
○ tracking customer satisfaction, steady revenue growth, and testing success
● PROJECT VISIBILITY
○ Transparency - providing plans ahead of actions available to everyone
● PREDICTABILITY
○ Velocity - how much work has been completed at a sustainable pace
36. Customer Collaboration
● Customer part of process
● Avoids need to speculate on
customer requirements
● all team members have access to the
customer during the entire process.
● helps the teammates to cope
successfully with changes
37. Test Driven Development
● Unit and acceptance tests are integrated
with development process
● Encourages developers to build automatic
unit and acceptance tests
○ Unit test written prior to coding
○ Functionality added to pass test
○ Helps control development process
● Acceptance tests lead to development of
products that meets customer requirements
38. Pair Programming
● Each code developed by 2 teammates
● There is personal responsibility
● HArd to be distracted and leads to focus
● Driver- works with keyboard, thinks at
lower level
● Navigator - thinks of development at
higher level
● All team members familiar with all
aspects of developed software
39. Refactoring
● Improving Design of Existing
Code without affecting
functionality
● Time is dedicated to improve
software readability
● Reduce complexity of code
84. Objectives
● Characteristics of Teams in agile s/w development
● Allocation of roles to team members
● Using benefits of role assignment at individual, team and organization levels
● Dilemmas in teamwork and mechanisms to overcome them
● Mechanism to achieve, empower and maintain agile team spirit
● Basic skills to exploit strength of agile teams
85. Team
● At least 2 members working towards common goal
● Each person is assigned a specific role to perform
● Completion of mission requires some dependency among team members
Software Project teams accomplish complex task of software development
● Software development is about a tangible product
86. Role Scheme
● Role Assignment
○ Each team member is assigned a specific role to perform
○ Each team member will have an additional role assigned to them in addition to
primary role
● Software development is complex
○ Project management and progress split amongst all team members
○ BEnefits for individual, company and project
91. Role Scheme
● How does role scheme reflect HOT properties of Agile methods
● How is role scheme related to Agile MAnifesto
● What are benefits of role rotation
92. Dilemmas in Team work
● Allocation of incentives, rewards and bonuses
○ Teamwork is a basic working assumption is agile development
○ Team members cooperate, share information and exchange feedback with
each other
■ measuring individual performance is usually counter-productive
■ Major reason for conflicts
Dilemmas and conflicts associated with teamwork should be discussed openly
by all team members, and a solution that meets the needs of the individuals as
well as the entire team should be established.
93. Dilemmas in Team work
● Everyone gets X% of their salary as a bonus
● Distribute bonus evenly among team members
● Let team decide how bonus should be distributed
94. Rewards in Agile Teams
● rewards should encourage teamwork rather than individual
performance
● individual rewards maybe smaller in relation to team rewards.
● handwritten notes like thanking a team member for something special
and specific they did can do wonders for an individual
● Time - a team can be offered an incentive
★ a week off if they meet some delivery milestone.
★ choosing work of their choice in a sprint
95. Role Maintenance Activities
Activities performed on daily basis to enable entire team understand progress of the project
● Standup meetings
○ Individual performance
○ Expectations from team
● Presentation to customers
○ Present tasks of iteration
○ Individual contribution to task achievement
● Feedback from customers
○ With all team members
○ Personal reflection
97. Customers’ Role in Agile
Consulting with customers is at the heart of an Agile enterprise.
98. Customers Collaboration over contract
Negotiation
● Customer is at the heart of
the agile enterprise
● Agile process supports
customer’s role
● Enhancing Communication
with Customers
● Customer feedback to
increase product quality
99. Customer
● Customer may be one who pays for the product or has
business interests
● It is based on ongoing communication between the customer
and the team members
● Communication to facilitate
○ the requirements gathering
○ The way testing is performed and
○ Achieving suitability of the developed product
100. User
● They are the main clients
● HCI - Human Computer Interaction
● User perspective considered from beginning of product
development life cycle
Customer Group
● User Evaluator
● Customer
● Acceptance Tester
101. Customer Role
The customer is involved in
the development process
continuously
1. Setting Project Release
Schedule
102. Project Release Planning
● The architects present
their vision about
○ the product architecture
○ the existing architecture
○ anticipated changes.
● Customer describes
○ the project vision
○ the project main
stories
○ the guidelines
according to which
development
priorities will be
set.
103. Project Release Planning
● Other stakeholders
present their expectations
from the development
process.
● The project manager
presents
○ his or her view of
the development
process
○ the working
environment
○ his/her personal
expectations.
104. Business Day
● Discuss the development tasks of each iteration
● Takes place between each two consecutive iterations and
releases
● The rest of the iteration days are development days
105. Business Day
● All project stakeholders are invited to participate
○ Team, customer, managers, external members, users
● Planned to eliminate pressure over weekends
● Business Day Activities
○ presentation of the accomplishments of the ending iteration;
○ measures’ review;
○ customer feedback;
○ Reflective session;
○ planning of the next iteration.
106. Business Day Activities
○ presentation of the accomplishments of the ending
iteration;
○ measures’ review;
○ customer feedback;
○ Reflective session;
○ planning of the next iteration.
107. Presentation of the System
● Main features developed as per user stories for the ended iteration is
presented
● User story
○ should be understandable to customers and developers,
○ Is a unit of functionality of the product
○ Is implemented as a tested and integrated code
○ Is small enough such that many stories can be implemented
in an iteration
‘‘The most important stories to do first are the ones that contain the highest
business value.”
108. Presentation of the system
1. Make sure the system is fully integrated and includes all stories of
the ending iteration and is deployable
2. Ensure Customers and users are aware of all the features of the
system
3. Each team member presents his/her work - to raise accountability
4. Overall understanding of project components and features is
increased
109. Business Day Activities
○ presentation of the accomplishments of the ending
iteration
○ measures’ review
○ customer feedback
○ Reflective session
○ planning of the next iteration.
110. Mesures Review
Presentation and analysis of ending iteration metrics
● Present data to the entire team, by facts
● Discuss reason behind the metrics
● Ensure customer is aware of the process and progress
111. Mesures Review
Presentation and analysis of ending iteration metrics
■ Product metrics (no of written and passed tests)
■ Pulse metrics (continuous integration)
■ Burn-down metrics (measure of achieving
iteration goals)
■ Fault metrics (measure of new and open defects)
112. Business Day Activities
○ presentation of the accomplishments of the ending
iteration
○ measures’ review
○ customer feedback
○ Reflective session
○ planning of the next iteration.
113. Customer Feedback
○ a short, informal verbal summary of the iteration given
by the customer
○ Focus on product rather than process
○ Customer’s message to be included in iteration
summary
114. Business Day Activities
○ presentation of the accomplishments of the ending
iteration
○ measures’ review
○ customer feedback
○ Reflective session
○ planning of the next iteration.
116. Business Day Activities
○ presentation of the accomplishments of the ending
iteration
○ measures’ review
○ customer feedback
○ Reflective session
○ planning of the next iteration.
117. Planning Next Iteration
○ Begins of summary of previous iteration and the
reflective sessions
○ Customers, team members and interested persons can
attend
118. Planning Next Iteration
1. Customer tells the stories that were prepared in advance
to be developed in the next iteration
2. In addition the following are also added
a. Incomplete stories of previous iteration
b. Refactoring tasks
c. User stories that emerged from Business day
activities
119. Planning Next Iteration
3. Customer has to prioritize the stories
4. Development time of each of these tasks is estimated by
the developers who take ownership of them
5. The actual planning is set according to the available time
of the team members
6. The development loads are balanced among the
developers.
120. The User
HCI
➔ interface design and evaluation
➔ the interactions between users and systems
(hardware and/or software)
121. The User
Usability of a product - the extent to which a product can be
used by specified users to achieve specific goals with
● Effectiveness
● Efficiency
● Satisfaction
122. Integration of User with development environment
UCD- User Centric Design
● Experience is King
● Focus is on gaining a deep
understanding of who will be using the
product.
● Design techniques that emphasize user
needs during design of user interface
● Design designs can be validated and
tested
123. Why UCD?
● Design decisions can be validated and tested
● Guesswork is minimised
● Quality of experience vs. No. of features
○ Iphone vs Nokia?
● Create products for competitive market
124. Agile and UCD
Agile UCD
satisfy the customer through early and
continuous delivery of valuable software
create an experience for end-users
where they can achieve their goals
easily and efficiently
Working software is the primary
measure of progress
The satisfaction of end-user needs (user
goals) balanced with the achievement of
business goals is the primary measure
of success
Deliver working software frequently end-user experience could be poor or
worse