Topic 01. Software Engineering, Web Engineering, agile methodologies.

Similar documents
The Scaled Agile Framework

Chapter 1. Software and Software Engineering. What is this course about?

SE420 - Software Quality Assurance

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Adopting Agile Practices

CS487 Midterm Exam Summer 2005

Systems Analysis and Design in a Changing World, Fourth Edition

Incremental Programming

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Software Process. Software Process

Testing in Agile Software Development

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Lecture 7: Software Processes. Refresher: Software Always Evolves

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

Introduction to Software Engineering

E.G.S. PILLAY ENGINEERING COLLEGE (An Autonomous Institution, Affiliated to Anna University, Chennai) Nagore Post, Nagapattinam , Tamilnadu.

Incremental development A.Y. 2018/2019

Level: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48)

Dilbert Scott Adams. CSc 233 Spring 2012

defined. defined. defined. defined. defined. defined. defined. defined. defined.

Level 5 Diploma in Computing

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

Software Development Process Models

Systems Analysis and Design

Objectives. Connecting with Computer Science 2

Agile Development

Testing in the Agile World

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Software Development Methodologies

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Review Software Engineering October, 7, Adrian Iftene

SM 3511 Interface Design. Institutionalizing interface design

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

The requirements engineering process

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

OPTIMIZATION MAXIMIZING TELECOM AND NETWORK. The current state of enterprise optimization, best practices and considerations for improvement

Certified Software Quality Engineer Preparation On Demand, Web-Based Course Offered by The Westfall Team

ISSN: [Kaur* et al., 6(10): October, 2017] Impact Factor: 4.116

Chapter 5: Planning in Web Engineering

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

A CONFUSED TESTER IN AGILE WORLD

Approaches for Auditing Software Vendors

Optimize tomorrow today.

VO Software Engineering

18-642: Software Development Processes

SOFTWARE ENGINEERING

Quality, Project Management & Supply Professional (Customized). Choice of any 3 certifications outlined as follows:

SOFTWARE ENGINEERING

Overview of the course. User-Centred Design. Group. Practical issue. Writting the report. Project work. Fang Chen

Business Architecture Implementation Workshop

Best Practices for Collecting User Requirements

Automation Best Practices for CI/CD. Leo Laskin, Sr. Solutions Architect

SOFTWARE LIFE-CYCLE MODELS 2.1

Process of Interaction Design and Design Languages

(Objective-CS605 Software Engeenring-II)

Planning for Information Network

User-Centered Development

Software Quality Assurance

Application Development at

h(p://ihm.tumblr.com/post/ /word- cloud- for- hci- human- computer- interacbon CS5340 Human-Computer Interaction ! January 31, 2013!

CMSC 435: Software Engineering Section 0201

The Agile Unified Process (AUP)

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

2/18/2009. Introducing Interactive Systems Design and Evaluation: Usability and Users First. Outlines. What is an interactive system

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Requirement Engineering within an Agile Environment BY KEJI GIWA. Digital Bananas Technology

1. i. What are the 3 major components of a information system and show their relationship input output

BDSA Introduction to OOAD. Jakob E. Bardram

Meltem Özturan

Wipro s Endur Test Automation Framework (W-ETAF) Reduces time and effort for the implementation and maintenance of an automated test solution.

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Requirements and Design Overview

Agile Certifications. Dr. Vijay Kanabar Boston University

3 Days Classroom Training Exam and Certification Included

Collaboration at Scale: Prioritizing a Backlog. 13-Dec-2017

Software Architecture

System Development Life Cycle Methods/Approaches/Models

A Tale of Continuous Testing

Advanced Software Engineering: Software Testing

ITM DEVELOPMENT (ITMD)

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.

Been testing software for over 10 years Started out as a Manual Tester Moved to Automation testing Now leading teams, defining quality in

BPS Suite and the OCEG Capability Model. Mapping the OCEG Capability Model to the BPS Suite s product capability.

Study Of Feature Driven Development Using The Concepts Of Object Oriented Programming System

Testing Tools to Support Agile Software Delivery. The Critical Role of Automated Functional Testing in Enterprise Environments

Object Oriented Programming

Specifying and Prototyping

ALM120 Application Lifecycle Management 12.0 Essentials Gold Package

Testing Agile Projects Stuart Reid

Best practices for OO 10 content structuring

Presentation Slides. October 9, st Century Learning Design. Lance Dublin, Dublin Consulting

SOFTWARE ENGINEERING. Curriculum in Software Engineering. Program Educational Objectives

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

CertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

Registration Workshop. Nov. 1, 2017 CS/SE Freshman Seminar

Transcription:

Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1

Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined, systematic, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. 3 Software Engineering (a disciplined approach) CS590 Analysis + Design models: DFDs, ERDs, STDs, DOs, etc. Coding, programming, code testing, validation, verification, etc. SW PROJECT PROCESS = Software Engineering PRODUCT: SW App Customer and his/her project FTR # 1 FTR # 2 FTR # 3 Final Software product Analysis: requirements (scope, functionality, constraints, user scenarios, data flow, patterns, etc.) Baseline Project Plan Design: concepts, models, system s architecture, system s components, graphic user interface (GUI), prototyping, etc. Software Quality: concepts, techniques, testing, metrics SW Dev. Project Management: concepts, metrics, estimates, scheduling, risk m., configuration m., etc. 4 2

Classic SE: Waterfall Model 5 Classic SE: Spiral Evolutionary Model 6 3

7 Problems with Classic SE 1) Size of big SW projects: millions of LOC 2) Cost of big SW development project: millions of dollars ($) 3) Failure rate of big SW development projects: about 35% in 2010 4) 60% of developed SW functionality are NEVER or RARELY used 8 4

What is WebApp Engineering (WebE)? 9 Web Engineering Framework Activities - CS593 WebE framework: is a set of activities that will always be performed for every Web engineering project though the nature of the activities might vary to suit the project. Communication (initiation) Planning Modeling/Simulation/Prototyping Analysis of requirements Design Model Development (construction) Code generation Testing Deployment/Implementation Communication. Planning. Modeling. Construction. Deployment. Involves heavy interaction and collaboration with the customer (and other stakeholders) and encompasses requirements gathering and other related activities. Establishes an incremental plan for the WebE work. Encompasses the creation of models that assist the developer and the customer to better understand WebApp requirements and the design. Combines both Web development technologies, tools, applications, with HTML, XML, Java, and similar code with testing that is required to uncover errors in the code. Delivers a WebApp increment to the customer who evaluates it and provides feedback based on the evaluation. 10 5

WebE: Umbrella (Support) Activities Software project management (PM) Formal technical reviews (FTR) Risk management (RM) Software quality assurance (SQA) Measurement Software configuration management (SCM) Reusability management Work product preparation and production Software project management (allows team to assess progress and take corrective action to maintain schedule) Formal technical reviews (assess engineering work products to uncover and remove errors before they propagate to next activity) Risk management (assess risks that may affect project outcomes or quality) Software quality assurance (activities required to maintain software quality) Measurement (define and collect process, project, and product measures to assist the software team in delivering software meeting customer needs) Software configuration management / change management (manage effects of change) Reusability management (defines criteria for work product reuse and establish mechanisms to achieve component reuse) Work product preparation and production (activities to create models, documents, logs, forms, lists, etc.) 11 What is the main difference between Software Engineering and WebApp Engineering? 12 6

and the answer is Agility (quickness, swiftness) Main reasons for NOT applying SE principles to WebE: Business strategies and rules change rapidly Management demands near-instantaneous almost immediate reaction --responsiveness (even when such demands are completely unreasonable). Stakeholders often don t understand the consequences of the Web and keep changing their mind even as they demand rapid delivery An agile approach helps cope with this fluidity and uncertainty. 13 What is an Agile Process? Agile Web engineering combines a philosophy and a set of development guidelines. The philosophy encourages: customer satisfaction (quality is OK if customer is satisfied) informal methods (aimed to speed up SW development) overall development simplicity early incremental delivery of the WebApp small, highly motivated project teams minimal work products An agile process stresses delivery over analysis and design (although these activities are not discouraged), and active and continuous communication between developers and customers. 14 7

Classic Software Engineering vs Agile Software Development Source: Boehm & Turner, 2003 15 Evolutionary Map of Agile Methods in Software Development Source: Pekka Abrahamsson, 2002 16 8

Types of Agile Software Development Methodologies Extreme Programming (XP) Industrial XP (IXP) Adaptive Software Development (ASD) Scrum Crystal programming Feature Driven Development (FDD) Lean Software Development (LSD) Dynamic Systems Development Method (DSDM) 17 Software Engineer vs WebApp Engineer 18 9

Software Engineer: Job # 1 in the U.S.A. 19 WebApp Engineer vs Software Engineer 20 10

CS593 Course Framework 21 CS593 Course Framework Course parts 1 2 3 4 Part title Web systems. Web systems engineering (WebE). Web technologies for Web systems (including student research projects) Modern software development methodologies (including student research projects) Mobile software systems Main topics 1. Web systems characteristics 2. Web systems engineering framework. 3. Communication, analysis, design models 4. Diagramming tools (Lab 01) 5. Interaction model and GUI 6. Information model 1. Mash-Up technology 2. Second Life Project technology 3. Cloud computing 4. Web services 5. Web 2.0 technology and tools 6. Streaming technology 1. Agile methodology 2. RAD (rapid application development) methodology 3. Scrum methodology 4. XP (extreme programming) methodology 5. Open-source software methodology 6. RUP (rational unified process) methodology 7. Crystal family of methodologies 8. Pragmatic programming methodology 1. Mobile Web 2. Mobile software systems characteristics 3. Design of mobile software systems 4. IDE for mobile software development Course components of CS593 course: 1) lectures, 2) student research projects, 3) computer labs, 4) midterm computer diagrams, 5) course project on Web or mobile application, 6) final exam (Web taped presentation) 22 11

Topic 01 Software Engineering and Web Engineering Additional information. 23 Underlying Agility Principles - I Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness continuous change for the customer's competitive advantage. Deliver working software increments frequently, from as often as every few days to every few months, with a preference to the shorter timescales. Business people and developers must work together daily throughout the project. Build projects around motivated people. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 24 12

Underlying Agility Principles - II Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity the art of maximizing the amount of work not done is essential. The best architectures, requirements, and designs emerge from selforganizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 25 What is a WebE Framework? A framework is a set of activities that will always be performed for every Web engineering project though the nature of the activities might vary to suit the project. Each framework activity is composed of a set of actions Actions encompass work tasks work products quality assurance points, and project milestones A framework also has a set of umbrella activities 26 13

Umbrella Activities of WebE 27 The Influence of Software Engineering Software Engineering Tools Methods Process Model Goal = produce top quality product 1) SE rests on a goal - an organizational commitment to produce top quality product. 2) Process layer (that uses formal process models) is the glue that holds the SE technology layers together. 3) Methods to provide the concrete technical HOW-TO s for building SW. 4) Tools to provide automated or semi-automated support for SW development. 28 14

What about Tools and Technology? WebE tools and technology are very important But they ll work well only if they re used within the context of an agile framework for Web engineering and in conjunction with proven methods for understanding the problem, designing a solution, and testing it thoroughly. 29 WebE Best Practices Take the time to understand business needs and product objectives, even if the details of the WebApp are vague. Describe how users will interact with the WebApp using a scenario-based approach. Always develop a project plan, even if it s very brief. Spend some time modeling what it is that you re going to build. Review the models for consistency and quality. Use tools and technology that enable you to construct the system with as many reusable components as possible. Don t reinvent when you can reuse. Don t rely on early users to debug the WebApp design and use comprehensive tests before releasing the system. 30 15

WebE Methods Communication methods Requirements analysis methods Design methods Construction/development methods Testing methods 31 WebE Pages, Journals World Wide Web Consortium: http://www.w3.org International Society for Web Engineering: http://www.iswe-ev.de/ Journal of Web Engineering: http://www.rintonpress.com/journals/jwe/ International Journal of Web Engineering and Technology: http://www.inderscience.com/browse/index.php?journalid=48 32 16