Software Engineering. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 16



Similar documents
Plan-Driven Methodologies

CS4507 Advanced Software Engineering

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

3C05: Unified Software Development Process

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

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

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

Unit 1 Learning Objectives

Redesigned Framework and Approach for IT Project Management

Integrating BCM and Development Life Cycles

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

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

Software Life Cycle Processes

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 Engineering G

Basic Unified Process: A Process for Small and Agile Projects

Software Engineering Question Bank

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

Thesis seminar THE7TF007

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

CHAPTER. Software Process Models

A Process Model for Software Architecture

What CMMI Cannot Give You: Good Software

Requirements Management Practice Description

Classical Software Life Cycle Models

Software Quality Assurance: VI Standards

2. Analysis, Design and Implementation

Application of software product quality international standards through software development life cycle

2. Analysis, Design and Implementation

I219 Software Design Methodology

Avancier Reference Model

Developing CMMI in IT Projects with Considering other Development Models

SOFTWARE PROCESS MODELS

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

How To Understand The Software Process

Software Development Methodologies

A Comparison of SOA Methodologies Analysis & Design Phases

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

Applied Software Project Management

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

IT3205: Fundamentals of Software Engineering (Compulsory)

Program Lifecycle Methodology Version 1.7

MDA Case Study: State of Wisconsin Unemployment Insurance Division

Lecture 8 About Quality and Quality Management Systems

What is a life cycle model?

Software Quality Management

Software Engineering Reference Framework

Open Source vs. Collaborative Software: FOSS is Not Enough

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

Business Modeling with UML

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Software Development: The Waterfall Model

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

VAIL-Plant Asset Integrity Management System. Software Development Process

Manoo Ordeedolchest Chairman ICT Policy Committee Sripatum University Microsoft Software Development Life Cycle Management of Enterprise June 5, 2007

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

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

Increasing Development Knowledge with EPFC

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

Software Process for QA

STSG Methodologies and Support Structure

Small tech firms. Seizing the benefits of software and systems engineering standards

Towards a new approach of continuous process improvement based on CMMI and PMBOK

Software Life Cycles and Configuration Management

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Computer Technology: Your Need to Know

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

How To Model Software Development Life Cycle Models

Development Methodologies

Chap 1. Introduction to Software Architecture

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Software Project Management using an Iterative Lifecycle Model

A Software Engineering Approach For GIS Developing

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

A PROCESS APPROACH FOR SENIOR MANAGEMENT INVOLVEMENT IN SOFTWARE PRODUCT DEVELOPMENT

Software Quality Standards and. from Ontological Point of View SMEF. Konstantina Georgieva

General Problem Solving Model. Software Development Methodology. Chapter 2A

A Framework for Integrating Software Usability into Software Development Process

An Innovative Approach in Developing Standard Professionals

Leveraging CMMI framework for Engineering Services

CMMI and IBM Rational Unified Process

Capability Maturity Model Integration (CMMI SM ) Fundamentals

2/25/2012. [5]

Software Engineering

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

SW Process Improvement and CMMI. Dr. Kanchit Malaivongs Authorized SCAMPI Lead Appraisor Authorized CMMI Instructor

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

A Capability Maturity Model (CMM)

LUXOFT ADVANTAGES. International Quality Standards

How to use CMMI to bring your project management process to the next level A CMMI Implementation Case Study

Test Cases Design for Software Database Provisioning Development

Software Development Life Cycle & Process Models

CMS Policy for Capability Maturity Model Integration (CMMI)

Software Engineering. What is a system?

An Introduction to the UML and the Unified Process

Software Project Management and Support - Practical Support for CMMI -SW Project Documentation: Using IEEE Software Engineering Standards

The Unified Software Development Process

An introduction to the benefits of Application Lifecycle Management

CS314: Course Summary

Transcription:

Software Engineering Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 16

Software Engineering Definition 3.2760 from ISO/IEC/IEEE 24765:2010(E) 1 the systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software. ISO/IEC 2382-1:1993, Information technology Vocabulary Part 1: Fundamental terms.01.04.07. 2 the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 2 / 16

The Definition Expanded the systematic application of... methods... [and]disciplined, quantifiable approach to the development, operation, and maintenance of software Software development development life cycle Software development process models application of scientific and technological knowledge Software design principles Programming languages Software development tools the systematic application of... experience Process improvement frameworks Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 3 / 16

Software Development Life Cycle All software development projects go through identifiable phases: Planning Requirements Analysis Design Implementation Integration Testing Deployment Maintenance Process models differ in how they approach these phases and organize them into a complete software development project Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 4 / 16

Planning and Requirements Analysis Planning Identify the need for a software system Allocate resources (people, budget, equipment) Set a timeline for development Requirements Analysis Identify the users and other stakeholders of the system Elicit requirements from the stakeholders: features, performance characteristics, usability requirements Requirements and planning usually interleaved - requirements drive timelines, resources constrain requirements Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 5 / 16

Design and Implementation Design: how the software will be structured to meet the requirements High-level architecture, e.g., client-server, desktop application, web application Component design using object-oriented design, entity-relationship modeling, etc Implementation: writing the code to realize the design in a working system Programming Building Art and UI (icons, style sheets, dialog layouts, etc) Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 6 / 16

Integration and Testing Integration: putting the components together Make sure software components work together Make sure software integrates with host operating system Testing: verifying that the software works as expected Some tests done by developers (unit tests, some functional tests) Some tests done by quality assurance engineers and customer (functional tests, acceptance tests) Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 7 / 16

Deployment and Maintenance Deployment: putting the software in the hands of its users How to deploy Maintenance: fixing bugs and adding enhancements or new features after the software has been deployed Enhancements and bug fixes for current release Development of new version Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 8 / 16

Software Development Process Models 1 Two stereotypical process models: waterfall and iterative Waterfall processes, a.k.a. sequential processes, finish each phase of the SDLC before moving on to the next Sometimes called big bang development, since in classic waterfall the system under development is not released until the end of the project Incremental waterfall processes include intermediate releases in the implementation phase 1 Source: http://en.wikipedia.org/wiki/file:waterfall_model_(1).svg Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 9 / 16

Iterative Development Divide the project into short (typically two-week) iterations Each iteration progresses through each of the SDLC phases Each iteration accomplishes a subset of the requirements and releases a working product 2 2 Source: http://en.wikipedia.org/wiki/file:spiral_model_(boehm,_1988).svg Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 10 / 16

Rational Unified Process Developed by Rational Software and acquired by IBM in 2003 Unifies waterfall and iterative process models with four life-cycle phases: Inception: feasibility - vision, scope, rough estimates Elaboration: most requirements, more detailed estimates, implementation of core architecture and highest risk features Construction: implementation of remaining features, iterative refinement of requirements and estimates Transition: beta tests, deployment Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 11 / 16

Software Design Science Programs = data structures + algorithms What software engineers learn in school Computer science Data structures and algorithms Programming languages Object-oriented programming, Functional programming Systems, networks, HCI, AI (threads) Software design and implementation Design patterns Modeling approaches and languages (like UML) Programming Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 12 / 16

Software Development Practice Programming tools Editors, debuggers, profilers Build tools Make, SCons, Ant, Maven, SBT, Gradle, Buildr, Rake Integration tools Test runners, installer software, continuous integration servers Deployment and maintenance tools Software configuration management (CVS, Subversion, Git) Bug trackers (Bugzilla, Trac, GitHub) Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 13 / 16

ISO 9001 A generic quality management standard with a process-based management approach International standard based on british standard dating back to 1987 (current version is 2000) Adopted by many industries: aviation, automotive, software Based on 8 quality principles from ISO 9000: Customer focus Leadership Involvement of people Process approach System approach to management Continual improvement Factual approach to decision making Mutually beneficial supplier relationships Doesn t specify the process; can meet ISO 9001 with RUP/XP/Scrum/Homegrown Process Some customers will want or require ISO 9001 certification Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 14 / 16

Capability Maturity Model (CMM/CMMI) Developed by Carnegie Mellon s Software Engineering Institute - originally for software engineering, now generically covers acquisition development, and services (and people) Models include goals, practices organized into practice areas Appraisals grade organizations for capability levels (0 through 3) in each process area, and maturity levels (1 through 5) CMMI documented in zillions of pages of <sarcasm>engagingly written documents and books. Consult them if you re fortunate enough to be implementing CMMI.</sarcasm> Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 15 / 16

Conclusion The engineering of software encompasses process and practice Process - documentation, project management Practice - software architecture, design, implementation, tools and technologies Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 16 / 16