(Traditional) Software Development Activities

Similar documents
Incremental development A.Y. 2018/2019

Software Design. Levels in Design Process. Design Methodologies. Levels..

Introduction to Software Engineering

A Structured Approach for Efficient Model-Based Testing in Large IT Projects

Objectives. Connecting with Computer Science 2

COMPUTER FLOOD STANDARDS

Software Testing. Hans-Petter Halvorsen, M.Sc.

Executive Summary. Round Trip Engineering of Space Systems. Change Log. Executive Summary. Visas

Up and Running Software The Development Process

Introduction to UML. (Unified Modeling Language)

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Programming Principles

Test requirements in networked systems

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins

The requirements engineering process

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

Extending Blaise Capabilities in Complex Data Collections

User-Centered Development

Minsoo Ryu. College of Information and Communications Hanyang University.

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

COMPUTER/INFORMATION FLOOD STANDARDS

Executives Will Want to use MBSE

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals

Integration With the Business Modeler

Chapter 2 Overview of the Design Methodology

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6. Moving on to Design

Application in a Systems Design Environment. EE 498/499 Capstone Design Classes Klipsch School of Electrical & Computer Engineering

Software processes. Objectives. Contents

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Sample Exam Syllabus

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Ali Khan < Project Name > Design Document. Version 1.0. Group Id: S1. Supervisor Name: Sir.

HFIP Architecture and Real-Time Workflows. 14 April 2011

Requirements Engineering. Materials: Pressman (chapters 8,9, 10, 11) Sommerville (Chapters 4, 5)

Lecture 8 Requirements Engineering

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

Chap 2. Introduction to Software Testing

Verification and Correction of UML Models

1 Executive Overview The Benefits and Objectives of BPDM

Requirements engineering

Architectural Design

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example.

Business Process Modelling

Computer Science 520/620 Spring 2013 Prof. L. Osterweil" Use Cases" Software Models and Representations" Part 4" More, and Multiple Models"

Computer Science 520/620 Spring 2013 Prof. L. Osterweil" Software Models and Representations" Part 4" More, and Multiple Models" Use Cases"

Software architecture: Introduction

V&V: Model-based testing

Arguing With the Machine Analysis of Auto-Generated Code. Jacob Cox, TASC

Printer and Driver Management

Software Architecture

Requirements. Requirements. Types of Requirement. What Is a Requirement?

Best Practices for Model-Based Systems Engineering

Update on AADL Requirements Annex

Specifying and Prototyping

Lecture 15 Software Testing

SOFTWARE ENGINEERING. Software Specification Software Design and Implementation Software Validation. Peter Mileff PhD

Domain Specific Languages. Requirements (Engineering)

Deliver robust products at reduced cost by linking model-driven software testing to quality management.

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for?

Ch 4: Requirements Engineering. What are requirements?

GROUP FINAL REPORT GUIDELINES

The risk of SQL forms within the Oracle Applications- How did that Happen?

Data Model and Tool Support for a consistent Functional Verification Chain in Space Projects SEPS 2012, ESTEC

Enterprise Architect Training Courses

Unified Modeling Language - UML

QA Best Practices: A training that cultivates skills for delivering quality systems

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Lecturer: Sebastian Coope Ashton Building, Room G.18

340 Review Fall Midterm 1 Review

Model-Based Testing: An Evaluation

Lecture 6: Requirements Engineering

Oracle Forms and Oracle APEX The Odd Couple

Test and Evaluation of Autonomous Systems in a Model Based Engineering Context

System Name Software Architecture Description

What is Systems Engineering?

Subject: Software Engineering & UML (MCA 401)

Requirements Engineering process

Digitized Engineering Notebook

A SysML-Based Methodology for Model Testing of Cyber-Physical Systems

COMP 145 UNC-Chapel Hill Contract II PROJECT TITLE. Submitted to. CLIENT NAME and Prof. Greg Welch. Date AUTHOR NAME AUTHOR NAME AUTHOR NAME

Test design techniques

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

The software lifecycle and its documents

Best Practices Process & Technology. Sachin Dhiman, Senior Technical Consultant, LDRA

CASE TOOLS LAB VIVA QUESTION

350 Index 2005 GOAL/QPC

UML part I. UML part I 1/41

Software Reuse and Component-Based Software Engineering

SEGUE DISCOVERY PARTICIPATION IN DISCOVERY DISCOVERY DELIVERABLES. Discovery

Lecture 9 Requirements Engineering II

What is a Model? Copyright hebley & Associates

Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing.

EXTENSIONS OF THE XML FILE FOR THE HIERARCHICAL SYSTEM EDITOR

Security Engineering for Software

TTM: TAF TEST MANAGER USER MANUAL

ECE-492 SENIOR ADVANCED DESIGN PROJECT

Transcription:

(Traditional) Software Development Activities

Goals of the Unit A gentle and high-level introduction to software development activities Understanding what are the building blocks for producing software Remarks: This is no substitute for a software engineering course The activities need to be integrated in a coherent process, to make sense Software development projects range from the very small to the very large... not all activities equally useful or relevant in any context - 2014 adolfo villafiorita - introduction to software project management!2

Initiate Plan Execute & Monitor Close Assess Feasibility Formalize Goals Define Schedule Define Costs Monitor Goals, Cost and Schedule Collect Outputs Develop Kick Off Activities Close Release [Obtain Approval] Change Control & Configuration Management Quality Management Risk Management Human Resource Management

Overview Software development is a progressive refinement which moves from concept to operations through the following phases: Requirements and User Experience Design Design Implementation Verification and Validation Deployment Operations and Maintenance As we move along these phases, we make and commit to specific choices; the cost of changes increases accordingly Different processes put different emphasis on each activity or define the order in which these activities can be performed - 2014 adolfo villafiorita - introduction to software project management!4

The software process Software Process: a coherent sets of activities for specifying, designing, implementing and testing software systems The software process manages the transition from concept to product A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective Some characteristics of a process: the building blocks the order in which the building blocks are executed inputs/outputs to each activity level of formality (when and how you move to the next activity; what you really need to trace)!5

The Building Blocks: the what Business/ Environment Modeling Requirements (the what) Describes the environment (people, organization, other systems) in which the software in going to be run Describes the external qualities of the software (what the users sees) and the constraints (for instance: execution environment) A textual description, diagrams (BPMN, UML) A textual description, GUI layouts, use cases, user stories,...!6

Example Business Modeling Requirements 1. Unit Head receives expense request 2. Unit Head authorizes and forward to administration 3.Administration verifies budget availability and forwards to procurement 4.Procurement proceeds 5... 1.The system shall allow a unit head to authorize an expense request 2... FURPS - Functionality - Usability - Reliability - Performance - Supportability!7

The Building Blocks: the how Architectural Design (the how) Describes how the system is structured in components Diagrams (class, components,...) Implementation (the actual stuff!) Implementation of the requirements according to the structure defined in the architectural design Code!8

Example (architectural diagrams) Several notations: Data flow diagrams Hierarchical decomposition State diagrams Class diagrams... Common goals: What components a system is made of (logical/physical) How they interact How they behave... Show <<view>> display Control Logic PersonLogic <<controller>> change_name change_surname Actuator Driver Person <<model>> name surname get_fullname!9

The Building Blocks: v&v Verification (does it work right?) It verifies that the the implementation works as expected A report (and the specification of the tests - code or text) Validation (is it the right thing?) It verifies whether the system does what was intended in the requirements A report (and the specification of the tests - typically: text) Different scopes/representations: unit (test a piece of code): executable code component/system (test a component): textual specifications/executable scripts Different types: white box testing (you know the source code) black box testing (you don t know the internals)!10

Examples Textual/Executable lists of tests Often in the form: with the system in a given state if some events occur (e.g. user interaction) then some output is expected Example: after successful login as a simple user if the user presses the admin button it is taken to an error page displaying ( user is not authorized ) It can be automated (even with Graphical User Interfaces)!11

The Building Blocks: going live User Documentation User Manual and other information to support users about the functions and usage of the system Manual! Distribution and Deployment Maintenance Activities related to going live and reaching the customer What you do after the software has been released (sometimes mentioned; modern software development approaches treat maintenance as a new project) Software Installation package, Appstore, Website, Web Application,...!12

(Some) Transversal Concerns Business Plan Definition How you are going to make money out of your system Configuration Management The activities related to maintaining the coherency of a system when it evolves Items list, repository,... Project Management The activities to keep the project under control This course! Process Improvement Measuring your performances and making sure you get better at building software!13