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



Similar documents
Sistemi ICT per il Business Networking

What is a life cycle model?

How To Understand The Software Development Lifecycle

Surveying and evaluating tools for managing processes for software intensive systems

Classical Software Life Cycle Models

CS4507 Advanced Software Engineering

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Karunya University Dept. of Information Technology

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

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

Chapter 1 Problem Statements for Case Studies

Chapter 1 The Systems Development Environment

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

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

Databases in Organizations

Approach to Service Management

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

SOFTWARE PROCESS MODELS

COMP 354 Introduction to Software Engineering

Software Engineering Question Bank

Software Development Life Cycle (SDLC)

Development Methodologies

Redesigned Framework and Approach for IT Project Management

Chap 1. Introduction to Software Architecture

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

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

A Capability Maturity Model (CMM)

Appendix 2-A. Application and System Development Requirements

WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT

Basic Unified Process: A Process for Small and Agile Projects

RUP for Software Development Projects

Data Modeling Basics

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

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Information systems modelling UML and service description languages

Building Security into the Software Life Cycle

Information Management Metamodel

IT3205: Fundamentals of Software Engineering (Compulsory)

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

Extend the value of your core business systems.

Reaching CMM Levels 2 and 3 with the Rational Unified Process

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

Time Monitoring Tool Software Development Plan. Version <1.1>

TOGAF usage in outsourcing of software development

The OMG BPM Standards

Increasing Development Knowledge with EPFC

CDC UNIFIED PROCESS PRACTICES GUIDE

System development lifecycle waterfall model

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Cross-Domain Service Management vs. Traditional IT Service Management for Service Providers

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended.

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

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

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

Certified Software Quality Engineer (CSQE) Body of Knowledge

Applying Agile Methods in Rapidly Changing Environments

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

The most suitable system methodology for the proposed system is drawn out.

Systems Analysis and Design

IV. Software Lifecycles

Quality Assurance Software Development Processes

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

B.Sc (Computer Science) Database Management Systems UNIT-V

Strategic solutions to drive results in matrix organizations

2. Analysis, Design and Implementation

Course DSS. Business Intelligence: Data Warehousing, Data Acquisition, Data Mining, Business Analytics, and Visualization

CS4507 Advanced Software Engineering

Proven Testing Techniques in Large Data Warehousing Projects

The role of integrated requirements management in software delivery.

Developing in the MDA Object Management Group Page 1

2. Analysis, Design and Implementation

Software Engineering. An Introduction. Fakhar Lodhi

Introduction to OpenUP (Open Unified Process)

Glossary of Software Engineering Terms

White Paper: Establishing a Configuration Management Database Schema: A Working Model

Business Process Modeling and Standardization

Partnering for Project Success: Project Manager and Business Analyst Collaboration

Tools for MDA Software Development: Evaluation Criteria and Set of Desirable Features

SOA: The missing link between Enterprise Architecture and Solution Architecture

Software Development in the Large!

Chapter 5 Business Intelligence: Data Warehousing, Data Acquisition, Data Mining, Business Analytics, and Visualization

Requirements Definition and Management Processes

The Role of the Software Architect

Modeling Web Applications Using Java And XML Related Technologies

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Agile Unified Process

Business Modeling with UML

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

Introduction to Agile Software Development

A Software Development Platform for SOA

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Chapter 8 Approaches to System Development

Plan-Driven Methodologies

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Transcription:

MACIASZEK, L.A. (2005): Requirements Analysis and System Design, 2 nd ed. Addison Wesley, Harlow England, 504p. ISBN 0 321 20464 6 Chapter 1 Software Process Topics The nature of software development System planning Systems for three management levels Software development lifecycle Problem statements for case studies (separate set Pearson Education Limited 2005 of slides) Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 2 The essence of software development Only one out of three software projects complete on-time 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) difficulties not amenable to breakthroughs or silver bullets define software development invariants consequence of the inherent software complexity, conformity, changeability, and invisibility. The accidents of software development Accidental difficulties due to software production practices amenable to human intervention attributed mostly to the fact that an information system is a social system must not be adding to the complexity and to the potential lack of supportability of the software product supportability = understandability + maintainability + scalability (extensibility) Related to: Stakeholders Process Modeling language and tools Will be discussed soon Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 3 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 4 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 Stakeholders People who have a stake in a software project: 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, and on the developer end Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 5 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 6 MACIASZEK (2005): Req Analysis & Syst Design 1

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 developers; offers criteria for monitoring a project s progress, for measuring the outcomes, and for planning future projects. Is not susceptible to standardization Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 7 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. (RUP) Some examples: the spiral model Rational Unified Process (RUP) Model Driven Architecture (MDA) the agile development process Iterative and incremental development must be planned and controlled, and must conform to a pre-defined architectural design framework Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 8 Capability maturity model Improve process discipline Level 1 Initial Improve process definition Level 2 Repeatable Improve process control Unpredictable and undisciplined process that depends on the current staff. Level 3 Defined Improve process itself Level 4 Managed Metrics used to control the process. Both management and engineering processes are codified and followed. Repeatable project management; consistent time and effort predictions for similar projects. Level 5 Optimizing Continuous process improvement in place. Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 9 ISO 9000 family of quality standards Developed by the International Organization for Standardization The ISO standards apply to the quality management and the process to produce a quality product apply to any industry and all types of businesses, including software development The main premise if the process is right then the process outcome (product or service) will also be right but... the ISO standards do not enforce or specify processes the standards provide models of what must be accomplished, not how activities must be performed Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 10 Modeling language and tools Modeling artifacts have to be communicated (language) and documented (tools) The Unified Modeling Language (UML) is a general-purpose visual modeling language that is used to specify, visualize, construct, and document the artifacts of a software system. Computer-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 UML UML is independent of any software development process A process that adopts UML must support an object-oriented oriented approach to software production implementation technologies (as long as they are objectoriented) This makes UML somewhat deficient in supporting the detailed design phase of the development lifecycle The UML models can be categorized into three groups: State models describe the static data structures Behavior models describe object collaborations State change models describe the allowed states for the system over time Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 11 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 12 MACIASZEK (2005): Req Analysis & Syst Design 2

CASE and process improvement Process improvement is much more than the introduction of new methods and techniques the introduction of new methods and techniques to organization at a low level of process maturity can bring more harm than good An integrated CASE tool can allow multiple developers to collaborate and share design information in order to produce new design artifacts the tool imposes processes on the development team in immature organizations processes will not be followed (creating more mess than before) However, the same CASE methods and techniques would always bring personal productivity and quality improvements to individual developers Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 13 System planning The question is: Which IS technologies and applications will return the most value to the business? System planning can be carried out in a number of different ways: SWOT Strengths, Weaknesses, Opportunities, Threats VCM Value Chain Model BPR Business Process Reengineering Information System Architecture (ISA) All system planning approaches have an important common denominator they are concerned with effectiveness rather than efficiency Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 14 SWOT approach Internal analysis Mission statement External analysis Strengths Weaknesses Opportunities Threats SWOT matrix Objectives Strategies Goals Policies Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 15 VCM approach The VCM (Value Chain Model) assesses competitive advantage by analyzing the full chain of activities in an organization from raw materials to final products sold and shipped to customers The question is: which value chain configurations will yield the greatest competitive advantage? The IS development projects can then target those segments, operations, distribution channels, marketing approaches, etc. that give the most competitive advantage Organizational functions are categorized into: primary activities they create or add value to a final product support activities they are essential but they do not enrich the product Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 16 BPR approach The BPR (Business Process Reengineering) approach to system planning is based on the premise that today s organizations must reinvent themselves and abandon the functional decomposition, hierarchical structures and operational principles that they are now using Most contemporary organizations are structured in vertical units focused on functions, products or regions No one employee or department is responsible for a business process which is defined as... a collection of activities that takes one or more kinds of input and creates an output that is of value to the customer The most visible difference between a process enterprise and a traditional organization is the existence of process owners The main objective of BPR is to radically redesign business processes in an organization (hence, process redesign) The major hurdle lies in the need to embed a horizontal process in a traditional vertical management structure BPR initiative requires changing the organization around the development teams as the primary organizational units These teams are responsible for one or more end-to to-end business processes ISA approach ISA (Information Systems Architecture) is a bottomup approach that offers a neutral architectural framework for IS solutions that can suit a variety of business strategies it does not include a system planning methodology it offers a framework that leverages most business strategies The ISA framework is represented as a table of thirty cells organized into five rows (labeled 1 through 5) and six columns (labeled A through F) Rows represent the different perspectives used in the construction of a complex engineering product, such as an information system five major players in the game Columns represent the six different descriptions or architectural models that each of the participants engages with Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 17 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 18 MACIASZEK (2005): Req Analysis & Syst Design 3

Level of decision making Strategic (executive and senior management levels) Tactical (line management level) Operational (operative management level) Systems for three management levels Focus of decision making Strategies in support of organizational long-term objectives Policies in support of shortterm goals and resource allocation Day-to-day staff activities and production support Typical IS applications Market and sales analysis, Product planning, Performance evaluation Budget analysis, Salary forecasting, Inventory scheduling, Customer service Payroll, Invoicing, Purchasing, Accounting Typical IT solutions Data mining, Knowledge management Data warehouse, Analytical processing, Spreadsheets Database, Transactional processing, Application generators Pivotal concept Knowledge Information Data Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 19 Software development lifecycle Set of activities conducted and managed for development project The lifecycle identifies: the applied modeling approach the exact phases along which the software product is transformed from initial inception to phasing it out the method (methodology) and associated development process Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 20 Development approach Software has become much more interactive event-driven user in control software objects service random and unpredictable events Conventional software has been well served by the so-called structured approach Modern GUI systems require object programming and the object approach is the best way to design such systems ANALYSIS DFD (processes, flows, stores, external entities) ERD (entities, relationships, attributes) User interface prototype Rich Structured approach DESIGN Architectural design Schema design (tables, views, referential integrity, indexes, etc.) Server program design (stored procedures, triggers) 4GL application design IMPLEMENTATION Server programming, Client programming, Testing, Performance tuning, Three-tier deployment, etc. Poor Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 21 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 22 ANALYSIS Very rich Object-oriented approach Use cases, Class diagrams, Interaction diagrams, State diagrams, Component diagrams, Activity diagrams, Object collaboration diagrams Very rich DESIGN OBJECT IMPLEMENTATION Rich RELATIONAL IMPLEMENTATION Very poor Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 23 Lifecycle phases Business Analysis functional and non-functional requirements System Design architectural design detailed design Implementation coding round-trip engineering Integration and Deployment Operation and Maintenance Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 24 MACIASZEK (2005): Req Analysis & Syst Design 4

Business analysis Also requirements analysis Activity of determining and specifying customer requirements 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 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 25 Requirements determination Requirement a statement of a system service or constraint Service statement a business rule that must be obeyed at all times (e.g. fortnightly 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 fortnight 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 Sybase development tools ) Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 26 Requirements specification Begins when the developers start modeling the requirements using a particular method (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 Specifications document (the specs in the jargon) replaces the requirements document Most important specification techniques class diagrams use case diagrams Ideally, the specification models should be independent from the hardware/software platform on which the system is to be deployed Architectural design The description of the system in terms of its modules (components) Concerned with selection of a solution strategy to resolve client (user interface) and server (database) issues as well as any middleware needed to glue client and server processes modularization of the system relatively independent from a solution strategy but the detailed design of components must conform to a selected client/server solution Client/server models are frequently extended to provide a three-tier architecture where application logic constitutes a separate layer Good architectural design produces supportable systems, i.e. systems that are understandable, maintainable, and scalable (extensible) Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 27 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 28 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 server middleware 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. Client programs Server programs Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 29 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 30 MACIASZEK (2005): Req Analysis & Syst Design 5

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 Operation and maintenance Operation signifies change over from the existing business solution, whether in software or not 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 Housekeeping Adaptive maintenance Perfective maintenance Phasing out would normally happen due to reasons that have little to do with the usefulness of the software Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 31 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 32 Activities spanning the lifecycle Project planning Metrics Testing 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 and money Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 33 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 34 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 Testing Test cases should be defined for each functional module (use case) described in the requirements document Desktop testing by developers not sufficient Methodical testing by Software Quality Assurance (SQA) group necessary Requirements, specifications and any documents (including program source code) can be tested in formal reviews (so-called walkthroughs and inspections) Execution-based testing: Testing to specs (black-box testing) Testing to code (white-box or glass-box testing) Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 35 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 36 MACIASZEK (2005): Req Analysis & Syst Design 6

Development models Spiral model Called also lifecycle models Model defines an approach to software production Has an associated process iterative and incremental Process is unique for each organization Representative models for iterative and incremental development: the spiral model the IBM Rational Unified Process (RUP) the Model Driven Architecture (MDA) the agile software development Planning Customer evaluation Project cost Risk analysis Engineering go, no-go decision Project progress Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 37 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 38 Requirements IBM Rational Unified Process (RUP) Analysis & Design Business Modeling Management Environment Configuration Management Deployment Start of the process Implementation Test RUP organizes projects in twodimensional terms The horizontal dimension represents the successive phases of each project iteration: inception, elaboration, construction, and transition. The vertical dimension represents seven software development disciplines and supporting activities of configuration and change management, project management, and environment. Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 39 Model Driven Architecture (MDA) Customer requirements Analysis Design Coding Platform Specific Model Mostly text Platform Independent Model PSM bridge Platform Specific Model Applicable standards: Unified Modeling Language (UML) Code Meta-Object Facility (MOF) for using a Code bridge Code standard meta-model repository so that derived specifications can work together XML Meta-Data Interchange (XMI) for mapping UML to XML for interchange purposes, Common Warehouse Meta-model (CWM) for mapping of MDA to database schemas and permitting flexible data mining. Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 40 Acceptance tests Test-driven development Agile software development User stories Refactoring Continuous integration Key points of agility in software production: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan The best known representatives: extreme Programming (XP) Aspect Oriented Software Development Feature-Driven Development Lean Development Case studies (separate set of slides) University Enrolment (UE) Video Store (VS) Contact Management (CM) Telemarketing (TM) Advertising Expenditure (AE) Time Logging (TL) Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 41 Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 42 MACIASZEK (2005): Req Analysis & Syst Design 7

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. Modern software products are object-oriented. Software development follows a lifecycle. Modern development lifecycles and processes are iterative and incremental. Pearson Education 2005 Chapter 1 (Maciaszek - RASD 2/e) 43 MACIASZEK (2005): Req Analysis & Syst Design 8