Lecture 2: Software Engineering (a review)

Similar documents
Credit where Credit is Due. Goals for this Lecture. Introduction to Design

Rational Software White paper

UNIT-I Introduction of Object Oriented Modeling

Software Engineering from a

Credit where Credit is Due. Last Lecture. Goals for this Lecture

Review of Versioning. Configuration Management. Relation of Versioning to CM. Lecture 14: Configuration Management & Midterm Review

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Introduction to Software Engineering

Object Oriented System Development

Software Process. Software Process

AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT

Introduction to the UML

Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach. (problem definition, use case model)

CS:2820 (22C:22) Object-Oriented Software Development

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Topic : Object Oriented Design Principles

Software Engineering

Software Development Methodologies

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

Seminar report Software reuse

Unified Modeling Language (UML)

Object-Oriented Analysis and Design

History of object-oriented approaches

Getting a Quick Start with RUP

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

Practical Model-Driven Development with the IBM Software Development Platform

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

index_ qxd 7/18/02 11:48 AM Page 259 Index

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

The Unified Modeling Language User Guide

02291: System Integration

Systems Analysis and Design in a Changing World, Fourth Edition

BDSA Introduction to OOAD. Jakob E. Bardram

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

Presenter: Dong hyun Park

Managing Change and Complexity

Software Engineering Chap.7 - Design and Implementation

SOFTWARE ENGINEERING

Mapping UML Component Specifications to JEE Implementations

Approaches of using UML for Embedded System Design

SOFTWARE ENGINEERING

10.1 Big Objects, Business Objects, and UML Components

Analysis and Design with UML

Unit-1 INTRODUCTION 1.1 CATEGORIES OF INFORMATION SYSTEMS SYLLABUS:

Information Systems Development Methodologies

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

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

Introduction to Software Engineering (ESE : Einführung in SE)

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

Design of Embedded Systems

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

CSC Advanced Object Oriented Programming, Spring Overview

Introduction to Information Systems (IS)

Architectural Blueprint

Representing System Architecture

The UML Extension Mechanisms

Module 3. Overview of TOGAF 9.1 Architecture Development Method (ADM)

*ANSWERS * **********************************

Goals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

02291: System Integration

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved.

Architecture-Centric Evolution in Software Product Lines:

Chapter 1: Principles of Programming and Software Engineering

Objectives. UML Extension Mechanisms. What is UML? Is the UML enough? UML Extension Mechanisms. Specifications. By Jasmine Farhad

UML 2.0 State Machines

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Object-Oriented Systems. Development: Using the Unified Modeling Language

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process

Software Design and Implementation. Example Architecture KIWC

Lecture 7: Software Processes. Refresher: Software Always Evolves

Understanding Software Engineering

Object-Oriented Analysis and Design Using UML (OO-226)

5 Object Oriented Analysis

Software Architectures. Lecture 6 (part 1)

Spemmet - A Tool for Modeling Software Processes with SPEM

Outline of Unified Process

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Evaluating OO-CASE tools: OO research meets practice

CIS 771: Software Specifications

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Formal Specification of Software Systems

VO Software Engineering

10조 이호진 이지 호

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs

Architectures in Context

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

Software Reuse and Component-Based Software Engineering

OO Analysis and Design with UML 2 and UP

Chapter 1: Programming Principles

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Agent-Oriented Software Engineering

The Web Service Sample

Software Architectures

Model Driven Development Unified Modeling Language (UML)

Minsoo Ryu. College of Information and Communications Hanyang University.

Transcription:

Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is taken from chapter 1 of Maciaszek s Requirements Analysis and System Design. Addison Wesley, 2000 1 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 3 4

A Definition (Daniel M. Berry) 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 cost-effective, reliably correct, high-quality solutions to software problems. Engineers Build Machines 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 5 6 Basic Software Engineering Activities Create Modeling Record Specification Analyze Verification & Validation Configure Selection, Translation, & Deployment Topics from Chapter 1 The Nature of Software Development System Planning (skipped) Software Lifecycle Phases Software Development Approaches 7 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-ofmagnitude improvement within a decade in productivity, in reliability, in simplicity. -- Fred Brooks, 1986 i.e. There is no magical cure for the software crisis 9 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 11 12

The nature of software (Brooks) The software essence Complexity Conformity Changeability Invisibility The software accidents Stakeholders, Process, Tools Software Development Invariant Software production is an art Software is developed, not manufactured certainly SE advances have increased our ability to construct software but the success of a software system cannot be guaranteed 13 14 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 Software Invariant continued 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 15 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 Two groups Customers 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 17 18 Process (Software Lifecycle) 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 Modeling Language and Tools 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 19 20

Language Characteristics 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 UML 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 21 22 UML, continued 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 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 23 24

Structured approach Object-Oriented 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 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 25 26 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 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) 27 28