Credit where Credit is Due. Lecture 2: Software Engineering (a review) Goals for this Lecture. What is Software Engineering

Similar documents
(c) Addison Wesley Chapter 1. ! Software production is an art. ! Two groups. ! Main causes of software failures

Chapter 1 Software Process

Pearson Education 2007 Chapter 1 (RASD 3/e)

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters. Software Engineering

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

The software process

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

Development Process Bennett, McRobb and Farmer 1

Software Engineering

An Overview of Software Process

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Software Development Methodologies

Development Process and Analysis. LTOOD/OOAD - Verified Software Systems 1

Course Organization. Lecture 1/Part 1

Developed by: Steven Jacobs, Eck Doerry

7. Model based software architecture

Software Processes 1

SWE 211 Software Processes

The Top Thrill Dragster

Sistemi ICT per il Business Networking

cis20.2 design and implementation of software applications 2 spring 2010 lecture # I.2

the software world... software engineering? software engineering: one definition

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Course Information. Course Topics

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Rational Unified Process (RUP) in e-business Development

Software Engineering

2009 Spring. Software Modeling & Analysis. - Software Process Model. Lecturer: JUNBEOM YOO

Object-Oriented Modeling: A Roadmap

The Systems Development Lifecycle

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Chapter 1 Systems Development in an Organization Context

Software development activities

Other Agile Approaches & Methodologies

03. Perspective Process Models

Software Construction

Note 10: Software Process

The good news. 34% of software projects succeed. Standish Group, CHAOS Report, 2003

Pragmatics. Object Orientated Analysis and Design. Benjamin Kenwright

Unified Process. Peter Dolog dolog [at] cs [dot] aau [dot] dk Information Systems March 3, 2008

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

Software Engineering COMP 201

What Is the Rational Unified Process?

The Rational Unified Process for Systems Engineering PART II: Distinctive Features

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Chapter 1. Contents. 1.1 What is Software Engineering! Solving Problems. Objectives. What is Software Engineering

Adopting Agile in an FDA Regulated Environment

CHAPTER 2. Slide 2.1 THE SOFTWARE PROCESS

Software development processes: from the waterfall to the Unified Process

Topic 3 Software process models

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

The Unified Software Development Process

Rational Unified Process

What You Didn t Know About RUP

Modern Systems Analysis and Design Seventh Edition

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

Object-Oriented and Classical Software Engineering

Pertemuan 2. Software Engineering: The Process

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

INFORMATION SYSTEMS ANALYSIS AND DESIGN

BCS Certificate in Systems Development Essentials Syllabus

Software Development Methodologies

Chapter 3 Prescriptive Process Models

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 10. * Construction, Installation and Operations * Agile Method Software Development

Unified Process and Testing with EasyAccept. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 22, 2007

Software Processes. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University

Software processes. Software Applications A.Y. 2018/2019

Introduction to Software Engineering

Course title: SOFTWARE ANALYSIS AND DESIGN

Software Reviews Since Acquisition Reform Architecture-Driven Considerations

A Comparison Between Two Software Engineering Processes, RUP And Waterfall Models

Chapter 3 Software Process Model

The Review Of Business Information Systems Volume 6, Number 4

CS/IT Secure Software Construction

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

CHAPTER 2 LITERATURE SURVEY

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Software Engineering and Software Engineers

Component-Based Software Engineering. ECE493-Topic 5 Winter Lecture 27 Component Based Development Process (Part A)

Software development processes: from the waterfall to the Unified Process

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Enterprise Architecture: an ideal discipline for use in Supply Chain Management

SYLLABUS. What is Agility, What is an Agile Process, Agile Process Models.


Quality Management of Software and Systems

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

version NDIA CMMI Conf 3.5 SE Tutorial RE - 1

CMMI Version 1.2. Model Changes

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

Transcription:

Credit where Credit is Due Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some material presented in this lecture is taken from chapter 1 of Maciaszek s Requirements Analysis and System Design. Addison Wesley, 2000 January 17, 2002 Kenneth M. Anderson, 2002 2 Goals for this Lecture Introduce definition of software engineering Begin review of topics covered in Maciaszek, Chapter 1 What is Software Engineering Software Computer programs and their related artifacts Engineering The application of scientific principles in the context of practical constraints January 17, 2002 Kenneth M. Anderson, 2002 3 January 17, 2002 Kenneth M. Anderson, 2002 4

A Definition (Daniel M. Berry) Engineers Build Machines Software engineering is that form of engineering that applies: a systematic, disciplined, quantifiable approach, the principles of computer science, design, engineering, management, mathematics, psychology, sociology, and other disciplines, to creating, developing, operating, and maintaining costeffective, reliably correct, high-quality solutions to software problems. January 17, 2002 Kenneth M. Anderson, 2002 5 Software is intangible Descriptions of a desired machine, written according to specific languages and notations Computer is tangible General-purpose description executor Behaves as if it were the desired machine Software engineers build descriptions Organizing, structuring, and making complex assemblages of descriptions Raw materials: languages and notations January 17, 2002 Kenneth M. Anderson, 2002 6 Basic Software Engineering Activities Topics from Chapter 1 Create Modeling Record Specification Analyze Verification & Validation Configure Selection, Translation, & Deployment The Nature of Software Development System Planning Software Lifecycle Phases Software Development Approaches January 17, 2002 Kenneth M. Anderson, 2002 7 January 17, 2002 Kenneth M. Anderson, 2002 8

The nature of software (Brooks) Maciaszek starts by discussing the problems that arise because software is an intangible medium He cites the classic source on this topic, Fred Brooks No Silver Bullet essay that appeared in 1986 No Silver Bullet There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity. -- Fred Brooks, 1986 i.e. There is no magical cure for the software crisis January 17, 2002 Kenneth M. Anderson, 2002 9 January 17, 2002 Kenneth M. Anderson, 2002 10 Why? Essence and Accidents Brooks divides the problems facing software engineering into two categories essence difficulties inherent in the nature of software accidents difficulties related to the production of software Brooks argues that most techniques attack the accidents of software engineering An Order of Magnitude In order to improve the development process by a factor of 10 the accidents of software engineering would have to account for 9/10ths of the overall effort tools would have to reduce accidents to zero Brooks doesn t believe the former is true and the latter is highly unlikely, even if it was true January 17, 2002 Kenneth M. Anderson, 2002 11 January 17, 2002 Kenneth M. Anderson, 2002 12

The nature of software (Brooks) Software Development Invariant The software essence Complexity Conformity Changeability Invisibility The software accidents Stakeholders, Process, Tools Software production is an art Software is developed, not manufactured certainly software engineering advances have increased our ability to construct software but the success of a software system cannot be guaranteed January 17, 2002 Kenneth M. Anderson, 2002 13 January 17, 2002 Kenneth M. Anderson, 2002 14 Software Invariant continued Software Invariant continued Advances such as object technology, commercial-off-the-shelf (COTS) software and Enterprise Resource Planning (ERP) systems have helped to transform the development process from one of building from scratch to customizing component but what about core business processes? Typically these processes lead to requirements that have to be analyzed and designed from scratch, even if software reuse is applied during implementation January 17, 2002 Kenneth M. Anderson, 2002 15 One technology that aids in this process is components A component is an executable unit of software with well-defined functionality (services) and communication protocols (interfaces) that can be assembled with other components into a software system Examples: CORBA,.Net, EJB This technology does not attack the essence but it eliminates some accidental difficulties (while introducing some of its own) which allows humans more time to attack the essence on their own January 17, 2002 Kenneth M. Anderson, 2002 16

Maciaszek s Three Stakeholders Maciaszek identifies three contributors to accidental difficulties Stakeholders Process Modeling language and tools Brooks focuses mainly on tools but would not disagree with Maciaszek s points developers must be aware of the role these entities play, along with the benefits and limitations of each January 17, 2002 Kenneth M. Anderson, 2002 17 Two groups Customers Users System owners Developers Analysts Designers Programmers, etc. Main causes of software failures because customers often do not know what they want and developers are sometimes not up to the task See pages 3 and 4 Great designs come from great designers January 17, 2002 Kenneth M. Anderson, 2002 18 Process (Software Lifecycle) How to improve process? Process for: Order of activities Product delivery (what, when) Task Assignment to developers Monitoring measuring planning Cannot be codified or standardized Each organization has a different process Process is dependent on project size In the Mythical Man-Month, Brooks talks about a project (OS/360) that required 1000 developers! Iterative and incremental These are good characteristics but only if well managed; otherwise it is too easy to slip into ad hoc hacking Two methods have been tried with varying degrees of success, under the banner of software process improvement Capability Maturity Model ISO 9000 January 17, 2002 Kenneth M. Anderson, 2002 19 January 17, 2002 Kenneth M. Anderson, 2002 20

Capability Maturity Model (page 6) Improve process discipline Level 1 Initial Improve process definition Level 2 Repeatable Improve process metrics Unpredictable and undisciplined process that depends on the current staff. Level 3 Defined Improve process change management 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. January 17, 2002 Kenneth M. Anderson, 2002 21 ISO 9000 Quality management Process ISO standards are about What must be accomplished Not about how Certification Company must document and record its activities On-site audit by an ISO registrar January 17, 2002 Kenneth M. Anderson, 2002 22 Modeling Language and Tools Language Characteristics Stakeholders make use of a process to develop modeling artifacts, e.g. the requirements, specifications, and design of a software system As such, they require a language to build these artifacts; in turn, this allows them to share, discuss, and evolve these artifacts over the lifetime of a software development project In addition, they need tools that facilitate the construction of models using the language CASE (computer-aided software engineering) tools provide benefits such as a persistent repository, consistency checking, versioning, code generation, and reverse engineering Support for Abstraction Need to specify requirements and characteristics of a system at different levels of detail Need to be able to say this diagram provides more detail about this box in that diagram Visual Component Humans have powerful visual systems; our models should try to exploit this power as much as possible Declarative Semantics It should allow capturing procedural meaning in declarative sentences what not how January 17, 2002 Kenneth M. Anderson, 2002 23 January 17, 2002 Kenneth M. Anderson, 2002 24

UML UML, continued Unified Modeling Language Developed by Booch, Jacobson, and Rumbaugh the three amigos Each had their own (competing) object-oriented design methods in the early 90 s Rational Software hired each of them to combine their methods into one unified method The result is the Rational Unified Process and the notation (or language) used by this (and other) methods is called the Unified Modeling Language January 17, 2002 Kenneth M. Anderson, 2002 25 It is important to realize that the UML is not an OO method it is just a notation, a language that can be used to create modeling artifacts The UML provides three types of models State models (that describe static data structures) Behavior models (that describe object collaborations) State change models (that describe the allowed states for a system over time) In addition, UML provides architectural constructs (such as packages) for grouping models into collections that can be developed iteratively and incrementally January 17, 2002 Kenneth M. Anderson, 2002 26 System Planning Maciaszek includes a section on system planning in Chapter 1 which covers The SWOT, VCM, BPR, and ISA approaches The details of these techniques are outside the scope of this class You should read them and be aware of them, however Software development approaches The past Procedural programs Deterministic execution; batch processing Program in control; little interaction with user The present Interactive program with user in control Event-driven execution Objects respond to events and perform tasks Structured vs. Object-Oriented January 17, 2002 Kenneth M. Anderson, 2002 27 January 17, 2002 Kenneth M. Anderson, 2002 28

Structured approach Modeling techniques Data Flow Diagrams Process Modeling Entity Relationship Diagrams Data Modeling Problems Sequential and transformational Difficult to respond to changing user requirements Inflexible solutions No reuse Object-Oriented approach Data-centric (evolves around class models) Event-driven (supports modern applications) Applies benefits of object technology abstraction, encapsulation, reuse, inheritance, etc. Follows iterative and incremental process A single model is elaborated through analysis, design, and implementation phases with multiple iterations A single language is used to capture all parts of the model January 17, 2002 Kenneth M. Anderson, 2002 29 January 17, 2002 Kenneth M. Anderson, 2002 30 Object-Oriented Approach Short-Term Roadmap Problems Semantic gap in case of relational database implementation Because relational model of tables and rows do not nicely map into object classes and instances Project management Iterative/Incremental approach harder to manage than sequential waterfall Solution complexity Object systems can sometimes be more complex (think lots of objects) than structured approaches which has implications for maintainability and scalability January 17, 2002 Kenneth M. Anderson, 2002 31 Next Lecture Introduction to Software Life Cycles and Object-Oriented Design Methods Then Introduction to Object-Oriented Concepts as they relate to analysis (we will also look at structured requirements techniques to use as a comparision) January 17, 2002 Kenneth M. Anderson, 2002 32