Sistemi ICT per il Business Networking



Similar documents
Topics. Software development invariants. Stakeholders. The accidents of software development. The essence of software development

How To Understand The Software Process

What is a life cycle model?

Chap 1. Introduction to Software Architecture

Classical Software Life Cycle Models

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Surveying and evaluating tools for managing processes for software intensive systems

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Time Monitoring Tool Software Development Plan. Version <1.1>

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Knowledge, Certification, Networking

Redesigned Framework and Approach for IT Project Management

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Quality Assurance Plan

Chapter 1 The Systems Development Environment

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

White Paper IT Methodology Overview & Context

Assuming the Role of Systems Analyst & Analysis Alternatives

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Lecture Slides for Managing and Leading Software Projects. Chapter 1: Introduction

Appendix 2-A. Application and System Development Requirements

Business Modeling with UML

IV. Software Lifecycles

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Information systems modelling UML and service description languages

Phase 2 Systems Analysis. Dr. Feng-Jen Yang

REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS

SOFTWARE PROCESS MODELS

SYSTEMS ANALYSIS DESIGN

Software Engineering talk

Software Development Life Cycle (SDLC)

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

10.1 Determining What the Client Needs. Determining What the Client Needs (contd) Determining What the Client Needs (contd)

Chapter 13: Program Development and Programming Languages

Software Engineering Question Bank

IT3205: Fundamentals of Software Engineering (Compulsory)

Software Development in the Large!

The Rap on RUP : An Introduction to the Rational Unified Process

Web Application Architectures

Software Process and Project Plan

Effort and Cost Allocation in Medium to Large Software Development Projects

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Enhanced Funding Requirements: Seven Conditions and Standards

Data Modeling Basics

The Role of the Software Architect

Core Issues Affecting Software Architecture in Enterprise Projects

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

System Requirement Specifications (SRS)

Project Management. Lecture 3. Software Engineering CUGS. Spring 2012 (slides made by David Broman) Kristian Sandahl

To introduce software process models To describe three generic process models and when they may be used

CS4507 Advanced Software Engineering

Analysis of the Specifics for a Business Rules Engine Based Projects

Agile Unified Process

The role of integrated requirements management in software delivery.

Plan-Driven Methodologies

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

How To Understand Software Engineering

A Capability Maturity Model (CMM)

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

How To Develop A Multi Agent System (Mma)

2667A - Introduction to Programming

Balancing the Outsourcing Equation

A Review of an MVC Framework based Software Development

Development (60 ЕCTS)

Developing SOA solutions using IBM SOA Foundation

11 Tips to make the requirements definition process more effective and results more usable

White Paper What Solutions Architects Should Know About The TOGAF ADM

A Software Development Platform for SOA

Software Life Cycle Processes

Chapter 2 Database System Concepts and Architecture

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

Information Systems Development Process (Software Development Life Cycle)

Prof. Paolo Nesi. Lab: DISIT, Sistemi Distribuiti e Tecnologie Internet

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies

Test Cases Design for Software Database Provisioning Development

Chapter 8 Approaches to System Development

Basic academic skills (1) (2) (4) Specialized knowledge and literacy (3) Ability to continually improve own strengths Problem setting (4) Hypothesis

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software Development Methodologies

Requirements Definition and Management Processes

DATABASE SYSTEM CONCEPTS AND ARCHITECTURE CHAPTER 2

Applying Agile Methods in Rapidly Changing Environments

Manage Software Development in LabVIEW with Professional Tools

System development lifecycle waterfall model

This alignment chart was designed specifically for the use of Red River College. These alignments have not been verified or endorsed by the IIBA.

CHAPTER 11 REQUIREMENTS

Transcription:

Corso di Laurea Specialistica Ingegneria Gestionale Sistemi ICT per il Business Networking Software Development Processes Docente: Vito Morreale (vito.morreale@eng.it) 17 October 2006 1 The essence of software development Only one out of three software projects complete ontime and on-budget (The Standish Group report, 2003) The essence of software development: defined by the issues inherent in the software itself software is a product of a creative act (not a result of a repetitive act of manufacturing) issues inherent in the software complexity changeability invisibility 2 1

The accidents of software development Accidental difficulties due to software production practices and human intervention an information system is a social system Difficulties are related to: Stakeholders Process Modeling language and tools 3 Software development invariants Software in inherently complex function of interdependencies between components of which the software product is composed complexity in the wires Data intensive applications (enterprise information systems) are particularly complex Software must conform to: hardware/software platform on which it is built pre-existing information systems Software must be built to accommodate change Software is buried deeply in invisible programming statements, binary library code, and surrounding system software 4 2

Stakeholders People who have a role in a software project: whoever is affected by the system or affects the system Important groups of stakeholders: Customers (users and system owners) Developers (analysts, designers, programmers, etc.) Information systems are social systems developed by people (developers) for people (customers) The main causes of software failure can be traced to the stakeholder factor on the customer end (e.g. user needs not fully understood, changes of requirements, customers not fully involved, etc.) on the developer end (e.g. development team members without required skills) 5 Software process Defines activities and organizational procedures used in software production and maintenance A process model: states an order for carrying out activities; specifies what development artifacts are to be delivered and when; assigns activities and artifacts to people/roles; offers criteria for monitoring a project s progress, for measuring the outcomes, and for planning future projects. Not susceptible to standardization: every organization should define its own process models or specialize an existing models (e.g. UP, RUP, etc.): Different contexts require different (perhaps similar) processes 6 3

Software development lifecycle Macro phases: Analysis: requirements (functional and nonfunctional) WHAT Design: architectural and detailed HOW Implementation: coding Testing Deployment 7 Analysis vs. design Analysis emphasizes an investigation of the problem and requirements, rather than a solution For example, if a new computerized library information system is desired, how will it be used? Design emphasizes a conceptual solution that fulfils the requirements, rather than its implementation For example, a description of a database schema and software objects. Analysis: do the right thing Design: do the thing right 8 4

Iterative and incremental process An iterative process is one that involves managing a stream of executable releases An incremental process is one that involves the continuous integration of the system s architecture to produce these releases, with each new release embodying incremental improvements over the other. Some examples: Unified Process Rational Unified Process (RUP) the agile development processes Iterative and incremental development must be planned and controlled 9 Modeling language and tools Software development artifacts have to be communicated (visual or non-visual language) and documented (tools) The Unified Modeling Language (UML) is a generalpurpose visual modeling language that is used to specify, visualize, construct, and document the artifacts of a software system. Computer-Assisted Software Engineering (CASE) Assisted Software Engineering (CASE) tool enables storage and retrieval of models in a central repository and graphical and textual manipulation of models on a computer screen 10 5

Unified Modeling Language (UML) UML is independent of any software development process A process that adopts UML should support an object-oriented approach to software production, even though implementation technologies (as long as they are object-oriented) 11 Lifecycle activities Business Analysis Requirements determination and specification functional and non-functional requirements System Design architectural design detailed design Implementation Integration and Deployment Maintenance Testing Planning 12 6

Business analysis Also requirements analysis Activity of determining and specifying customer needs business analyst determines requirements system analyst specifies (or models) requirements Business analysis is linked to business process reengineering (BPR) aim of BPR is to propose new ways of conducting business and gaining competitive advantage Business analysis becomes increasingly an act of requirements engineering 13 Requirements Requirement: a statement of a system service or constraint. Capabilities and conditions to which the system must conform. Service statement a business rule that must be obeyed at all times (e.g. salaries are paid on Wednesdays ) a computation that the system must carry out (e.g. calculate salesperson commission based on the sales in the last month using a particular formula ) Constraint statement a restriction on the system s behavior ( only direct managers can see the salary information of their staff ) a restriction on the system s development ( we must use Java development tools ) 14 7

Requirements determination To identify, analyze and negotiate requirements with the customers Several techniques: Structured and non-structured interviews Questionnaires Analysis of existing documents Rapid prototyping Attention to overlapping and contradicting requirements Output: requirements document (text, diagrams, tables, no formal models) a contract between developers and customers 15 Requirements specification Begins when the developers start modeling the requirements using a particular technique (such as UML) CASE tool is used to enter, analyze and document the models Requirements Document is enriched with graphical models and CASE-generated reports Most important OO specification techniques class diagrams: to represent data use case diagrams: to represent functions Ideally, the specification models should (if possible) be independent from the hardware/software platform on which the system is to be deployed Remember: requirements concern with WHAT!!! 16 8

Architectural design The description of the system in terms of its modules (components) Concerned with modularization of the system relatively independent from a solution strategy but the detailed design of components must conform to a selected client/server solution 17 Detailed design Description of the internal workings of each software component Develops detailed algorithms and data structures for each component Dependent on the underlying implementation platform Client (Windows, Unix, Web, stand-alone application, etc.) Server (DBMS, legacy systems, etc.) middleware (application server, etc.) 18 9

Implementation Involves installation of purchased software coding of custom-written software other important activities, such as loading of test and production databases, testing, user training, hardware issues, etc. 19 Integration and deployment Module integration can take more time and effort than any one of the earlier lifecycle phases, including implementation The whole is more than the sum of the parts (Aristotle) must be carefully planned from the very beginning of the software lifecycle Deployment must be carefully managed and allow, if at all possible, fallback to the old solution, if problems encountered 20 10

Maintenance Maintenance is not only an inherent part of the software lifecycle it accounts for most of it as far as IT personnel time and effort is concerned 21 Activities spanning the lifecycle Project planning Metrics Testing 22 11

Project planning If you can t plan it, you can t do it Activity of estimating the project s deliverables, costs, time, risks, milestones, and resource requirements Includes the selection of development methods, processes, tools, standards, team organization, etc. A moving target Typical constraints are time (deadline) and money (budget) 23 Metrics Measuring development time and effort Without measuring the past, the organization is not able to plan accurately for the future Metrics are usually discussed in the context of software quality and complexity they apply to the quality and complexity of the software product Equally important application of metrics is measuring the development models (development products) at different phases of the lifecycle to assess the effectiveness of the process and to improve the quality of work at various lifecycle phases 24 12

Typical metrics: Stability of requirements Metrics Number of components, modules, classes, etc. Statistics on errors 25 Testing During the whole life-cycle NOT after developing Test cases should be defined for each functional module described in the requirements document Desktop testing by developers not sufficient: test should be made by third party Methodical testing by Software Quality Assurance (SQA) group necessary Execution-based testing: Testing to specs (black-box testing) Testing to code (white-box or glass-box testing) 26 13

Summary The nature of software development is that of a craft or even art. The triangle for success includes the stakeholders factor, a sound process and the support of a modeling language and tools. System planning precedes software development and determines which products can be most effective to the organization. Software development follows a lifecycle. Modern development lifecycles and processes are iterative and incremental. 27 References Il processo di sviluppo del software (Capitolo) 28 14